qa-prevention-gwj-first-app/pages/application/fire-management/hidden-trouble-app/other-hidden-add.vue

1400 lines
43 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view :class="isUps == true ? 'prevent' : ''">
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">其他隐患登记</block>
</cu-custom>
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-bar bg-white">
<view class="action asterisk">
隐患照片
</view>
<view class="action">
{{imgList.length}}/4
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage" data-type="0" :data-url="imgList[index].filePath">
<image :src="imgList[index].filePath" mode="aspectFill"></image>
<view v-if="ISLOG == '0'" 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 && ISLOG == '0'">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-bar bg-white">
<view class="action">
隐患视频
</view>
<view class="action">
{{videoList.length}}/1
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,vindex) in videoList" :key="vindex" data-type="0"
:data-url="videoList[vindex].filePath" style="background-color: #000">
<image src="/static/icon-apps/video.png" mode="aspectFill" @click="playVideo"
:data-src="videoList[vindex].filePath"></image>
<view v-if="ISLOG == '0'" 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 && ISLOG == '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="zgtreeCancel"></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="hiddenLevenTree2"
:selectParent=false
:range="levelList"
rangeKey="name"
@confirm="hiddenLevenConfirm"
@cancel="zgtreeCancel"></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">{{pd.HIDDENTYPE1NANEM?pd.HIDDENTYPE1NANEM:'请选择'}}</view>
</view>
<tki-tree ref="hiddenType1Tree"
:selectParent=false
:range="hiddenTypeList"
rangeKey="name"
@confirm="hiddenType1Confirm"
@cancel="zgtreeCancel"
>
</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="showHiddenType2TreeTree">{{pd.HIDDENTYPE2NANEM?pd.HIDDENTYPE2NANEM:'请选择'}}</view>
</view>
<tki-tree ref="hiddenType2Tree"
:selectParent=false
:range="hiddenType2List"
rangeKey="name"
@confirm="hiddenType2Confirm"
@cancel="zgtreeCancel">
</tki-tree>
</view>-->
<view v-if="pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'" class="cu-form-group margin-top">
<view class="title text-hui asterisk">是否立即整改</view>
<radio-group class="selected">
<view v-if="pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'" class="group mr20">
<radio class='radio' value="1" :checked="RECTIFICATIONTYPE==1" @click="radioType(1)"></radio>
<text>是</text>
</view>
<view class="group">
<radio class='radio' value="2" :checked="RECTIFICATIONTYPE==2" @click="radioType(2)"></radio>
<text>否</text>
</view>
</radio-group>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2 && pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title">整改责任部门</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showZgTree">{{pd.RECTIFICATIONDEPTNAME?pd.RECTIFICATIONDEPTNAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="zgtreeConfirm"
@cancel="zgtreeCancel"></tki-tree>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2 && rectificationUserList.length>0 && pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title">整改责任人</view>
<picker @change="PickerZgr" :value="uindex" :range="rectificationUserList" range-key="NAME">
<view class="picker">
{{pd.RECTIFICATIONORNAME?pd.RECTIFICATIONORNAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2 && pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title">整改期限</view>
<picker mode="date" :value="pd.RECTIFICATIONDEADLINE" :start="rectifyPlanCompletionStartTime" @change="changeDate">
<view class="picker">
{{pd.RECTIFICATIONDEADLINE?pd.RECTIFICATIONDEADLINE:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top" v-if=" pd.HIDDENLEVEL != 'jdyh001' && pd.HIDDENLEVEL !='hiddenLevel2002'">
<view class="title asterisk">隐患确认人</view>
<picker @change="setConUser" :value="conUserIndex" :range="confirUserAllList" range-key="NAME">
<view class="picker">
{{pd.conUserName?pd.conUserName:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top" v-if="RECTIFICATIONTYPE==2">
<view class="title">隐患发现时间</view>
<ruiDatePicker v-if="pd.DISCOVERYTIME" fields="minute" :value="pd.DISCOVERYTIME || '请选择'"
@change="changeDiscoverDate"></ruiDatePicker>
<text v-else>{{ pd.DISCOVERYTIME }}</text>
</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 v-if="ISLOG == '0'" class="cu-form-textarea margin-top">
<view class="cu-form-title text-hui">隐患位置描述</view>
<textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.POSITIONDESC" placeholder="请对隐患位置进行详细描述(必填项)"></textarea>
</view>
<view v-if="ISLOG == '0'" 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 margin-top" v-if="pd.LONGITUDE && pd.LONGITUDE != 'undefined'">
<view class="sign-title">经度:</view>
<view class="wui-sign-cotent">{{pd.LONGITUDE}}</view>
</view>
<view class="cu-form-group margin-top" v-if="pd.LATITUDE && pd.LATITUDE != 'undefined'">
<view class="sign-title">纬度:</view>
<view class="wui-sign-cotent">{{pd.LATITUDE}}</view>
</view>
<view v-if="ISLOG == '0'" 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)"
@cancel="zgtreeCancel"></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 asterisk">
整改后图片
</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 v-if="ISLOG == '0'" 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 style="width: 0;height: 0;overflow: hidden;position:fixed;left: 200%;">
<canvas canvas-id="firstCanvas" :style="{border:'1px solid #000000',width: width,height: height}"
class="canvas"></canvas>
</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:'appAdd',
riskId:'',
itemId:'',
ISLOG: '',
index:'',
width: '',
height: '',
noClick:true,
pd:{"RECTIFICATIONTYPE":2,
LONGITUDE: '',
LATITUDE: '',ISRELEVANT: '1',
HIDDENLEVEL:'',
HIDDENLEVELNAME:''
},
imgList: [],
imgList1: [],
HIDDENDESCR:'',//隐患描述
HIDDENPART:'',//隐患部位
modalName: null,
id:'',
CHECK_CONTENT:'',
checkId:'',
RECTIFYDESCR:'',//整改描述
RECTIFICATIONTYPE:2,//是否立即
ISRELEVANT: '2', //是否相关方
treeNode:[],//部门下拉数据
RECTIFICATIONDEPT:'',//整改部门
RECTIFICATIONDEPTNAME:'请选择',//整改部门
CHECKDEPT:'',//验收部门
CHECKDEPTNAME:'请选择',//验收部门
rectificationUserList:[],
RECTIFICATIONOR:'',//整改人
uindex: -1,
lindex: -1,
levelList:[],
tindex: -1,
hiddenTypeList:[],
hiddenType2List:[],
HIDDENLEVEL:'',//隐患级别
RECTIFICATIONDEADLINE:'',//整改期限
rectifyPlanCompletionStartTime:'',
LISTMANAGER_ID:'',
hiddenRegionTreeList:[],
confirUserAllList:[],
other:[],
otherUserList:[],
videoList:[],
conUserIndex: -1,
todayDate : formatDate(new Date(), 'yyyy-MM-dd hh:mm'),
modalShow: false,
videoSrc: '',
FIRE_RECORD_ID: '',
}
},
onLoad(event){
this.ISLOG = event.ISLOG
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.FIRE_RECORD_ID = event.FIRE_RECORD_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.LISTMANAGER_ID;
}
this.pd.DISCOVERYTIME = formatDate(new Date(), 'yyyy-MM-dd hh:mm')
this.getDept();
this.myOther();
this.getConfirmUser()
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;
_this.pd.HIDDENPARTNAME = _this.pd.hregionName; //
_this.pd.HIDDENTYPE1NANEM = res.data.pd.HIDDENTYPENAME; //
_this.pd.HIDDENTYPE2NANEM = res.data.pd.HIDDENTYPENAME2; //
_this.pd.confirmDeptName = res.data.pd.hregionDeptName; //
_this.pd.conUserName = res.data.pd.conUserName; //
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();
for(var i=0;i<res.data.hiddenVideo.length;i++){
let video={};
video.filePath=baseImgPath+res.data.hiddenVideo[i].FILEPATH;
video.id=res.data.hiddenVideo[i].IMGFILES_ID;
_this.videoList.push(video);
}
} else if ("exception" == data.result) {
uni.showToast({
title: '',
duration: 2000
});
}
}
});
},
getDept() {
var _this = this;
uni.request({
url: basePath + '/app/sys/listTree',//
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
CORPINFO_ID : corpinfoId,
},
success: (res) => {
if("success" == res.data.result){
_this.treeNode=eval(res.data.zTreeNodes);
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
// 确定回调事件
zgtreeConfirm(e) {
this.isUps=false;
this.pd.RECTIFICATIONDEPT=e[0].id;
this.pd.RECTIFICATIONDEPTNAME=e[0].name;
this.uindex=-1;
this.pd.RECTIFICATIONOR='';
this.pd.RECTIFICATIONORNAME='';
this.$forceUpdate();//强制刷新
this.getUserList();
},
// 取消回调事件
zgtreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
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();//强制刷新
},
//获取数据字典数据
getLevel: function () {
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + '/dictionaries/getLevels?tm=' + new Date().getTime(),
data: {DICTIONARIES_ID: '5e7cf8620ba54ad89719d0be62133c7a'},
success: function (res) {
_this.levelList = res.data.list;
}
});
},
levelPickerChange(e) {
this.lindex = e.detail.value;
this.pd.HIDDENLEVEL=this.levelList[this.lindex].BIANMA;
this.pd.HIDDENLEVELNAME=this.levelList[this.lindex].NAME;
this.$forceUpdate();//强制刷新
},
getHiddenType: function () {
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + '/dictionaries/getLevels?tm=' + new Date().getTime(),
data: {DICTIONARIES_ID: '3babc15144444bdc8d763d0af2bdfff6'},
success: function (res) {
_this.hiddenTypeList = res.data.list;
}
});
},
typePickerChange(e) {
this.tindex = e.detail.value;
this.pd.HIDDENTYPE=this.hiddenTypeList[this.tindex].BIANMA;
this.pd.HIDDENTYPENAME=this.hiddenTypeList[this.tindex].NAME;
this.$forceUpdate();//强制刷新
},
changeDate(e) {
this.pd.RECTIFICATIONDEADLINE = e.detail.value
this.$forceUpdate();//强制刷新
},
radioISRELEVANT(e){
this.pd.ISRELEVANT = e
},
//图片上传
ChooseImage(e) {
var _this = this;
var ss=4-this.imgList.length;
uni.chooseImage({
count: ss, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera','album'], //从相册选择
success: (res) => {
uni.showLoading({ title: '加载中',mask:true})
for (let i = 0; i < res.tempFilePaths.length; i++) {
this.setimg(res.tempFilePaths[i],e)
}
}
});
},
setimg(path,e){
console.info('this.width.')
console.info(this.width)
console.info('this.height.')
console.info(this.height)
var _this = this
let newDate = new Date();
let year = newDate.getFullYear() //年
let month = newDate.getMonth() + 1 //月
let day = newDate.getDate() //日
const hour = newDate.getHours();
const minute = newDate.getMinutes();
const second = newDate.getSeconds();
let date = year + '-' + month + '-' + day + '- ' + hour + ':' + minute + ':' + second
uni.getImageInfo({
src: path,
success: res => {
console.log(res);
this.width = res.width/3 + 'px';
this.height = res.height/3 + 'px';
if (res.width < 800) {
uni.hideLoading()
uni.showToast({
title: '图片尺寸不能小于800',
icon: 'none'
})
return
}
//初始化画布
const ctx = uni.createCanvasContext('firstCanvas', this);
ctx.fillRect(0, 0, res.width, res.height);
ctx.drawImage(res.path, 0, 0, res.width/3, res.height/3); //将图片src放到cancas内宽高为图片大小
ctx.setFontSize(10);
// ctx.globalAlpha = 1;
ctx.setFillStyle('red');
let textToWidth = (res.width/3) - 100;
let textToHeight = (res.height/3) - 20;
ctx.fillText(date, textToWidth, textToHeight);
setTimeout(() => {// 这个不加异步 第一次的图片显示不出来
ctx.draw(false, () => {
setTimeout(() => {
uni.canvasToTempFilePath({
canvasId: 'firstCanvas',//将画布中内容转成图片,即水印与图片合成
x: 0,
y: 0,
width: res.width,
height: res.height,
destWidth: res.width,
destHeight: res.height,
success: ress => {
if (e == 0 ) {
let img = {};
img.id = '';
img.filePath = ress.tempFilePath;
_this.imgList.push(img)
uni.hideLoading()
} else {
let img = {};
img.id = '';
img.filePath = ress.tempFilePath;
_this.imgList1.push(img)
uni.hideLoading()
}
},
fail: (err) => {
uni.hideLoading()
console.log(err);
}
});
}, 500);
});
},300);
}
});
},
ViewImage(e) {
console.info(e.currentTarget.dataset.type)
if(e.currentTarget.dataset.type==0) {
let files =[];
for(var i=0;i<this.imgList.length;i++){
files.push(this.imgList[i].filePath)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
}else{
let files =[];
for(var i=0;i<this.imgList1.length;i++){
files.push(this.imgList1[i].filePath)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
}
},
DelImg(e) {
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '-',
content: '',
cancelColor:"#000000",
cancelText: '',
confirmText: '',
success: res => {
if (res.confirm) {
if(e.currentTarget.dataset.type==0) {
if(_this.imgList[i].id) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
IMGFILES_ID: _this.imgList[i].id,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.imgList.splice(i, 1)
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else {
this.imgList.splice(e.currentTarget.dataset.index, 1)
}
}else{
if(_this.imgList1[i].id) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
IMGFILES_ID: _this.imgList1[i].id,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.imgList1.splice(i, 1)
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else {
this.imgList1.splice(e.currentTarget.dataset.index, 1)
}
}
}
}
})
},
textareaAInput(e){
this.pd.HIDDENDESCR= e.detail.value
},
textareaBInput(e){
this.pd.HIDDENPART= e.detail.value
},
textareaCInput(e){
this.pd.RECTIFYDESCR= e.detail.value
},
goSubmit() {
var _this = this;
// if (!_this.pd.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.HIDDENDESCR) {
uni.showToast({
icon: 'none',
title: '请填隐患描述',
duration: 1500
});
return;
}
// if (!_this.pd.HIDDENPART) {
// uni.showToast({
// icon: 'none',
// title: '请填隐患部位',
// duration: 1500
// });
// return;
// }
if (!_this.pd.HIDDENLEVEL) {
uni.showToast({
icon: 'none',
title: '请选择隐患级别',
duration: 1500
});
return;
}
if (!_this.pd.HIDDENTYPE) {
uni.showToast({
icon: 'none',
title: '请选择隐患类型',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 1 && !_this.pd.RECTIFYDESCR) {
uni.showToast({
icon: 'none',
title: '请填整改描述',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 1 && _this.imgList1.length <= 0) {
uni.showToast({
icon: 'none',
title: '请上传整改后图片',
duration: 1500
});
return;
}
if (!_this.pd.ISRELEVANT) {
uni.showToast({
icon: 'none',
title: '请选择是否相关方',
duration: 1500
});
return;
}
/*if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONDEPT && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') {
uni.showToast({
icon: 'none',
title: '请选择整改部门',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONOR && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') {
uni.showToast({
icon: 'none',
title: '请选择整改人',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONDEADLINE && _this.pd.HIDDENLEVEL != 'jdyh001' && _this.pd.HIDDENLEVEL !='hiddenLevel2002') {
uni.showToast({
icon: 'none',
title: '请选择整改期限',
duration: 1500
});
return;
}*/
var fileList = [];
for (var i = 0; i < _this.imgList.length; i++) {
if(!_this.imgList[i].id){
var file = {};
file.type = 3;
file.filePath = _this.imgList[i].filePath;
fileList.push(file);
}
}
if (_this.RECTIFICATIONTYPE == 1){
for (var i = 0; i < _this.imgList1.length; i++) {
if(!_this.imgList1[i].id) {
var file = {};
file.type = 4;
file.filePath = _this.imgList1[i].filePath;
fileList.push(file);
}
}
}
if(_this.videoList.length>0){
if(!_this.videoList[0].id){
var file = {};
file.type = 102;
file.filePath = _this.videoList[0].filePath;
fileList.push(file);
}
}
new Promise((resolve, reject) => {
_this.submit().then(() => {resolve();})
}).then(() => {
var i=0;
_this.uploadImg(fileList,i).then(() => {resolve();})
}).then(() => {
var pages = getCurrentPages(); // 获取当前页面栈
var prePage = pages[pages.length - 2]; // 上一个页面
// var task = prePage.$vm.list[_this.index];
if(_this.index) {
prePage.$vm.initflag = true; // A 页面 init方法 为true
// prePage.$vm.list[_this.index].ISNORMAL = 1;
// prePage.$vm.list[_this.index].HIDDEN_ID = _this.pd.HIDDEN_ID;
}
uni.navigateBack({});
uni.hideLoading();
})
},
uploadImg(tempFilePaths,i){
return new Promise((resolve, reject) => {
var _this = this;
if(tempFilePaths.length==0){
resolve();
}
uni.showLoading({
title: '上传中'
})
uni.uploadFile({
url: basePath+'/app/imgfiles/add',
filePath: tempFilePaths[i].filePath,
name: 'FFILE',
formData: {
'TYPE': tempFilePaths[i].type,
'FOREIGN_KEY': _this.pd.HIDDEN_ID
},
success: (res) => {
i++;
if (tempFilePaths.length > i) {
_this.uploadImg(tempFilePaths, i);
} else {
uni.hideLoading();
resolve();
}
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
})
},
submit(){
return new Promise((resolve, reject) => {
var _this = this;
if(_this.pd.POSITIONDESC == undefined){
_this.pd.POSITIONDESC = ''
}
if(_this.pd.HIDDENPART == undefined){
_this.pd.HIDDENPART = ''
}
uni.request({
url: basePath+'/app/hidden/'+_this.msg,
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
HIDDEN_ID:_this.pd.HIDDEN_ID,
SOURCE:'6',
STATE:'0',
HIDDENDESCR:_this.pd.HIDDENDESCR,
HIDDENPART:_this.pd.HIDDENPART,
LATITUDE:_this.pd.LATITUDE,
LONGITUDE:_this.pd.LONGITUDE,
ISRELEVANT: _this.pd.ISRELEVANT,
POSITIONDESC: _this.pd.POSITIONDESC,
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,
LISTMANAGER_ID: _this.LISTMANAGER_ID,
DISCOVERYTIME:this.pd.DISCOVERYTIME, //gwj 发现时间
other : JSON.stringify(this.other), //gwj 发现人
CONFIRM_USER :this.pd.conUserId , //gwj 隐患确认人
HIDDENTYPE2:_this.pd.HIDDENTYPE2, //gwj 隐患类型2 HIDDENTYPE2
},
success: (res) => {
if ("success" == res.data.result) {
_this.pd.HIDDEN_ID= res.data.pd.HIDDEN_ID;
uni.request({
url: basePath+'app/fireRecordManger/addOtherHidden',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
HIDDEN_ID:_this.pd.HIDDEN_ID,
FIRE_RECORD_ID:_this.FIRE_RECORD_ID,
},
success: (res) => {
if ("success" == res.data.result) {
resolve();
} else {
uni.showToast({
title: res.data.msaesge,
duration: 2000
});
}
}
});
// 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
},
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();//强制刷新
},
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'},
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.hiddenLevenTree2._show();
},
//
hiddenLevenConfirm(e) {
this.isUps=false;
this.pd.HIDDENLEVEL=e[0].id;
this.pd.HIDDENLEVELNAME=e[0].name;
this.$forceUpdate();//
},
showHiddenType1TreeTree(){
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: '3babc15144444bdc8d763d0af2bdfff6'},
success: function (res) {
var jons = res.data.zTreeNodes ;
_this.hiddenTypeList = JSON.parse(jons) ;
}
});
}
this.$refs.hiddenType1Tree._show();
this.isUps=false
},
hiddenType1Confirm(e){
this.$set(this.pd,'HIDDENTYPE1NANEM',e[0].name)
this.$set(this.pd,'HIDDENTYPE',e[0].id)
this.isUps=false;
},
showHiddenType2TreeTree(){
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: '18c0a9aea6e54feab9f4ab3f46e0bc86'},
success: function (res) {
var jons = res.data.zTreeNodes ;
_this.hiddenType2List = JSON.parse(jons) ;
}
});
}
this.$refs.hiddenType2Tree._show();
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.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,
DEPARTMENT_ID:_this.pd.confirmDeptId,
NOMAIN:'1',
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;
console.info(e)
console.info(this.confirUserAllList)
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.pd.LONGITUDE = e.data.longitue;
_this.pd.LATITUDE = e.data.latitude;
}
},
})
},
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)
}
}
});
},
DelVideo(e) {
uni.showModal({
title: '秦港-双基双控',
content: '确定要删除这个视频吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
this.videoList = []
}
}
})
},
// 取消回调事件
hiddentreeCancel(e) {
this.isUps = false;
},
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>