qa-prevention-gwj-first-app/pages/application/key-project-management/AI-warning/detail.vue

1491 lines
44 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="{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/map',
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>