<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-form-textarea"> <view class="cu-form-title text-hui">检查内容</view> <view class="f24 text-black"> {{pd.CHECK_CONTENT}} </view> </view> <view class="cu-bar bg-white margin-top"> <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" 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">隐患描述</view> <textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.HIDDENDESCR" placeholder="请对隐患进行详细描述(必填项)"></textarea> </view> <view class="cu-form-group margin-top"> <view class="title">隐患部位</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.HIDDENTYPENAME2?pd.HIDDENTYPENAME2:'请选择'}} </view> </view> <tki-tree ref="hiddenType2Tree" :selectParent=false :range="hiddenTypeList" rangeKey="name" @confirm="hiddenType2Confirm" @cancel="hiddenType2Cancel"></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> <picker @change="setConUser" :value="uindex" :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 || '请选择'" start="2010-01-01 00:00:00" :end="this.TIME" @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 text-hui">隐患位置描述</view> <textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.POSITIONDESC" placeholder="请对隐患位置进行详细描述(必填项)"></textarea> </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 && pd.LATITUDE != 'undefined' "> <view class="title">经度:</view> <view>{{pd.LATITUDE}}</view> </view> <view class="cu-form-group" v-if="pd.LONGITUDE && pd.LONGITUDE != 'undefined'"> <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> <view class="cu-form-textarea margin-top" v-if="RECTIFICATIONTYPE==1"> <view class="cu-form-title text-hui">整改描述</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 ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue'; export default { components: { tkiTree, ruiDatePicker }, data() { return { isUps: false, msg: 'add', riskId: '', itemId: '', LISTMANAGER_ID: '', index: '', noClick: true, pd: { "RECTIFICATIONTYPE": 2, DISCOVERYTIME: '', LATITUDE: '', LONGITUDE: '', ISRELEVANT:'1', conUserId: '' }, imgList: [], imgList1: [], HIDDENDESCR: '', //隐患描述 HIDDENPART: '', //隐患部位 modalName: null, id: '', CHECK_CONTENT: '', checkId: '', RECTIFYDESCR: '', //整改描述 RECTIFICATIONTYPE: 2, //是否立即 ISRELEVANT: '2', //是否相关方 treeNode: [], //部门下拉数据 RECTIFICATIONDEPT: '', //整改部门 RECTIFICATIONDEPTNAME: '请选择', //整改部门 CHECKDEPT: '', //验收部门 CHECKDEPTNAME: '请选择', //验收部门 confirmDept: '', hregionDeptName: '请选择', rectificationUserList: [], RECTIFICATIONOR: '', //整改人 uindex: -1, lindex: -1, levelList: [], tindex: -1, hiddenTypeList: [], HIDDENLEVEL: '', //隐患级别 RECTIFICATIONDEADLINE: '', //整改期限 rectifyPlanCompletionStartTime: '', todayDate: formatDate(new Date(), 'yyyy-MM-dd hh:mm'), TIME: formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss'), confirUserAllList: [], otherUserList: [], other: [], hiddenRegionTreeList: [], videoList: [], modalShow: false, videoSrc: '' } }, 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.HIDDEN_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.LISTMANAGER_ID = JSON.parse(decodeURIComponent(event.LISTMANAGER_ID)); this.index = event.index; this.pd.DISCOVERYTIME = formatDate(new Date(), 'yyyy-MM-dd hh:mm') this.myOther(); } this.getDept(); this.getLevel(); this.getConfirmUser() // this.getHiddenType(); 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 + files1[i].FILEPATH; img.id = files1[i].IMGFILES_ID; _this.imgList1.push(img); } _this.getUserList(); for (var i = 0; i < res.data.hiddenVideo.length; i++) { let video = {}; video.filePath = baseImgPath + res.data.hiddenVideo[i].FILEPATH; video.id = res.data.hiddenVideo[i].IMGFILES_ID; _this.videoList.push(video); } for (var i = 0; i < res.data.hiddenFindPeople.length; i++) { let o = { "DEPARTMENT_ID": res.data.hiddenFindPeople[i].DEPARTMENT_ID, "USER_ID": res.data.hiddenFindPeople[i].USER_ID, "DEPARTMENT_NAME": res.data.hiddenFindPeople[i].deptName, "USER_NAME": res.data.hiddenFindPeople[i].NAME, index: (i - 1) }; _this.other.push(o) } } 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 }); } } }); }, // 确定回调事件 zgtreeConfirm(e) { this.isUps = false; this.pd.RECTIFICATIONDEPT = e[0].id; this.pd.RECTIFICATIONDEPTNAME = e[0].name; this.pd.confirmDept = e[0].id; this.pd.hregionDeptName = e[0].name; this.uindex = -1; this.pd.RECTIFICATIONOR = ''; this.pd.RECTIFICATIONORNAME = ''; this.$forceUpdate(); //强制刷新 this.getUserList(); }, // 取消回调事件 zgtreeCancel(e) { this.isUps = false; }, // 显示树形选择器 showZgTree() { this.isUps = true 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(); //强制刷新 }, //获取数据字典数据 getLevel: function() { // var _this = this; // uni.request({ // method: 'POST', // dataType: 'json', // header: { // 'Content-type': 'application/x-www-form-urlencoded' // }, // url: basePath + '/dictionaries/getLevels?tm=' + new Date().getTime(), // data: {DICTIONARIES_ID: '5e7cf8620ba54ad89719d0be62133c7a'}, // dataType: 'json', // success: function (res) { // _this.levelList = res.data.list; // } // }); }, 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(); //强制刷新 }, radioISRELEVANT(e){ this.pd.ISRELEVANT = e }, //图片上传 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) } } } }); }, ViewImage(e) { console.info(e.currentTarget.dataset.type) 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.POSITIONDESC == undefined){ _this.pd.POSITIONDESC = '' } if(_this.pd.RECTIFICATIONDEPT == undefined){ _this.pd.RECTIFICATIONDEPT = '' } if(_this.pd.RECTIFICATIONOR == undefined){ _this.pd.RECTIFICATIONOR = '' } if(_this.pd.HIDDENPART == undefined){ _this.pd.HIDDENPART = '' } if (_this.imgList.length <= 0) { uni.showToast({ icon: 'none', title: '请上传隐患图片', duration: 1500 }); return; } if (!_this.pd.HIDDENDESCR) { uni.showToast({ icon: 'none', title: '请填隐患描述', duration: 1500 }); return; } if(!_this.pd.conUserId && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002'){ 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.pd.HIDDENTYPE2) { uni.showToast({ icon: 'none', title: '请选择隐患类型2', 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.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') { uni.showToast({ icon: 'none', title: '请选择整改部门', duration: 1500 }); return; } if (_this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') { uni.showToast({ icon: 'none', title: '请选择整改人', duration: 1500 }); return; } if (_this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') { uni.showToast({ icon: 'none', title: '请选择整改期限', duration: 1500 }); return; }*/ if (!_this.pd.DISCOVERYTIME) { 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) { if (!_this.videoList[0].id) { 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; console.info('fileList') console.info(fileList) _this.uploadImg(fileList, i).then(() => { resolve(); }) }).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() { return new Promise((resolve, reject) => { var _this = this; // var pages = getCurrentPages(); // 获取当前页面栈 // var prePage = pages[pages.length - 2]; // 上一个页面 // var task = prePage.$vm.list[_this.index]; let longitude; let latitude; uni.request({ url: basePath + '/app/hidden/' + _this.msg, method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { HIDDEN_ID: _this.pd.HIDDEN_ID, SOURCE: '2', STATE: '0', HIDDENDESCR: _this.pd.HIDDENDESCR, HIDDENPART: _this.pd.HIDDENPART, LATITUDE: _this.pd.LATITUDE, 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, HIDDENLEVEL: _this.pd.HIDDENLEVEL, HIDDENTYPE: _this.pd.HIDDENTYPE, 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, ISRELEVANT: _this.pd.ISRELEVANT, POSITIONDESC: _this.pd.POSITIONDESC, RECORDITEM_ID: _this.itemId, LISTMANAGER_ID: _this.LISTMANAGER_ID, RISKITEM_ID: _this.riskId, CLEARIMG: '1', 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; resolve(); // prePage.$vm.initflag = true; // A 页面 init方法 为true // prePage.$vm.list[_this.index].ISNORMAL = 1; // prePage.$vm.list[_this.index].HIDDEN_ID = _this.HIDDEN_ID; // uni.navigateBack({}); // uni.hideLoading(); } else { uni.showToast({ title: res.data.msaesge, duration: 2000 }); } } }); // uni.getLocation({ // type: 'GCJ02', // success: function (res1) { // longitude = res1.longitude; // latitude = res1.latitude; // var result = gcoord.transform( // [longitude, latitude], // 经纬度坐标 // gcoord.GCJ02, // 当前坐标系 // gcoord.BD09 // 目标坐标系 // ); // longitude = result[0]; // latitude = result[1]; // //发送 post 请求提交保存 // // }, // fail: function(res){ // uni.hideLoading(); // uni.showToast({ // title: "获取位置失败", // duration: 2000 // }); // } // }); }); }, radioType(e) { this.RECTIFICATIONTYPE = e }, 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 data = JSON.parse(res.data.zTreeNodes); for(let i=0;i<data.length;i++){ for(let j=0;j<data[i].children.length;j++){ if(data[i].children[j].id =='hiddenLevel1001'){ data[i].children.splice(j,1) } } } _this.levelList = data } }); this.isUps = true this.$refs.hiddenLevenTree._show(); }, // 确定回调事件 hiddenLevenConfirm(e) { this.isUps = false; this.pd.HIDDENLEVEL = e[0].id; this.pd.HIDDENLEVELNAME = e[0].name; }, // 取消回调事件 hiddentreeCancel(e) { this.isUps = false; }, 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); } }); } this.isUps = true if ('1' == type) { this.$refs.hiddenType1Tree._show(); } if ('2' == type) { this.$refs.hiddenType2Tree._show(); } }, hiddenType1Confirm(e) { this.$set(this.pd, 'HIDDENTYPENAME', e[0].name) this.$set(this.pd, 'HIDDENTYPE', e[0].id) this.isUps = false; }, hiddenType1Cancel() { this.isUps = false; }, hiddenType2Confirm(e) { this.$set(this.pd, 'HIDDENTYPENAME2', e[0].name) this.$set(this.pd, 'HIDDENTYPE2', e[0].id) this.isUps = false; }, hiddenType2Cancel() { this.isUps = false; }, changeDiscoverDate(e) { this.pd.DISCOVERYTIME = e this.$forceUpdate(); //强制刷新 }, 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] = []; }, 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] = []; }, 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(); //强制刷新 }, 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 }); } } }) }, haveUser(e) { if (e == null || e.length == 0) { uni.showToast({ icon: "none", title: '请先选择有人员的部门', duration: 2000 }); } }, 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(); //强制刷新 }, removeOther(index) { this.other.splice(index, 1); this.otherUserList.splice(index, 1); }, showConTreeTree() { this.isUps = true this.$refs.confirmTree._show(); }, getConfirmUser(e) { 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; this.pd.conUserId = this.confirUserAllList[index].USER_ID; this.pd.conUserName = this.confirUserAllList[index].NAME; this.$forceUpdate(); //强制刷新 }, 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 = true this.$refs.hiddenRegionTree._show(); }, hiddenRegionTreeCon(e) { this.isUps = false; this.pd.hregionName = e[0].name; this.pd.HIDDENPART = e[0].id; this.$forceUpdate(); //强制刷新 }, DelVideo(e) { uni.showModal({ title: '秦港-双基双控双控', content: '确定要删除这个视频吗?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { if (res.confirm) { this.videoList = [] } } }) }, 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) } } }); }, /** 坐标定位 */ showMapModal() { var _this = this uni.navigateTo({ url: '/pages/map/mapPro', events: { // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 acceptDataFromOpenedPage: function (e) { _this.pd.LONGITUDE = e.data.longitue; _this.pd.LATITUDE = e.data.latitude; } }, }) }, playVideo(e) { this.videoSrc = e.currentTarget.dataset.src this.modalShow = true }, /*/!** 坐标定位 *!/ showMapModal() { var _this = this uni.navigateTo({ url: '/pages/map/map', events: { // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 acceptDataFromOpenedPage: function (e) { // console.log(e.data) // console.info(e.data.longitue) _this.form.WORK_LONGITUDE = e.data.longitue; _this.form.WORK_LATITUDE = e.data.latitude; // console.info(_this.pd) } }, }) }*/ } } </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; } .cu-form-title:before{ content: "*"; color: red; vertical-align: sub; margin-right: 5px; } .asterisk:before{ content: "*"; color: red; vertical-align: sub; margin-right: 5px; } </style>