qa-prevention-gwj-first-app/pages/application/hidden-danger-management/hidden-danger-record/hidden-danger-record-edit.vue

1285 lines
58 KiB
Vue
Raw 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 :class="isUps == true ? 'prevent' : ''">
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">隐患打回修改</block>
</cu-custom>
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-bar bg-white">
<view class="action asterisk">
隐患照片
</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-type="0" :data-url="imgList[index].filePath">
<image :src="imgList[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="ChooseImage(0)" v-if="imgList.length<4">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-bar bg-white">
<view class="action">
隐患视频
</view>
<view class="action">
{{videoList.length}}/1
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,vindex) in videoList" :key="vindex" @tap="ViewVideo" data-type="0" :data-url="videoList[vindex].filePath" style="background-color: #000">
<image src="/static/icon-apps/video.png" mode="aspectFill" @click="playVideo"
:data-src="videoList[vindex].filePath"></image>
<view class="cu-tag bg-red" @tap.stop="DelVideo" data-type="0" :data-index="vindex">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="chooseVideo(0)" v-if="videoList.length == 0">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-textarea margin-top">
<view class="cu-form-title text-hui asterisk">隐患描述</view>
<textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.HIDDENDESCR" placeholder="请对隐患进行详细描述(必填项)"></textarea>
</view>
<view class="cu-form-group margin-top">
<view class="title asterisk">隐患部位</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showHiddenRegionTree">{{pd.hregionName?pd.hregionName:'请选择'}}</view>
</view>
<tki-tree ref="hiddenRegionTree"
:selectParent=false
:range="hiddenRegionTreeList"
rangeKey="name"
@confirm="hiddenRegionTreeCon"
@cancel="hiddentreeCancel">
</tki-tree>
</view>
<view class="cu-form-group margin-top">
<view class="title asterisk">隐患级别</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showHiddenLevenTreeTree">{{pd.HIDDENLEVELNAME?pd.HIDDENLEVELNAME:'请选择'}}</view>
</view>
<tki-tree ref="hiddenLevenTree"
:selectParent=false
:range="levelList"
rangeKey="name"
@confirm="hiddenLevenConfirm"
@cancel="hiddentreeCancel"></tki-tree>
</view>
<view class="cu-form-group margin-top">
<view class="title asterisk">隐患类型</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showHiddenType1TreeTree('1')">{{pd.HIDDENTYPENAME?pd.HIDDENTYPENAME:'请选择'}}</view>
</view>
<tki-tree ref="hiddenType1Tree"
:selectParent=false
:range="hiddenTypeList"
rangeKey="name"
@confirm="hiddenType1Confirm"
@cancel="hiddentreeCancel">
</tki-tree>
</view>
<!--<view class="cu-form-group margin-top">
<view class="title">隐患类型2</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showHiddenType1TreeTree('2')">{{pd.HIDDENTYPE2NANEM?pd.HIDDENTYPE2NANEM:'请选择'}}</view>
</view>
<tki-tree ref="hiddenType2Tree"
:selectParent=false
:range="hiddenTypeList"
rangeKey="name"
@confirm="hiddenType2Confirm"
@cancel="hiddentreeCancel"></tki-tree>
</view>-->
<view class="cu-form-group margin-top">
<view class="title text-hui asterisk">是否立即整改</view>
<radio-group class="selected">
<view v-if="pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'" class="group mr20">
<radio class='radio' value="1" :checked="RECTIFICATIONTYPE==1" @click="radioType(1)"></radio>
<text>是</text>
</view>
<view class="group">
<radio class='radio' value="2" :checked="RECTIFICATIONTYPE==2" @click="radioType(2)"></radio>
<text>否</text>
</view>
</radio-group>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2 && pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title ">整改责任部门</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showZgTree">{{pd.RECTIFICATIONDEPTNAME?pd.RECTIFICATIONDEPTNAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="zgtreeConfirm"
@cancel="zgtreeCancel"></tki-tree>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2 && rectificationUserList.length>0 && pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title">整改责任人</view>
<picker @change="PickerZgr" :value="uindex" :range="rectificationUserList" range-key="NAME">
<view class="picker">
{{pd.RECTIFICATIONORNAME?pd.RECTIFICATIONORNAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2 && pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title">整改期限</view>
<picker mode="date" :value="pd.RECTIFICATIONDEADLINE" :start="rectifyPlanCompletionStartTime" @change="changeDate">
<view class="picker">
{{pd.RECTIFICATIONDEADLINE?pd.RECTIFICATIONDEADLINE:'请选择'}}
</view>
</picker>
</view>
<!-- <view class="cu-form-group margin-top" v-if="pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">-->
<!-- <view class="title asterisk">隐患确认人部门</view>-->
<!-- <view class="picker-tree-box">-->
<!-- <view class="picker-tree" @tap="showConTreeTree">{{pd.confirmDeptName?pd.confirmDeptName:'请选择'}}</view>-->
<!-- </view>-->
<!-- <tki-tree ref="confirmTree"-->
<!-- :selectParent=true-->
<!-- :range="treeNode"-->
<!-- rangeKey="name"-->
<!-- @confirm="getConfirmUser"-->
<!-- @cancel="hiddentreeCancel"></tki-tree>-->
<!-- </view>-->
<view class="cu-form-group margin-top" v-if="pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title asterisk">隐患确认人</view>
<picker @change="setConUser" :value="conUserIndex" :range="confirUserAllList" range-key="NAME">
<view class="picker">
{{pd.conUserName?pd.conUserName:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top">
<view class="title asterisk">隐患发现时间</view>
<ruiDatePicker fields="minute" :value="pd.DISCOVERYTIME || '请选择'"
@change="changeDiscoverDate"></ruiDatePicker>
</view>
<view class="cu-form-group margin-top">
<view class="title text-hui asterisk">是否相关方</view>
<radio-group class="selected">
<view class="group mr20">
<radio class='radio' value="1" :checked="ISRELEVANT==1" @click="radioISRELEVANT(1)"></radio>
<text>是</text>
</view>
<view class="group">
<radio class='radio' value="2" :checked="ISRELEVANT==2" @click="radioISRELEVANT(2)"></radio>
<text>否</text>
</view>
</radio-group>
</view>
<view class="cu-form-textarea margin-top">
<view class="title">隐患位置描述</view>
<textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.POSITIONDESC" placeholder="请对隐患位置进行详细描述"></textarea>
</view>
<view class="cu-form-textarea margin-top">
<view class="title">打回意见及时间</view>
<view class="" v-for="(item,index) of repulsecause">
<!-- <textarea maxlength="-1" :disabled="true" v-model="item.REPULSE_CAUSE" placeholder="请对隐患位置进行详细描述"></textarea>-->
<view>{{item.REPULSE_CAUSE}}</view>
<view>{{item.OPERATTIME}}</view>
<!-- <textarea maxlength="-1" :disabled="true" v-model="item.OPERATTIME" placeholder="请对隐患位置进行详细描述"></textarea>-->
</view>
</view>
<view class="cu-form-group margin-top">
<view class="title">隐患上报位置:</view>
<button class="cu-btn bg-green shadow" @tap="showMapModal">定位</button>
</view>
<view class="cu-form-group" v-if="pd.LATITUDE">
<view class="title">经度:</view>
<view>{{pd.LATITUDE}}</view>
</view>
<view class="cu-form-group" v-if="pd.LONGITUDE">
<view class="title">纬度:</view>
<view>{{pd.LONGITUDE}}</view>
</view>
<view class="add_pard_box">
<view class="add_pard_btns">
<view class="add_pard_b">
<button class="cu-btn round bg-blue" @click="addOther">添加</button>
</view>
</view>
<view class="add_pard_item" v-for="(item,index) of other">
<view class="add_pard_del" v-if="index>0" @click="removeOther(index)">
<text class="cuIcon-roundclosefill text-red f40"></text>
</view>
<view class="cu-form-group">
<view class="title">隐患发现人部门</view>
<view class="picker-tree-box">
<view class="picker-tree"
@tap="showConTree(index)">{{other[index].DEPARTMENT_NAME?other[index].DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree :ref="'tkiConfirmTree'+index"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="contreeConfirm($event,index)"></tki-tree>
</view>
<view class="cu-form-group">
<view class="title">隐患发现人</view>
<picker @change="PickerYsr($event,index)" :value="other[index].index"
@click="haveUser(otherUserList[index])"
:disabled="otherUserList[index] ==null || otherUserList[index].length==0" :range="otherUserList[index]" range-key="NAME">
<view class="picker">
{{other[index].USER_NAME?other[index].USER_NAME:'请选择'}}
</view>
</picker>
</view>
</view>
<view class="add_pard_item" v-for="(item,index) of hiddenFindPeople">
<view class="add_pard_del" v-if="index>0" @click="removeOther(index)">
<text class="cuIcon-roundclosefill text-red f40"></text>
</view>
</view>
</view>
<view class="cu-form-textarea margin-top" v-if="RECTIFICATIONTYPE==1">
<view class="cu-form-title text-hui asterisk">整改描述</view>
<textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.RECTIFYDESCR" placeholder="请对隐患进行整改描述(必填项)"></textarea>
</view>
<view class="cu-bar bg-white margin-top" v-if="RECTIFICATIONTYPE==1">
<view class="action">
整改后图片
</view>
<view class="action">
{{imgList1.length}}/4
</view>
</view>
<view class="cu-form-group" v-if="RECTIFICATIONTYPE==1">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in imgList1" :key="index" @tap="ViewImage" data-type="1" :data-url="imgList1[index].filePath">
<image :src="imgList1[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg" data-type="1" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="ChooseImage(1)" v-if="imgList1.length<4">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
</view>
<view class="padding flex flex-direction">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goSubmit)">提交</button>
</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 {
basePath,corpinfoId,deptId,loginUser,formatDate,loginSession,baseImgPath
} from '@/common/tool.js';
import tkiTree from "@/components/select-tree/select-tree.vue"
import gcoord from '@/common/gcoord.js'
import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue';
export default {
components: {
tkiTree , ruiDatePicker
},
data() {
return {
isUps:false,
msg:'add',
riskId:'',
itemId:'',
index:'',
noClick:true,
pd:{"RECTIFICATIONTYPE":2 , DISCOVERYTIME :formatDate(new Date(), 'yyyy-MM-dd hh:mm'),ISRELEVANT:1,LATITUDE:'',LONGITUDE:''},
imgList: [],
imgList1: [],
repulsecause: [], //打回意见
HIDDENDESCR:'',//隐患描述
HIDDENPART:'',//隐患部位
modalName: null,
id:'',
CHECK_CONTENT:'',
checkId:'',
RECTIFYDESCR:'',//整改描述
RECTIFICATIONTYPE: '2',//是否立即
ISRELEVANT: '2', //是否相关方
treeNode:[],//部门下拉数据
RECTIFICATIONDEPT:'',//整改部门
RECTIFICATIONDEPTNAME:'请选择',//整改部门
CHECKDEPT:'',//验收部门
CHECKDEPTNAME:'请选择',//验收部门
rectificationUserList:[],
RECTIFICATIONOR:'',//整改人
uindex: -1,
conUserIndex :-1,
lindex: -1,
levelList:[],
tindex: -1,
hiddenTypeList:[],
HIDDENLEVEL:'',//隐患级别
RECTIFICATIONDEADLINE:'',//整改期限
rectifyPlanCompletionStartTime:'',
LISTMANAGER_ID:'',
CHECKRECORD_ID:'',
hiddenRegionTreeList:[],
confirUserAllList:[],
otherUserList:[] ,
other:[],
todayDate: formatDate(new Date(), 'yyyy-MM-dd hh:mm'),
videoList:[],
modalShow: false,
videoSrc: '',
hiddenFindPeople:[]
}
},
onLoad(event){
let now = new Date();
var tomorrow=now.setDate(now.getDate()+1);
tomorrow=new Date(tomorrow);
this.rectifyPlanCompletionStartTime = formatDate(tomorrow, 'yyyy-MM-dd');
this.pd.HIDDEN_ID = event.id;
this.CHECKRECORD_ID = event.CHECKRECORD_ID;
if(this.pd.HIDDEN_ID){
this.msg="edit";
this.getData();
}else {
// this.pd.CHECK_CONTENT = JSON.parse(decodeURIComponent(event.checkContent));
// this.riskId = JSON.parse(decodeURIComponent(event.riskId));
// this.itemId = JSON.parse(decodeURIComponent(event.itemId));
// this.index = event.index;
this.LISTMANAGER_ID = event.listId;
}
this.getConfirmUser();
this.getDept();
this.myOther();
loginSession();
},
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.pd.HIDDEN_ID,
},
success: (res) => {
if ("success" == res.data.result) {
uni.hideLoading();
_this.pd = res.data.pd; //参数map
_this.ISRELEVANT = res.data.pd.ISRELEVANT
_this.RECTIFICATIONTYPE=_this.pd.RECTIFICATIONTYPE;
let files=res.data.hImgs;
for(var i=0;i<files.length;i++){
let img={};
img.filePath=baseImgPath+files[i].FILEPATH;
img.id=files[i].IMGFILES_ID;
_this.imgList.push(img);
}
let files1=res.data.rImgs;
for(var i=0;i<files1.length;i++){
let img={};
img.filePath=baseImgPath+files[i].FILEPATH;
img.id=files[i].IMGFILES_ID;
_this.imgList1.push(img);
}
_this.repulsecause = res.data.repulsecause
_this.getUserList();
} else if ("exception" == data.result) {
uni.showToast({
title: '',
duration: 2000
});
}
}
});
},
getDept() {
var _this = this;
uni.request({
url: basePath + '/app/sys/listTree',//
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
CORPINFO_ID : corpinfoId,
},
success: (res) => {
if("success" == res.data.result){
_this.treeNode=eval(res.data.zTreeNodes);
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
// 取消回调事件
zgtreeCancel(e) {
this.isUps=false;
},
// 确定回调事件
zgtreeConfirm(e) {
this.isUps=false;
this.pd.RECTIFICATIONDEPT=e[0].id;
this.pd.RECTIFICATIONDEPTNAME=e[0].name;
this.uindex=-1;
this.pd.RECTIFICATIONOR='';
this.pd.RECTIFICATIONORNAME='';
this.$forceUpdate();//强制刷新
this.getUserList();
},
// 显示树形选择器
showZgTree() {
this.isUps=false
this.$refs.tkiTree._show();
},
// 确定回调事件
ystreeConfirm(e) {
this.pd.CHECKDEPT=e[0].id;
this.pd.CHECKDEPTNAME=e[0].name;
this.$forceUpdate();//强制刷新
},
// 显示树形选择器
showYsTree() {
this.$refs.tkiTree1._show();
},
//获取人员列表
getUserList(){
//发送 post 请求
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
url: basePath+'/app/sys/listUser',
data: {DEPARTMENT_ID:_this.pd.RECTIFICATIONDEPT, NOMAIN:'1',tm:new Date().getTime()},
success: function(res){
if("success" == res.data.result){
_this.rectificationUserList=res.data.userList;
}else{
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
})
},
PickerZgr(e) {
this.uindex = e.detail.value;
this.pd.RECTIFICATIONOR=this.rectificationUserList[this.uindex].USER_ID;
this.pd.RECTIFICATIONORNAME=this.rectificationUserList[this.uindex].NAME;
this.$forceUpdate();//强制刷新
},
//获取数据字典数据
levelPickerChange(e) {
this.lindex = e.detail.value;
this.pd.HIDDENLEVEL=this.levelList[this.lindex].BIANMA;
this.pd.HIDDENLEVELNAME=this.levelList[this.lindex].NAME;
this.$forceUpdate();//强制刷新
},
typePickerChange(e) {
this.tindex = e.detail.value;
this.pd.HIDDENTYPE=this.hiddenTypeList[this.tindex].BIANMA;
this.pd.HIDDENTYPENAME=this.hiddenTypeList[this.tindex].NAME;
this.$forceUpdate();//强制刷新
},
changeDate(e) {
this.pd.RECTIFICATIONDEADLINE = e.detail.value
this.$forceUpdate();//强制刷新
},
//图片上传
ChooseImage(e) {
var _this = this;
var ss=4-this.imgList.length;
uni.chooseImage({
count: ss, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera','album'], //从相册选择
success: (res) => {
for (let i = 0; i < res.tempFilePaths.length; i++) {
if (e == 0) {
let img = {};
img.id = '';
img.filePath = res.tempFilePaths[i];
this.imgList.push(img)
} else {
let img = {};
img.id = '';
img.filePath = res.tempFilePaths[i];
this.imgList1.push(img)
}
}
}
});
},
chooseVideo(e){
var _this = this;
uni.chooseVideo({
maxDuration:60,
count: 1, //默认9
// sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera','album'], //从相册选择
success: (res) => {
console.info(res)
if(e==0) {
let img={};
img.id='';
img.filePath=res.tempFilePath;
this.videoList.push(img)
}else{
let img={};
img.id='';
img.filePath=res.tempFilePaths[0];
this.videoList.push(img)
}
}
});
},
ViewVideo(e){
},
DelVideo(e){
uni.showModal({
title: '秦港-双基双控双控',
content: '确定要删除这个视频吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
this.videoList = []
}
}
})
},
ViewImage(e) {
if(e.currentTarget.dataset.type==0) {
let files =[];
for(var i=0;i<this.imgList.length;i++){
files.push(this.imgList[i].filePath)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
}else{
let files =[];
for(var i=0;i<this.imgList1.length;i++){
files.push(this.imgList1[i].filePath)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
}
},
DelImg(e) {
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '-',
content: '',
cancelColor:"#000000",
cancelText: '',
confirmText: '',
success: res => {
if (res.confirm) {
if(e.currentTarget.dataset.type==0) {
if(_this.imgList[i].id) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
IMGFILES_ID: _this.imgList[i].id,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.imgList.splice(i, 1)
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else {
this.imgList.splice(e.currentTarget.dataset.index, 1)
}
}else{
if(_this.imgList1[i].id) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
IMGFILES_ID: _this.imgList1[i].id,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.imgList1.splice(i, 1)
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else {
this.imgList1.splice(e.currentTarget.dataset.index, 1)
}
}
}
}
})
},
textareaAInput(e){
this.pd.HIDDENDESCR= e.detail.value
},
textareaBInput(e){
this.pd.HIDDENPART= e.detail.value
},
textareaCInput(e){
this.pd.RECTIFYDESCR= e.detail.value
},
goSubmit() {
var _this = this;
// if (!_this.pd.CHECKDEPT) {
// uni.showToast({
// icon: 'none',
// title: '请选择验收部门',
// duration: 1500
// });
// return;
// }
if (_this.imgList.length <= 0) {
uni.showToast({
icon: 'none',
title: '请上传隐患图片',
duration: 1500
});
return;
}
if (!_this.pd.conUserId) {
uni.showToast({
icon: 'none',
title: '请选择确认人',
duration: 1500
});
return;
}
if (!_this.pd.HIDDENDESCR) {
uni.showToast({
icon: 'none',
title: '请填隐患描述',
duration: 1500
});
return;
}
// if (!_this.pd.POSITIONDESC) {
// uni.showToast({
// icon: 'none',
// title: '请填隐患位置描述',
// duration: 1500
// });
// return;
// }
if (!_this.pd.HIDDENPART) {
uni.showToast({
icon: 'none',
title: '请填隐患部位',
duration: 1500
});
return;
}
if (!_this.pd.HIDDENLEVEL) {
uni.showToast({
icon: 'none',
title: '请选择隐患级别',
duration: 1500
});
return;
}
if (!_this.pd.HIDDENTYPE) {
uni.showToast({
icon: 'none',
title: '请选择隐患类型',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 1 && !_this.pd.RECTIFYDESCR) {
uni.showToast({
icon: 'none',
title: '请填整改描述',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 1 && _this.imgList1.length <= 0) {
uni.showToast({
icon: 'none',
title: '请上传整改后图片',
duration: 1500
});
return;
}
if (!_this.pd.ISRELEVANT) {
uni.showToast({
icon: 'none',
title: '请选择是否相关方',
duration: 1500
});
return;
}
// if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONDEPT && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') {
// uni.showToast({
// icon: 'none',
// title: '请选择整改部门',
// duration: 1500
// });
// return;
// }
// if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONOR && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') {
// uni.showToast({
// icon: 'none',
// title: '请选择整改人',
// duration: 1500
// });
// return;
// }
// if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONDEADLINE && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') {
// uni.showToast({
// icon: 'none',
// title: '请选择整改期限',
// duration: 1500
// });
// return;
// }
var fileList = [];
for (var i = 0; i < _this.imgList.length; i++) {
if(!_this.imgList[i].id){
var file = {};
file.type = 3;
file.filePath = _this.imgList[i].filePath;
fileList.push(file);
}
}
if (_this.RECTIFICATIONTYPE == 1){
for (var i = 0; i < _this.imgList1.length; i++) {
if(!_this.imgList1[i].id) {
var file = {};
file.type = 4;
file.filePath = _this.imgList1[i].filePath;
fileList.push(file);
}
}
}
if(_this.videoList.length>0){
var file = {};
file.type = 102;
file.filePath = _this.videoList[0].filePath;
fileList.push(file);
}
new Promise((resolve, reject) => {
_this.submit().then(() => {resolve();})
}).then(() => {
var i=0;
_this.uploadImg(fileList,i)
}).then(() => {
var pages = getCurrentPages(); // 获取当前页面栈
var prePage = pages[pages.length - 2]; // 上一个页面
// var task = prePage.$vm.list[_this.index];
if(_this.index) {
prePage.$vm.initflag = true; // A 页面 init方法 为true
// prePage.$vm.list[_this.index].ISNORMAL = 1;
// prePage.$vm.list[_this.index].HIDDEN_ID = _this.pd.HIDDEN_ID;
}
uni.navigateBack({});
uni.hideLoading();
})
},
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].filePath,
name: 'FFILE',
formData: {
'TYPE': tempFilePaths[i].type,
'FOREIGN_KEY': _this.pd.HIDDEN_ID
},
success: (res) => {
i++;
if (tempFilePaths.length > i) {
_this.uploadImg(tempFilePaths, i);
} else {
uni.hideLoading();
resolve();
}
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
})
},
submit(){
var _this = this;
return new Promise((resolve, reject) => {
uni.request({
url: basePath + '/app/hidden/edit',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
HIDDEN_ID: _this.pd.HIDDEN_ID,
SOURCE: '1',
//STATE:'1',
HIDDENDESCR: _this.pd.HIDDENDESCR,
HIDDENPART: _this.pd.HIDDENPART,
LATITUDE: _this.pd.LATITUDE,
ISRELEVANT: _this.pd.ISRELEVANT,
POSITIONDESC: _this.pd.POSITIONDESC,
LONGITUDE: _this.pd.LONGITUDE,
RECTIFYDESCR: _this.pd.RECTIFYDESCR ? _this.pd.RECTIFYDESCR : '',
RECTIFICATIONDEADLINE: _this.pd.RECTIFICATIONDEADLINE ? _this.pd.RECTIFICATIONDEADLINE : '',
RECTIFICATIONTYPE: _this.RECTIFICATIONTYPE,
RECTIFICATIONOR: _this.pd.RECTIFICATIONOR,
HIDDENTYPE: _this.pd.HIDDENTYPE,
HIDDENLEVEL: _this.pd.HIDDENLEVEL,
RECTIFICATIONDEPT: _this.pd.RECTIFICATIONDEPT,
// CHECKDEPT:_this.pd.CHECKDEPT?_this.pd.CHECKDEPT:'',
// CHECK_CONTENT:_this.pd.CHECK_CONTENT,
CORPINFO_ID: corpinfoId,
HIDDENFINDDEPT: deptId,
CREATOR: loginUser.USER_ID,
USERNAME: loginUser.NAME,
STATE: _this.pd.STATE,
DISCOVERYTIME: _this.pd.DISCOVERYTIME, //gwj 发现时间
other: JSON.stringify(this.other), //gwj 发现人
CONFIRM_USER: _this.pd.conUserId, //gwj 隐患确认人
HIDDENTYPE2: _this.pd.HIDDENTYPE2, //gwj 隐患类型2 HIDDENTYPE2
},
success: (res) => {
if ("success" == res.data.result) {
_this.pd.HIDDEN_ID = res.data.pd.HIDDEN_ID;
uni.navigateBack({
delta: 1
});
uni.hideLoading();
resolve()
} else {
uni.showToast({
title: res.data.msaesge,
duration: 2000
});
}
}
});
})
},
radioType(e){
this.RECTIFICATIONTYPE = e
},
radioISRELEVANT(e){
this.pd.ISRELEVANT = e
},
showHiddenRegionTree(){
var _this = this
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
url: basePath+'/app/hidden/getTreehiddenRegionListAll',
data: {
CORPINFO_ID: corpinfoId,
tm:new Date().getTime()
},
success: function(res){
if("success" == res.data.result){
var json = res.data.zTreeNodes
_this.hiddenRegionTreeList = JSON.parse(json) ;
_this.$forceUpdate();//强制刷新
}else{
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
})
this.isUps=false
this.$refs.hiddenRegionTree._show();
},
hiddenRegionTreeCon(e){
this.isUps=false;
this.pd.HIDDENPARTNAME=e[0].name;
this.pd.HIDDENPART=e[0].id;
this.$forceUpdate();//强制刷新
}, // 取消回调事件
hiddentreeCancel(e) {
this.isUps=false;
},
showHiddenLevenTreeTree(){
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + '/dictionaries/listSelectTreeByTkiTree?tm=' + new Date().getTime(),
data: {DICTIONARIES_ID: '5e7cf8620ba54ad89719d0be62133c7a'},
dataType: 'json',
success: function (res) {
// _this.levelList = JSON.parse(data.zTreeNodes) res.data.zTreeNodes;
var jons = res.data.zTreeNodes ;
// var json2 = jons.replace('nodes', 'children');
// console.info(json2)
_this.levelList = JSON.parse(jons) ;
console.info(_this.levelList)
}
});
this.isUps=false
this.$refs.hiddenLevenTree._show();
},
// 确定回调事件
hiddenLevenConfirm(e) {
this.isUps=false;
this.pd.HIDDENLEVEL=e[0].id;
this.pd.HIDDENLEVELNAME=e[0].name;
},
showHiddenType1TreeTree(type){
var dicID = '3babc15144444bdc8d763d0af2bdfff6'
if('2' == type){
dicID = '18c0a9aea6e54feab9f4ab3f46e0bc86'
}
var _this = this;
if(_this.hiddenTypeList){
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + '/dictionaries/listSelectTreeByTkiTree?tm=' + new Date().getTime(),
data: {DICTIONARIES_ID: dicID},
dataType: 'json',
success: function (res) {
var jons = res.data.zTreeNodes ;
_this.hiddenTypeList = JSON.parse(jons) ;
console.log(_this.hiddenTypeList)
}
});
}
this.isUps=false
if('1' == type){
this.$refs.hiddenType1Tree._show();
}
if('2' == type){
this.$refs.hiddenType2Tree._show();
}
},
hiddenType1Confirm(e){
this.$set(this.pd,'HIDDENTYPE1NANEM',e[0].name)
this.$set(this.pd,'HIDDENTYPE',e[0].id)
this.isUps=false;
},
hiddenType2Confirm(e){
this.$set(this.pd,'HIDDENTYPE2NANEM',e[0].name)
this.$set(this.pd,'HIDDENTYPE2',e[0].id)
this.isUps=false;
},
showConTreeTree(){
this.isUps=false
this.$refs.confirmTree._show();
},
getConfirmUser(e) {
this.conUserIndex =-1
this.isUps=false;
//发送 post 请求
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
url: basePath+'/app/user/getHiddenConfirm',
data: {
corpinfoId:corpinfoId,
tm:new Date().getTime()
},
success: function(res){
if("success" == res.data.result){
_this.confirUserAllList=res.data.userList;
_this.$forceUpdate();//强制刷新
}else{
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
})
},
setConUser(e){
var index = e.detail.value;
if(this.confirUserAllList.length ==0){
uni.showToast({
icon:"none",
title: '请先选择有人员的部门',
duration: 2000
});
}else{
this.pd.conUserId=this.confirUserAllList[index].USER_ID;
this.pd.conUserName=this.confirUserAllList[index].NAME;
this.$forceUpdate();//强制刷新
}
},
changeDiscoverDate(e) {
this.pd.DISCOVERYTIME = e
this.$forceUpdate();//强制刷新
},
addOther(){
var _this=this;
let o = {"DEPARTMENT_ID":'',"USER_ID":'',"DEPARTMENT_NAME":'',"USER_NAME":'',index:-1};
_this.other.push(o);
let index=_this.other.length-1;
_this.otherUserList[index]=[];
},
removeOther(index){
this.other.splice(index,1);
this.otherUserList.splice(index,1);
},
showConTree(index){
this.$refs['tkiConfirmTree'+index][0]._show();
},
contreeConfirm(e,index) {
this.other[index].DEPARTMENT_ID=e[0].id;
this.other[index].DEPARTMENT_NAME=e[0].name;
this.other[index].USER_ID='';
this.other[index].USER_NAME='';
this.other[index].index=-1;
this.getConUserList(this.other[index].DEPARTMENT_ID,index);
this.$forceUpdate();//强制刷新
},
PickerYsr(e,index) {
this.other[index].index = e.detail.value;
this.other[index].USER_ID=this.otherUserList[index][e.detail.value]?this.otherUserList[index][e.detail.value].USER_ID:'';
this.other[index].USER_NAME=this.otherUserList[index][e.detail.value]?this.otherUserList[index][e.detail.value].NAME:'';
this.$forceUpdate();//强制刷新
},
haveUser(e){
if(e == null || e.length == 0){
uni.showToast({
icon:"none",
title: '请先选择有人员的部门',
duration: 2000
});
}
},
getConUserList(DEPARTMENT_ID,i){
//发送 post 请求
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
url: basePath+'/app/sys/listUser',
data: {
DEPARTMENT_ID:DEPARTMENT_ID, NOMAIN:'1',
LOGINUSERID:loginUser.USER_ID,
NOSELF:'1',
tm:new Date().getTime()
},
success: function(res){
if("success" == res.data.result){
if(i>-1){
_this.otherUserList[i]=[];
_this.otherUserList[i]=res.data.userList;
_this.$forceUpdate();//强制刷新
}else{
_this.rectificationUserList=res.data.userList;
}
}else{
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
})
},
myOther(){
var _this=this;
let o = {"DEPARTMENT_ID":loginUser.DEPARTMENT_ID,"USER_ID":loginUser.USER_ID,"DEPARTMENT_NAME":loginUser.DEPARTMENT_NAME,"USER_NAME":loginUser.NAME,index:-1};
_this.other.push(o);
let index=_this.other.length-1;
_this.otherUserList[index]=[];
},
/** 坐标定位 */
showMapModal() {
var _this = this
uni.navigateTo({
url: '/pages/map/map',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function (e) {
_this.$set(_this.pd,'LATITUDE',e.data.latitude)
_this.$set(_this.pd,'LONGITUDE',e.data.longitue)
}
},
})
},
playVideo(e) {
this.videoSrc = e.currentTarget.dataset.src
this.modalShow = true
}
}
}
</script>
<style>
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.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;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
color: #666;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.asterisk:before{
content: "*";
color: red;
vertical-align: sub;
margin-right: 5px;
}
</style>