<template> <view :class="{showHiddenWindowActive:showHiddenWindow}"> <cu-custom bgColor="bg-gradual-blueness" :isBack="true"> <block slot="backText">返回</block> <block slot="content">AI报警处置</block> </cu-custom> <view class="form"> <view class="wui-form-list"> <view class="cu-form-group"> <view class="title">视频名称:</view> <view>{{ form.VIDEONAME }}</view> </view> <view class="cu-form-group"> <view class="title">报警类型:</view> <view>{{ form.TYPE }}</view> </view> <view class="cu-form-group" v-show="form.UNITS_NAME"> <view class="title">报警时间:</view> <view>{{ form.CREATTIME }}</view> </view> <!-- <view class="cu-form-group"> --> <!-- <view class="title">报警图片:</view> --> <!-- <view>{{ form.IMG_PATH_SHOW }}</view>--> <!-- <image :src="form.IMG_PATH" @click="ViewShowImage" style="width: 200upx;height: 150upx"></image> <view> </view> </view> --> <view class="cu-form-group"> <view class="title">处置状态:</view> <view> {{form.STATUS === "0" ? "待处理" : "已处理"}}</view> </view> <view class="cu-form-group"> <view class="title">是否真实报警:</view> <radio-group class="selected" v-if="isDetail==0"> <view class="group mr20"> <radio class='radio' value="1" :checked="isReally==1" @click="radioIsReally(1)"></radio> <text>是</text> </view> <view class="group"> <radio class='radio' value="2" :checked="isReally==2" @click="radioIsReally(2)"></radio> <text>否</text> </view> </radio-group> <radio-group class="selected" v-if="isDetail==1"> <view class="group mr20"> <text v-if="isReally==1">是</text> <text v-if="isReally==2">否</text> </view> </radio-group> </view> <view class="cu-form-group" v-if="isReally==1"> <view class="title">是否填报隐患:</view> <radio-group class="selected" v-if="isDetail==0"> <view class="group mr20"> <radio class='radio' value="1" :checked="isHidden==1" @click="radioIsHidden(1)"></radio> <text>是</text> </view> <view class="group"> <radio class='radio' value="2" :checked="isHidden==2" @click="radioIsHidden(2)"></radio> <text>否</text> </view> </radio-group> <radio-group class="selected" v-if="isDetail==1"> <view class="group mr20"> <text v-if="isHidden==1">是</text> <text v-if="isHidden==2">否</text> </view> </radio-group> </view> <view class="cu-form-group" v-if="isHidden==1"> <view class="title">发现问题:</view> <button v-if="!forbidEdit && form.STATUS==0" class="cu-btn round bg-blue" @click="addHidden">添加</button> </view> <view style="padding: 20upx" v-if="form.hiddenList"> <uni-table border stripe emptyText="暂无更多数据" v-if="isHidden==1"> <uni-tr> <uni-th align="center" style="font-weight: bold;width: 100upx">序号</uni-th> <uni-th align="center" style="font-weight: bold">隐患部位</uni-th> <uni-th align="center" style="font-weight: bold">隐患描述</uni-th> <uni-th align="center" style="font-weight: bold;width: 160upx">操作</uni-th> </uni-tr> <uni-tr v-for="(item, index) in form.hiddenList" :key="'hidden'+index"> <uni-td>{{ index + 1 }}</uni-td> <uni-td>{{ item.HIDDENPART_NAME?item.HIDDENPART_NAME:item.HIDDENPART }}</uni-td> <uni-td>{{ item.HIDDENDESCR }}</uni-td> <uni-td style="text-align: center;"> <icon type="info" size="26" style="margin-right: 8px" @tap="showHidden(item, index)" /> <icon type="cancel" size="26" @tap="removeHidden(item, index)" v-if="!forbidEdit && form.STATUS==0" /> </uni-td> </uni-tr> </uni-table> </view> <view class="cu-form-group"> <view class="title">处置人:</view> <view>{{ form.STATUS === "0" ? loginUser.NAME : form.NAME }}</view> </view> <view class="cu-form-group"> <view class="title">处置时间:</view> <view>{{ form.STATUS === "0" ? todayDate : form.OPERATTIME }}</view> </view> <view class="cu-form-group"> <view class="de-sub-title"> <text class="title">报警图片</text> </view> <view class="de-sub-content"> <scroll-view scroll-x class="bg-white nav" scroll-with-animation> <view class="cu-item"> <view> <image :src=" baseImgPath +form.IMG_PATH" @click="ViewShowImage" style="width: 200upx;height: 150upx"></image> </view> </view> </scroll-view> </view> </view> </view> <view class="cu-form-group" v-if='form.VIDEO_PATH'> <view class="de-sub-title"> <text class="title">报警视频</text> </view> <view class="de-sub-content"> <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 +form.VIDEO_PATH" style="width: 120upx;height: 120upx;"></image> </view> </view> </view> </view> <view class="cu-bar btn-group" style="margin-top: 30upx;"> <button v-if="!forbidEdit && form.STATUS==0" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goSubmit,'1')">提交</button> <button v-if="forbidEdit" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)">返回</button> </view> <view class="padding flex flex-direction"></view> <uni-drawer ref="showHiddenWindow" mode="right" :mask-click="true" @change="change($event,'showHiddenWindow')"> <scroll-view scroll-y="true" style="height: 90vh;"> <view class="de-drawer"> <view class="cu-bar bg-white" v-if="hiddenForm.hiddenImgs.length>0"> <view class="action"> 隐患照片 </view> </view> <view class="cu-form-group" v-if="hiddenForm.hiddenVideos.length>0"> <view class="grid col-4 grid-square flex-sub"> <view class="bg-img" v-for="(item,index) in hiddenForm.hiddenVideos" :key="index" @tap="ViewImage" :data-id="item.IMGFILES_ID" data-type="0" :data-url="hiddenForm.hiddenImgs[index].FILEPATH"> <image v-if="item.IMGFILES_ID" :src="baseImgPath + hiddenForm.hiddenImgs[index].FILEPATH" mode="aspectFill"> </image> <image v-else :src="hiddenForm.hiddenImgs[index].FILEPATH" mode="aspectFill"></image> </view> </view> </view> <view class="cu-bar bg-white" v-if="hiddenForm.hiddenVideos.length>0"> <view class="action"> 隐患视频 </view> </view> <view class="cu-form-group" v-if="hiddenForm.hiddenVideos.length>0"> <view class="grid col-4 grid-square flex-sub"> <view class="bg-img" v-for="(item,vindex) in hiddenForm.hiddenVideos" :key="vindex" style="background-color: #000"> <image src="/static/icon-apps/video.png" mode="aspectFill" @click="playVideo" :data-src="baseImgPath +hiddenForm.hiddenVideos[vindex].FILEPATH"></image> </view> </view> </view> <view class="cu-form-textarea"> <view class="cu-form-title text-hui">隐患描述</view> <textarea maxlength="-1" :disabled="forbidEdit" v-model="hiddenForm.HIDDENDESCR" placeholder="请对隐患进行详细描述(必填项)"></textarea> </view> <view class="cu-form-group"> <view class="title">隐患部位</view> <view class="picker-tree-box"> <input :disabled="forbidEdit" v-model="hiddenForm.HIDDENPART" placeholder="请输入隐患部位"></input> </view> </view> <view class="cu-form-group"> <view class="title">隐患级别</view> <view class="picker-tree-box"> <view class="picker-tree" @tap="forbidEdit ? null : showZgTree('tkiTree4', 4)"> {{hiddenForm.HIDDENLEVEL_NAME || '请选择'}}</view> </view> <tki-tree ref="tkiTree4" :selectParent=false :range="hiddenLevelTreeList" rangeKey="name" @confirm="zgtreeConfirm($event,'hiddenLevelTreeList')" @cancel="zgtreeCancel"></tki-tree> </view> <view class="cu-form-group"> <view class="title">隐患类型</view> <view class="picker-tree-box"> <view class="picker-tree" @tap="forbidEdit ? null : showZgTree('tkiTree5', 5)"> {{hiddenForm.HIDDENTYPE_NAME || '请选择'}}</view> </view> <tki-tree ref="tkiTree5" :selectParent=false :range="hiddenTypeTreeList" rangeKey="name" @confirm="zgtreeConfirm($event,'hiddenTypeTreeList')" @cancel="zgtreeCancel"> </tki-tree> </view> <view class="cu-form-group"> <view class="title">隐患处置:</view> <radio-group @change="changeRadioGroup1($event)"> <!-- <label class="radio"><radio value="1" :checked="hiddenForm.RECTIFICATIONTYPE === '1'" />立即整改</label>--> <label class="radio"> <radio value="2" :checked="hiddenForm.RECTIFICATIONTYPE === '2'" />限期整改 </label> </radio-group> </view> <view class="cu-form-group" v-if="hiddenForm.RECTIFICATIONTYPE === '2'"> <view class="title">整改期限:</view> <ruiDatePicker :start="todayDate" fields="minute" :value="hiddenForm.RECTIFICATIONDEADLINE || '请选择'" @change="changeDiscoverDate" v-if="!forbidEdit"></ruiDatePicker> <view v-else>{{hiddenForm.RECTIFICATIONDEADLINE}}</view> </view> <view class="cu-form-group"> <view class="title" style="height: auto;"> <view>整改部门:</view> </view> <block v-if="!forbidEdit"> <view class="picker-tree-box"> <view class="picker-tree" @tap="showZgTree('tkiTree6', 1)"> {{ hiddenForm.RECTIFICATIONDEPT_NAME || '请选择' }} </view> </view> <tki-tree ref="tkiTree6" :selectParent=true :range="treeNode" rangeKey="UNITS_NAME" @confirm="zgtreeConfirm($event,'rectificationSiteuserColumns')" @cancel="zgtreeCancel"> </tki-tree> </block> <block v-else>{{ hiddenForm.RECTIFICATIONDEPT_NAME }}</block> </view> <view class="cu-form-group" v-if="hiddenForm.RECTIFICATIONDEPT_NAME"> <view class="title">整改人:</view> <picker @change="rectificationSiteuserConfirmPicker" :disabled="forbidEdit" :value="hiddenForm.RECTIFICATIONOR_INDEX" :range="rectificationSiteuserColumns" range-key="NAME"> <view class="picker"> {{ hiddenForm.RECTIFICATIONOR_NAME || '请选择' }} </view> </picker> </view> <view class="de-drawer-bottom"> <view class="cz-btn"> <text class="cu-btn" @click="cancelHidden">取消</text> </view> <view v-if="hiddenIsEdit" class="done-btn" @click="saveHidden"> <text class="cu-btn bg-blue">保存</text> </view> </view> </view> </scroll-view> </uni-drawer> <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 class="cu-modal" :class="{'show':signModalShow}"> <sign @confirm="subCanvas" @cancel="signModalShow = false"></sign> </view> </view> </template> <script> import { basePath, corpinfoId, deptId, loginUser, formatDate, loginSession, baseImgPath, loginUserId } from '@/common/tool.js'; import tkiTree from "@/components/select-tree/select-tree.vue" import sign from '@/components/sign/sign.vue'; import gcoord from '@/common/gcoord.js' import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue' import moreSelect from '@/components/more-select/more-select.vue'; import uniPopup from '@/components/more-select/uni-popup/uni-popup.vue'; export default { components: { tkiTree, ruiDatePicker, sign, moreSelect, uniPopup }, data() { return { baseImgPath: baseImgPath, isUps: false, forbidEdit: false, // 禁止修改 msg: 'add', noClick: true, treeNode: [], //部门下拉数据 inspectedSiteuserList: [], // 被检查单位现场负责人下拉数据 inspectionTypeTreeList: [], // 检查类型下拉数据 rectificationSiteuserColumns: [], inspectorList: [], // 检查人员(二维数组)下拉数据 form: { AIWARNING_ID: "", CREATOR: "", CREATTIME: "", DEVICE: "", EQUIPMENT_ID: "", EQUIPMENT_NAME: "", IMG_PATH: "", ISDELETE: 0, OPERATOR: "", OPERATTIME: "", OUTSOURCED_ID: "", REMARKS: "", STATUS: "0", TYPE: "", VIDEOMANAGER_ID: "", VIDEOMANAGER_NAME: "", WARNING_TIME: "", VIDEO_PATH: "", hiddenList: [{ ...this.hiddenForm }], // 隐患信息集合 }, // 数据 hiddenIds: [], // 检查保存后返回的隐患ID集合 delSituations: [], // 编辑时删除的原来检查情况 delInspectors: [], // 编辑时删除的原来检查情况 delHiddens: [], // 编辑时删除的原来发现问题 delHiddenFiles: [], // 编辑时删除的原来发现问题附件 showHiddenWindow: false, // 隐患添加窗口显隐 hiddenIsEdit: true, hiddenRegionTreeList: [], // 隐患部位下拉数据 hiddenLevelTreeList: [], // 隐患级别下拉数据 hiddenTypeTreeList: [], // 隐患类型下拉数据 hiddenType2TreeList: [], // 隐患类型2下拉数据 creatorList: [], // 隐患责任人下拉数据 hiddenForm: { ISRELEVANT: '2', HIDDEN_ID: '', // 隐患ID HIDDENDESCR: '', // 隐患描述 HIDDENPART: '', // 隐患部位 HIDDENPART_NAME: '', HIDDENLEVEL: '', // 隐患级别 HIDDENLEVEL_NAME: '', HIDDENTYPE: '', // 隐患类型1 HIDDENTYPE_NAME: '', HIDDENTYPE2: '', // 隐患类型2 HIDDENTYPE2_NAME: '', LONGITUDE: '', // 隐患位置经度 LATITUDE: '', // 隐患位置纬度 DISCOVERYTIME: '', // 隐患发现时间 HIDDENFINDDEPT: '', // 隐患发现部门(隐患责任人部门) HIDDENFINDDEPT_NAME: '', CREATOR: '', // 发现人(隐患责任人) CREATOR_INDEX: '', CREATOR_NAME: '', SOURCE: '1', // 隐患描述 hiddenImgs: [], zgImgs: [], hiddenVideos: [], RECTIFICATIONTYPE: '2', RECTIFICATIONDEADLINE: '', RECTIFYDESCR: '', RECTIFICATIONDEPT_NAME: '', RECTIFICATIONDEPT: '', RECTIFICATIONOR_INDEX: '', RECTIFICATIONOR_NAME: '', RECTIFICATIONOR: '', }, modalShow: false, videoSrc: '', hiddenRules: [{ name: 'HIDDENDESCR', message: '输入隐患描述' }, { name: 'HIDDENPART', message: '请选择隐患部位' }, { name: 'HIDDENLEVEL', message: '请选择隐患级别' }, { name: 'HIDDENTYPE', message: '请选择隐患类型' }, { name: 'RECTIFICATIONDEPT', message: '请选择整改部门' }, { name: 'RECTIFICATIONOR', message: '请选择整改人' } ], todayDate: '', modalName: null, cityIndex: 0, signImgList: [], signModalShow: false, isReally: 2, isHidden: 2, isDetail: 0, //已处置后查看赋值为1 loginUser: loginUser, AIWARNING_ID: '' } }, onLoad(event) { this.todayDate = formatDate(new Date(), 'yyyy-MM-dd hh:mm'); this.AIWARNING_ID = event.AIWARNING_ID; this.form.hiddenList = [] if (this.AIWARNING_ID) { // this.msg="edit"; this.getData(); } else { this.forbidEdit = false; } // 初始化现场作业负责人 this.getDict() loginSession(); }, methods: { getData() { var _this = this; uni.showLoading({ title: '请稍候' }) uni.request({ url: basePath + '/app/aiwarning/goEdit', method: 'POST', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { AIWARNING_ID: _this.AIWARNING_ID, }, success: (res) => { if ("success" == res.data.result) { uni.hideLoading(); _this.form = res.data.pd; //参数map if (res.data.pd.ISTRUE) { _this.isReally = res.data.pd.ISTRUE } if (res.data.pd.hiddenList) { _this.isHidden = 1 } if (res.data.pd.STATUS == 1) { _this.isDetail = 1 } _this.getDept() } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } } }); }, goSubmit() { var _this = this; let required = true uni.showLoading({ title: '请稍候' }) if (!required) { return } if (_this.isHidden === 1) { if (_this.form.hiddenList.length === 0) { uni.showToast({ title: '您已选择填报隐患且还未填报隐患', duration: 2000 }); return; } } // 封装隐患图片和视频附件 var hiddenList = [], fileList = []; if (this.form.hiddenList.length > 0) { for (let i = 0; i < this.form.hiddenList.length; i++) { fileList = [] for (let j = 0; j < this.form.hiddenList[i].hiddenImgs.length; j++) { if (!this.form.hiddenList[i].hiddenImgs[j].IMGFILES_ID) { var file = {}; file.type = 3; file.FILEPATH = this.form.hiddenList[i].hiddenImgs[j].FILEPATH; fileList.push(file); } } for (let j = 0; j < this.form.hiddenList[i].zgImgs.length; j++) { if (!this.form.hiddenList[i].zgImgs[j].IMGFILES_ID) { var file = {}; file.type = 4; file.FILEPATH = this.form.hiddenList[i].zgImgs[j].FILEPATH; fileList.push(file); } } if (this.form.hiddenList[i].hiddenVideos.length > 0) { if (!this.form.hiddenList[i].hiddenVideos[0].IMGFILES_ID) { var file = {}; file.type = 102; file.FILEPATH = this.form.hiddenList[i].hiddenVideos[0].FILEPATH; fileList.push(file); } } hiddenList.push(fileList) } } this.$set(this.form, 'INSPECTORJSON', JSON.stringify(this.form.inspectorList)) this.$set(this.form, 'SITUATIONJSON', JSON.stringify(this.form.situationList)) this.$set(this.form, 'HIDDENJSON', JSON.stringify(this.form.hiddenList)) this.$set(this.form, 'delInspectors', this.delInspectors.join(',')) this.$set(this.form, 'delSituations', this.delSituations.join(',')) this.$set(this.form, 'delHiddens', this.delHiddens.join(',')) this.$set(this.form, 'delHiddenFiles', this.delHiddenFiles.join(',')) this.$set(this.form, 'CREATOR', loginUser.USER_ID) this.$set(this.form, 'CORPINFO_ID', corpinfoId) this.$set(this.form, 'ACTION_USER', loginUser.NAME) this.$set(this.form, 'ISTRUE', this.isReally) this.submit(hiddenList) setTimeout(function() { uni.hideLoading(); }, 2000); }, uploadImg(hiddenList) { var _this = this; uni.showLoading({ title: '上传中' }) for (let i = 0; i < hiddenList.length; i++) { let hiddenID = _this.hiddenIds[i].HIDDEN_ID let fileList = hiddenList[i] for (let j = 0; j < fileList.length; j++) { uni.uploadFile({ url: basePath + '/app/imgfiles/add', filePath: fileList[j].FILEPATH, name: 'FFILE', formData: { 'TYPE': fileList[j].type, 'FOREIGN_KEY': hiddenID }, success: (res) => { console.info(res) uni.hideLoading(); }, fail: (err) => { uni.hideLoading(); uni.showModal({ content: err.errMsg, showCancel: false }); } }) } } _this.goback() }, submit(hiddenList) { var _this = this; uni.request({ url: basePath + '/app/aiwarning/edit', method: 'POST', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { CORPINFO_ID: corpinfoId, ..._this.form, CREATOR: loginUserId, OPERATOR: loginUserId, }, success: (res) => { if ("success" == res.data.result) { _this.goback() } else { uni.showToast({ title: res.data.msaesge, duration: 2000 }); } } }); }, changeRadioGroup(e) { this.form.INSPECTION_CATEGORY = e.detail.value }, changeRadioGroup1(e) { this.hiddenForm.RECTIFICATIONTYPE = e.detail.value }, changeStartDate(e) { this.form.INSPECTION_TIME_START = e this.$forceUpdate(); //强制刷新 }, changeEndDate(e) { this.form.INSPECTION_TIME_END = e this.$forceUpdate(); //强制刷新 }, showZgTree(ref, index) { if (index > 7) { this.$refs[ref][0]._show(); } else { this.$refs[ref]._show(); } }, radioISRELEVANT(e) { this.hiddenForm.ISRELEVANT = e }, zgtreeCancel(e) { this.isUps = false; }, zgtreeConfirm(e, list, i) { if (list === 'inspectedSiteuserList') { // 被检查单位现场负责人 this.form.UNITS_ID = e[0].UNITS_ID this.form.UNITS_NAME = e[0].UNITS_NAME this.form.INSPECTED_SITEUSER_INDEX = '' this.form.PERSONNELMANAGEMENT_ID = '' this.form.PERSON_NAME = '' this.getUserList(list, e[0].UNITS_ID) } if (list === 'rectificationSiteuserColumns') { this.hiddenForm.RECTIFICATIONDEPT = e[0].UNITS_ID this.hiddenForm.RECTIFICATIONDEPT_NAME = e[0].UNITS_NAME this.hiddenForm.RECTIFICATIONOR_NAME = '' this.hiddenForm.RECTIFICATIONOR = '' this.getUserList(list, e[0].UNITS_ID) } if (list === 'inspectionTypeTreeList') { // 检查类型 this.form.INSPECTION_TYPE = e[0].id this.form.INSPECTION_TYPE_NAME = e[0].name } if (list === 'inspectorList') { // 检查人员 this.form.inspectorList[i].INSPECTION_DEPARTMENT_ID = e[0].id this.form.inspectorList[i].INSPECTION_DEPARTMENT_NAME = e[0].name this.form.inspectorList[i].INSPECTION_USER_INDEX = '' this.form.inspectorList[i].INSPECTION_USER_ID = '' this.form.inspectorList[i].INSPECTION_USER_NAME = '' } if (list === 'hiddenRegionTreeList') { // 隐患部位 this.hiddenForm.HIDDENPART = e[0].id this.hiddenForm.HIDDENPART_NAME = e[0].name } if (list === 'hiddenLevelTreeList') { // 隐患级别 this.hiddenForm.HIDDENLEVEL = e[0].id this.hiddenForm.HIDDENLEVEL_NAME = e[0].name } if (list === 'hiddenTypeTreeList') { // 隐患级别 this.hiddenForm.HIDDENTYPE = e[0].id this.hiddenForm.HIDDENTYPE_NAME = e[0].name } if (list === 'hiddenType2TreeList') { // 隐患级别 this.hiddenForm.HIDDENTYPE2 = e[0].id this.hiddenForm.HIDDENTYPE2_NAME = e[0].name } if (list === 'creatorList') { // 隐患级别 this.hiddenForm.HIDDENFINDDEPT = e[0].id this.hiddenForm.HIDDENFINDDEPT_NAME = e[0].name this.hiddenForm.CREATOR_INDEX = '' this.hiddenForm.CREATOR = '' this.hiddenForm.CREATOR_NAME = '' } }, inspectedSiteuserChange(e) { this.form.INSPECTED_SITEUSER_INDEX = e.detail.value; this.form.PERSONNELMANAGEMENT_ID = this.inspectedSiteuserList[e.detail.value].PERSONNELMANAGEMENT_ID; this.form.PERSON_NAME = this.inspectedSiteuserList[e.detail.value].NAME; }, rectificationSiteuserConfirmPicker(e) { this.hiddenForm.RECTIFICATIONOR_INDEX = e.detail.value; this.hiddenForm.RECTIFICATIONOR = this.rectificationSiteuserColumns[e.detail.value].PERSONNELMANAGEMENT_ID; this.hiddenForm.RECTIFICATIONOR_NAME = this.rectificationSiteuserColumns[e.detail.value].NAME; }, inspectorChange(e, index) { this.form.inspectorList[index].INSPECTION_USER_INDEX = e.detail.value; this.form.inspectorList[index].INSPECTION_USER_ID = this.inspectorList[index][e.detail.value].USER_ID; this.form.inspectorList[index].INSPECTION_USER_NAME = this.inspectorList[index][e.detail.value].NAME; }, addSituation() { this.form.situationList.push({ INSPECTION_SITUATION_ID: '', SITUATION: '' }) }, removeSituation(item, index) { var _this = this; uni.showModal({ title: '提示', cancelText: '确认', confirmText: '取消', content: '确定删除检查情况吗?', success: function(res) { if (res.cancel) { _this.form.situationList.splice(index, 1) if (item.INSPECTION_SITUATION_ID) { _this.delSituations.push(item.INSPECTION_SITUATION_ID) } } } }); }, addInspector() { this.form.inspectorList.push({ INSPECTION_INSPECTOR_ID: '', //检查人员主键 INSPECTION_DEPARTMENT_ID: '', //检查人员部门ID INSPECTION_DEPARTMENT_NAME: '', INSPECTION_USER_ID: '', //检查人员ID INSPECTION_USER_INDEX: '', INSPECTION_USER_NAME: '' }) }, removeInspector(item, index) { var _this = this; uni.showModal({ title: '提示', cancelText: '确认', confirmText: '取消', content: '确定移除检查人员吗?', success: function(res) { if (res.cancel) { _this.form.inspectorList.splice(index, 1); if (item.INSPECTION_INSPECTOR_ID) { _this.delInspectors.push(item.INSPECTION_INSPECTOR_ID) } } } }); }, removeHidden(item, index) { var _this = this; uni.showModal({ title: '提示', cancelText: '确认', confirmText: '取消', content: '确定移除发现问题吗?', success: function(res) { if (res.cancel) { console.info(_this.form) _this.form.hiddenList.splice(index, 1); if (item.HIDDEN_ID) { _this.delHiddens.push(item.HIDDEN_ID) } } } }); }, // 打开隐患添加窗口 addHidden() { this.resetHd() console.log('打开隐患添加窗口') // this.creatorList = [{NAME: loginUser.NAME, USER_ID: loginUser.USER_ID}] this.$refs['showHiddenWindow'].open() this.hiddenForm.RECTIFICATIONDEPT = this.form.RECTIFICATIONDEPT this.hiddenForm.RECTIFICATIONDEPT_NAME = this.form.RECTIFICATIONDEPT_NAME this.hiddenForm.RECTIFICATIONOR = this.form.RECTIFICATIONOR this.hiddenForm.RECTIFICATIONOR_NAME = this.form.RECTIFICATIONOR_NAME this.getUserList('rectificationSiteuserColumns',this.form.RECTIFICATIONDEPT) this.$forceUpdate() this.showHiddenWindow = true this.hiddenIsEdit = true }, // 打开隐患添加窗口 showHidden(item) { this.resetHd() this.creatorList = [{ NAME: loginUser.NAME, USER_ID: loginUser.USER_ID }] this.hiddenForm = item this.$refs['showHiddenWindow'].open() this.showHiddenWindow = true this.hiddenIsEdit = false }, // 保存隐患 saveHidden() { let required = true // if (this.hiddenForm.hiddenImgs.length <= 0) { // uni.showToast({ // icon: 'none', // title: '请上传隐患图片', // duration: 1500 // }); // return; // } if (this.hiddenForm.RECTIFICATIONTYPE === '2') { if (!this.hiddenForm.RECTIFICATIONDEADLINE) { uni.showToast({ title: '请选择整改期限', icon: "none" }) return; } } if (this.hiddenForm.RECTIFICATIONTYPE === '1') { if (this.hiddenForm.zgImgs.length === 0) { uni.showToast({ title: '请上传整改照片', icon: "none" }) return; } if (!this.hiddenForm.RECTIFYDESCR) { uni.showToast({ title: '请输入整改描述', icon: "none" }) return; } } this.hiddenRules.map(({ name, message }) => { if (!this.hiddenForm[name] || this.hiddenForm[name] === '请选择' || this.hiddenForm[name] === '请输入') { uni.showToast({ icon: 'none', title: message, duration: 1500 }); required = false } }) if (!required) { return } uni.showLoading({ title: '请稍候' }) this.hiddenForm.IMG_PATH = this.form.IMG_PATH this.hiddenForm.REMARKS = this.form.VIDEO_PATH if (this.hiddenForm.RECTIFICATIONTYPE === '1') { this.hiddenForm.RECTIFICATIONDEADLINE = '' } console.info(this.form) if (this.form.hiddenList === undefined) { this.form.hiddenList = [] } this.form.hiddenList.push(this.hiddenForm) this.cancelHidden() uni.hideLoading(); }, // 取消添加隐患 cancelHidden() { this.$refs['showHiddenWindow'].close() this.showHiddenWindow = false }, // 抽屉状态发生变化触发 change(e, type) { this[type] = e }, ViewImage(e) { if (e.currentTarget.dataset.type == 0) { let files = []; for (var i = 0; i < this.hiddenForm.hiddenImgs.length; i++) { if (e.currentTarget.dataset.id) { files.push(this.baseImgPath + this.hiddenForm.hiddenImgs[i].FILEPATH) } else { files.push(this.hiddenForm.hiddenImgs[i].FILEPATH) } } uni.previewImage({ urls: files, current: e.currentTarget.dataset.id ? this.baseImgPath + e.currentTarget.dataset.url : e .currentTarget.dataset.url }); } else { let files = []; for (var i = 0; i < this.hiddenForm.hiddenImgs.length; i++) { files.push(this.hiddenForm.hiddenImgs[i].FILEPATH) } uni.previewImage({ urls: files, current: e.currentTarget.dataset.url }); } }, ViewImage1(e) { let files = []; for (var i = 0; i < this.hiddenForm.zgImgs.length; i++) { if (e.currentTarget.dataset.id) { files.push(this.baseImgPath + this.hiddenForm.zgImgs[i].FILEPATH) } else { files.push(this.hiddenForm.zgImgs[i].FILEPATH) } } uni.previewImage({ urls: files, current: e.currentTarget.dataset.id ? this.baseImgPath + e.currentTarget.dataset.url : e .currentTarget.dataset.url }); }, ViewSignImage(e) { if (e.currentTarget.dataset.type == 0) { let files = []; for (var i = 0; i < this.hiddenForm.hiddenImgs.length; i++) { files.push(this.baseImgPath + this.hiddenForm.hiddenImgs[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.hiddenForm.hiddenImgs[i].IMGFILES_ID) { _this.delHiddenFiles.push(_this.hiddenForm.hiddenImgs[index].FILEPATH) } else { this.hiddenForm.hiddenImgs.splice(e.currentTarget.dataset.index, 1) } } else { if (_this.imgList1[i].IMGFILES_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].IMGFILES_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) } } } } }) }, DelImg1(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.hiddenForm.zgImgs[i].IMGFILES_ID) { _this.delHiddenFiles.push(_this.hiddenForm.zgImgs[index].FILEPATH) } else { this.hiddenForm.zgImgs.splice(e.currentTarget.dataset.index, 1) } } } } }) }, delSignImg(e) { var _this = this; let i = e.currentTarget.dataset.index uni.showModal({ title: '秦港-双基双控', content: '确定要删除这张图片吗?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { if (res.confirm) { _this.signImgList.splice(i, 1) } } }) }, //图片上传 ChooseImage(e) { var _this = this; var ss = 4 - this.hiddenForm.hiddenImgs.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.IMGFILES_ID = ''; img.FILEPATH = res.tempFilePaths[i]; this.hiddenForm.hiddenImgs.push(img) } else { let img = {}; img.IMGFILES_ID = ''; img.FILEPATH = res.tempFilePaths[i]; this.imgList1.push(img) } } } }); }, //图片上传 ChooseImage1(e) { var _this = this; var ss = 4 - this.hiddenForm.zgImgs.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.IMGFILES_ID = ''; img.FILEPATH = res.tempFilePaths[i]; this.hiddenForm.zgImgs.push(img) } else { let img = {}; img.IMGFILES_ID = ''; img.FILEPATH = res.tempFilePaths[i]; this.imgList1.push(img) } } } }); }, ViewVideo(e) { }, DelVideo(e) { uni.showModal({ title: '秦港-双基双控', content: '确定要删除这个视频吗?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { if (res.confirm) { this.hiddenForm.hiddenVideos = [] } } }) }, chooseVideo(e) { var _this = this; uni.chooseVideo({ maxDuration: 60, count: 1, //默认9 // sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sourceType: ['camera', 'album'], //从相册选择 success: (res) => { if (e == 0) { let img = {}; img.IMGFILES_ID = ''; img.FILEPATH = res.tempFilePath; this.hiddenForm.hiddenVideos.push(img) } else { let img = {}; img.IMGFILES_ID = ''; img.FILEPATH = res.tempFilePaths[0]; this.hiddenForm.hiddenVideos.push(img) } } }); }, // playVideo(e) { // if(e.currentTarget.dataset.src){ // this.videoSrc = e.currentTarget.dataset.src // } // if(this.form.KEYPROJECTCHECK_ID){ // this.videoSrc = this.baseImgPath + this.hiddenForm.hiddenVideos[0].FILEPATH // } // this.modalShow = true // }, changeDiscoverDate(e) { this.hiddenForm.RECTIFICATIONDEADLINE = e this.$forceUpdate(); //强制刷新 }, creatorChange(e) { this.hiddenForm.CREATOR_INDEX = e.detail.value; this.hiddenForm.CREATOR = this.creatorList[e.detail.value].USER_ID; this.hiddenForm.CREATOR_NAME = this.creatorList[e.detail.value].NAME; }, /** 坐标定位 */ showMapModal() { var _this = this uni.navigateTo({ url: '/pages/map/mapPro', events: { // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 acceptDataFromOpenedPage: function(e) { _this.hiddenForm.LONGITUDE = e.data.longitue; _this.hiddenForm.LATITUDE = e.data.latitude; } }, }) }, getDept() { var _this = this; console.info(_this.form.OUTSOURCED_ID) uni.request({ url: basePath + '/app/keyProjects/listAllUnits', //部门下拉接口 method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { CORPINFO_ID: corpinfoId, OUTSOURCED_ID: _this.form.OUTSOURCED_ID, }, success: (res) => { if ("success" == res.data.result) { _this.treeNode = res.data.varList; } else { uni.showToast({ title: res.data.message, duration: 2000 }); } } }); }, //获取人员列表 getUserList(list, dept, i) { //发送 post 请求 var _this = this uni.request({ method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, url: basePath + '/app/keyProjects/listAllPersonnel', data: { UNITS_ID: dept, NOMAIN: '1', tm: new Date().getTime() }, success: function(res) { if ("success" == res.data.result) { _this[list] = res.data.varList; } else { uni.showToast({ title: res.data.message, duration: 2000 }); } } }) }, //获取数据字典数据 getDict() { 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: '60e6481d96e44a5390ff5c347c4d1ffe' }, success: function(res) { _this.inspectionTypeTreeList = eval(res.data.zTreeNodes); } }); 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); } else { uni.showToast({ title: res.data.message, duration: 2000 }); } } }) 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' }, success: function(res) { 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 == 'jdyh001' || data[i].children[j].id == 'hiddenLevel1001') { data[i].children.splice(j, 1) } } if (data[i].id == 'hiddenLevel0002') { data.splice(i, 1) } } _this.hiddenLevelTreeList = data } }) 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: '3babc15144444bdc8d763d0af2bdfff6' }, success: function(res) { var jons = res.data.zTreeNodes; _this.hiddenTypeTreeList = JSON.parse(jons); } }) 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: '18c0a9aea6e54feab9f4ab3f46e0bc86' }, success: function(res) { var jons = res.data.zTreeNodes; _this.hiddenType2TreeList = JSON.parse(jons); } }) }, goback() { var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上二级页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({ delta: 1 }); uni.hideLoading(); }, resetHd() { this.hiddenForm = { ISRELEVANT: '2', HIDDEN_ID: '', // 隐患ID HIDDENDESCR: '', // 隐患描述 HIDDENPART: '', // 隐患部位 HIDDENPART_NAME: '', HIDDENLEVEL: '', // 隐患级别 HIDDENLEVEL_NAME: '', HIDDENTYPE: '', // 隐患类型1 HIDDENTYPE_NAME: '', HIDDENTYPE2: '', // 隐患类型2 HIDDENTYPE2_NAME: '', LONGITUDE: '', // 隐患位置经度 LATITUDE: '', // 隐患位置纬度 DISCOVERYTIME: '', // 隐患发现时间 HIDDENFINDDEPT: '', // 隐患发现部门(隐患责任人部门) HIDDENFINDDEPT_NAME: '', CREATOR: '', // 发现人(隐患责任人) CREATOR_INDEX: '', CREATOR_NAME: '', SOURCE: '5', // 隐患描述 hiddenImgs: [], zgImgs: [], hiddenVideos: [], RECTIFICATIONTYPE: '2', RECTIFICATIONDEADLINE: '', RECTIFYDESCR: '', RECTIFICATIONDEPT_NAME: '', RECTIFICATIONDEPT: '', RECTIFICATIONOR_INDEX: '', RECTIFICATIONOR_NAME: '', RECTIFICATIONOR: '', } }, subCanvas(e) { this.signImgList.splice(0, this.signImgList.length); this.signImgList.push(e); this.$set(this.form, 'INSPECTION_USER_SIGN_TIME', formatDate(new Date(), 'yyyy-MM-dd hh:mm')) this.signModalShow = false; }, radioIsReally(e) { this.isReally = e }, radioIsHidden(e) { this.isHidden = e }, ViewShowImage(e) { let files = []; files.push(this.baseImgPath + this.form.IMG_PATH) uni.previewImage({ urls: files, current: e.currentTarget.dataset.index }); }, playVideo(e) { this.videoSrc = e.currentTarget.dataset.src this.modalShow = true }, } } </script> <style> .right_icon { position: relative; padding-right: 36upx; width: 200upx; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .right_icon ::after { font-family: cuIcon; display: block; content: "\e6a3"; position: absolute; font-size: 17px; color: #8799a3; line-height: 50px; width: 30px; text-align: center; top: -28upx; bottom: 0; right: -22upx; margin: auto; } .modal_content { display: flex; text-align: left; } .modal_left { flex-basis: 50%; padding: 50upx 20upx; border-right: 1px solid #000000; } .modal_right { flex-basis: 50%; padding: 50upx; } .modal_left_title, .modal_right_title { font-size: 16px; color: #000000; font-weight: 700; } .checkbox-item { display: flex; align-items: center; padding: 0 30upx; min-height: 100upx; background-color: #ffffff; border-bottom: 1upx solid #ddd; } .checkbox-item:last-child { border-bottom: none; } .showHiddenWindowActive { overflow: hidden; height: 100vh; } .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; } </style>