<template> <view class="content"> <view class="card"> <u-cell-group :border="false"> <u-cell> <view slot="title" class="title required">检查题目:</view> <view slot="value"> <u-radio-group v-model="form.INSPECTION_SUBJECT" placement="row" disabled> <u-radio label="安全" name="安全"></u-radio> <u-radio label="环保" name="环保" class="ml-10"></u-radio> <u-radio label="综合" name="综合" class="ml-10"></u-radio> </u-radio-group> </view> </u-cell> <u-cell> <view slot="title" class="title required">被检查单位:</view> <view slot="value"> <text>{{ form.INSPECTED_CORPINFO_ID_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">被检查单位现场负责人:</view> <view slot="value"> <text>{{ form.INSPECTED_SITEUSER_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">检查场所:</view> <view slot="value"> <u--input v-model="form.INSPECTION_PLACE" border="none" placeholder="请输入检查场所" inputAlign="right" disabled></u--input> </view> </u-cell> <u-cell> <view slot="title" class="title required">检查类型:</view> <view slot="value"> <text>{{ form.INSPECTION_TYPE_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">检查开始时间:</view> <view slot="value"> <text>{{ form.INSPECTION_TIME_START }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">检查结束时间:</view> <view slot="value"> <text>{{ form.INSPECTION_TIME_END }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">记录填写时间:</view> <view slot="value"> <text>{{ form.CREATTIME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title">检查情况:</view> <view slot="label" class="title"> <view class="pr mt-10" v-for="(item,index) in form.situationList" :key="item.id"> <u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" disabled></u--textarea> </view> </view> </u-cell> <u-cell> <view slot="title" class="title">检查人员:</view> </u-cell> <view class="title-none"> <u-cell> <view slot="value" style="width: 100%"> <view class="pr mt-10" v-for="(item,index) in form.inspectorList" :key="item.id"> <u-cell-group :border="false" class="border"> <view class="title-show"> <u-cell> <view slot="title">{{ index + 1 }}.检查人员单位</view> <view slot="value"> <text>{{ item.INSPECTION_DEPARTMENT_NAME }}</text> </view> </u-cell> </view> <view class="title-show"> <u-cell :border="false"> <view slot="title">{{ index + 1 }}.检查人员</view> <view slot="value"> <text>{{ item.INSPECTION_USER_NAME }}</text> </view> </u-cell> </view> </u-cell-group> </view> </view> </u-cell> </view> <u-cell> <view slot="title" class="title">发现问题 </view> </u-cell> <view class="title-none"> <u-cell> <view slot="value" style="width: 100%"> <uni-table border stripe emptyText="暂无更多数据"> <uni-tr> <uni-th align="center">序号</uni-th> <uni-th align="center">隐患部位</uni-th> <uni-th align="center">隐患描述</uni-th> <uni-th align="center">操作</uni-th> </uni-tr> <uni-tr v-for="(item,index) in form.hiddenList" :key="item.HIDDEN_ID"> <uni-td>{{ index + 1 }}</uni-td> <uni-td>{{ item.HIDDENPART_NAME ? item.HIDDENPART_NAME : item.HIDDENPART }}</uni-td> <uni-td>{{ item.HIDDENDESCR }}</uni-td> <uni-td> <view class="flex-between"> <u-icon name="eye-fill" @tap="showHidden(item, index)"></u-icon> </view> </uni-td> </uni-tr> </uni-table> </view> </u-cell> </view> <template v-if="type === 'verify'"> <u-cell> <view slot="title" class="title">检查人意见:</view> <view slot="label" class="mt-10"> <u--textarea v-model="form.INSPECTION_USER_OPINION" placeholder="请输入检查人意见"></u--textarea> </view> </u-cell> <u-cell> <view slot="title" class="title flex-between"> 签字: </view> <view slot="value"> <u-button type="primary" text="手写添加" size="mini" @click="signShow = true"></u-button> </view> <view slot="label" class="mt-10"> <u--image v-show="form.INSPECTION_USER_SIGN_IMG" :showLoading="true" :src="form.INSPECTION_USER_SIGN_IMG" width="100%" height="80px" mode="scaleToFill" @click="previewImage(form.INSPECTION_USER_SIGN_IMG)"></u--image> <sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign> </view> </u-cell> <u-cell :border="false"> <view slot="label" class="flex-between"> <u-button type="primary" class="bth" text="通过" @click="$u.debounce(fnSubmit(1), 1000,true)"></u-button> <u-button type="error" class="bth ml-10" text="不通过" @click="$u.debounce(fnSubmit(-1), 1000,true)"></u-button> </view> </u-cell> </template> <view v-for="(item, index) in esipList" :key="index"> <template v-if="item.INSPECTION_USER_SIGN_IMG"> <u-cell> <view slot="title" class="title">检查人意见:</view> <view slot="label" class="mt-10"> <text>{{ item.INSPECTION_USER_OPINION }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title">签字:</view> <view slot="label" class="mt-10"> <u--image :showLoading="true" mode="scaleToFill" :src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG" width="100%" height="80px" @click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image> </view> </u-cell> <u-cell> <view slot="title" class="title">审核状态:</view> <view slot="value"> <text>同意</text> </view> </u-cell> </template> </view> </u-cell-group> </view> <u-popup :show="popupShow" @close="popupShow = false" mode="right" :closeOnClickOverlay="false" :customStyle="{width:'85vw',overflowY:'auto'}"> <view class="card"> <u-cell-group :border="false"> <u-cell> <view slot="title" class="title required">隐患照片:</view> <view slot="label" class="mt-10"> <u-upload disabled deletable uploadIcon="plus" :fileList="hiddenForm.hiddenImgs" multiple :maxCount="4" ></u-upload> </view> </u-cell> <u-cell> <view slot="title" class="title flex-between"> 隐患视频: <u-icon v-if="hiddenForm.hiddenVideos.length !== 0 && hiddenForm.hiddenVideos[0].url" name="play-circle-fill" size="30" @click="previewVideo(hiddenForm.hiddenVideos[0].url)"></u-icon> </view> <view slot="label" class="mt-10"> <u-upload disabled deletable accept="video" uploadIcon="plus" :fileList="hiddenForm.hiddenVideos" multiple :maxCount="1" ></u-upload> <u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false"> <view> <video v-if="modalShow" :src="videoUrl" :autoplay="true"></video> </view> </u-modal> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患描述:</view> <view slot="label" class="mt-10"> <u--textarea v-model="hiddenForm.HIDDENDESCR" placeholder="请输入隐患描述" disabled></u--textarea> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患部位:</view> <view slot="value"> <text>{{ hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患级别:</view> <view slot="value"> <text>{{ hiddenForm.HIDDENLEVEL_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">是否是相关方:</view> <view slot="value"> <u-radio-group v-model="hiddenForm.ISRELEVANT" placement="row" disabled="false"> <u-radio label="是" name="1" class="ml-10"></u-radio> <u-radio label="否" name="2" class="ml-10"></u-radio> </u-radio-group> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患类型:</view> <view slot="value"> <text>{{ hiddenForm.HIDDENTYPE_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患发现时间:</view> <view slot="value"> <text>{{ hiddenForm.DISCOVERYTIME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患上报位置:</view> <view slot="label" class="mt-10"> <view>经度:{{ hiddenForm.LONGITUDE }}</view> <view>纬度:{{ hiddenForm.LATITUDE }}</view> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患位置描述:</view> <view slot="label" class="mt-10"> <u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述" disabled></u--textarea> </view> </u-cell> <u-cell> <view slot="title" class="title required">隐患发现人:</view> <view slot="value"> <text>{{ hiddenForm.CREATOR_NAME }}</text> </view> </u-cell> <u-cell :border="false"> <view slot="label" class="flex-between"> <u-button type="info" text="取消" @click="popupClose"></u-button> </view> </u-cell> </u-cell-group> </view> </u-popup> </view> </template> <script> import {getSafetyenvironmentalGoEdit, setSafetyenvironmentalVerify} from "@/api"; import sign from "../../../components/sign/sign"; export default { components: { sign, }, data() { return { form: { INSPECTION_SUBJECT: '', INSPECTED_DEPARTMENT_NAME: '', INSPECTED_DEPARTMENT_ID: '', INSPECTED_SITEUSER_NAME: '', INSPECTED_SITEUSER_ID: '', INSPECTION_PLACE: '', INSPECTION_TYPE_NAME: '', INSPECTION_TIME_START: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), INSPECTION_TIME_END: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), CREATTIME: '', situationList: [{id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: ''}], inspectorList: [{ id: Math.random(), inspectionUserShow: false, INSPECTION_INSPECTOR_ID: '', INSPECTION_DEPARTMENT_ID: '', INSPECTION_DEPARTMENT_NAME: '', INSPECTION_USER_ID: '', INSPECTION_USER_NAME: '' }], hiddenList: [], INSPECTION_USER_OPINION: '', INSPECTION_USER_SIGN_IMG: '' }, rules: { 'INSPECTION_USER_OPINION': {required: true, message: '请输入检查人意见'}, 'INSPECTION_USER_SIGN_IMG': {required: true, message: '请签字'}, }, INSPECTION_ID: '', type: '', INSPECTION_USER_ID: '', INSPECTION_INSPECTOR_ID: '', popupShow: false, hiddenForm: { hiddenImgs: [], hiddenVideos: [], HIDDENDESCR: '', HIDDENPART_NAME: '', HIDDENPART: '', HIDDENLEVEL_NAME: '', HIDDENLEVEL: '', HIDDENTYPE_NAME: '', HIDDENTYPE: '', DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), LONGITUDE: '', LATITUDE: '', CREATOR_NAME: '', CREATOR: '', }, signShow: false, modalShow: false, videoUrl: '', esipList: [] //审核过成意见 } }, onLoad(event) { this.INSPECTION_ID = event.INSPECTION_ID this.type = event.type this.INSPECTION_INSPECTOR_ID = event.INSPECTION_INSPECTOR_ID this.INSPECTION_USER_ID = event.INSPECTION_USER_ID if (this.INSPECTION_ID) { this.fnGetSafetyenvironmentalGoEdit() } }, computed: { userInfo() { return this.$store.getters.getUserInfo } }, methods: { async fnGetSafetyenvironmentalGoEdit() { let resData = await getSafetyenvironmentalGoEdit({INSPECTION_ID: this.INSPECTION_ID,'CORPINFO_ID': ''}) for (let i = 0; i < resData.pd.hiddenList.length; i++) { resData.pd.hiddenList[i].id = resData.pd.hiddenList[i].HIDDEN_ID for (let j = 0; j < resData.pd.hiddenList[i].hiddenImgs.length; j++) { resData.pd.hiddenList[i].hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenImgs[j].FILEPATH } for (let j = 0; j < resData.pd.hiddenList[i].hiddenVideos.length; j++) { resData.pd.hiddenList[i].hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenVideos[j].FILEPATH } } this.form = resData.pd this.esipList = resData.esipList }, async fnSubmit(INSPECTION_STATUS) { for (const key in this.rules) { if (!this.form[key]) { uni.showToast({ title: this.rules[key].message, icon: "none" }) return; } } console.log(this.form.INSPECTION_USER_SIGN_IMG) await setSafetyenvironmentalVerify({ filePath: this.form.INSPECTION_USER_SIGN_IMG, name: 'FFILE', formData: { INSPECTION_STATUS, INSPECTION_ID: this.INSPECTION_ID, INSPECTION_INSPECTOR_ID: this.INSPECTION_INSPECTOR_ID, INSPECTION_USER_ID: this.INSPECTION_USER_ID, INSPECTION_USER_OPINION: this.form.INSPECTION_USER_OPINION, INSPECTION_USER_SIGN_TIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), ACTION_USER_ID: this.userInfo.USER_ID, ACTION_ID: this.userInfo.USER_ID, }, }) uni.showToast({ title: '核查成功', }) uni.$u.route({ type: 'navigateBack' }) }, showHidden(item) { this.hiddenForm = item this.popupShow = true }, popupClose() { this.popupShow = false }, signConfirm({path}) { this.form.INSPECTION_USER_SIGN_IMG = path }, previewImage(current) { if (false) { uni.previewImage({ urls: [current], current }); } }, previewVideo(videoUrl) { this.modalShow = true; this.videoUrl = videoUrl; } }, } </script> <style scoped> .title { min-width: 150rpx; } </style>