integrated_traffic_uniapp/pages/application/hidden-trouble-investigation/hidden-trouble-app/exclude-form.vue

1107 lines
34 KiB
Vue
Raw Normal View History

2024-01-16 17:24:49 +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-form-textarea">
<view class="cu-form-title">检查内容</view>
<view class="cu-form-p" style="padding: 0;">
{{pd.CHECK_CONTENT}}
</view>
</view>
<view class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
隐患照片
</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.stop="openAuth('CAMERA')" 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" 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.stop="openAuthVideo('CAMERA')" 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">
隐患部位
<button class="cu-btn bg-green sm reg-btn" @click="openHidden" >隐患字典</button>
</view>
<textarea maxlength="-1" :disabled="modalName!=null" v-model="pd.HIDDENPART" placeholder="请对隐患部位进行详细描述(必填项)"></textarea>
</view>
<view class="cu-form-textarea margin-top">
<view class="cu-form-title">隐患描述</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>
<picker @change="levelPickerChange" :value="lindex" :range="levelList" range-key="NAME">
<view class="picker">
{{pd.HIDDENLEVELNAME?pd.HIDDENLEVELNAME:'请选择'}}
</view>
</picker>
</view>
<view v-if="baoBaoType === '1'" class="cu-form-group margin-top">
<view class="title">隐患类别</view>
<picker @change="categoryPickerChange" :value="cindex" :range="categoryList" range-key="NAME">
<view class="picker">
{{pd.HIDDEN_CATEGORY_NAME?pd.HIDDEN_CATEGORY_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top">
<view class="title">隐患类型</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showZgTree1">{{pd.HIDDENTYPENAME?pd.HIDDENTYPENAME:''}}</view>
</view>
<tki-tree ref="tkiTree1"
:selectParent="true"
:range="hiddenTypeList"
rangeKey="name"
@confirm="zgtreeConfirm1"
@cancel="zgtreeCancel1"></tki-tree>
</view>
<view class="cu-form-group margin-top">
<view class="title">是否立即整改</view>
<radio-group class="selected" >
<view class="group mr20" v-if="disabledvalue==false">
<radio class='radio' value="1" :checked="RECTIFICATIONTYPE==1" @click="radioType(1)"></radio>
<text></text>
</view>
<view class="group mr20" v-if="disabledvalue==true">
<radio class='radio' disabled="true" value="1" :checked="RECTIFICATIONTYPE==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">
<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">
<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">
<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-textarea margin-top" v-if="RECTIFICATIONTYPE==1">
<view class="cu-form-title">整改描述</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.stop="openAuthZg('CAMERA')" v-if="imgList1.length<4">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
</view>
<view class="padding flex flex-direction">
<button :loading="buttonloading" 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" @fullscreenchange="fullScreenHandler"></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>
<library-select :visible.sync="library" :value="pd.HIDDENPART" :name="RISK_UNIT_NAME" @confirm="confirm" />
<yk-authpup ref="authpup" type="top" @changeAuth="ChooseImage(0)" :permissionID="permissionID"></yk-authpup>
<yk-authpup ref="authpup_video" type="top" @changeAuth="chooseVideo(0)" :permissionID="permissionID"></yk-authpup>
<yk-authpup ref="authpup_zg" type="top" @changeAuth="ChooseImage(1)" :permissionID="permissionID"></yk-authpup>
</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 LibrarySelect from '@/components/library-select/index.vue';
import ykAuthpup from "@/components/yk-authpup/yk-authpup"
export default {
components: {
tkiTree,LibrarySelect,ykAuthpup
},
data() {
return {
permissionID:'',
isUps:false,
buttonloading: false,
2024-02-19 09:51:26 +08:00
msg:'riskListCheckAdd',
2024-01-16 17:24:49 +08:00
riskId:'',
itemId:'',
LISTMANAGER_ID:'',
RISK_UNIT_ID:'',
RISK_UNIT_NAME:'',
index:'',
noClick:true,
pd:[{"RECTIFICATIONTYPE":2}],
imgList: [],
imgList1: [],
HIDDENDESCR:'',//隐患描述
HIDDENPART:'',//隐患部位
modalName: null,
id:'',
CHECK_CONTENT:'',
checkId:'',
RECTIFYDESCR:'',//整改描述
RECTIFICATIONTYPE:2,//是否立即
treeNode:[],//部门下拉数据
RECTIFICATIONDEPT:'',//整改部门
RECTIFICATIONDEPTNAME:'请选择',//整改部门
CHECKDEPT:'',//验收部门
CHECKDEPTNAME:'请选择',//验收部门
rectificationUserList:[],
RECTIFICATIONOR:'',//整改人
uindex: -1,
lindex: -1,
cindex: -1,
levelList:[],
categoryList:[],
tindex: -1,
hiddenTypeList:[],
HIDDENLEVEL:'',//隐患级别
RECTIFICATIONDEADLINE:'',//整改期限
rectifyPlanCompletionStartTime:'',
disabledvalue:false,
videoSrc:'',
modalShow:false,
videoList:[],
baoBaoType:'',
library: false
}
},
onLoad(event){
let now = new Date();
var tomorrow=now.setDate(now.getDate()+1);
tomorrow=new Date(tomorrow);
this.rectifyPlanCompletionStartTime = formatDate(tomorrow, 'yyyy-MM-dd');
this.pd.HIDDEN_ID = event.HIDDEN_ID;
if(this.pd.HIDDEN_ID){
2024-02-19 09:51:26 +08:00
this.msg="riskListCheckEdit";
2024-01-16 17:24:49 +08:00
this.getData();
}else {
this.pd.CHECK_CONTENT = JSON.parse(decodeURIComponent(event.checkContent));
this.riskId = JSON.parse(decodeURIComponent(event.riskId));
this.itemId = JSON.parse(decodeURIComponent(event.itemId));
this.LISTMANAGER_ID = JSON.parse(decodeURIComponent(event.LISTMANAGER_ID));
this.RISK_UNIT_ID = JSON.parse(decodeURIComponent(event.RISK_UNIT_ID));
this.RISK_UNIT_NAME = JSON.parse(decodeURIComponent(event.RISK_UNIT_NAME));
this.baoBaoType = JSON.parse(decodeURIComponent(event.baoBaoType))+'';
console.log(this.baoBaoType)
this.index = event.index;
}
this.getDept();
this.getLevel();
this.getHiddenType();
loginSession();
},
methods: {
fullScreenHandler(e) {
if (uni.getSystemInfoSync().platform == "ios") { return }
},
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,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
if ("success" == res.data.result) {
uni.hideLoading();
_this.pd = res.data.pd; //参数map
_this.RISK_UNIT_ID = res.data.pd.RISK_UNIT_ID;
_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;
if(files[i].FILEPATH.substring(files[i].FILEPATH.lastIndexOf("."), files[i].FILEPATH.length) === '.jpg'){
img.id=files[i].IMGFILES_ID;
_this.imgList.push(img);
} else {
img.id=files[i].IMGFILES_ID;
_this.videoList.push(img);
}
}
let files1=res.data.rImgs;
for(var i=0;i<files1.length;i++){
let img={};
img.filePath=baseImgPath+files1[i].FILEPATH;
img.id=files1[i].IMGFILES_ID;
_this.imgList1.push(img);
}
_this.getUserList();
} else if ("exception" == data.result) {
uni.showToast({
title: '错误',
duration: 2000
});
}
}
});
},
openHidden(){
if( !this.pd.HIDDENPART){
uni.showToast({
icon: 'none',
title: '请先输入隐患部位信息,在进行隐患字典查询',
duration: 1500
});
return;
}else{
this.library = true
}
},
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:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
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=true
this.$refs.tkiTree._show();
},
// 确定回调事件
ystreeConfirm(e) {
this.pd.CHECKDEPT=e[0].id;
this.pd.CHECKDEPTNAME=e[0].name;
this.$forceUpdate();//强制刷新
},
// 显示树形选择器
showYsTree() {
this.$refs.tkiTree1._show();
},
//获取人员列表
getUserList(){
//发送 post 请求
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
url: basePath+'/app/sys/listUser',
data: {
DEPARTMENT_ID:_this.pd.RECTIFICATIONDEPT,
tm:new Date().getTime(),
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
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',
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: function (res) {
_this.levelList = res.data.list;
}
});
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: 'ec1d6dcfd0f2438a88968feea542eab0',
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: function (res) {
_this.categoryList = res.data.list;
}
});
},
levelPickerChange(e) {
console.log(e)
if(e.detail.value==1){
this.disabledvalue=true;
this.RECTIFICATIONTYPE = 2;
}else{
this.disabledvalue=false;
}
this.lindex = e.detail.value;
this.pd.HIDDENLEVEL=this.levelList[this.lindex].BIANMA;
this.pd.HIDDENLEVELNAME=this.levelList[this.lindex].NAME;
this.$forceUpdate();//强制刷新
},
categoryPickerChange(e) {
this.cindex = e.detail.value;
this.pd.HIDDEN_CATEGORY=this.categoryList[this.cindex].DICTIONARIES_ID;
this.pd.HIDDEN_CATEGORY_NAME=this.categoryList[this.cindex].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',
data: {
DICTIONARIES_ID: '3babc15144444bdc8d763d0af2bdfff8',
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: function ({data}) {
for (let i = 0; i < data.list.length; i++) {
if (data.list[i].BIANMA.indexOf(loginUser.PROVINCE) > -1) {
_this.getTrainDicList(data.list[i].DICTIONARIES_ID)
break
}
}
}
});
},
getTrainDicList(parentId) { // trainDicList
var _this = this;
uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + '/dictionaries/listAllDictToParId',
data: {
parentId,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: function ({data}) {
let zTreeNodes = data.zTreeNodes
zTreeNodes = zTreeNodes.replace(/"nodes":\[/g, '"children":[')
_this.hiddenTypeList = JSON.parse(zTreeNodes)
}
});
},
showZgTree1(){
this.isUps=true
this.$refs.tkiTree1._show();
},
zgtreeCancel1(e){
this.isUps=false;
},
zgtreeConfirm1(e){
this.isUps=false;
if(e[0]?.parents.length === 1){
this.pd.HIDDENTYPE = [e[0]?.parents[0]?.id || '', e[0]?.id || ''];
this.pd.HIDDENTYPENAME = [e[0]?.parents[0]?.name || '', e[0]?.name || ''].join('/')
}else if(e[0]?.parents.length === 2) {
this.pd.HIDDENTYPE = [e[0]?.parents[0]?.id || '', e[0]?.parents[1]?.id || '', e[0]?.id || ''];
this.pd.HIDDENTYPENAME = [e[0]?.parents[0]?.name || '', e[0]?.parents[1]?.name || '', e[0]?.name || ''].join('/')
}else{
this.pd.HIDDENTYPE = [e[0]?.id || ''];
this.pd.HIDDENTYPENAME = [e[0]?.name || ''].join('/');
}
},
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();//强制刷新
},
openAuth(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup'].open();
},200)
},
openAuthZg(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup_zg'].open();
},200)
},
//图片上传
ChooseImage(e) {
var _this = this;
var ss=4-this.imgList.length;
uni.chooseImage({
count: ss, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera','album'], //从相册选择
success: (res) => {
if(e==0) {
for (let i = 0; i < res.tempFilePaths.length; i++) {
let img={};
img.id='';
img.filePath=res.tempFilePaths[i];
this.imgList.push(img)
}
}else{
for (let i = 0; i < res.tempFilePaths.length; i++) {
let img={};
img.id='';
img.filePath=res.tempFilePaths[i];
this.imgList1.push(img)
}
}
}
});
},
ViewImage(e) {
console.info(e.currentTarget.dataset.type)
if(e.currentTarget.dataset.type==0) {
let files =[];
for(var i=0;i<this.imgList.length;i++){
files.push(this.imgList[i].filePath)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
}else{
let files =[];
for(var i=0;i<this.imgList1.length;i++){
files.push(this.imgList1[i].filePath)
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
}
},
DelImg(e) {
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
if(e.currentTarget.dataset.type==0) {
if(_this.imgList[i].id) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
IMGFILES_ID: _this.imgList[i].id,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_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,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_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
},
async goSubmit() {
var _this = this;
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.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONDEPT) {
uni.showToast({
icon: 'none',
title: '请选择整改部门',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONOR) {
uni.showToast({
icon: 'none',
title: '请选择整改人',
duration: 1500
});
return;
}
if (_this.RECTIFICATIONTYPE == 2 && !_this.pd.RECTIFICATIONDEADLINE) {
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);
}
}
for (var i = 0; i < _this.videoList.length; i++) {
if(!_this.videoList[i].id){
var file = {};
file.type = 3;
file.filePath = _this.videoList[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);
}
}
}
await _this.submit()
var i=0;
await _this.uploadPromise(fileList)
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();
},
async uploadPromise(tempFilePaths){
if (tempFilePaths.length == 0) {
return
}
uni.showLoading({
title: '上传中'
})
for (let i = 0; i < tempFilePaths.length; i++) {
await this.uploadImg(tempFilePaths[i])
}
},
uploadImg(file){
return new Promise((resolve, reject) => {
var _this = this;
uni.uploadFile({
url: basePath+'/app/imgfiles/add',
filePath: file.filePath,
name: 'FFILE',
formData: {
'TYPE': file.type,
'FOREIGN_KEY': _this.pd.HIDDEN_ID,
CORPINFO_ID: loginUser.CORPINFO_ID,
USER_ID: loginUser.USER_ID,
},
success: (res) => {
resolve();
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
})
},
submit(){
return new Promise((resolve, reject) => {
var _this = this;
let longitude;
let latitude;
this.buttonloading = true
uni.getLocation({
type: 'GCJ02',
success: function (res1) {
longitude = res1.longitude;
latitude = res1.latitude;
var result = gcoord.transform(
[longitude, latitude], // 经纬度坐标
gcoord.GCJ02, // 当前坐标系
gcoord.BD09 // 目标坐标系
);
longitude = result[0];
latitude = result[1];
//发送 post 请求提交保存
this.buttonloading = true
uni.request({
url: basePath+'/app/hidden/'+_this.msg,
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
HIDDEN_ID:_this.pd.HIDDEN_ID,
SOURCE:'2',
STATE:'0',
HIDDENDESCR:_this.pd.HIDDENDESCR,
HIDDENPART:_this.pd.HIDDENPART,
LATITUDE:latitude,
LONGITUDE:longitude,
RECTIFYDESCR:_this.pd.RECTIFYDESCR?_this.pd.RECTIFYDESCR:'',
RECTIFICATIONDEADLINE:_this.pd.RECTIFICATIONDEADLINE?_this.pd.RECTIFICATIONDEADLINE:'',
RECTIFICATIONTYPE:_this.RECTIFICATIONTYPE,
RECTIFICATIONOR:_this.pd.RECTIFICATIONOR,
HIDDENLEVEL:_this.pd.HIDDENLEVEL,
HIDDENTYPE:_this.pd.HIDDENTYPE,
RECTIFICATIONDEPT:_this.pd.RECTIFICATIONDEPT,
// CHECKDEPT:_this.pd.CHECKDEPT?_this.pd.CHECKDEPT:'',
CHECK_CONTENT:_this.pd.CHECK_CONTENT,
HIDDENFINDDEPT:deptId,
CREATOR:loginUser.USER_ID,
RECORDITEM_ID:_this.itemId,
LISTMANAGER_ID:_this.LISTMANAGER_ID,
RISKITEM_ID:_this.riskId,
CLEARIMG:'1',
HIDDENTYPE_NAME:_this.pd.HIDDENTYPENAME,
HIDDENTYPE1:_this.pd.HIDDENTYPE[0] || '',
HIDDENTYPE2:_this.pd.HIDDENTYPE[1] || '',
HIDDENTYPE3:_this.pd.HIDDENTYPE[2] || '',
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
HIDDEN_CATEGORY:_this.pd.HIDDEN_CATEGORY?_this.pd.HIDDEN_CATEGORY:''
},
success: (res) => {
this.buttonloading = false
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
});
}
}
});
},
fail: function(res){
uni.hideLoading();
uni.showToast({
title: "获取位置失败",
duration: 2000
});
}
});
});
},
radioType(e){
if(!this.disabledvalue){
this.RECTIFICATIONTYPE = e
}else{
this.RECTIFICATIONTYPE=2
}
},
openAuthVideo(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup_video'].open();
},200)
},
chooseVideo(e){
var _this = this;
uni.chooseVideo({
maxDuration:60,
count: 1, //默认9
// sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera','album'], //从相册选择
success: (res) => {
if(res.tempFilePath.substring(res.tempFilePath.lastIndexOf(".") + 1, res.tempFilePath.length) === 'mp4'){
let img={};
img.id='';
img.filePath=res.tempFilePath;
this.videoList.push(img)
}else {
uni.showToast({
title: "只能上传MP4格式",
duration: 2000
});
}
}
});
},
DelVideo(e){
uni.showModal({
title: '',
content: '确定要删除这个视频吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
this.videoList = []
}
}
})
},
playVideo(e) {
this.videoSrc = e.currentTarget.dataset.src
this.modalShow = true
},
confirm(info){
this.pd.HIDDENPART = info.HIDDEN_PART
this.pd.HIDDENDESCR = info.INSPECTION_BASIS
this.pd.HIDDENLEVEL = 'hiddenLevel0001'
this.pd.HIDDENLEVELNAME = '一般隐患'
if (info.HIDDEN_TYPE_ONE_NAME){this.pd.HIDDENTYPENAME = info.HIDDEN_TYPE_ONE_NAME}
if (info.HIDDEN_TYPE_TWO_NAME){this.pd.HIDDENTYPENAME = this.pd.HIDDENTYPENAME+'/'+info.HIDDEN_TYPE_TWO_NAME}
if (info.HIDDEN_TYPE_THREE_NAME){this.pd.HIDDENTYPENAME = this.pd.HIDDENTYPENAME+'/'+info.HIDDEN_TYPE_THREE_NAME}
this.pd.HIDDENTYPE = info.HIDDENTYPE
}
}
}
</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;
font-weight: bold;
color: #000;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>