qa-prevention-gwj-first-app/pages/application/hidden-danger-management/hidden-danger-acceptance/hidden-danger-acceptance-ch...

682 lines
22 KiB
Vue
Raw Normal View History

2023-11-07 09:43:46 +08:00
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">隐患验收</block>
</cu-custom>
<scroll-view scroll-y>
<view class="de-card-list de-list">
<view class="de-item">
<text class="text-semi">{{pd.HIDDENDESCR}}</text>
</view>
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">隐患来源</text>
</view>
<view class="uni-flex-item text-right">
<text v-if="pd.SOURCE=='1'" class="text-semi"></text>
<text v-if="pd.SOURCE=='2' || pd.SOURCE=='3'" class="text-semi"></text>
</view>
</view>
<view class="de-item" v-if="pd.SOURCE==2">
<view class="de-sub-title">
<text class="text-grey">风险点单元</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.RISK_UNIT}}</text>
</view>
</view>
<view class="de-item" v-if="pd.SOURCE==2">
<view class="de-sub-title">
<text class="text-grey">辨识部位</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.IDENTIFICATION}}</text>
</view>
</view>
<view class="de-item-sp" v-if="pd.SOURCE==2">
<view class="de-sub-title">
<text class="text-grey">存在风险</text>
</view>
<view class="de-sub-content">
<text class="text-semi">{{pd.RISK_DESCR}}</text>
</view>
</view>
<view class="de-item" v-if="pd.SOURCE==2">
<view class="de-sub-title">
<text class="text-grey">风险点单元位置</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.RISK_POSITION}}</text>
</view>
</view>
<view class="de-item" v-if="pd.SOURCE==2">
<view class="de-sub-title">
<text class="text-grey">风险分级</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.LEVEL}}</text>
</view>
</view>
<view class="de-item-sp" v-if="pd.SOURCE==2">
<view class="de-sub-title">
<text class="text-grey">检查内容</text>
</view>
<view class="de-sub-content">
<text class="text-semi">{{pd.CHECK_CONTENT}}</text>
</view>
</view>
<!-- <view class="de-item-sp">
<view class="de-sub-title">
<text class="text-grey">隐患描述</text>
</view>
<view class="de-sub-content">
<text class="text-semi">{{pd.HIDDENDESCR}}</text>
</view>
</view> -->
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">隐患部位</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.hregionName}}</text>
</view>
</view>
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">发现人</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.CREATORNAME}}</text>
</view>
</view>
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">发现时间</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.CREATTIME}}</text>
</view>
</view>
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">隐患类型</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.HIDDENTYPENAME}}</text>
</view>
</view>
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">整改类型</text>
</view>
<view class="uni-flex-item text-right">
<text v-if="pd.RECTIFICATIONTYPE=='1'" class="text-semi"></text>
<text v-else-if="pd.RECTIFICATIONTYPE=='2'" class="text-semi">限期整改</text>
</view>
</view>
<view v-if="pd.RECTIFICATIONTYPE=='2'" class="de-item">
<view class="de-sub-title">
<text class="text-grey">整改期限</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.RECTIFICATIONDEADLINE}}</text>
</view>
</view>
<view class="de-item-sp">
<view class="de-sub-title">
<text class="text-grey">隐患照片</text>
</view>
<view class="de-sub-content">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation>
<view class="cu-item" v-for="(item,index) in files" v-bind:key="index">
<view class="imgs">
<image :src="baseImgPath+item.FILEPATH" :data-index="index" @click="ViewShowImage" mode=""></image>
</view>
</view>
</scroll-view>
</view>
</view>
<view class="cu-form-group margin-top">
<view class="title">隐患级别</view>
忽略隐患
</view>
<view class="cu-form-group">
<view class="title">隐患确认时间</view>
</view>
<view class="cu-form-group margin-top">
<view class="title text-hui">是否正常整改</view>
<radio-group class="selected">
<view class="group mr20">
<radio class='radio' value="1" disabled :checked="pd.IS_NORMAL=='1'"></radio>
<text></text>
</view>
<view class="group">
<radio class='radio' value="2" disabled :checked="pd.IS_NORMAL=='2'"></radio>
<text></text>
</view>
</radio-group>
</view>
<block v-if="pd.IS_NORMAL=='1'">
<view class="cu-form-group margin-top">
<view class="title text-hui">是否延期</view>
<radio-group class="selected">
<view class="group mr20">
<radio class='radio' value="1" disabled :checked="pd.IS_POSTPONE=='1'"></radio>
<text></text>
</view>
<view class="group">
<radio class='radio' value="2" disabled :checked="pd.IS_POSTPONE=='2'"></radio>
<text></text>
</view>
</radio-group>
</view>
<block v-if="pd.IS_POSTPONE=='2'">
<view class="cu-form-group">
<view class="title">隐患整改时间</view>
{{ pd.RECTIFICATIONTIME }}
</view>
<view class="cu-form-group">
<view class="title">整改描述</view>
<textarea disabled v-model="pd.RECTIFYDESCR" placeholder="请填写整改描述"></textarea>
</view>
<view class="cu-bar bg-white">
<view class="action">
隐患整改图片
</view>
<view class="action">
{{imgList.length}}/4
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage" :data-url="imgList[index]">
<image :src="imgList[index]" mode="aspectFill"></image>
</view>
</view>
</view>
<view class="cu-form-group">
<view class="title">投入资金</view>
<textarea disabled v-model="pd.INVEST_FUNDS" placeholder="请填写投入资金" type="number"></textarea>
</view>
<view class="cu-form-group margin-top">
<view class="title text-hui">整改方案</view>
<radio-group class="selected">
<view class="group mr20">
<radio class='radio' disabled value="1" :checked="pd.HAVESCHEME=='1'"></radio>
<text></text>
</view>
<view class="group">
<radio class='radio' disabled value="2" :checked="pd.HAVESCHEME=='2'"></radio>
<text></text>
</view>
</radio-group>
</view>
<block v-if="pd.HAVESCHEME=='1'">
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">排查日期</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.CREATTIME}}</text>
</view>
</view>
<view class="de-item">
<view class="de-sub-title">
<text class="text-grey">隐患清单</text>
</view>
<view class="uni-flex-item text-right">
<text class="text-semi">{{pd.LIST_NAME}}</text>
</view>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">治理标准</view>
<textarea maxlength="-1" disabled v-model="pd.GOVERNSTANDARDS" placeholder="请输入治理标准"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">治理方法</view>
<textarea maxlength="-1" disabled v-model="pd.GOVERNMETHOD" placeholder="请输入治理方法"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">经费落实</view>
<textarea maxlength="-1" disabled v-model="pd.EXPENDITURE" placeholder="请输入经费落实"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">负责人员</view>
<textarea maxlength="-1" disabled v-model="pd.PRINCIPAL" placeholder="请输入负责人员"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">工时安排</view>
<textarea maxlength="-1" disabled v-model="pd.PROGRAMMING" placeholder="请输入工时安排"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">时限要求</view>
<textarea maxlength="-1" disabled v-model="pd.TIMELIMITFOR" placeholder="请输入时限要求"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">工作要求</view>
<textarea maxlength="-1" disabled v-model="pd.JOBREQUIREMENT" placeholder="请输入工作要求"></textarea>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">其他事项</view>
<textarea maxlength="-1" disabled v-model="pd.OTHERBUSINESS" placeholder="请输入其他事项"></textarea>
</view>
<view class="cu-bar bg-white">
<view class="action">
方案照片
</view>
<view class="action">
{{imgList_fa.length}}/4
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in imgList_fa" :key="index" @tap="ViewImage_fa" :data-url="imgList_fa[index]">
<image :src="imgList_fa[index]" mode="aspectFill"></image>
</view>
</view>
</view>
<view class="add_pard_box">
<view class="add_pard_item" v-for="(item,index) of other">
<view class="cu-form-group">
<view class="title">验收部门</view>
<view class="picker-tree-box">
{{other[index].DEPARTMENT_NAME}}
</view>
<view class="cu-form-group">
<view class="title">验收人</view>
{{other[index].USER_NAME}}
</view>
</view>
</view>
</view>
</block>
</block>
<block v-if="pd.IS_POSTPONE=='1'">
<view class="cu-form-group">
<view class="title">延期时间</view>
{{ pd.DELAY_TIME }}
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">临时措施</view>
<textarea maxlength="-1" disabled v-model="pd.TEMPORARY_MEASURES" placeholder="请输入临时措施"></textarea>
</view>
</block>
</block>
<view class="cu-form-textarea" v-if="pd.IS_NORMAL=='2'">
<view class="cu-form-title text-grey">无法整改原因</view>
<textarea maxlength="-1" disabled v-model="pd.REASON" placeholder="请输入无法整改原因"></textarea>
</view>
<view class="cu-form-group margin-top">
<view class="title text-hui">延期审核</view>
<radio-group class="selected">
<view class="group mr20">
<radio class='radio' disabled value="1" :checked="pd.POSTPONE_AUDIT=='1'"></radio>
<text>通过</text>
</view>
<view class="group">
<radio class='radio' disabled value="2" :checked="pd.POSTPONE_AUDIT=='2'"></radio>
<text>不通过</text>
</view>
</radio-group>
</view>
<view class="cu-form-group" v-if="pd.POSTPONE_AUDIT=='1'">
<view class="title">限期整改时间</view>
{{ pd.DELAYED_RECTIFICATION_TIME }}
</view>
<view class="cu-form-group margin-top">
<view class="title text-hui">验收结果</view>
<radio-group class="selected">
<view class="group mr20">
<radio class='radio' disabled value="1" :checked="pd.ACCEPTANCE_RESULTS=='1'" @click="radioAcceptanceResults('1')"></radio>
<text>通过</text>
</view>
<view class="group">
<radio class='radio' disabled value="2" :checked="pd.ACCEPTANCE_RESULTS=='2'" @click="radioAcceptanceResults('2')"></radio>
<text>不通过</text>
</view>
</radio-group>
</view>
<view class="cu-form-group">
<view class="title">验收人</view>
{{ pd.ACCEPTOR_PEOPLE }}
</view>
<view class="cu-form-group">
<view class="title">验收时间</view>
{{ pd.ACCEPTOR_TIME }}
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(submit)"></button>
</view>
<view class="cu-tabbar-height"></view>
</scroll-view>
</view>
</template>
<script>
import {
basePath,baseImgPath,corpinfoId,loginUser,formatDate
} from '@/common/tool.js';
import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue';
import tkiTree from "@/components/select-tree/select-tree.vue"
export default {
components: {
ruiDatePicker,
tkiTree
},
data() {
return {
noClick: true,
date: '',
RECTIFICATIONTIME: '',
imgList: [],
imgList_fa: [],
id: '',
pd: [],
hs: [],
files: [],
files2: [],
files3: [],
files4: [],
checkList: [],
other: [],
CHECKDESCR: '',
basePath:basePath,
baseImgPath,
ISQUALIFIED:'1',
levelList :[],
treeNode :[],
otherUserList :[],
principalList :[],
lindex: -1,
todayDate: formatDate(new Date(), 'yyyy-MM-dd hh:mm'),
}
},
onLoad(e) {
this.pd.ACCEPTOR_PEOPLE = loginUser.USER_NAME
this.pd.ACCEPTOR_TIME = formatDate(new Date(), 'yyyy-MM-dd hh:mm')
this.id = e.id;
this.getData();
this.getDept();
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/hidden/goEdit',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
HIDDEN_ID: _this.id,
},
success: (res) => {
if ("success" === res.data.result) {
uni.hideLoading();
_this.pd = res.data.pd; //参数map
_this.hs = res.data.hs; //参数map
_this.files = res.data.hImgs;
_this.files2 = res.data.rImgs;
//_this.files3 = res.data.cImgs;
_this.files4 = res.data.sImgs;
_this.checkList = res.data.checkList;
} else if ("exception" === res.data.result) {
uni.showToast({
title: '错误',
duration: 2000
});
}
}
});
},
ViewImage(e) {
uni.previewImage({
urls: this.imgList,
current: e.currentTarget.dataset.url
});
},
ViewShowImage(e) {
let files = [];
for (var i = 0; i < this.files.length; i++) {
files.push(baseImgPath+this.files[i].FILEPATH)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.index
});
},
radioNormal(e){
this.$set(this.pd,'IS_NORMAL',e)
},
radioPostpone(e){
this.$set(this.pd,'IS_POSTPONE',e)
},
radioHavescheme(e){
this.$set(this.pd,'HAVESCHEME',e)
},
changeDELAYED_RECTIFICATION_TIME(e){
this.pd.DELAYED_RECTIFICATION_TIME = e
},
getDept() {
var _this = this;
uni.request({
url: basePath + '/app/sys/listTree', //部门下拉接口
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
CORPINFO_ID: corpinfoId,
},
success: (res) => {
if ("success" === res.data.result) {
_this.treeNode = eval(res.data.zTreeNodes);
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
getUserList(list,DEPARTMENT_ID) {
//发送 post 请求
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + '/app/sys/listUser',
data: {
DEPARTMENT_ID, NOMAIN:'1',
tm: new Date().getTime()
},
success: function (res) {
if ("success" == res.data.result) {
_this[list] = res.data.userList;
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
})
},
ViewImage_fa(e) {
uni.previewImage({
urls: this.imgList_fa,
current: e.currentTarget.dataset.url
});
},
radioPostponeAudit(){
this.$set(this.pd,'POSTPONEAudit',e)
},
radioAcceptanceResults(){
this.$set(this.pd,'ACCEPTANCE_RESULTS',e)
},
radioReplacePrincipal(){
this.$set(this.pd,'REPLACE_PRINCIPAL',e)
},
showZgTree(ref) {
this.$refs[ref]._show();
},
zgtreeConfirm(e,list) {
if(list === "principalList"){
this.form.PRINCIPAL_DEPARTMENT_ID = e[0].id;
this.form.PRINCIPAL_DEPARTMENT_NAME = e[0].name;
this.form.PRINCIPAL_INDEX = '';
this.form.PRINCIPAL_ID = '';
this.form.PRINCIPAL_NAME = '';
}
this.getUserList(list,e[0].id);
},
zgtreeCancel(e) {
this.isUps = false;
},
principalChange(e){
this.pd.PRINCIPAL_INDEX = e.detail.value;
this.pd.PRINCIPAL_ID = this.principalList[e.detail.value].USER_ID;
this.pd.PRINCIPAL_NAME = this.principalList[e.detail.value].USERNAME;
},
submit() {
var _this = this;
let required = true
if(!this.pd.ACCEPTANCE_RESULTS){
uni.showToast({
icon: 'none',
title: '请选择验收结果',
duration: 1500
});
required = false
}
if (!required) {
return
}
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + "/app/hotworkapplication/" + _this.msg,
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
...this.pd,
CORPINFO_ID:corpinfoId,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
uni.showToast({
icon: 'none',
title: '提交成功',
duration: 2000
});
_this.goback()
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
},
goback() {
uni.navigateBack({
delta: 1
});
uni.hideLoading();
}
}
}
</script>
<style>
.bb {
border-top: 1upx solid #f1f1f1;
border-bottom: 1upx solid #f1f1f1;
}
.cu-bar .action:first-child {
font-size: 26upx
}
.cu-form-title {
padding: 20upx 0;
}
.cu-form-textarea {
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.cu-form-group {
padding: 0upx 25upx;
}
.cu-form-group picker .picker {
line-height: 76upx;
}
.cu-form-group .title {
font-size: 28upx;
line-height: 76upx;
color: #888;
}
.cu-form-group uni-picker::after {
top: -11upx;
}
.selected {
display: flex;
align-items: center;
}
.selected .radio {
transform: scale(0.5);
margin-right: 10upx;
}
.cu-btn {
border-radius: 0;
width: 100%;
height: 84upx;
font-weight: bold;
}
.group {
display: flex;
align-items: center;
}
</style>