jszjdy-prevention-app/pages/works/hidden-danger/hidden-danger-rectify.vue

543 lines
15 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="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 v-if="pd.REJECTREASON" class="de-card-list de-list">
<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 class="text-semi">{{pd.REJECTREASON}}</text>
</view>
</view>
</view>
<view class="de-card-list de-list">
<view class="de-title">
<text class="text-semi">隐患整改</text>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title text-grey">隐患描述</view>
<textarea maxlength="-1" @input="textareaAInput" placeholder="请对隐患进行详细描述(必填项)"></textarea>
</view>
<view class="cu-form-group bb">
<view class="title">整改日期</view>
<picker mode="date" :value="RECTIFICATIONTIME" start="2015-09-01" :end="date" @change="changeDate">
<view class="picker">
{{RECTIFICATIONTIME==''?'请选择':RECTIFICATIONTIME}}
</view>
</picker>
</view>
<view class="cu-bar bg-white">
<view class="action">
整改后照片
</view>
<view class="action">
{{imgList.length}}/4
</view>
</view>
<view 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 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,baseImgPath,corpinfoId,loginUser
} from '@/common/tool.js';
export default {
data() {
return {
noClick: true,
date: '',
RECTIFICATIONTIME: '',
imgList: [],
id: '',
pd: [],
files: [],
RECTIFYDESCR: '',
basePath:basePath,
baseImgPath:baseImgPath,
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: {
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();
_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;
} 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.RECTIFYDESCR = e.detail.value
},
goSubmit() {
var _this = this;
if (!_this.RECTIFYDESCR) {
uni.showToast({
icon: 'none',
title: '请填整改描述',
duration: 1500
});
return;
}
if (!_this.RECTIFICATIONTIME) {
uni.showToast({
icon: 'none',
title: '请选择整改时间',
duration: 1500
});
return;
}
if (_this.imgList.length <= 0) {
uni.showToast({
icon: 'none',
title: '请上传整改后照片',
duration: 1500
});
return;
}
var i = 0;
_this.uploadImg(_this.imgList, i);
},
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) => {
res.data = decryptAes(res.data);
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) => {
res.data = decryptAes(res.data);
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
});
}
}
});
},
changeDate(e) {
this.RECTIFICATIONTIME = e.detail.value
},
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
});
},
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>