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

1293 lines
38 KiB
Vue
Raw Normal View History

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