<template> <view > <cu-custom bgColor="bg-gradual-blueness" :isBack="true" > <block slot="backText">返回</block> <block slot="content">完工验收</block> </cu-custom> <scroll-view scroll-y="false" > <view class="form"> <view class="wui-form-list"> <view class="cu-form-group" > <view class="title">申请单位:</view> {{pd.APPLY_DEPARTMENT_NAME}} </view> <view class="cu-form-group" > <view class="title">申请人:</view> {{pd.APPLY_USER_NAME}} </view> <view class="cu-form-group bb-default"> <view class="title">编号:</view> {{pd.CHECK_NO}} </view> <view class="cu-form-textarea"> <view class="cu-form-title">作业内容:</view> <textarea maxlength="255" :disabled="forbidEdit" v-model="pd.WORK_CONTENT" placeholder="请输入作业内容"></textarea> </view> <view class="cu-form-textarea "> <view class="cu-form-title">动火操作人图片:</view> <view class="cu-form-group" style="padding-top:20upx"> <view class="grid col-4 grid-square flex-sub"> <view class="bg-img" v-for="(item,index) in pd.dongHuoCaoZuoRenPic" :key="index" @tap="ViewImage" :data-url="pd.dongHuoCaoZuoRenPic[index]"> <image :src="pd.dongHuoCaoZuoRenPic[index]" mode="aspectFill"></image> </view> </view> </view> </view> <view class="cu-form-group"> <view class="title">动火地点及动火部位:</view> <input name="input" :disabled="forbidEdit" v-model="pd.WORK_PLACE" placeholder="请输入"></input> </view> <view class="cu-form-group"> <view class="title">动火作业级别:</view> {{pd.WORK_LEVEL}} </view> <view class="cu-form-group"> <view class="title">动火方式:</view> <input name="input" :disabled="forbidEdit" v-model="pd.WORK_FUNCTION" placeholder="请输入"></input> </view> <view class="cu-form-group "> <view class="title">作业开始时间</view> <ruiDatePicker v-if="!forbidEdit" :start="todayDate" fields="minute" :value="pd.WORK_START_DATE?pd.WORK_START_DATE:''" @change="changeStartDate" ></ruiDatePicker> <view v-else>{{pd.WORK_START_DATE}}</view> </view> <view class="cu-form-group"> <view class="title">作业结束时间</view> <ruiDatePicker v-if="!forbidEdit" :start="todayDate" fields="minute" :value="pd.WORK_END_DATE?pd.WORK_END_DATE:''" @change="changeEndDate" ></ruiDatePicker> <view v-else>{{pd.WORK_END_DATE}}</view> </view> <view class="cu-form-textarea"> <view style="display: flex;justify-content: space-between;align-items: center"> <view class="cu-form-title">动火人及证书编号:</view> </view> <textarea maxlength="255" v-model="pd.WORK_USER" placeholder="请输入动火人及证书编号"></textarea> </view> <view class="cu-form-textarea" > <view class="cu-form-title">关联的其他特殊作业及安全作业票编号:</view> <textarea maxlength="255" auto-height :disabled="forbidEdit" v-model="pd.SPECIAL_WORK" placeholder="请输入关联的其他特殊作业及安全作业票编号"></textarea> </view> <view class="cu-form-textarea" > <view class="cu-form-title">风险辨识结果:</view> <textarea maxlength="255" auto-height :disabled="forbidEdit" v-model="pd.RISK_IDENTIFICATION" placeholder="请输入风险辨识结果"></textarea> </view> </view> <view class="wui-form-list" style="padding-top: 20upx;"> <view class="wui-title" style="margin-left: 20upx;"> <text class="text-semi">安全防护措施</text> </view> <view class="wui-table" style="padding: 0 20upx;"> <uni-table name='measuresList' border stripe emptyText="暂无更多数据" > <!-- 表头行 --> <uni-tr> <uni-th align="center" style="font-weight: bold;">序 号</uni-th> <uni-th align="center" style="font-weight: bold;">主要安全措施</uni-th> <uni-th align="center" style="font-weight: bold;width: 100px">操作</uni-th> </uni-tr> <uni-tr v-for="(item,index) in measuresList" :key="item.BUS_HOTWORK_MEASURES_ID"> <uni-td align="center">{{ index + 1 }}</uni-td> <uni-td> <view style="margin-bottom: 20upx;"> {{item.PROTECTIVE_MEASURES}} </view> <view class="wui-border" v-if="item.QUESTION1 || item.QUESTION2 || item.QUESTION3 || item.QUESTION4"> <view class="cu-form-group" v-if="item.QUESTION1 && item.STATUS=='1'"> <view class="title">{{item.QUESTION1}}</view> <input name="input" :disabled="forbidEdit" v-model="item.ANSWER1" placeholder="请输入"></input> </view> <view class="cu-form-group" v-if="item.QUESTION2 && item.STATUS=='1'"> <view class="title">{{item.QUESTION2}}</view> <input name="input" :disabled="forbidEdit" v-model="item.ANSWER2" placeholder="请输入"></input> </view> <view class="cu-form-group" v-if="item.QUESTION3 && item.STATUS=='1'"> <view class="title">{{item.QUESTION3}}</view> <input name="input" :disabled="forbidEdit" v-model="item.ANSWER3" placeholder="请输入"></input> </view> <view class="cu-form-group" v-if="item.QUESTION4 && item.STATUS=='1'"> <view class="title">{{item.QUESTION4}}</view> <input name="input" :disabled="forbidEdit" v-model="item.ANSWER4" placeholder="请输入"></input> </view> </view> </uni-td> <uni-td align="center"> <radio-group class="wui-radio-group"> <view class="group" v-if="item.STATUS=='-1'"> <radio class='radio' value="-1" checked> <text class="wui-pl10">不涉及</text></radio> </view> <view class="group" v-if="item.STATUS=='1'"> <radio class='radio' value="1" checked> <text class="wui-pl10">涉 及</text></radio> </view> </radio-group> </uni-td> </uni-tr> </uni-table> </view> <view> <view class="cu-form-group"> <view class="title">其他安全措施:</view> </view> <view v-if="pd.SAFETY_USER_MEASURES" class="ty-group"> <text class="title"> 安全措施确认人:</text> <text>{{ pd.SAFETY_USER_MEASURES}}</text> </view> <view v-if="pd.CONFIRM_CONTENT" class="ty-group"> <text class="title"> 作业负责人:</text> <text>{{ pd.CONFIRM_OTHER_CONTENT}}</text> </view> <view v-if="pd.BELONGING_USER_MEASURES" class="ty-group"> <text class="title"> 项目责任负责人:</text> <text>{{ pd.BELONGING_USER_MEASURES}}</text> </view> <view v-if="pd.GUARDIAN_USER_MEASURES" class="ty-group"> <text class="title"> 属地监管单位:</text> <text>{{ pd.GUARDIAN_USER_MEASURES}}</text> </view> <view v-if="pd.LEADER_USER_MEASURES" class="ty-group"> <text class="title"> 安全管理部门:</text> <text>{{ pd.LEADER_USER_MEASURES}}</text> </view> <view v-if="pd.AUDIT_USER_MEASURES" class="ty-group"> <text class="title"> 动火审批人:</text> <text>{{ pd.AUDIT_USER_MEASURES}}</text> </view> <view v-if="pd.APPROVE_USER_MEASURES" class="ty-group"> <text class="title"> 动火前验票:</text> <text>{{ pd.APPROVE_USER_MEASURES}}</text> </view> <view v-if="pd.MONITOR_USER_MEASURES" class="ty-group"> <text class="title"> 班长:</text> <text>{{ pd.MONITOR_USER_MEASURES}}</text> </view> </view> <view class="cu-form-group bb-default" v-if="pd.APPLY_STATUS && pd.APPLY_STATUS!=0 && pd.APPLY_STATUS!=1"> <view> <text class="title">气体分析单位负责人:</text> <text>{{pd.ANALYZE_USER_NAME}}</text> </view> <button class="cu-btn bg-green sm" @click="$noMultipleClicks(goToDetail,pd.HOTWORK_ID)">分析详情</button> </view> </view> <view class="wui-form-list"> <view v-if="pd.GUARDIAN_USER_SIGNER_PATH"> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">监护人</view> {{pd.GUARDIAN_USER_NAME}} {{pd.GUARDIAN_USER_SIGNER_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.GUARDIAN_USER_SIGNER_PATH" mode="aspectFill" @click="previewImage(baseImgPath + pd.GUARDIAN_USER_SIGNER_PATH)" style="height: 100%;"></image> </view> </view> </view> <view v-if="pd.confessList && pd.confessList.length > 0 && pd.confessList.length !== pd.confessList.filter(item => item.APPROVAL_STATUS === '0').length"> <view v-for="(item,index) in pd.confessList" > <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group"> <view class="title">安全交底人</view> {{ item.CONFESS_USER_NAME }} {{ item.APPROVAL_SIGNATURE_TIME }} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;"> <image :src="baseImgPath + item.APPROVAL_SIGNATURE" mode="aspectFill" @click="previewImage(baseImgPath + item.APPROVAL_SIGNATURE)" style="height: 100%;"></image> </view> </view> </view> </view> <view v-if="files.length > 0"> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">接受交底人</view> {{pd.ACCEPT_CONFESS_USER_NAME}} {{pd.ACCEPT_CONFESS_USER_SIGNER_TIME}} </view> <view class="cu-item" v-for="(item,index) in files" :key="index" style="border-bottom: 1px solid #e3e3e3"> <view class="imgs" style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;"> <image :src="baseImgPath+item.ACCEPT_CONFESS_USER_SIGNER_PATH" :data-index="index" @click="ViewShowImage(baseImgPath+item.ACCEPT_CONFESS_USER_SIGNER_PATH)" mode="" style="width: 200upx;height: 200upx;"></image> <text>{{item.ACCEPT_CONFESS_USER_SIGNER_TIME}}</text> </view> </view> </view> </view> <view v-if="pd.SAFETY_USER_NAME"> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">安全项检查人</view> {{pd.SAFETY_USER_NAME}}{{pd.SAFETY_SIGNATURE_TIME}} </view> <view class="imgs" style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;"> <image :src="baseImgPath+pd.SAFETY_SIGNATURE" @click="ViewShowImage(baseImgPath+v.SAFETY_SIGNATURE)" mode="" style="width: 200upx;height: 200upx;"></image> </view> </view> </view> </view> <view class="wui-form-list"> <view v-if="pd.CONFIRM_USER_SIGNER_PATH"> <view class="cu-form-textarea" style="border: none;"> <view class="cu-form-title">作业负责人意见</view> <textarea maxlength="255" disabled="disabled" v-model="formattedConfirmContent"></textarea> </view> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">作业负责人</view> {{pd.CONFIRM_USER_NAME}} {{pd.CONFIRM_USER_SIGNER_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.CONFIRM_USER_SIGNER_PATH" mode="aspectFill" @click="previewImage(baseImgPath + pd.CONFIRM_USER_SIGNER_PATH)" style="height: 100%;"></image> </view> </view> </view> <view v-if="pd.EXAMINE_APPROVAL_SIGNATURE"> <view class="cu-form-textarea" style="border: none;"> <view class="cu-form-title">项目主管部门负责意见</view> <textarea maxlength="255" disabled="disabled" v-model="formattedExamineApprovalOpinions"></textarea> </view> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">项目主管部门负责人</view> {{pd.BELONGING_USER_NAME}} {{pd.BELONGING_SIGNATURE_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.BELONGING_SIGNATURE" mode="aspectFill" @click="previewImage(baseImgPath + pd.BELONGING_SIGNATURE)" style="height: 100%;"></image> </view> </view> </view> <view v-if="pd.LEADER_CONTENT && pd.LEADER_CONTENT !== '无'"> <view class="cu-form-textarea" style="border: none;"> <view class="cu-form-title">属地监管单位意见</view> <textarea maxlength="255" disabled="disabled" v-model="formattedLeaderContent"></textarea> </view> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">属地监管单位负责人</view> {{pd.LEADER_USER_NAME}} {{pd.LEADER_USER_SIGNER_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.LEADER_USER_SIGNER_PATH" mode="aspectFill" @click="previewImage(baseImgPath + pd.LEADER_USER_SIGNER_PATH)" style="height: 100%;"></image> </view> </view> </view> <view v-if="pd.AUDIT_USER_SIGNER_PATH"> <view class="cu-form-textarea" style="border: none;"> <view class="cu-form-title">安全管理部门意见</view> <textarea maxlength="255" disabled="disabled" v-model="formattedAuditContent"></textarea> </view> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">安全管理部门负责人</view> {{pd.AUDIT_USER_NAME}} {{pd.AUDIT_USER_SIGNER_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.AUDIT_USER_SIGNER_PATH" mode="aspectFill" @click="previewImage(baseImgPath + pd.AUDIT_USER_SIGNER_PATH)" style="height: 100%;"></image> </view> </view> </view> <view v-if="pd.APPROVE_USER_SIGNER_PATH"> <view class="cu-form-textarea" style="border: none;"> <view class="cu-form-title">动火审批人意见</view> <textarea maxlength="255" disabled="disabled" v-model="formattedApproveContent"></textarea> </view> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">动火审批人</view> {{pd.APPROVE_USER_NAME}} {{pd.APPROVE_USER_SIGNER_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.APPROVE_USER_SIGNER_PATH" mode="aspectFill" @click="previewImage(baseImgPath + pd.APPROVE_USER_SIGNER_PATH)" style="height: 100%;"></image> </view> </view> </view> <view class="cu-form-textarea" style="border: none;"> <view class="cu-form-title">动火前验票负责人意见</view> <textarea maxlength="255" disabled="disabled" v-model="formattedMonitorContent"></textarea> </view> <view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee"> <view class="cu-form-group" > <view class="title">动火前验票负责人</view> {{pd.MONITOR_USER_NAME}} {{pd.MONITOR_USER_SIGNER_TIME}} </view> <view style="width: 400upx; height: 200upx; margin: 30upx;margin-top: 0upx;margin-bottom: 20upx;" > <image :src="baseImgPath + pd.MONITOR_USER_SIGNER_PATH" mode="aspectFill" @click="previewImage(baseImgPath + pd.MONITOR_USER_SIGNER_PATH)" style="height: 100%;"></image> </view> </view> <view class="cu-form-group"> <view class="title">动火已完成:</view> <radio-group @change="updateRadioValue('FIRE_COMPLETED', $event)"> <radio value="0" :checked="pd.FIRE_COMPLETED === '0'">否</radio> <radio value="1" :checked="pd.FIRE_COMPLETED === '1'">是</radio> </radio-group> </view> <view class="cu-form-group"> <view class="title">作业现场已清理:</view> <radio-group @change="updateRadioValue('SITE_CLEANED', $event)"> <radio value="0" :checked="pd.SITE_CLEANED === '0'">否</radio> <radio value="1" :checked="pd.SITE_CLEANED === '1'">是</radio> </radio-group> </view> <view class="cu-form-group"> <view class="title">无遗留火种:</view> <radio-group @change="updateRadioValue('NO_REMAINING_EMBERS', $event)"> <radio value="0" :checked="pd.NO_REMAINING_EMBERS === '0'">否</radio> <radio value="1" :checked="pd.NO_REMAINING_EMBERS === '1'">是</radio> </radio-group> </view> <view class="cu-form-textarea" style="border-bottom: 1px dashed #eee;"> <view class="cu-form-title">完工验收</view> <textarea maxlength="255" v-model="pd.CONTENT" placeholder="请输入意见"></textarea> </view> <view class="wui-sign"> <view class="title">验收部门负责人</view> <button class="cu-btn bg-green shadow" @tap="signModalShow = true" data-target="Modal">新增手写签字</button> </view> <view class="wui-sign-box wui-sign-box1" v-show="imgList && imgList.length > 0"> <view class="sign-title"> 签字照片: </view> <view class="wui-sign-cotent"> <view class="sign-img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage" data-type="0" :data-url="imgList[index].filePath"> <image :src="imgList[index].filePath" mode="aspectFit"></image> <view class="cu-tag bg-red" @tap.stop="DelImg(index)"> <text class='cuIcon-close'></text> </view> </view> </view> </view> <view class="cu-modal" :class="modalName=='Modal'?'show':''"> <writing-board @confirm="subCanvas" @cancel="hideModal"></writing-board> </view> </view> </view> <view class="cu-bar btn-group" style="margin-top: 30upx;"> <button class="cu-btn bg-red margin-tb-sm lg" @click="$noMultipleClicks(goSubmit,'-8')">打 回</button> <button :loading="buttonloading" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goSubmit,'8')">通 过</button> </view> <view class="padding flex flex-direction"> </view> <view class="cu-modal" :class="{'show':signModalShow}"> <sign @confirm="subCanvas" @cancel="signModalShow = false"></sign> </view> </scroll-view> </view> </template> <script> import { basePath, corpinfoId, deptId, loginUser, formatDate, loginSession, baseImgPath } from '@/common/tool.js'; import tkiTree from "@/components/select-tree/select-tree.vue"; import writingBoard from "@/components/writing-board/writing-board.vue"; import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue'; export default { components: { tkiTree, ruiDatePicker, writingBoard }, data() { return { baseImgPath: baseImgPath, buttonloading: false, isUps: false, forbidEdit: true, msg: 'add', files: [], noClick: true, treeNode: [], levelList: [ { id: '特级', name: '特级' }, { id: '一级', name: '一级' }, { id: '二级', name: '二级' }, ], levelindex: -1, analyzeUserList: [], analyzeindex: -1, confirmUserList: [], confirmindex: -1, guardianUserList: [], guardianindex: -1, leaderUserList: [], leaderindex: -1, auditUserList: [], auditindex: -1, approveUserList: [], approveindex: -1, monitorUserList: [], monitorindex: -1, acceptUserList: [], acceptindex: -1, pd: { FIRE_COMPLETED: '0', SITE_CLEANED: '0', NO_REMAINING_EMBERS: '0', OTHER_PROTECTIVE_MEASURES: ';_;;_;;_;;_;;_;;_;;_;' }, measuresList: [], gasList: [], rules: [ { name: 'CHECK_NO', message: '请输入编号' }, { name: 'WORK_CONTENT', message: '请输入作业内容' }, { name: 'WORK_PLACE', message: '请输入作业地点' }, { name: 'WORK_LEVEL', message: '请选择动火级别' }, { name: 'WORK_FUNCTION', message: '请输入动火方式' }, { name: 'WORK_START_DATE', message: '请选择工作开始时间' }, { name: 'WORK_START_DATE', message: '请选择工作结束时间' }, { name: 'WORK_MANAGER', message: '请输入作业负责人' }, { name: 'WORK_USER', message: '请输入作业人' }, { name: 'SPECIAL_WORK', message: '请输入关联的其他特殊作业及安全作业票编号' }, { name: 'RISK_IDENTIFICATION', message: '请输入风险辨识结果' }, { name: 'CONFESS_USER', message: '请输入安全交底人' }, { name: 'EDUCATE_USER', message: '请输入安全教育人' }, { name: 'ACCEPT_EDUCATE_USER', message: '请输入接受交底、教育人' }, { name: 'TRIAL_USER', message: '请输入动火措施初审人' }, { name: 'ANALYZE_USER_ID', message: '请选择气体分析单位负责人' }, { name: 'CONFIRM_USER_ID', message: '请选择作业负责人' }, { name: 'GUARDIAN_USER_ID', message: '请选择监护人' }, { name: 'LEADER_USER_ID', message: '请选择动火点车间负责人' }, { name: 'AUDIT_USER_ID', message: '请选择安全管理部门负责人' }, { name: 'APPROVE_USER_ID', message: '请选择审批人' }, { name: 'MONITOR_USER_ID', message: '请选择验票班长' }, { name: 'ACCEPT_USER_ID', message: '请选择验收部门负责人' } ], todayDate: '', modalName: null, signModalShow: false, imgList: [], } }, computed: { formattedConfirmContent() { return this.pd.CONFIRM_CONTENT && this.pd.CONFIRM_CONTENT !== '无' ? this.pd.CONFIRM_CONTENT : '同意'; }, formattedExamineApprovalOpinions() { return this.pd.EXAMINE_APPROVAL_OPINIONS && this.pd.EXAMINE_APPROVAL_OPINIONS !== '' ? this.pd.EXAMINE_APPROVAL_OPINIONS : '同意'; }, formattedLeaderContent() { return this.pd.LEADER_CONTENT && this.pd.LEADER_CONTENT !== '无' ? this.pd.LEADER_CONTENT : '同意'; }, formattedAuditContent() { return this.pd.AUDIT_CONTENT && this.pd.AUDIT_CONTENT !== '无' ? this.pd.AUDIT_CONTENT : '同意'; }, formattedApproveContent() { return this.pd.APPROVE_CONTENT && this.pd.APPROVE_CONTENT !== '无' ? this.pd.APPROVE_CONTENT : '同意'; }, formattedMonitorContent() { return this.pd.MONITOR_CONTENT && this.pd.MONITOR_CONTENT !== '无' ? this.pd.MONITOR_CONTENT : '同意'; } }, onLoad(event) { this.todayDate = formatDate(new Date(), 'yyyy-MM-dd hh:mm'); this.pd.HOTWORK_ID = event.HOTWORK_ID; if (this.pd.HOTWORK_ID) { this.msg = "edit"; this.getData(); } else { // 初始化作业负责人 this.pd.APPLY_DEPARTMENT_ID = loginUser.DEPARTMENT_ID; this.pd.APPLY_DEPARTMENT_NAME = loginUser.DEPARTMENT_NAME; this.pd.APPLY_USER_ID = loginUser.USER_ID; this.pd.APPLY_USER_NAME = loginUser.NAME; this.forbidEdit = false; } // 初始化现场作业负责人 this.getDept(); this.getLimitSpace(); loginSession(); }, methods: { updateRadioValue(key, event) { this.pd[key] = event.detail.value; }, goToDetail(e) { uni.navigateTo({ url: '/pages/application/hotwork_cfd/hotwork-gas/gas-list?HOTWORK_ID=' + e }); }, getData() { var _this = this; uni.showLoading({ title: '请稍候' }) uni.request({ url: basePath + '/app/hotwork/cfd/goEdit', method: 'POST', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { HOTWORK_ID: _this.pd.HOTWORK_ID, }, success: (res) => { if ("success" == res.data.result) { uni.hideLoading(); _this.pd = res.data.pd; //参数map _this.pd = Object.assign(_this.pd, { "CONFIRM_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[0], "GUARDIAN_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[1], "LEADER_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[2], "AUDIT_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[3], "APPROVE_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[4], "MONITOR_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[5] }) _this.pd.OTHER_PROTECTIVE_MEASURES = '' _this.files = res.data.imgList; _this.measuresList = res.data.measuresList _this.gasList = res.data.gasList if (_this.pd.APPLY_STATUS < 1) { _this.forbidEdit = false; } let dongHuoCaoZuoRenPic = res.data.imgList2 if (dongHuoCaoZuoRenPic && dongHuoCaoZuoRenPic.length > 0) { _this.pd.dongHuoCaoZuoRenPic = [] for (let i = 0; i < dongHuoCaoZuoRenPic.length; i++) { _this.pd.dongHuoCaoZuoRenPic.push(baseImgPath + dongHuoCaoZuoRenPic[i].FILEPATH) } } } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } } }); }, ViewShowImage(url) { let files = []; files.push(url) uni.previewImage({ urls: files, current: 0 }); }, async goSubmit(STATUS) { var _this = this; let required = true; uni.showLoading({ title: '请稍候' }); this.buttonloading = true; // 开始加载 if (STATUS == 8) { if (_this.pd.FIRE_COMPLETED === "0") { uni.showModal({ title: "提示", content: "动火已完成为“否”,不允许通过。", showCancel: false, confirmText: "知道了" }); this.buttonloading = false; // 重置加载状态 uni.hideLoading(); // 隐藏加载动画 return; } if (_this.pd.SITE_CLEANED === "0") { uni.showModal({ title: "提示", content: "作业现场已清理为“否”,不允许通过。", showCancel: false, confirmText: "知道了" }); this.buttonloading = false; // 重置加载状态 uni.hideLoading(); // 隐藏加载动画 return; } if (_this.pd.NO_REMAINING_EMBERS === "0") { uni.showModal({ title: "提示", content: "无遗留火种为“否”,不允许通过。", showCancel: false, confirmText: "知道了" }); this.buttonloading = false; // 重置加载状态 uni.hideLoading(); // 隐藏加载动画 return; } if (_this.imgList.length <= 0) { uni.showToast({ icon: 'none', title: '请签字', duration: 1500 }); this.buttonloading = false; // 重置加载状态 uni.hideLoading(); // 隐藏加载动画 return; } } var fileList = []; var signtime = []; const formData = {} Object.keys(this.pd).map(key => { formData[key] = this.pd[key] }); this.uploadImgFaults(fileList, signtime); formData.SIGNTIME = signtime.join(","); formData.CORPINFO_ID = corpinfoId; formData.CREATOR = loginUser.USER_ID; formData.OPERATOR = loginUser.USER_ID; formData.ACTION_USER = loginUser.NAME; formData.APPLY_STATUS = STATUS; if (STATUS == 8) { if (new Date(this.pd.WORK_START_DATE).getTime() - new Date().getTime() > 0) { uni.showModal({ title: '', content: '作业未开始之前不能进行验收', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { this.buttonloading = false; // 重置加载状态 this.goback(); } }); } else { formData.STATUS = STATUS; this.buttonloading = true; uni.uploadFile({ url: basePath + '/app/hotwork/cfd/editAcceptStatus', files: fileList, formData: formData, success: (res) => { uni.showToast({ icon: 'none', title: '保存成功', duration: 2000 }); this.goback(); this.buttonloading = false; // 重置加载状态 uni.hideLoading(); // 隐藏加载动画 }, fail: (err) => { uni.hideLoading(); // 隐藏加载动画 this.buttonloading = false; // 重置加载状态 uni.showModal({ content: err.errMsg, showCancel: false }); } }); } } else { formData.STATUS = STATUS; this.buttonloading = true; uni.request({ url: basePath + "/app/hotwork/cfd/editStatus", method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: formData, success: (res) => { uni.showToast({ icon: 'none', title: '保存成功', duration: 2000 }); this.goback(); this.buttonloading = false; // 重置加载状态 uni.hideLoading(); // 隐藏加载动画 }, fail: (err) => { uni.hideLoading(); // 隐藏加载动画 this.buttonloading = false; // 重置加载状态 uni.showModal({ content: err.errMsg, showCancel: false }); } }); } }, getGasFlag() { return new Promise((resolve, reject) => { if (this.gasList.length < 1) { uni.showModal({ title: '', content: '没有进行气体检测,是否继续验收?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { uni.hideLoading(); if (res.confirm) { resolve(true) } else { resolve(false) } } }) } else { resolve(true) } }) }, uploadImgFaults(fileList, signtime) { this.imgList.map(item => { var img = {} img.name = 'file' + (fileList.length) img.uri = item.filePath // img.SIGNER_TIME = item.SIGNER_TIME fileList.push(img) signtime.push(item.SIGNER_TIME) }) }, getConfess() { return new Promise((resolve, reject) => { if (!this.pd.CONFESS_USER_SIGNER_PATH) { uni.showModal({ title: '', content: '没有进行安全交底人签字,是否继续验收?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { this.buttonloading = false if (res.confirm) { resolve(true) } else { resolve(false) } } }) } else { resolve(true) } }) }, getAcceptconfess() { return new Promise((resolve, reject) => { if (!this.pd.ACCEPT_CONFESS_USER_SIGNER_PATH) { uni.showModal({ title: '', content: '没有进行接受交底人签字,是否继续验收?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { this.buttonloading = false if (res.confirm) { resolve(true) } else { resolve(false) } } }) } else { resolve(true) } }) }, getGuardian() { return new Promise((resolve, reject) => { if (!this.pd.GUARDIAN_USER_SIGNER_PATH) { uni.showModal({ title: '', content: '没有进行监护人签字,是否继续验收?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { this.buttonloading = false if (res.confirm) { resolve(true) } else { resolve(false) } } }) } else { resolve(true) } }) }, getLimitSpace() { var _this = this; uni.request({ method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, url: basePath + '/app/limitspace/listAllSpace?tm=' + new Date().getTime(), data: { CORPINFO_ID: corpinfoId }, success: function (res) { _this.limitSpaceList = res.data.varList; } }); }, levelChange(e) { this.levelindex = e.detail.value; this.pd.WORK_LEVEL = this.levelList[this.levelindex].name; this.$forceUpdate();//强制刷新 }, 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(dept, list, i) { //发送 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: dept, tm: new Date().getTime() }, success: function (res) { if ("success" == res.data.result) { if (i > -1) { _this[list][i] = []; _this[list][i] = res.data.userList; _this.$forceUpdate();//强制刷新 } else { _this[list] = res.data.userList; } } else { uni.showToast({ title: res.data.message, duration: 2000 }); } } }) }, //手写板 showModal(ISSELF) { this.ISSELF = ISSELF this.modalName = 'Modal' }, hideModal(e) { this.modalName = null }, //完成 subCanvas(e) { e.SIGNER_TIME = formatDate(new Date(), 'yyyy-MM-dd hh:mm') this.imgList.push(e); this.hideModal(); this.signModalShow = false; }, ViewImage(e) { let files = []; files.push(e.currentTarget.dataset.url) uni.previewImage({ urls: files, current: e.currentTarget.dataset.url }); }, DelImg(index) { this.imgList.splice(index, 1) }, //分析人 // 确定回调事件 analyzetreeConfirm(e) { this.isUps = false; this.pd.ANALYZE_DEPARTMENT_ID = e[0].id; this.pd.ANALYZE_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'analyzeUserList'); }, // 取消回调事件 analyzetreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showAnalyzeTree() { this.isUps = true this.$refs.tkiTree_analyze._show(); }, PickerAnalyze(e) { this.analyzeindex = e.detail.value; this.pd.ANALYZE_USER_ID = this.analyzeUserList[this.analyzeindex].USER_ID; this.pd.ANALYZE_USER_NAME = this.analyzeUserList[this.analyzeindex].NAME; this.$forceUpdate();//强制刷新 }, //确认人 // 确定回调事件 confirmtreeConfirm(e) { this.isUps = false; this.pd.CONFIRM_DEPARTMENT_ID = e[0].id; this.pd.CONFIRM_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'confirmUserList'); }, // 取消回调事件 confirmtreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showConfirmTree() { this.isUps = true this.$refs.tkiTree_confirm._show(); }, PickerConfirm(e) { this.confirmindex = e.detail.value; this.pd.CONFIRM_USER_ID = this.confirmUserList[this.confirmindex].USER_ID; this.pd.CONFIRM_USER_NAME = this.confirmUserList[this.confirmindex].NAME; this.$forceUpdate();//强制刷新 }, //监护人 // 确定回调事件 guardiantreeConfirm(e) { this.isUps = false; this.pd.GUARDIAN_DEPARTMENT_ID = e[0].id; this.pd.GUARDIAN_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'guardianUserList'); }, // 取消回调事件 guardiantreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showGuardianTree() { this.isUps = true this.$refs.tkiTree_guardian._show(); }, PickerGuardian(e) { this.guardianindex = e.detail.value; this.pd.GUARDIAN_USER_ID = this.guardianUserList[this.guardianindex].USER_ID; this.pd.GUARDIAN_USER_NAME = this.guardianUserList[this.guardianindex].NAME; this.$forceUpdate();//强制刷新 }, //单位领导 // 确定回调事件 leadertreeConfirm(e) { this.isUps = false; this.pd.LEADER_DEPARTMENT_ID = e[0].id; this.pd.LEADER_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'leaderUserList'); }, // 取消回调事件 leadertreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showLeaderTree() { this.isUps = true this.$refs.tkiTree_leader._show(); }, PickerLeader(e) { this.leaderindex = e.detail.value; this.pd.LEADER_USER_ID = this.leaderUserList[this.leaderindex].USER_ID; this.pd.LEADER_USER_NAME = this.leaderUserList[this.leaderindex].NAME; this.$forceUpdate();//强制刷新 }, //安全管理部门负责人 // 确定回调事件 audittreeConfirm(e) { this.isUps = false; this.pd.AUDIT_DEPARTMENT_ID = e[0].id; this.pd.AUDIT_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'auditUserList'); }, // 取消回调事件 audittreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showAuditTree() { this.isUps = true this.$refs.tkiTree_audit._show(); }, PickerAudit(e) { this.auditindex = e.detail.value; this.pd.AUDIT_USER_ID = this.auditUserList[this.auditindex].USER_ID; this.pd.AUDIT_USER_NAME = this.auditUserList[this.auditindex].NAME; this.$forceUpdate();//强制刷新 }, //审批人 // 确定回调事件 approvetreeConfirm(e) { this.isUps = false; this.pd.APPROVE_DEPARTMENT_ID = e[0].id; this.pd.APPROVE_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'approveUserList'); }, // 取消回调事件 approvetreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showApproveTree() { this.isUps = true this.$refs.tkiTree_approve._show(); }, PickerApprove(e) { this.approveindex = e.detail.value; this.pd.APPROVE_USER_ID = this.approveUserList[this.approveindex].USER_ID; this.pd.APPROVE_USER_NAME = this.approveUserList[this.approveindex].NAME; this.$forceUpdate();//强制刷新 }, //在岗班长 // 确定回调事件 monitortreeConfirm(e) { this.isUps = false; this.pd.MONITOR_DEPARTMENT_ID = e[0].id; this.pd.MONITOR_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'monitorUserList'); }, // 取消回调事件 monitortreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showMonitorTree() { this.isUps = true this.$refs.tkiTree_monitor._show(); }, PickerMonitor(e) { this.monitorindex = e.detail.value; this.pd.MONITOR_USER_ID = this.monitorUserList[this.monitorindex].USER_ID; this.pd.MONITOR_USER_NAME = this.monitorUserList[this.monitorindex].NAME; this.$forceUpdate();//强制刷新 }, //验收部门 // 确定回调事件 accepttreeConfirm(e) { this.isUps = false; this.pd.ACCEPT_DEPARTMENT_ID = e[0].id; this.pd.ACCEPT_DEPARTMENT_NAME = e[0].name; this.$forceUpdate();//强制刷新 this.getUserList(e[0].id, 'acceptUserList'); }, // 取消回调事件 accepttreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showAcceptTree() { this.isUps = true this.$refs.tkiTree_accept._show(); }, PickerAccept(e) { this.acceptindex = e.detail.value; this.pd.ACCEPT_USER_ID = this.acceptUserList[this.acceptindex].USER_ID; this.pd.ACCEPT_USER_NAME = this.acceptUserList[this.acceptindex].NAME; this.$forceUpdate();//强制刷新 }, changeStartDate(e) { this.pd.WORK_START_DATE = e this.$forceUpdate();//强制刷新 }, changeEndDate(e) { this.pd.WORK_END_DATE = e this.$forceUpdate();//强制刷新 }, changeRadio(i, value) { this.measuresList[i].STATUS = value }, goback() { var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上二级页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({ delta: 1 }); uni.hideLoading(); }, radioType(e) { this.HASINSTRUCTOR = e.detail.value }, goToEdit() { this.forbidEdit = false; } } } </script> <style scoped> .wui-sign-box1 { margin-top: 20upx; display: block; } .sign-img { position: relative; border-bottom: 1px dashed #eee; padding-top: 20upx; } .cu-tag { position: absolute; right: 20upx; top: 20upx; } </style>