jszjdy-prevention-app/pages/application/hidden-danger-management/hidden-danger-check/hidden-danger-check-detail.vue

773 lines
21 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view>
<view class="tips_text">
严禁在本互联网非涉密平台处理传输国家秘密和工作秘密请确认扫描传输的文件资料不涉及国家秘密和工作秘密
</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="wui-form-title">
<text>{{pd.HIDDENDESCR}}</text>
</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=='3'">隐患排查</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-textarea">
<view class="title">
<text>隐患描述</text>
</view>
<view class="cu-form-p">
<text>{{pd.HIDDENDESCR}}</text>
</view>
</view> -->
<view class="cu-form-group">
<view class="title">
<text>隐患编码</text>
</view>
<view>
<text>{{pd.CODE}}</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 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-textarea">
<view class="title">
<text>整改描述</text>
</view>
<view class="cu-form-p">
<text>{{pd.RECTIFYDESCR}}</text>
</view>
</view>
<view class="cu-form-group">
<view class="title">
<text>整改部门</text>
</view>
<view>
<text>{{pd.RECTIFICATIONDEPTNAME}}</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="de-sub-content">
<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="2015-09-01" @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="ChooseImage" 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"></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 { decryptAes } from "@/common/aesUtil";
import {
basePath,
loginUserId,
loginSession,
baseImgPath,
corpinfoId,
loginUser
} from '@/common/tool.js';
export default {
data() {
return {
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: '',
}
},
onLoad(e) {
console.log(e,'3333')
this.id = e.id;
// let now = new Date();
// this.date = formatDate(now, 'yyyy-MM-dd');
this.HIDDEN_RECORD_ID = e.HIDDEN_RECORD_ID
this.getData();
loginSession();
},
// filters: {
// formatDate(time) {
// time = time * 1
// let date = new Date(time)
// return formatDate(date, 'yyyy-MM-dd hh:mm')
// }
// },
methods: {
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) => {
res.data = decryptAes(res.data);
if ("success" == res.data.result) {
uni.hideLoading();
console.log(res.data.pd,'111111')
_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.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
});
}
}
});
},
//图片上传
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) => {
res.data = decryptAes(res.data);
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,
HIDDEN_RECORD_ID: this.pd.HIDDEN_RECORD_ID || '',
CHECKOR: loginUserId,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
res.data = decryptAes(res.data);
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>