<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"> <view class="de-sub-title"> <text class="text-semi">{{pd.HIDDENDESCR}}</text> </view> <view class="uni-flex-item text-right"> <text class="text-semi"></text> </view> </view> <!-- <view class="de-title"> <text class="text-semi">隐患信息</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'" 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" 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_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.LEVEL}}</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.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.HIDDENPART}}</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.HIDDENTYPE_NAME}}</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="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="de-card-list de-list"> <view class="de-title"> <text class="text-semi">整改信息</text> </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.RECTIFYDESCR}}</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.RECTIFICATIONDEPTNAME}}</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.RECTIFICATIONORNAME}}</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.RECTIFICATIONTIME}}</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 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> <view class="de-card-list de-list"> <view class="de-title"> <text class="text-semi">隐患复查</text> </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" :checked="checkStatus==='1'" @click="radio('1')"></radio> <text>是</text> </view> <view class="group"> <radio class='radio' value="0" :checked="checkStatus==='0'" @click="radio('0')"></radio> <text>否</text> </view> </radio-group> </view> <view v-if="checkStatus=='0'" class="cu-form-textarea"> <view class="cu-form-title text-grey">复查驳回原因</view> <textarea maxlength="-1" @input="textareaAInput" placeholder="请对复查驳回原因进行详细描述(必填项)"></textarea> </view> </view> <view class="padding flex flex-direction"> <button 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> </view> </template> <script> import { basePath,baseImgPath,corpinfoId,loginUser } from '@/common/tool.js'; export default { data() { return { noClick: true, date: '', RECTIFICATIONTIME: '', imgList: [], id: '', pd: [], files: [], files2: [], REJECTREASON: '', basePath:basePath, baseImgPath:baseImgPath, checkStatus:'1', videoList: [], modalShow: false, videoSrc: '', } }, onLoad(e) { this.id = e.id; // let now = new Date(); // this.date = formatDate(now, 'yyyy-MM-dd'); this.getData(); }, // 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 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.files = res.data.hImgs; _this.files2 = res.data.rImgs; } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } } }); }, //图片上传 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.REJECTREASON = e.detail.value }, goSubmit() { var _this = this; if(this.checkStatus == '0'){ if (!_this.REJECTREASON) { uni.showToast({ icon: 'none', title: '请输入驳回原因', duration: 1500 }); return; } } uni.showLoading({ title: '请稍候' }) uni.request({ url: basePath + "/app/hidden/review", //提交接口 method: 'POST', dataType: 'json', header:{ 'Content-type':'application/x-www-form-urlencoded' }, data: { REJECTREASON:this.REJECTREASON, ISPASS:this.checkStatus, HIDDEN_ID: _this.id, CORPINFO_ID:loginUser.CORPINFO_ID, USER_ID:loginUser.USER_ID, }, success: (res) => { uni.hideLoading(); if ("success" == res.data.result) { 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); }else{ uni.showToast({ title: '错误', duration: 2000 }); } } }); }, uploadImg(tempFilePaths,i) { var _this = this; uni.showLoading({ title: '上传中' }) uni.uploadFile({ url: basePath + '/app/imgfiles/add', filePath: tempFilePaths[i], name: 'FFILE', formData: { 'FOREIGN_KEY': _this.id, 'TYPE': '4', CORPINFO_ID:loginUser.CORPINFO_ID, USER_ID:loginUser.USER_ID, }, success: (res) => { i++; if (tempFilePaths.length > i) { _this.uploadImg(tempFilePaths, i); } else { _this.submit(); } }, fail: (err) => { uni.hideLoading(); console.log('uploadImage fail', err); uni.showModal({ content: err.errMsg, showCancel: false }); } }) }, submit() { var _this = this; uni.request({ url: basePath + "/app/hidden/rectify", //提交接口 method: 'POST', dataType: 'json', header:{ 'Content-type':'application/x-www-form-urlencoded' }, data: { RECTIFICATIONTIME: _this.RECTIFICATIONTIME, RECTIFYDESCR: _this.RECTIFYDESCR, HIDDEN_ID: _this.id, CORPINFO_ID:loginUser.CORPINFO_ID, USER_ID:loginUser.USER_ID, }, success: (res) => { uni.hideLoading(); /* if (res.data.code == '000000000') { */ uni.showToast({ icon: 'none', title: '提交成功', duration: 1500 }); var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上一个页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({}); uni.hideLoading(); /* }else{ uni.showToast({ title: res.data.message, duration: 2000 }); } */ } }); }, changeDate(e) { this.RECTIFICATIONTIME = e.detail.value }, radio(e){ this.checkStatus = 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 }); }, playVideo(e) { this.videoSrc = e.currentTarget.dataset.src this.modalShow = true } } } </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>