<template> <view class="content"> <view class="card"> <u-cell-group :border="false"> <template v-if="hiddenData.hiddenImgs !== undefined && hiddenData.hiddenImgs.length>0"> <u-cell> <view slot="title" class="title">隐患照片:</view> <view slot="label" class="mt-10"> <view style="display: flex;flex-wrap: wrap"> <view v-for="(item,index) in hiddenData.hiddenImgs" :key="index" class="ml-10 mt-10"> <u--image :showLoading="true" :src="item.url" width="80px" height="80px" @click="previewImage(hiddenData.hiddenImgs,item.url)"></u--image> </view> </view> </view> </u-cell> </template> <template v-if=" hiddenData.hiddenVideos !== undefined && hiddenData.hiddenVideos.length>0"> <u-cell> <view slot="title" class="title"> 隐患视频: </view> <view slot="value"> <u-icon v-if="hiddenData.hiddenVideos.length !== 0 && hiddenData.hiddenVideos[0].url" name="play-circle-fill" size="30" @click="previewVideo(hiddenData.hiddenVideos[0].url)"></u-icon> <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> </template> <u-cell> <view slot="title" class="title">隐患描述:</view> <view slot="label" class="mt-10">{{ hiddenData.HIDDENDESCR }}</view> </u-cell> <u-cell> <view slot="title" class="title">隐患部位:</view> <view slot="value">{{ hiddenData.HIDDENPART }}</view> </u-cell> <u-cell> <view slot="title" class="title">隐患级别:</view> <view slot="value"> <text>{{ hiddenData.HIDDENLEVEL_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title">隐患类型:</view> <view slot="value"> <text>{{ hiddenData.HIDDENTYPE_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title">隐患处置:</view> <view slot="value">限期整改</view> </u-cell> <view class="card" v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'"> <view class="view-title"> <u--text text="隐患整改"></u--text> </view> </view> <u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'"> <view slot="title" class="title">整改期限:</view> <view slot="value"> <text>{{ hiddenData.RECTIFICATIONDEADLINE }}</text> </view> </u-cell> <u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'"> <view slot="title" class="title">整改部门:</view> <view slot="value"> <text>{{ hiddenData.RECTIFICATIONDEPT_NAME }}</text> </view> </u-cell> <u-cell> <view slot="title" class="title">整改人:</view> <view slot="value"> <text>{{ hiddenData.RECTIFICATIONOR_NAME }}</text> </view> </u-cell> <u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'"> <view slot="title" class="title">整改时间:</view> <view slot="value"> <text>{{ hiddenData.RECTIFICATIONTIME }}</text> </view> </u-cell> <u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'"> <view slot="title" class="title">整改照片:</view> <view slot="label" class="mt-10"> <view style="display: flex;flex-wrap: wrap"> <view v-for="(item,index) in hiddenData.zgImgs" :key="index" class="ml-10 mt-10"> <u--image :showLoading="true" :src="item.url" width="80px" height="80px" @click="previewImage(hiddenData.zgImgs,item.url)"></u--image> </view> </view> </view> </u-cell> <view class="card" v-show="hiddenData.STATE==='4'"> <view class="view-title"> <u--text text="验收信息"></u--text> </view> </view> <u-cell v-show="hiddenData.STATE==='4'"> <view slot="title" class="title required">验收时间:</view> <view slot="value"> <text @click="type === 'view' ? null : timeShow = true">{{ CHECKTIME || '请选择' }}</text> <u-datetime-picker :show="timeShow" :value="CHECKTIME" :minDate="Number(1970)" @cancel="timeShow = false" @confirm="timeConfirm"></u-datetime-picker> </view> </u-cell> <u-cell v-show="hiddenData.STATE==='4'"> <view slot="title" class="title required">验收图片:</view> <view slot="label" class="mt-10"> <u-upload :disabled="type === 'view'" :deletable="type === 'acceptance'" uploadIcon="plus" :fileList="form.ysImgs" @afterRead="afterRead" @delete="deletePic" multiple :maxCount="4" ></u-upload> </view> </u-cell> <view class="card" v-show="punishForm"> <view class="view-title"> <u--text text="处罚信息"></u--text> </view> </view> <u-cell v-if="punishForm"> <view slot="title" class="title">处罚原因:</view> <view slot="value">{{ punishForm.REASON }}</view> </u-cell> <u-cell v-if="punishForm"> <view slot="title" class="title">处罚金额:</view> <view slot="value">{{ punishForm.AMOUT }}元</view> </u-cell> <u-cell v-if="punishForm"> <view slot="title" class="title">被处罚单位:</view> <view slot="value">{{ punishForm.UNITS_NAME }}</view> </u-cell> <u-cell v-if="punishForm"> <view slot="title" class="title">被处罚人:</view> <view slot="value">{{ punishForm.PERSON_NAME }}</view> </u-cell> <u-cell v-if="punishForm"> <view slot="title" class="title">下发人:</view> <view slot="value">{{ punishForm.CREATOR_NAME }}</view> </u-cell> <u-cell v-if="punishForm"> <view slot="title" class="title">下发处罚时间:</view> <view slot="value">{{ punishForm.DATE }}</view> </u-cell> <template v-if="punishForm"> <u-cell v-if="punishForm.HANLDE_TIME"> <view slot="title" class="title">罚款缴纳单:</view> <view slot="label" class="mt-10"> <u--image :showLoading="true" :src="punishForm.HANDLE_IMG" width="80px" height="80px" @click="previewImage(punishForm.HANDLE_IMG)"></u--image> </view> </u-cell> <u-cell v-if="punishForm.HANLDE_TIME"> <view slot="title" class="title">处罚处理人:</view> <view slot="value">{{ punishForm.PERSON_NAME }}</view> </u-cell> <u-cell v-if="punishForm.HANLDE_TIME"> <view slot="title" class="title">处罚处理时间:</view> <view slot="value">{{ punishForm.HANLDE_TIME }}</view> </u-cell> </template> </u-cell-group> </view> </view> </template> <script> import {getKeyProjectsCheckCheck, getKeyProjectsCheckHiddenView, setImgFilesAdd} from "../../../api"; export default { data() { return { HIDDEN_ID: '', type: '', hiddenData: { hiddenVideos: [] }, modalShow: false, videoUrl: '', form: { CHECKTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), ysImgs: [], ISPUNISH: '' }, timeShow: false, CHECKTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), punishForm: {}, } }, onLoad(e) { this.HIDDEN_ID = e.HIDDEN_ID this.type = e.type this.fnGetData() }, methods: { async fnGetData() { let resData = await getKeyProjectsCheckHiddenView({ HIDDEN_ID: this.HIDDEN_ID, }) for (let j = 0; j < resData.pd.hiddenImgs.length; j++) { resData.pd.hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenImgs[j].FILEPATH; } for (let j = 0; j < resData.pd.hiddenVideos.length; j++) { resData.pd.hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenVideos[j].FILEPATH; } for (let j = 0; j < resData.pd.zgImgs.length; j++) { resData.pd.zgImgs[j].url = this.$store.state.filePath + resData.pd.zgImgs[j].FILEPATH; } console.log(this.$store.state.filePath); for (let j = 0; j < resData.pd.ysImgs.length; j++) { resData.pd.ysImgs[j].url = this.$store.state.filePath + resData.pd.ysImgs[j].FILEPATH; } this.hiddenData = resData.pd; this.form.ysImgs = resData.pd.ysImgs this.form.CHECKTIME = resData.pd.CHECKTIME this.form.ISPUNISH = resData.pd.ISPUNISH this.punishForm = resData.pd.punishForm if (this.punishForm) { this.punishForm.HANDLE_IMG = this.$store.state.filePath + this.punishForm.HANDLE_IMG; } }, previewVideo(videoUrl) { this.modalShow = true; this.videoUrl = videoUrl; }, previewImage(list, current) { let urls = [] for (let i = 0; i < list.length; i++) { urls.push(list[i].url) } uni.previewImage({ urls, current }); }, timeConfirm(e) { this.CHECKTIME = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') this.timeShow = false; }, afterRead(event) { this.form.ysImgs = [...this.form.ysImgs, ...event.file] }, deletePic(event) { this.form.ysImgs = this.form.ysImgs.filter(item => item.url !== event.file.url) }, async fnSubmit() { if (!this.CHECKTIME) { uni.showToast({ title: `请选择验收时间`, icon: 'none' }) return } this.$set(this.form, 'CHECKTIME', this.CHECKTIME) // if(this.form.ysImgs.length === 0){ // uni.showToast({ // title: `请上传验收图片`, // icon: 'none' // }) // return // } if (!this.form.ISPUNISH) { this.form.ISPUNISH = '' } await getKeyProjectsCheckCheck({ ...this.form, HIDDEN_ID: this.HIDDEN_ID }) let PromiseArr = [] for (let j = 0; j < this.form.ysImgs.length; j++) { let imgFiles = [] imgFiles.push({ uri: this.form.ysImgs[j].url, FFILE: this.form.ysImgs[j].url, }) PromiseArr.push(this.fnSetImgFilesAdd(imgFiles, this.HIDDEN_ID, '5')) } Promise.all(PromiseArr).then((data) => { console.log(data) uni.hideLoading() uni.showToast({ title: '添加成功', }) uni.$u.route({ type: 'navigateBack' }) }).catch((data) => { console.log(data) uni.showToast({ title: '添加失败!', icon: 'error', duration: 2000 }); }) }, async fnSetImgFilesAdd(imgFiles, FOREIGN_KEY, TYPE) { return await setImgFilesAdd({ files: imgFiles, formData: { FOREIGN_KEY, TYPE }, loading: false }) }, }, } </script> <style scoped> </style>