Commit 32e723cf authored by xinzhedeai's avatar xinzhedeai

better:应急演练、特种作业备案 校验提醒信息优化

parent d41c8a6a
...@@ -32,8 +32,7 @@ window.onload = function () { ...@@ -32,8 +32,7 @@ window.onload = function () {
if (gemhoUtil.getCookie('userType') == 'consumers') { if (gemhoUtil.getCookie('userType') == 'consumers') {
vant.Dialog.alert({ vant.Dialog.alert({
title: '信息提示', title: '信息提示',
message: '您好,消费者,请用爱山东扫一扫商家店面二维码访问~', message: '您好,消费者,请扫商家店面二维码提交您的安全建议。',
}).then(() => { // 关闭当前访问页面回到爱山东
lightAppJssdk.navigation.close({ lightAppJssdk.navigation.close({
success: function (data) { }, success: function (data) { },
fail: function (data) { }, fail: function (data) { },
...@@ -129,9 +128,12 @@ function getUserInfo() { ...@@ -129,9 +128,12 @@ function getUserInfo() {
if (gemhoUtil.getCookie('userType') == 'consumers') { if (gemhoUtil.getCookie('userType') == 'consumers') {
let merId = gemhoUtil.getParameter('merId') let merId = gemhoUtil.getParameter('merId')
if (!merId) { if (!merId) {
// 此处跳转过渡页面!!!!!2025年8月2日09:38:23新增
vant.Dialog.alert({ vant.Dialog.alert({
title: '信息提示', title: '信息提示',
message: '请扫描商户码访问~', message: '您好,消费者,请用爱山东扫一扫商家店面二维码访问~',
}).then(() => { // 关闭当前访问页面回到爱山东 }).then(() => { // 关闭当前访问页面回到爱山东
lightAppJssdk.navigation.close({ lightAppJssdk.navigation.close({
success: function (data) { }, success: function (data) { },
......
...@@ -327,6 +327,22 @@ gemhoUtil.isIOSStrict = function() { ...@@ -327,6 +327,22 @@ gemhoUtil.isIOSStrict = function() {
} }
gemhoUtil.validateChineseName = function(name) {
const regex = /^(?:[\u4E00-\u9FA5\u3007\u3400-\u4DBF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFD])+(?:·(?:[\u4E00-\u9FA5\u3007\u3400-\u4DBF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFD])+)*$/;
return regex.test(name.trim());
}
gemhoUtil.validateNumber999 = function(name) {
const regex = /^(?:[1-9]|[1-9]\d|[1-8]\d{2}|9[0-8]\d|99[0-8])$/;
return regex.test(name.trim());
}
gemhoUtil.validateRequire = function(name) {
return name && name.trim();
}
// aes解密 // aes解密
function aes_Decrypt(word, key) { function aes_Decrypt(word, key) {
var key = CryptoJS.enc.Utf8.parse(key) //转为128bit var key = CryptoJS.enc.Utf8.parse(key) //转为128bit
......
...@@ -19,15 +19,15 @@ ...@@ -19,15 +19,15 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">培训标题</span> <span class="form-label title_require">培训标题</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.title" :disabled="flag=='XQ'" class="form-input" <input maxlength="25" type="text" v-model="formData.title" :disabled="flag=='XQ'" class="form-input"
placeholder=""> placeholder="请输入培训标题">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">培训演练类别</span> <span class="form-label title_require">培训演练类别</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<select class="selector" v-model="formData.safetyTrainingType" :disabled="flag=='XQ'"> <select class="selector" v-model="formData.safetyTrainingType" :disabled="flag=='XQ'" placeholder="请选择培训演练类别">
<option v-for="(item, i) in tabList4lv2" v-if="item.dictValue!='0'" :key="i" <option v-for="(item, i) in tabList4lv2" v-if="item.dictValue!='0'" :key="i"
:label="item.dictLabel" :value="item.dictValue"> :label="item.dictLabel" :value="item.dictValue">
</option> </option>
...@@ -37,15 +37,15 @@ ...@@ -37,15 +37,15 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">培训人数(人)</span> <span class="form-label title_require">培训人数(人)</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.participantsNum" :disabled="flag=='XQ'" <input type="number" maxlength="3" v-model="formData.participantsNum" :disabled="flag=='XQ'"
class="form-input" placeholder=""> class="form-input" placeholder="请输入培训人数(人)">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">负责人</span> <span class="form-label title_require">负责人</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.responsiblePerson" :disabled="flag=='XQ'" <input maxlength="4" type="text" v-model="formData.responsiblePerson" :disabled="flag=='XQ'"
class="form-input" placeholder=""> class="form-input" placeholder="请输入负责人">
</div> </div>
</div> </div>
......
...@@ -233,30 +233,53 @@ window.addEventListener("load", function() { ...@@ -233,30 +233,53 @@ window.addEventListener("load", function() {
}, },
submitForm() { submitForm() {
if (!this.formData.title) { if (!gemhoUtil.validateRequire(this.formData.title)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训标题不可为空', message: '培训标题不可为空',
}) })
return; return;
} }
if (!this.formData.safetyTrainingType) { if (!gemhoUtil.validateRequire(this.formData.safetyTrainingType)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训演练类别不可为空', message: '培训演练类别不可为空',
}) })
return; return;
} }
if (!this.formData.participantsNum) { if (!gemhoUtil.validateRequire(this.formData.participantsNum)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训人数不可为空', message: '培训人数不可为空',
}) })
return; return;
} }
if (!this.formData.responsiblePerson) {
if (!gemhoUtil.validateNumber999(this.formData.participantsNum)) {
vant.Dialog.alert({
message: '培训人数请输入大于0且小于999的数字',
})
return;
}
if (!gemhoUtil.validateRequire(this.formData.responsiblePerson)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '负责人不可为空', message: '负责人不可为空',
}) })
return; return;
} }
if (!gemhoUtil.validateChineseName(this.formData.responsiblePerson)) {
vant.Dialog.alert({
message: '负责人格式不正确',
})
return;
}
if (this.formData.responsiblePerson.length < 2) {
vant.Dialog.alert({
message: '负责人字符长度不可小于2位',
})
return;
}
if (!this.formData.images.length) { if (!this.formData.images.length) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '图片不可为空', message: '图片不可为空',
......
...@@ -19,23 +19,23 @@ ...@@ -19,23 +19,23 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">演练标题</span> <span class="form-label title_require">演练标题</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.title" :disabled="flag=='XQ'" class="form-input" <input maxlength="25" type="text" v-model="formData.title" :disabled="flag=='XQ'" class="form-input"
placeholder=""> placeholder="请输入演练标题">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">演练人数(人)</span> <span class="form-label title_require">演练人数(人)</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.participantsNum" :disabled="flag=='XQ'" <input type="number" maxlength="3" v-model="formData.participantsNum" :disabled="flag=='XQ'"
class="form-input" placeholder=""> class="form-input" placeholder="请输入培训人数(人)">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">负责人</span> <span class="form-label title_require">负责人</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.responsiblePerson" :disabled="flag=='XQ'" <input maxlength="4" type="text" v-model="formData.responsiblePerson" :disabled="flag=='XQ'"
class="form-input" placeholder=""> class="form-input" placeholder="请输入负责人">
</div> </div>
</div> </div>
......
...@@ -200,24 +200,49 @@ window.addEventListener("load", function() { ...@@ -200,24 +200,49 @@ window.addEventListener("load", function() {
}, },
submitForm() { submitForm() {
if (!this.formData.title) { if (!gemhoUtil.validateRequire(this.formData.title)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '演练标题不可为空', message: '演练标题不可为空',
}) })
return; return;
} }
if (!this.formData.participantsNum) {
if (!gemhoUtil.validateRequire(this.formData.participantsNum)) {
vant.Dialog.alert({
message: '演练人数不可为空',
})
return;
}
if (!gemhoUtil.validateNumber999(this.formData.participantsNum)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '负责人数不可为空', message: '演练人数请输入大于0且小于999的数字',
}) })
return; return;
} }
if (!this.formData.responsiblePerson) {
if (!gemhoUtil.validateRequire(this.formData.responsiblePerson)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '负责人不可为空', message: '负责人不可为空',
}) })
return; return;
} }
if (!gemhoUtil.validateChineseName(this.formData.responsiblePerson)) {
vant.Dialog.alert({
message: '负责人格式不正确',
})
return;
}
if (this.formData.responsiblePerson.length < 2) {
vant.Dialog.alert({
message: '负责人字符长度不可小于2位',
})
return;
}
if (!this.formData.images.length) { if (!this.formData.images.length) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '图片不可为空', message: '图片不可为空',
......
...@@ -33,6 +33,7 @@ window.addEventListener("load", function() { ...@@ -33,6 +33,7 @@ window.addEventListener("load", function() {
page: 1, page: 1,
size: 6, size: 6,
total: 0, total: 0,
reqFlag: false, // 页面列表接口请求flag 防止多次请求
} }
}, },
mounted() { mounted() {
...@@ -100,6 +101,10 @@ window.addEventListener("load", function() { ...@@ -100,6 +101,10 @@ window.addEventListener("load", function() {
gemhoUtil.navigatePage(url, '跳转中...') gemhoUtil.navigatePage(url, '跳转中...')
}, },
getList() { getList() {
if(this.reqFlag){ // 第一次请求没有结束则不进行下面逻辑
return
}
this.reqFlag = true
vant.Toast.loading({ vant.Toast.loading({
message: '正在加载...', message: '正在加载...',
forbidClick: true, forbidClick: true,
...@@ -142,6 +147,7 @@ window.addEventListener("load", function() { ...@@ -142,6 +147,7 @@ window.addEventListener("load", function() {
}else{this.page++} }else{this.page++}
} }
this.loading = false this.loading = false
this.reqFlag = false
} }
) )
}, 0) }, 0)
......
...@@ -53,16 +53,16 @@ ...@@ -53,16 +53,16 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">作业公司</span> <span class="form-label title_require">作业公司</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.companyName" :disabled="flag=='XQ'" class="form-input" <input maxlength="25" type="text" v-model="formData.companyName" :disabled="flag=='XQ'" class="form-input"
placeholder=""> placeholder="请输入作业公司">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">作业人员姓名</span> <span class="form-label title_require">作业人员姓名</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.workerName" :disabled="flag=='XQ'" class="form-input" <input maxlength="25" type="text" v-model="formData.workerName" :disabled="flag=='XQ'" class="form-input"
placeholder=""> placeholder="请输入作业人员姓名(多个逗号隔开)">
</div> </div>
</div> </div>
...@@ -93,14 +93,14 @@ ...@@ -93,14 +93,14 @@
<div class="form-item date-wrapper"> <div class="form-item date-wrapper">
<span class="form-label title_require" style="width: 2rem;">作业时间(起始)</span> <span class="form-label title_require" style="width: 2rem;">作业时间(起始)</span>
<div class="form-input-wrap" style="display: flex; align-items: center; gap: 0.2rem;"> <div class="form-input-wrap" style="display: flex; align-items: center; gap: 0.2rem;">
<van-field readonly v-model="formData.startTime" :disabled="flag=='XQ'" placeholder="选择开始时间" <van-field readonly v-model="formData.startTime" :disabled="flag=='XQ'" placeholder="请选择作业时间(起始)"
class="form-input" @click="showStartDatePickerHandler" /> class="form-input" @click="showStartDatePickerHandler" />
</div> </div>
</div> </div>
<div class="form-item date-wrapper"> <div class="form-item date-wrapper">
<span class="form-label title_require" style="width: 2rem;">作业时间(结束)</span> <span class="form-label title_require" style="width: 2rem;">作业时间(结束)</span>
<div class="form-input-wrap" style="display: flex; align-items: center; gap: 0.2rem;"> <div class="form-input-wrap" style="display: flex; align-items: center; gap: 0.2rem;">
<van-field readonly v-model="formData.endTime" :disabled="flag=='XQ'" placeholder="选择结束时间" <van-field readonly v-model="formData.endTime" :disabled="flag=='XQ'" placeholder="请选择作业时间(结束)"
class="form-input" @click="showEndDatePickerHandler" /> class="form-input" @click="showEndDatePickerHandler" />
</div> </div>
</div> </div>
......
...@@ -369,12 +369,26 @@ window.addEventListener("load", function () { ...@@ -369,12 +369,26 @@ window.addEventListener("load", function () {
}) })
return; return;
} }
if (!this.formData.workerName) { if (!gemhoUtil.validateRequire(this.formData.workerName)) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '作业人员姓名不可为空', message: '作业人员姓名不可为空',
}) })
return; return;
} }
if (!gemhoUtil.validateChineseName(this.formData.workerName)) {
vant.Dialog.alert({
message: '作业人员姓名格式不正确',
})
return;
}
if (this.formData.workerName.length <2) {
vant.Dialog.alert({
message: '作业人员姓名长度不可少于2字符',
})
return;
}
if (!this.formData.startTime || !this.formData.endTime) { if (!this.formData.startTime || !this.formData.endTime) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '作业时间不可为空', message: '作业时间不可为空',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment