<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="wui-form-list"> <view class="cu-form-group"> <view class="title"> <text>隐患描述</text> </view> <view> <text>{{pd.HIDDENDESCR}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>隐患来源</text> </view> <view> <text v-if="pd.SOURCE=='1'">隐患快报</text> <text v-if="pd.SOURCE=='2'">隐患排查</text> <text v-if="pd.SOURCE=='4'">安全环保检查</text> <text v-if="pd.SOURCE=='5'">安全环保检查</text> </view> </view> <view class="cu-form-group" v-if="pd.SOURCE==2"> <view class="title"> <text>风险点(单元)</text> </view> <view> <text>{{pd.RISK_UNIT}}</text> </view> </view> <view class="cu-form-group bb-default" v-if="pd.SOURCE==2"> <view class="title"> <text>辨识部位</text> </view> <view> <text>{{pd.IDENTIFICATION}}</text> </view> </view> <view class="cu-form-textarea" v-if="pd.SOURCE==2"> <view class="title"> <text>存在风险</text> </view> <view class="cu-form-p"> <text>{{pd.RISK_DESCR}}</text> </view> </view> <view class="cu-form-group bb-default" v-if="pd.SOURCE==2"> <view class="title"> <text>风险分级</text> </view> <view> <text>{{pd.LEVEL}}</text> </view> </view> <view class="cu-form-textarea" v-if="pd.SOURCE==2"> <view class="title"> <text>检查内容</text> </view> <view class="cu-form-p"> <text>{{pd.CHECK_CONTENT}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>隐患部位</text> </view> <view> <text>{{pd.HIDDENPART}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>发现人</text> </view> <view> <text>{{pd.CREATORNAME}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>发现时间</text> </view> <view> <text>{{pd.CREATTIME}}</text> </view> </view> <view v-if="pd.HIDDEN_CATEGORY && pd.HIDDEN_CATEGORY !== ''" class="cu-form-group"> <view class="title"> <text>隐患类别</text> </view> <view> <text>{{pd.HIDDEN_CATEGORY_NAME}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>隐患类型</text> </view> <view> <text>{{pd.HIDDENTYPE_NAME}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>整改类型</text> </view> <view> <text v-if="pd.RECTIFICATIONTYPE=='1'">立即整改</text> <text v-else-if="pd.RECTIFICATIONTYPE=='2'">限期整改</text> </view> </view> <view v-if="pd.RECTIFICATIONTYPE=='2'" class="cu-form-group bb-default"> <view class="title"> <text>整改期限</text> </view> <view> <text>{{pd.RECTIFICATIONDEADLINE}}</text> </view> </view> <view class="cu-form-textarea"> <view class="title"> <text>隐患照片</text> </view> <view class="cu-form-p"> <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="de-item-sp" v-if="videoList.length>0"> <view class="de-sub-title"> <text class="text-grey">隐患视频</text> </view> <view class="de-sub-content" style="background-color: #000;width: 120upx;"> <image src="/static/icon-apps/video.png" mode="aspectFill" @click="playVideo" :data-src="baseImgPath + videoList[0].FILEPATH" style="width: 120upx;height: 120upx;"></image> </view> </view> </view> <view class="wui-form-list"> <view class="wui-sub-title"> <text>整改信息</text> </view> <view class="cu-form-group"> <view class="title"> <text>整改描述</text> </view> <view> <text>{{pd.RECTIFYDESCR}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>整改部门</text> </view> <view> <text>{{pd.HIDDENFINDDEPTNAME}}</text> </view> </view> <view class="cu-form-group"> <view class="title"> <text>整改人</text> </view> <view> <text>{{pd.RECTIFICATIONORNAME}}</text> </view> </view> <view class="cu-form-group bb-default"> <view class="title"> <text>整改时间</text> </view> <view> <text>{{pd.RECTIFICATIONTIME}}</text> </view> </view> <view class="cu-form-textarea"> <view class="title"> <text>整改后图片</text> </view> <view class="cu-form-p"> <scroll-view scroll-x class="bg-white nav" scroll-with-animation> <view class="cu-item" v-for="(item,index) in files2" v-bind:key="index"> <view class="imgs"> <image :src="baseImgPath+item.FILEPATH" :data-index="index" @click="ViewShowImage2" mode=""></image> </view> </view> </scroll-view> </view> </view> <view class="cu-form-group"> <view class="title"> <text>整改方案</text> </view> <view> <text v-if="pd.HAVESCHEME==0">无</text> <text v-else-if="pd.HAVESCHEME==1">有</text> <text v-else></text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>排查日期</text> </view> <view> <text>{{hs.SCREENINGDATE}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>隐患清单</text> </view> <view> <text>{{hs.LISTNAME}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>治理标准要求</text> </view> <view> <text>{{hs.GOVERNSTANDARDS}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>治理方法</text> </view> <view> <text>{{hs.GOVERNMETHOD}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>经费和物资的落实</text> </view> <view> <text>{{hs.EXPENDITURE}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>负责治理人员</text> </view> <view> <text>{{hs.PRINCIPAL}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>工时安排</text> </view> <view> <text>{{hs.PROGRAMMING}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>时限要求</text> </view> <view> <text>{{hs.TIMELIMITFOR}}</text> </view> </view> <!-- <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1">--> <!-- <view class="title">--> <!-- <text>应急预案附件</text>--> <!-- </view>--> <!-- <view>--> <!-- <text @click="$noMultipleClicks(goToOpen,baseImgPath+hs.FILEPATH)">下载</text>--> <!-- </view>--> <!-- </view>--> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>工作要求</text> </view> <view> <text>{{hs.JOBREQUIREMENT}}</text> </view> </view> <view class="cu-form-group" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>其他事项</text> </view> <view> <text>{{hs.OTHERBUSINESS}}</text> </view> </view> <view class="cu-form-textarea" v-if="hs && pd.HAVESCHEME==1"> <view class="title"> <text>方案图片</text> </view> <view class="cu-form-p"> <scroll-view scroll-x class="bg-white nav" scroll-with-animation> <view class="cu-item" v-for="(item,index) in files4" v-bind:key="index"> <view class="imgs"> <image :src="baseImgPath+item.FILEPATH" :data-index="index" @click="ViewShowImage4" mode=""></image> </view> </view> </scroll-view> </view> </view> <view class="cu-form-group bb-default"> <view class="title"> <text>整改计划</text> </view> <view class="uni-flex-item text-right"> <text v-if="pd.HAVEPLAN==0" >无</text> <text v-else-if="pd.HAVEPLAN==1" >有</text> <text v-else class="text-semi"></text> </view> </view> <view class="cu-form-textarea" v-if="pd.HAVEPLAN==1"> <view class="title"> <text>计划图片</text> </view> <view class="cu-form-p"> <scroll-view scroll-x class="bg-white nav" scroll-with-animation> <view class="cu-item" v-for="(item,index) in files5" v-bind:key="index"> <view class="imgs"> <image :src="baseImgPath+item.FILEPATH" :data-index="index" @click="ViewShowImage5" mode=""></image> </view> </view> </scroll-view> </view> </view> </view> <view class="wui-form-list"> <view class="wui-sub-title"> <text>隐患验收</text> </view> <view class="cu-form-group bb-default"> <view class="title text-hui">是否合格</view> <radio-group class="selected"> <view class="group mr20"> <radio class='radio' value="1" :checked="ISQUALIFIED==='1'" @click="radio('1')"></radio> <text>是</text> </view> <view class="group"> <radio class='radio' value="0" :checked="ISQUALIFIED==='0'" @click="radio('0')"></radio> <text>否</text> </view> </radio-group> </view> <view v-if="ISQUALIFIED==1" class="cu-form-textarea"> <view class="cu-form-title">验收描述</view> <textarea maxlength="-1" @input="textareaAInput" placeholder="请对隐患验收进行详细描述(必填项)"></textarea> </view> <view v-if="ISQUALIFIED==1" class="cu-form-group bb-default"> <view class="title">验收日期</view> <picker mode="date" :value="CHECK_TIME" :start="now" @change="changeDate"> <view class="picker"> {{CHECK_TIME==''?'请选择':CHECK_TIME}} </view> </picker> </view> <view v-if="ISQUALIFIED==1" class="cu-bar bg-white"> <view class="action" style="font-size: 28upx; font-weight: bold; color: #000;"> 验收图片 </view> <view class="action"> {{imgList.length}}/4 </view> </view> <view v-if="ISQUALIFIED==1" 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 class="cu-tag bg-red" @tap.stop="DelImg" :data-index="index"> <text class='cuIcon-close'></text> </view> </view> <view class="solids" @tap.stop="openAuth('CAMERA')" v-if="imgList.length<4"> <text class='cuIcon-cameraadd'></text> </view> </view> </view> </view> <view class="padding flex flex-direction"> <button :loading="buttonloading" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goSubmit)">提 交</button> </view> <view class="cu-tabbar-height"></view> </scroll-view> <view :class="['cu-modal',{'show':modalShow}]" v-if="modalShow"> <view class="cu-dialog"> <view class="cu-bar bg-white justify-end"> <view class="content">播放视频</view> <view class="action" @tap="modalShow = false"> <text class="cuIcon-close text-red"></text> </view> </view> <video :src="videoSrc" :autoplay="true" @fullscreenchange="fullScreenHandler"></video> <view class="cu-bar bg-white justify-end"> <view class="action"> <button class="cu-btn line-green text-green" @click="modalShow = false">关闭</button> </view> </view> </view> </view> <yk-authpup ref="authpup" type="top" @changeAuth="ChooseImage" :permissionID="permissionID"></yk-authpup> </view> </template> <script> import { basePath, loginUserId, loginSession, baseImgPath, corpinfoId, loginUser, formatDate } from '@/common/tool.js'; import ykAuthpup from "@/components/yk-authpup/yk-authpup" export default { components: { ykAuthpup }, data() { return { permissionID:'', noClick: true, date: '', RECTIFICATIONTIME: '', buttonloading: false, CHECK_TIME: '', imgList: [], id: '', pd: [], hs: [], files: [], files2: [], files3: [], files4: [], files5: [], videoList: [], CHECKDESCR: '', basePath: basePath, baseImgPath: baseImgPath, ISQUALIFIED: '1', check: [], modalShow: false, videoSrc: '', now:formatDate(new Date(),'yyyy-MM-dd') } }, onLoad(e) { this.id = e.id; // let now = new Date(); // this.date = formatDate(now, 'yyyy-MM-dd'); this.getData(); loginSession(); }, // filters: { // formatDate(time) { // time = time * 1 // let date = new Date(time) // return formatDate(date, 'yyyy-MM-dd hh:mm') // } // }, methods: { fullScreenHandler(e) { if (uni.getSystemInfoSync().platform == "ios") { return } }, 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, CORPINFO_ID:loginUser.CORPINFO_ID, USER_ID:loginUser.USER_ID, }, success: (res) => { console.info(res); if ("success" == res.data.result) { uni.hideLoading(); _this.pd = res.data.pd; //参数map _this.hs = res.data.hs; //参数map for (let i = 0; i < res.data.hImgs.length; i++) { if(res.data.hImgs[i].FILEPATH.substring(res.data.hImgs[i].FILEPATH.lastIndexOf(".") + 1, res.data.hImgs[i].FILEPATH.length) === 'mp4'){ _this.videoList.push(res.data.hImgs[i]) }else { _this.files.push(res.data.hImgs[i]) } } _this.videoList = res.data.hiddenVideo; // _this.files = res.data.hImgs; _this.files2 = res.data.rImgs; _this.files3 = res.data.cImgs; _this.files4 = res.data.sImgs; _this.files5 = res.data.pImgs; } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } } }); }, openAuth(permissionID){ this.permissionID = permissionID; setTimeout(()=>{ this.$refs['authpup'].open(); },200) }, //图片上传 ChooseImage() { var _this = this; uni.chooseImage({ count: 4, //默认9 sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sourceType: ['camera', 'album'], //从相册选择 success: (res) => { if (this.imgList.length != 0) { this.imgList = this.imgList.concat(res.tempFilePaths) } else { this.imgList = res.tempFilePaths } } }); }, ViewImage(e) { uni.previewImage({ urls: this.imgList, current: e.currentTarget.dataset.url }); }, DelImg(e) { uni.showModal({ title: '双控平台', content: '确定要删除这张图片吗?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { if (res.confirm) { this.imgList.splice(e.currentTarget.dataset.index, 1) } } }) }, textareaAInput(e) { this.CHECKDESCR = e.detail.value }, goSubmit() { var _this = this; if (_this.ISQUALIFIED == '1') { if (!_this.CHECKDESCR) { uni.showToast({ icon: 'none', title: '请填验收描述', duration: 1500 }); return; } if (!_this.CHECK_TIME) { uni.showToast({ icon: 'none', title: '请选择验收时间', duration: 1500 }); return; } if (_this.imgList.length <= 0) { uni.showToast({ icon: 'none', title: '请上传验收照片', duration: 1500 }); return; } } new Promise((resolve, reject) => { _this.submit().then(() => { resolve(); }) }).then(() => { var i = 0; _this.uploadImg(_this.imgList, i).then(() => { resolve(); }) }).then(() => { uni.showToast({ icon: 'none', title: '提交成功', duration: 1500 }); setTimeout(function() { var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上一个页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({}); uni.hideLoading(); }, 1500); }) }, uploadImg(tempFilePaths, i) { return new Promise((resolve, reject) => { var _this = this; if (tempFilePaths.length == 0) { resolve(); } uni.showLoading({ title: '上传中' }) uni.uploadFile({ url: basePath + '/app/imgfiles/add', filePath: tempFilePaths[i], name: 'FFILE', formData: { 'FOREIGN_KEY': _this.check.HIDDENCHECK_ID, 'TYPE': '5', CORPINFO_ID: loginUser.CORPINFO_ID, USER_ID: loginUser.USER_ID, }, success: (res) => { i++; if (tempFilePaths.length > i) { _this.uploadImg(tempFilePaths, i); } else { uni.hideLoading(); resolve(); } }, fail: (err) => { uni.hideLoading(); console.log('uploadImage fail', err); uni.showModal({ content: err.errMsg, showCancel: false }); } }) }) }, submit() { return new Promise((resolve, reject) => { var _this = this; this.buttonloading = true uni.request({ url: basePath + "/app/hidden/check", //提交接口 method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { ISQUALIFIED: _this.ISQUALIFIED, CHECKDESCR: _this.CHECKDESCR, CHECK_TIME: _this.CHECK_TIME, HIDDEN_ID: _this.id, CHECKOR: loginUserId, CORPINFO_ID:loginUser.CORPINFO_ID, USER_ID:loginUser.USER_ID, }, success: (res) => { uni.hideLoading(); this.buttonloading = false if ("success" == res.data.result) { _this.check = res.data.check; resolve(); } else { uni.showToast({ title: '错误', duration: 2000 }); } } }); }) }, changeDate(e) { this.CHECK_TIME = e.detail.value }, radio(e) { this.ISQUALIFIED = e }, 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 }); }, ViewShowImage2(e) { let files = []; for (var i = 0; i < this.files2.length; i++) { files.push(baseImgPath + this.files2[i].FILEPATH) } uni.previewImage({ urls: files, current: e.currentTarget.dataset.index }); }, ViewShowImage4(e) { let files = []; for (var i = 0; i < this.files4.length; i++) { files.push(baseImgPath + this.files4[i].FILEPATH) } uni.previewImage({ urls: files, current: e.currentTarget.dataset.index }); }, ViewShowImage5(e) { let files = []; for (var i = 0; i < this.files5.length; i++) { files.push(baseImgPath + this.files5[i].FILEPATH) } uni.previewImage({ urls: files, current: e.currentTarget.dataset.index }); }, playVideo(e) { this.videoSrc = e.currentTarget.dataset.src this.modalShow = true } } } </script> <style> .selected { display: flex; align-items: center; } .selected .radio { transform: scale(0.75); margin-right: 10upx; } .cu-btn { border-radius: 0; width: 100%; height: 84upx; font-weight: bold; } .group { display: flex; align-items: center; } </style>