Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
GaoQuYingJiH5-ASD
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xinzhedeai
GaoQuYingJiH5-ASD
Commits
32e723cf
Commit
32e723cf
authored
Aug 02, 2025
by
xinzhedeai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
better:应急演练、特种作业备案 校验提醒信息优化
parent
d41c8a6a
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
117 additions
and
31 deletions
+117
-31
index.js
sdk/jssdk2/index.js
+5
-3
util.js
sdk/util.js
+16
-0
_peixun_yanlian_detail-anquan.html
src/_peixun_yanlian_detail-anquan.html
+7
-7
_peixun_yanlian_detail-anquan.js
src/_peixun_yanlian_detail-anquan.js
+27
-4
_peixun_yanlian_detail-yingji.html
src/_peixun_yanlian_detail-yingji.html
+6
-6
_peixun_yanlian_detail-yingji.js
src/_peixun_yanlian_detail-yingji.js
+29
-4
_tezhongzuoye.js
src/_tezhongzuoye.js
+6
-0
_tezhongzuoye_detail.html
src/_tezhongzuoye_detail.html
+6
-6
_tezhongzuoye_detail.js
src/_tezhongzuoye_detail.js
+15
-1
No files found.
sdk/jssdk2/index.js
View file @
32e723cf
...
@@ -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
)
{
},
...
...
sdk/util.js
View file @
32e723cf
...
@@ -327,6 +327,22 @@ gemhoUtil.isIOSStrict = function() {
...
@@ -327,6 +327,22 @@ gemhoUtil.isIOSStrict = function() {
}
}
gemhoUtil
.
validateChineseName
=
function
(
name
)
{
const
regex
=
/^
(?:[\u
4E00-
\u
9FA5
\u
3007
\u
3400-
\u
4DBF
\u
F900-
\u
FAFF
]
|
[\u
D840-
\u
D87F
][\u
DC00-
\u
DFFD
])
+
(?:
·
(?:[\u
4E00-
\u
9FA5
\u
3007
\u
3400-
\u
4DBF
\u
F900-
\u
FAFF
]
|
[\u
D840-
\u
D87F
][\u
DC00-
\u
DFFD
])
+
)
*$/
;
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
...
...
src/_peixun_yanlian_detail-anquan.html
View file @
32e723cf
...
@@ -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>
...
...
src/_peixun_yanlian_detail-anquan.js
View file @
32e723cf
...
@@ -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
:
'
图片不可为空
'
,
...
...
src/_peixun_yanlian_detail-yingji.html
View file @
32e723cf
...
@@ -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>
...
...
src/_peixun_yanlian_detail-yingji.js
View file @
32e723cf
...
@@ -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
:
'
图片不可为空
'
,
...
...
src/_tezhongzuoye.js
View file @
32e723cf
...
@@ -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
)
...
...
src/_tezhongzuoye_detail.html
View file @
32e723cf
...
@@ -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>
...
...
src/_tezhongzuoye_detail.js
View file @
32e723cf
...
@@ -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
:
'
作业时间不可为空
'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment