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
b8aba228
Commit
b8aba228
authored
Jun 17, 2025
by
xinzhedeai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add:上报隐患详情新页面
parent
9221dfa9
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
776 additions
and
281 deletions
+776
-281
_check_info.css
src/_check_info.css
+0
-186
_check_info.html
src/_check_info.html
+2
-61
_check_info.js
src/_check_info.js
+0
-26
_shangbao-detail.css
src/_shangbao-detail.css
+445
-0
_shangbao-detail.html
src/_shangbao-detail.html
+167
-0
_shangbao-detail.js
src/_shangbao-detail.js
+149
-0
_shangbao-list.js
src/_shangbao-list.js
+5
-3
_yh_check.js
src/_yh_check.js
+8
-5
No files found.
src/_check_info.css
View file @
b8aba228
...
...
@@ -331,189 +331,3 @@ body {
width
:
2rem
;
}
/* 隐患整改模块 */
.rectification-module
{
padding
:
0.3rem
;
/* 上下左右内边距30px */
background
:
#fff
;
margin-bottom
:
0.2rem
;
/* 底部边距20px */
overflow
:
hidden
;
}
.module-header
{
display
:
flex
;
align-items
:
center
;
gap
:
0.15rem
;
/* 图标与标题间距15px */
margin-bottom
:
0.3rem
;
/* 模块标题与内容间距30px */
}
.module-icon
{
width
:
0.4rem
;
/* 图标宽度40px */
height
:
0.4rem
;
/* 图标高度40px */
}
.module-title
{
font-size
:
0.28rem
;
/* 标题字体32px */
font-weight
:
bold
;
color
:
#00B55E
;
}
.timeline-list
{
padding-left
:
0.3rem
;
/* 时间线左侧内边距30px */
}
.timeline-item
{
display
:
flex
;
margin-bottom
:
0.4rem
;
/* 时间线项间距40px */
}
.timeline-marker
{
position
:
relative
;
width
:
0.4rem
;
/* 左侧标记区域宽度40px */
margin-right
:
0.2rem
;
/* 标记与内容间距20px */
}
.marker-dot
{
width
:
0.2rem
;
/* 时间点直径20px */
height
:
0.2rem
;
background
:
#1989fa
;
border-radius
:
50%
;
position
:
absolute
;
left
:
0
;
top
:
0.05rem
;
/* 时间点垂直偏移5px */
}
.marker-line
{
width
:
0.02rem
;
/* 时间线宽度2px */
height
:
100%
;
background
:
#e5e7eb
;
margin-left
:
0.09rem
;
/* 时间线水平居中 */
margin-top
:
0.25rem
;
/* 时间线顶部偏移25px */
}
.timeline-content
{
flex
:
1
;
}
.rectification-date
{
color
:
#000
;
font-size
:
0.28rem
;
/* 日期字体28px */
margin-bottom
:
0.15rem
;
/* 日期与图片间距15px */
font-weight
:
500
;
}
.rectification-images
{
display
:
flex
;
gap
:
0.2rem
;
/* 图片间距20px */
margin-bottom
:
0.2rem
;
/* 图片与状态容器间距20px */
}
.rect-image
{
width
:
1.2rem
;
/* 图片宽度120px */
height
:
1.2rem
;
/* 图片高度120px */
object-fit
:
cover
;
border-radius
:
0.08rem
;
/* 图片圆角8px */
}
.status-container
{
border-radius
:
0.08rem
;
/* 状态容器圆角8px */
padding
:
0.2rem
;
/* 状态容器内边距20px */
}
/* 审批拒绝状态 */
.reject-status
{
background
:
#fef2f2
;
border
:
0.02rem
solid
#fee2e2
;
/* 边框宽度2px */
padding
:
.1rem
.24rem
;
position
:
relative
;
}
.reject-status
.status-tag
{
position
:
absolute
;
right
:
.2rem
;
top
:
0.2rem
;
background
:
#ef4444
;
color
:
#fff
;
font-size
:
0.24rem
;
/* 标签字体24px */
padding
:
0.09rem
0.12rem
;
/* 标签内边距4px 12px */
border-radius
:
0.04rem
;
/* 标签圆角4px */
}
.reject-status
>
.status-content
>
p
{
font-weight
:
500
;
font-size
:
0.28rem
;
color
:
#545454
;
}
/* 待审批状态 */
.pending-status
{
border
:
0.02rem
solid
#fcd34d
;
/* 边框宽度2px */
background
:
#fffbeb
;
display
:
flex
;
justify-content
:
flex-end
;
padding
:
0.12rem
;
}
.pending-status
.status-tag
{
color
:
#fff
;
background
:
#FF9415
;
font-weight
:
500
;
font-size
:
0.24rem
;
padding
:
.1rem
.3rem
;
}
/* 审批通过状态 */
.approve-status
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
0.12rem
;
align-items
:
center
;
background
:
#f0f9ff
;
border
:
0.02rem
solid
#e0f2fe
;
/* 边框宽度2px */
}
.approve-status
.status-tag
{
color
:
#fff
;
background
:
#00B55E
;
font-weight
:
500
;
font-size
:
0.24rem
;
padding
:
.1rem
.1rem
;
display
:
inline-block
;
width
:
1.2rem
;
}
.approve-status
>
.status-content
>
p
{
font-weight
:
500
;
font-size
:
0.28rem
;
color
:
#545454
;
}
\ No newline at end of file
src/_check_info.html
View file @
b8aba228
...
...
@@ -140,66 +140,7 @@
</div>
</div>
</div>
<!-- 新增隐患整改模块 -->
<div
class=
"rectification-module"
>
<!-- 模块标题 -->
<div
class=
"module-header"
>
<img
src=
"../image/code/zhenggai-title.png"
alt=
"整改图标"
class=
"module-icon"
>
<h4
class=
"module-title"
>
隐患整改
</h4>
</div>
<!-- 时间线进度列表 -->
<div
class=
"timeline-list"
>
<!-- 遍历整改记录 -->
<div
v-for=
"(record, index) in rectificationRecords"
:key=
"index"
class=
"timeline-item"
>
<!-- 时间线左侧标记(点+线) -->
<div
class=
"timeline-marker"
>
<div
class=
"marker-dot"
></div>
<div
class=
"marker-line"
></div>
</div>
<!-- 时间线内容 -->
<div
class=
"timeline-content"
>
<!-- 整改日期 -->
<p
class=
"rectification-date"
>
整改日期:{{ record.rectificationDate }}
</p>
<!-- 整改图片 -->
<div
class=
"rectification-images"
>
<img
v-for=
"(img, i) in record.images"
:key=
"i"
src=
"../image/code/zhenggai-title.png"
alt=
"整改图"
@
click=
"showImage(record.images, i)"
class=
"rect-image"
>
</div>
<!-- 状态容器(三种类型) -->
<div
:class=
"['status-container', record.status]"
>
<!-- 审批拒绝 -->
<div
v-if=
"record.status === 'reject'"
class=
"reject-status"
>
<span
class=
"status-tag"
>
审批拒绝
</span>
<div
class=
"status-content"
>
<p>
审批日期:{{ record.approveDate }}
</p>
<p>
拒绝原因:{{ record.rejectReason }}
</p>
</div>
</div>
<!-- 待审批 -->
<div
v-if=
"record.status === 'pending'"
class=
"pending-status"
>
<span
class=
"status-tag"
>
待审批
</span>
</div>
<!-- 审批通过 -->
<div
v-if=
"record.status === 'approve'"
class=
"approve-status"
>
<div
class=
"status-content"
>
<p>
审批日期:{{ record.approveDate }}
</p>
</div>
<span
class=
"status-tag"
>
审批通过
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<van-form
v-if=
"checkPageIndex == (checkData?.length-1)"
>
<van-cell>
<van-field
label=
"检查人员"
v-model=
"checkPeopleName"
readonly
/>
...
...
@@ -218,7 +159,7 @@
<van-field
label=
"审核记录"
v-model=
"reviewRecord"
readonly
/>
</van-cell>
</div>
</van-form>
<!-- 拒绝弹窗 -->
...
...
src/_check_info.js
View file @
b8aba228
...
...
@@ -77,32 +77,6 @@ window.onload = function () {
show4jujue
:
false
,
refuseContent
:
''
,
// 拒绝原因
dept4resuse
:[],
// 拒绝部门
rectificationRecords
:
[
/* 示例数据结构,实际从接口获取 */
{
rectificationDate
:
'
2024-03-15
'
,
// 整改日期
images
:
[
'
/images/rectify-20240315-01.jpg
'
,
'
/images/rectify-20240315-02.jpg
'
],
// 整改图片路径
status
:
'
reject
'
,
// 状态:拒绝
approveDate
:
'
2024-03-16
'
,
// 审批日期
rejectReason
:
'
消防通道堵塞未清理,灭火器过期未更换
'
// 拒绝原因
},
// 待审批记录(仅基础信息)
{
rectificationDate
:
'
2024-03-20
'
,
// 整改日期
images
:
[
'
/images/rectify-20240320-01.jpg
'
],
// 整改图片路径(单张)
status
:
'
pending
'
,
// 状态:待审批
// 待审批状态无需审批日期和拒绝原因
},
// 审批通过记录(含审批信息)
{
rectificationDate
:
'
2024-03-25
'
,
// 整改日期
images
:
[
'
/images/rectify-20240325-01.jpg
'
,
'
/images/rectify-20240325-02.jpg
'
,
'
/images/rectify-20240325-03.jpg
'
],
// 三张图片
status
:
'
approve
'
,
// 状态:通过
approveDate
:
'
2024-03-26
'
// 审批日期
}
]
},
mounted
()
{
/**
...
...
src/_shangbao-detail.css
0 → 100644
View file @
b8aba228
/* 基础样式 */
html
,
body
{
background-color
:
#fff
;
letter-spacing
:
0.01rem
;
}
/* 通用工具类 */
.pd-01rem
{
padding-bottom
:
0.1rem
;
}
/* 表单相关 */
.formValue
{
float
:
right
;
}
.formSubmitBtnWrapper
{
display
:
flex
;
justify-content
:
center
;
margin-top
:
0.2rem
;
margin-bottom
:
0.2rem
;
}
.formSubmitBtnWrapper
.van-button
{
width
:
4rem
;
}
/* 框架样式覆盖修改 */
.checklist-container
.van-cell__value
{
overflow
:
unset
;
background-color
:
#f5f6fa
;
}
.checklist-container
.van-cell
:after
{
border-bottom
:
none
;
}
.checklist-container
.van-radio-group--horizontal
{
float
:
left
;
}
.checklist-container
.van-checkbox
{
width
:
auto
;
float
:
left
;
margin-right
:
0.3rem
;
margin-bottom
:
0.2rem
;
}
.checklist-container
.van-checkbox__label
,
.checklist-container
.van-radio__label
{
font-size
:
0.28rem
;
}
.checklist-container
.van-checkbox__icon
,
.checklist-container
.van-radio__icon
{
font-size
:
0.34rem
;
background-color
:
#fff
;
}
.checklist-container
.van-radio
{
margin
:
0.2rem
0
0.2rem
0.8rem
;
}
.checklist-container
.van-cell
{
background
:
#f5f6fa
;
margin-top
:
0.2rem
;
padding
:
0
;
}
/* 表单内的表项 背景色覆盖 */
.van-form
{
margin-bottom
:
1rem
;
padding-left
:
0.3rem
;
}
.van-form
.van-field__label
{
width
:
1.8rem
;
}
.van-form
.van-field__control
{
text-align
:
right
;
padding-right
:
0.3rem
;
}
.van-form
.van-cell
,
.van-form
.van-cell__value
{
background
:
#fff
;
}
.yh_desc
{
width
:
6.2rem
;
min-height
:
0.68rem
;
background
:
rgb
(
238
,
238
,
238
);
border-radius
:
0.04rem
;
border
:
0px
solid
rgb
(
191
,
191
,
191
);
padding
:
0.2rem
;
font-size
:
0.28rem
;
font-weight
:
500
;
color
:
#545454
;
}
.checklist-container
.van-cell-group
{
background-color
:
#f5f6fa
;
}
.checklist-container
textarea
{
background-color
:
#fff
!important
;
}
.checklist-container
.van-uploader__upload
{
background-color
:
#fff
;
}
.limit_date_wrapper
.van-field__label
{
width
:
1.3rem
;
}
.checklist-container
.van-icon-apps-o
:before
,
.checklist-container
.van-icon-fire-o
:before
{
font-size
:
0.32rem
;
}
/* 检查清单容器 */
.checklist-container
{
/* padding: 12px; */
background
:
#fff
;
overflow
:
hidden
;
padding-bottom
:
2rem
;
}
/* 检查项 */
.check-item
{
background
:
white
;
float
:
left
;
}
.item-header
{
display
:
flex
;
align-items
:
center
;
margin
:
0.3rem
0px
0.1rem
0.3rem
;
}
.item-number
{}
.item-title
{
font-size
:
0.28rem
;
}
.item_title
{
font-size
:
0.3rem
;
color
:
#1081e3
;
font-weight
:
bold
;
position
:
relative
;
padding-left
:
0.2rem
;
margin-left
:
0.2rem
;
}
.item_title
::before
{
content
:
''
;
display
:
block
;
width
:
0.05rem
;
height
:
0.32rem
;
background-color
:
#1081e3
;
position
:
absolute
;
left
:
0
;
top
:
0
;
}
/* 展开部分 */
.expand-section
{
width
:
calc
(
7.5rem
-
0.6rem
);
float
:
left
;
background
:
#f5f6fa
;
padding
:
0.1rem
0.3rem
;
}
/* 图片预览大小 */
.expand-section
.van-uploader__preview-image
{
display
:
block
;
width
:
1.4rem
;
height
:
1.4rem
;
overflow
:
hidden
;
}
/* 子复选框组 */
.sub-checkbox-group
{
display
:
flex
;
flex-wrap
:
wrap
;
gap
:
0.2rem
;
margin
:
0.2rem
0
0.3rem
0
;
}
/* 上传器 */
.uploader-wrapper
{
--van-uploader-size
:
80px
;
}
/* 截止日期选择器 */
.deadline-picker
{
display
:
flex
;
gap
:
12px
;
margin
:
12px
0
;
}
/* 检查清单头部 */
.checklist-header
p
{
background-color
:
rgb
(
25
,
137
,
250
);
color
:
rgb
(
255
,
255
,
255
);
font-size
:
0.26rem
;
padding
:
0.2rem
0.3rem
0.2rem
;
line-height
:
0.39999rem
;
margin
:
0
;
}
.checklist-header
h5
{
font-size
:
0.32rem
;
text-align
:
center
;
}
.textareaEle
{
border
:
0.01rem
solid
#d8d8d8
;
border-radius
:
2px
;
font-size
:
.28rem
;
width
:
95%
;
padding
:
.15rem
;
}
.content
h5
{
margin-top
:
0.3rem
;
margin-bottom
:
0.3rem
;
font-family
:
PingFang
SC
;
}
.footer-bar
{
display
:
flex
;
justify-content
:
space-around
;
margin-top
:
.5rem
;
}
.footer-bar
.van-button--info
{
width
:
2rem
;
}
/* 隐患整改模块 */
.rectification-module
{
padding
:
0.3rem
;
/* 上下左右内边距30px */
background
:
#fff
;
margin-bottom
:
0.2rem
;
/* 底部边距20px */
overflow
:
hidden
;
}
.module-header
{
display
:
flex
;
align-items
:
center
;
gap
:
0.15rem
;
/* 图标与标题间距15px */
margin-bottom
:
0.3rem
;
/* 模块标题与内容间距30px */
}
.module-icon
{
width
:
0.4rem
;
/* 图标宽度40px */
height
:
0.4rem
;
/* 图标高度40px */
}
.module-title
{
font-size
:
0.28rem
;
/* 标题字体32px */
font-weight
:
bold
;
color
:
#00B55E
;
}
.timeline-list
{
padding-left
:
0.3rem
;
/* 时间线左侧内边距30px */
}
.timeline-item
{
display
:
flex
;
margin-bottom
:
0.4rem
;
/* 时间线项间距40px */
}
.timeline-marker
{
position
:
relative
;
width
:
0.4rem
;
/* 左侧标记区域宽度40px */
margin-right
:
0.2rem
;
/* 标记与内容间距20px */
}
.marker-dot
{
width
:
0.2rem
;
/* 时间点直径20px */
height
:
0.2rem
;
background
:
#1989fa
;
border-radius
:
50%
;
position
:
absolute
;
left
:
0
;
top
:
0.05rem
;
/* 时间点垂直偏移5px */
}
.marker-line
{
width
:
0.02rem
;
/* 时间线宽度2px */
height
:
100%
;
background
:
#e5e7eb
;
margin-left
:
0.09rem
;
/* 时间线水平居中 */
margin-top
:
0.25rem
;
/* 时间线顶部偏移25px */
}
.timeline-content
{
flex
:
1
;
}
.rectification-date
{
color
:
#000
;
font-size
:
0.28rem
;
/* 日期字体28px */
margin-bottom
:
0.15rem
;
/* 日期与图片间距15px */
font-weight
:
500
;
}
.rectification-images
{
display
:
flex
;
gap
:
0.2rem
;
/* 图片间距20px */
margin-bottom
:
0.2rem
;
/* 图片与状态容器间距20px */
}
.rect-image
{
width
:
1.2rem
;
/* 图片宽度120px */
height
:
1.2rem
;
/* 图片高度120px */
object-fit
:
cover
;
border-radius
:
0.08rem
;
/* 图片圆角8px */
}
.status-container
{
border-radius
:
0.08rem
;
/* 状态容器圆角8px */
padding
:
0.2rem
;
/* 状态容器内边距20px */
}
/* 审批拒绝状态 */
.reject-status
{
background
:
#fef2f2
;
border
:
0.02rem
solid
#fee2e2
;
/* 边框宽度2px */
padding
:
.1rem
.24rem
;
position
:
relative
;
}
.reject-status
.status-tag
{
position
:
absolute
;
right
:
.2rem
;
top
:
0.2rem
;
background
:
#ef4444
;
color
:
#fff
;
font-size
:
0.24rem
;
/* 标签字体24px */
padding
:
0.09rem
0.12rem
;
/* 标签内边距4px 12px */
border-radius
:
0.04rem
;
/* 标签圆角4px */
}
.reject-status
>
.status-content
>
p
{
font-weight
:
500
;
font-size
:
0.28rem
;
color
:
#545454
;
}
/* 待审批状态 */
.pending-status
{
border
:
0.02rem
solid
#fcd34d
;
/* 边框宽度2px */
background
:
#fffbeb
;
display
:
flex
;
justify-content
:
flex-end
;
padding
:
0.12rem
;
}
.pending-status
.status-tag
{
color
:
#fff
;
background
:
#FF9415
;
font-weight
:
500
;
font-size
:
0.24rem
;
padding
:
.1rem
.3rem
;
}
/* 审批通过状态 */
.approve-status
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
0.12rem
;
align-items
:
center
;
background
:
#f0f9ff
;
border
:
0.02rem
solid
#e0f2fe
;
/* 边框宽度2px */
}
.approve-status
.status-tag
{
color
:
#fff
;
background
:
#00B55E
;
font-weight
:
500
;
font-size
:
0.24rem
;
padding
:
.1rem
.1rem
;
display
:
inline-block
;
width
:
1.2rem
;
}
.approve-status
>
.status-content
>
p
{
font-weight
:
500
;
font-size
:
0.28rem
;
color
:
#545454
;
}
/* 上报样式 */
.shangbao-header
{
text-align
:
center
;
}
.shangbao-header
>
span
:first-child
{
font-weight
:
500
;
font-size
:
0.32rem
;
color
:
#000000
;
}
.shangbao-header
>
span
:last-child
{
font-weight
:
500
;
font-size
:
0.28rem
;
color
:
#737373
;
}
\ No newline at end of file
src/_shangbao-detail.html
0 → 100644
View file @
b8aba228
<!DOCTYPE html>
<html
lang=
"zh-CN"
>
<head>
<meta
charset=
"UTF-8"
/>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0, viewprot-fit:cover"
/>
<title>
消防安全检查清单
</title>
<script
type=
"text/javascript"
src=
"../sdk/includeHead.js"
></script>
<!-- <script type="text/javascript" src="_check_info_data_detail.js"></script>
<script type="text/javascript" src="_check_info_data_detail_yh.js"></script> -->
</head>
<body>
<!-- 原 HTML 主体内容保持不变 -->
<div
id=
"app"
>
<div
class=
"checklist-header"
v-cloak
>
<div
class=
"shangbao-header"
>
<span>
威海市宝威酒店有限公司
</span></br>
<span>
地址:威海福田路3号
</span>
</div>
</div>
<div
class=
"checklist-container"
v-cloak
>
<div
class=
"item_title"
>
{{ checkData?.[0]?.name }}
</div>
<div
v-for=
"(item, index) in checkData?.[0]?.['gqCheckItemList']"
:key=
"item.id"
class=
"check-item"
>
<div
class=
"item-header"
>
<!-- <div class="item-number">{{ index + 1 }}</div> -->
<div
class=
"item-title"
>
{{ item.id }}.{{ item.name }}
</div>
</div>
<!-- 单选按钮组 -->
<van-radio-group
v-model=
"item.itemAnswer"
@
change=
"handleSelectionChange($event, item, index)"
:disabled=
"true"
direction=
"horizontal"
>
<van-radio
:name=
"1"
>
是
</van-radio>
<van-radio
:name=
"2"
>
否
</van-radio>
<van-radio
:name=
"3"
>
不涉及
</van-radio>
</van-radio-group>
<!-- 否选项扩展内容 -->
<div
class=
"expand-section"
>
<div>
<!-- 子检查项 -->
<div
class=
"sub-checkbox-group"
>
<van-cell
v-if=
"item.itemType==1"
>
<van-checkbox
v-for=
"(subItem, subIndex) in item.gqCheckQuestionList"
:key=
"subIndex"
v-model=
"subItem.check"
shape=
"square"
:disabled=
"flag!=='ADD'"
>
{{ subItem.name}}
</van-checkbox>
</van-cell>
<van-cell
v-if=
"item.itemType==2"
>
<div
class=
"limit_date_wrapper"
>
<span>
住宿人数:
</span>
<input
type=
"text"
v-model=
"item.gqCheckQuestionList[0].content"
:disabled=
"true"
maxlength=
"3"
style=
"width: 0.8rem; height: 0.4rem; text-align: center"
/>
</div>
</van-cell>
</div>
<!-- 隐患描述-非新增情况 -->
<van-cell-group>
<p
class=
"title_require"
>
隐患描述
</p>
<p
class=
"yh_desc"
>
{{item.description||'-'}}
</p>
</van-cell-group>
<van-cell-group>
<van-cell>
<span
class=
""
>
隐患图片:
</span>
<div>
<img
v-for=
"(imgItem, subIndex) in item.hiddenImageUrlList"
:src=
"imgItem"
alt=
""
style=
"width: 1.2rem; height: 1.2rem; margin-right: 0.2rem"
@
click=
"showImage(item.hiddenImageUrlList,subIndex)"
/>
</div>
</van-cell>
</van-cell-group>
<!-- 整改期限 -->
<van-cell-group
v-if=
"flag=='ADD'"
>
<van-cell>
<div
class=
"limit_date_wrapper"
>
<span
class=
"title_require"
>
整改期限:
</span>
<span>
整改截止日期:
<b
style=
"color: #148ef7"
>
{{item.deadlineDate}}
</b></span>
</div>
</van-cell>
</van-cell-group>
</div>
</div>
</div>
<!-- 新增隐患整改模块 -->
<div
class=
"rectification-module"
>
<!-- 模块标题 -->
<div
class=
"module-header"
>
<img
src=
"../image/code/zhenggai-title.png"
alt=
"整改图标"
class=
"module-icon"
>
<h4
class=
"module-title"
>
隐患整改
</h4>
</div>
<!-- 时间线进度列表 -->
<div
class=
"timeline-list"
>
<!-- 遍历整改记录 -->
<div
v-for=
"(record, index) in rectificationRecords"
:key=
"index"
class=
"timeline-item"
>
<!-- 时间线左侧标记(点+线) -->
<div
class=
"timeline-marker"
>
<div
class=
"marker-dot"
></div>
<div
class=
"marker-line"
></div>
</div>
<!-- 时间线内容 -->
<div
class=
"timeline-content"
>
<!-- 整改日期 -->
<p
class=
"rectification-date"
>
整改日期:{{ record.rectificationDate }}
</p>
<!-- 整改图片 -->
<div
class=
"rectification-images"
>
<img
v-for=
"(img, i) in record.images"
:key=
"i"
src=
"../image/code/zhenggai-title.png"
alt=
"整改图"
@
click=
"showImage(record.images, i)"
class=
"rect-image"
>
</div>
<!-- 状态容器(三种类型) -->
<div
:class=
"['status-container', record.status]"
>
<!-- 审批拒绝 -->
<div
v-if=
"record.status === 'reject'"
class=
"reject-status"
>
<span
class=
"status-tag"
>
审批拒绝
</span>
<div
class=
"status-content"
>
<p>
审批日期:{{ record.approveDate }}
</p>
<p>
拒绝原因:{{ record.rejectReason }}
</p>
</div>
</div>
<!-- 待审批 -->
<div
v-if=
"record.status === 'pending'"
class=
"pending-status"
>
<span
class=
"status-tag"
>
待审批
</span>
</div>
<!-- 审批通过 -->
<div
v-if=
"record.status === 'approve'"
class=
"approve-status"
>
<div
class=
"status-content"
>
<p>
审批日期:{{ record.approveDate }}
</p>
</div>
<span
class=
"status-tag"
>
审批通过
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<van-form>
<van-cell>
<van-field
label=
"整改截止日期"
v-model=
"rectificationDeadline"
readonly
/>
</van-cell>
<van-cell>
<van-field
label=
"检查人员"
v-model=
"checkPeopleName"
readonly
/>
</van-cell>
<van-cell>
<van-field
label=
"检查日期"
v-model=
"checkDate"
readonly
/>
</van-cell>
</van-form>
</div>
</div>
</body>
</html>
\ No newline at end of file
src/_shangbao-detail.js
0 → 100644
View file @
b8aba228
/**
* 1:根据商铺id 查询安全检查记录
* 2:根据记录id 查询详情
* 3:隐患列表
4:隐患详情
5:查询安全检查模板数据
6:商家首页按月查询
9:用户角色可查看的模块
10:查询用户检查过的商户信息
11: 查询商户详情信息
跳转逻辑:
新增检查单,flag=ADD,
检查单详情,flag=JC_XQ,id=记录id
待审核隐患,flag=2,id=隐患id
待整改隐患,flag=0,id=隐患id
已整改隐患,flag=1,id=隐患id
整改逾期隐患,flag=3,id=隐患id
整改状态 0:待整改 1:已整改 2:待审核 3:整改逾期
*/
var
VUE
=
null
window
.
onload
=
function
()
{
VUE
=
new
Vue
({
el
:
'
#app
'
,
components
:
{
},
data
:
{
userType
:
gemhoUtil
.
getCookie
(
'
userType
'
),
id
:
''
,
// 记录id || 隐患id
merId
:
''
,
// 商户id
pageName
:
''
,
// 页面名称(用于记录页面来源,用于操作后返回上一页)
flag
:
'
ZG_XQ
'
,
// 值为ADD新增、JC_XQ检查详情、ZG_XQ整改详情、YH_XQ隐患详情
flag
:
'
ADD
'
,
// flag: 'JC_XQ',
// flag: 'YH_XQ',
checkData
:
[],
// 提交给后端,图片使用vant结构,base64,后端处理,不走爱山东中台。(数据量大!)
originCheckData
:
[],
// 外层表单信息
checkDate
:
''
,
// 检查日期
checkPeopleName
:
''
,
// 检查人员
rectificationDeadline
:
''
,
// 整改截止日期
rectificationRecords
:
[
/* 示例数据结构,实际从接口获取 */
{
rectificationDate
:
'
2024-03-15
'
,
// 整改日期
images
:
[
'
/images/rectify-20240315-01.jpg
'
,
'
/images/rectify-20240315-02.jpg
'
],
// 整改图片路径
status
:
'
reject
'
,
// 状态:拒绝
approveDate
:
'
2024-03-16
'
,
// 审批日期
rejectReason
:
'
消防通道堵塞未清理,灭火器过期未更换
'
// 拒绝原因
},
// 待审批记录(仅基础信息)
{
rectificationDate
:
'
2024-03-20
'
,
// 整改日期
images
:
[
'
/images/rectify-20240320-01.jpg
'
],
// 整改图片路径(单张)
status
:
'
pending
'
,
// 状态:待审批
// 待审批状态无需审批日期和拒绝原因
},
// 审批通过记录(含审批信息)
{
rectificationDate
:
'
2024-03-25
'
,
// 整改日期
images
:
[
'
/images/rectify-20240325-01.jpg
'
,
'
/images/rectify-20240325-02.jpg
'
,
'
/images/rectify-20240325-03.jpg
'
],
// 三张图片
status
:
'
approve
'
,
// 状态:通过
approveDate
:
'
2024-03-26
'
// 审批日期
}
]
},
mounted
()
{
/**
* 调转该_check_info.html页面时需要传递参数
* flag : ADD新增、JC_XQ检查详情、ZG_XQ整改详情、YH_XQ隐患详情
* id: 记录id || 隐患id
* pageName: 页面名称(用于记录页面来源,用于操作后返回上一页)
* 隐患状态 0:待整改 1:已整改 2:待审核 3:整改逾期
*/
this
.
pageName
=
gemhoUtil
.
getParameter
(
'
pageName
'
)
this
.
id
=
gemhoUtil
.
getParameter
(
'
id
'
)
this
.
getDetail4YH_XQ
()
},
watch
:
{
},
methods
:
{
// 日期格式化
formatDate
(
date
)
{
return
`
${
date
.
getFullYear
()}
-
${(
date
.
getMonth
()
+
1
).
toString
().
padStart
(
2
,
'
0
'
)}
-
${
date
.
getDate
().
toString
().
padStart
(
2
,
'
0
'
)}
`
;
},
getDetail4YH_XQ
()
{
// 隐患详情
vant
.
Toast
.
loading
({
message
:
'
正在加载...
'
,
forbidClick
:
true
,
loadingType
:
'
spinner
'
,
});
http2
.
post
({
serviceId
:
API_KEY_MAP
[
"
no-page
"
][
'
id
'
],
interfacePublicKey
:
API_KEY_MAP
[
"
no-page
"
][
"
publicKey
"
],
interfacePrivateKey
:
API_KEY_MAP
[
"
no-page
"
][
"
privateKey
"
],
reqParams
:
{
sign
:
4
,
// 隐患详情
"
hdId
"
:
this
.
id
,
}
},
(
res
)
=>
{
if
(
!
res
)
{
// 中台返回为undefined 重新请求
vant
.
Toast
.
clear
()
setTimeout
(()
=>
{
this
.
getDetail4YH_XQ
()
},
0
);
return
}
if
(
res
)
{
console
.
log
(
'
接口回调数据
'
,
JSON
.
parse
(
res
))
setTimeout
(()
=>
{
this
.
$nextTick
(()
=>
{
vant
.
Toast
.
clear
()
})
},
0
);
var
result
=
JSON
.
parse
(
res
)
this
.
checkDate
=
result
.
checkDate
// 检查日期
this
.
checkPeopleName
=
result
.
checkPeopleName
// 检查人员
this
.
rectificationDeadline
=
result
.
rectificationDeadline
// 整改截止日期
this
.
reviewDate
=
result
.
reviewDate
// 隐患审核日期
this
.
reviewRecord
=
result
.
reviewRecord
// 表单数据
this
.
checkData
=
result
.
data
}
})
},
showImage
(
list
,
index
)
{
vant
.
ImagePreview
({
images
:
list
,
startPosition
:
index
,
closeable
:
true
,
});
},
}
});
}
\ No newline at end of file
src/_shangbao-list.js
View file @
b8aba228
...
...
@@ -155,13 +155,15 @@ window.addEventListener('load', function () {
)
},
0
)
},
viewDetail
(
i
d
)
{
viewDetail
(
i
tem
)
{
let
urlParams
=
gemhoUtil
.
getUrlParams
()
let
param
=
{
...
urlParams
,
id
:
id
,
id
:
i
tem
.
i
d
,
flag
:
'
JC_XQ
'
,
pageName
:
'
_checkrecord-all
'
,
pageName
:
'
_shangbao-list
'
,
addr
:
item
.
addr
,
merchantName
:
item
.
merName
,
}
let
url
=
gemhoUtil
.
setParameter
(
'
_check_info.html
'
,
param
)
...
...
src/_yh_check.js
View file @
b8aba228
...
...
@@ -63,7 +63,8 @@ window.addEventListener('load', function () {
interfacePublicKey
:
API_KEY_MAP
[
'
no-page
'
][
'
publicKey
'
],
interfacePrivateKey
:
API_KEY_MAP
[
'
no-page
'
][
'
privateKey
'
],
reqParams
:
{
sign
:
24
,
// 隐患tab
sign
:
25
,
// 隐患tab
merId
:
this
.
merId
,
},
},
(
res
)
=>
{
...
...
@@ -74,10 +75,12 @@ window.addEventListener('load', function () {
},
0
)
return
}
if
(
res
)
{
var
result
=
JSON
.
parse
(
res
)
this
.
remindStatistic
=
result
.
data
}
var
result
=
JSON
.
parse
(
res
)
if
(
result
&&
result
.
code
==
200
)
{
vant
.
Toast
({
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