QA-UniApp-wlaq/pages/application/high-work/high-work-apply/high-work-apply-detail.vue

666 lines
21 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 >
<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="wui-form-list">
<view class="cu-form-group">
<view class="title">编号</view>
<input name="input" ref="CHECK_NO" :disabled="forbidEdit" v-model="pd.CHECK_NO" placeholder="请输入编号"></input>
</view>
<view class="cu-form-group">
<view class="title">所属单位:</view>
<input name="input" ref="BELONGING_CORP" :disabled="forbidEdit" v-model="pd.BELONGING_CORP" placeholder="请输入所属单位"></input>
</view>
<view class="cu-form-group">
<view class="title">施工地点:</view>
<input name="input" ref="WORK_PLACE" :disabled="forbidEdit" v-model="pd.WORK_PLACE" placeholder="请输入施工地点"></input>
</view>
<view class="cu-form-group" >
<view class="title">填写人:</view>
<input name="input" ref="APPLY_USER" :disabled="forbidEdit" v-model="pd.APPLY_USER" placeholder="请输入监护人"></input>
</view>
<view class="cu-form-group bb-default">
<view class="title">作业人:</view>
<input name="input" ref="PROJECT_MANAGER" :disabled="forbidEdit" v-model="pd.PROJECT_MANAGER" placeholder="请输入作业人"></input>
</view>
<view class="cu-form-textarea">
<view class="cu-form-title">作业内容:</view>
<textarea maxlength="255" :disabled="forbidEdit" v-model="pd.WORK_CONTENT" placeholder="请输入作业内容"></textarea>
</view>
<view class="cu-form-group ">
<view class="title">开工时间</view>
<ruiDatePicker v-if="!forbidEdit"
:start="todayDate"
fields="minute"
:value="pd.WORK_START_DATE?pd.WORK_START_DATE:''"
@change="changeStartDate"
></ruiDatePicker>
<view v-else>{{pd.WORK_START_DATE}}</view>
</view>
</view>
<view class="wui-form-list" style="padding-top: 20upx;" v-if="pd.APPLY_STATUS && pd.APPLY_STATUS!=0 && pd.APPLY_STATUS!=1">
<view class="wui-title" style="margin-left: 20upx;">
<text class="text-semi">安全防护措施</text>
</view>
<view class="wui-table" style="padding: 0 20upx;">
<uni-table name='measuresList' border stripe emptyText="暂无更多数据" >
<!-- 表头行 -->
<uni-tr>
<uni-th align="center" style="font-weight: bold;">主要安全措施</uni-th>
<uni-th align="center" style="font-weight: bold;width: 100upx">操作</uni-th>
</uni-tr>
<uni-tr v-for="(item,index) in measuresList" :key="item.BUS_HIGHWORK_MEASURES_ID">
<uni-td>{{item.PROTECTIVE_MEASURES}}</uni-td>
<uni-td align="center">
<radio-group class="selected">
<view class="group" v-if="item.STATUS=='-1'">
<radio class='radio' value="-1" checked></radio>
</view>
<view class="group" v-if="item.STATUS=='1'">
<radio value="1" checked></radio>
</view>
</radio-group>
</uni-td>
</uni-tr>
</uni-table>
</view>
<view v-if="pd.APPLY_STATUS && pd.APPLY_STATUS!=0 && pd.APPLY_STATUS!=1">
<view class="ty-group">
<view class="title">补充措施:</view>
</view>
<view v-if="pd.CONFIRM_USER_MEASURES" class="ty-group">
<text class="title">
施工负责人:</text>
<text>{{ pd.CONFIRM_USER_MEASURES}}</text>
</view>
<view v-if="pd.AUDIT_USER_MEASURES" class="ty-group">
<text class="title">
审核人:</text>
<text>{{ pd.AUDIT_USER_MEASURES}}</text>
</view>
<view v-if="pd.APPROVE_USER_MEASURES" class="ty-group">
<text class="title">
审批人:</text>
<text>{{ pd.APPROVE_USER_MEASURES}}</text>
</view>
</view>
<view v-if="pd.APPLY_STATUS && pd.APPLY_STATUS!=0 && pd.APPLY_STATUS!=1">
<view class="cu-form-group" style="border-top: 1px solid #eee;border-bottom: 1px solid #eee;">
<view class="title">危害识别:</view>
</view>
<view v-if="pd.CONFIRM_USER_IDENTIFICATION" class="ty-group">
<text class="title">
施工负责人:</text>
<text>{{ pd.CONFIRM_USER_IDENTIFICATION}}</text>
</view>
<view v-if="pd.AUDIT_USER_IDENTIFICATION" class="ty-group">
<text class="title">
审核人:</text>
<text>{{ pd.AUDIT_USER_IDENTIFICATION}}</text>
</view>
<view v-if="pd.APPROVE_USER_IDENTIFICATION" class="ty-group">
<text class="title">
审批人:</text>
<text>{{ pd.APPROVE_USER_IDENTIFICATION}}</text>
</view>
</view>
</view>
<view class="wui-form-list" v-if="!forbidEdit">
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">施工单位</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showConstructionTree">{{pd.CONSTRUCTION_DEPARTMENT_NAME?pd.CONSTRUCTION_DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree_construction"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="constructiontreeConfirm"
@cancel="constructiontreeCancel"></tki-tree>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">施工单位负责人</view>
<picker @change="PickerConstruction" :value="constructionindex" :range="constructionUserList" range-key="NAME" :disabled="constructionUserList.length == 0" @click="isBlankList('construction')">
<view class="picker">
{{pd.CONSTRUCTION_USER_NAME?pd.CONSTRUCTION_USER_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">审核单位</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showAuditTree">{{pd.AUDIT_DEPARTMENT_NAME?pd.AUDIT_DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree_audit"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="audittreeConfirm"
@cancel="audittreeCancel"></tki-tree>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">审核人</view>
<picker @change="PickerAudit" :value="auditindex" :range="auditUserList" range-key="NAME" :disabled="auditUserList.length == 0" @click="isBlankList('audit')">
<view class="picker">
{{pd.AUDIT_USER_NAME?pd.AUDIT_USER_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">审批单位</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showApproveTree">{{pd.APPROVE_DEPARTMENT_NAME?pd.APPROVE_DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree_approve"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="approvetreeConfirm"
@cancel="approvetreeCancel"></tki-tree>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">审批人</view>
<picker @change="PickerApprove" :value="approveindex" :range="approveUserList" range-key="NAME" :disabled="approveUserList.length == 0" @click="isBlankList('approve')">
<view class="picker">
{{pd.APPROVE_USER_NAME?pd.APPROVE_USER_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">验收部门</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showAcceptTree">{{pd.ACCEPT_DEPARTMENT_NAME?pd.ACCEPT_DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree_accept"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="accepttreeConfirm"
@cancel="accepttreeCancel"></tki-tree>
</view>
<view class="cu-form-group" v-if="!forbidEdit">
<view class="title">验收部门负责人</view>
<picker @change="PickerAccept" :value="acceptindex" :range="acceptUserList" range-key="NAME" :disabled="acceptUserList.length == 0" @click="isBlankList('accept')">
<view class="picker">
{{pd.ACCEPT_USER_NAME?pd.ACCEPT_USER_NAME:'请选择'}}
</view>
</picker>
</view>
</view>
<view class="wui-form-list" v-if="forbidEdit">
<view class="cu-form-textarea">
<view class="cu-form-title">施工单位负责人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="pd.CONSTRUCTION_CONTENT"></textarea>
</view>
<view class="cu-form-group" style="border-bottom: 1px solid #eee;border-top: none;">
<view class="title">施工单位负责人</view>
{{pd.CONSTRUCTION_USER_NAME}} {{pd.CONSTRUCTION_USER_SIGNER_TIME}}
</view>
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">审核人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="pd.AUDIT_CONTENT"></textarea>
</view>
<view class="cu-form-group" style="border-bottom: 1px solid #eee;border-top: none;">
<view class="title">审核人</view>
{{pd.AUDIT_USER_NAME}} {{pd.AUDIT_USER_SIGNER_TIME}}
</view>
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">审批人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="pd.APPROVE_CONTENT"></textarea>
</view>
<view class="cu-form-group" v-if="forbidEdit" style="border-bottom: 1px solid #eee;border-top: none;">
<view class="title">审批人</view>
{{pd.APPROVE_USER_NAME}} {{pd.APPROVE_USER_SIGNER_TIME}}
</view>
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">验收人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="pd.ACCEPT_CONTENT"></textarea>
</view>
<view class="cu-form-group" v-if="forbidEdit" style="border-bottom: 1px solid #eee;border-top: none;">
<view class="title">验收人</view>
{{pd.ACCEPT_USER_NAME}} {{pd.ACCEPT_USER_SIGNER_TIME}}
</view>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button v-if="!forbidEdit" 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(goSubmit,'0')">暂存</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>
</scroll-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 writingBoard from "@/components/writing-board/writing-board.vue"
import gcoord from '@/common/gcoord.js'
import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue';
export default {
components: {
tkiTree,ruiDatePicker,writingBoard
},
data() {
return {
baseImgPath:baseImgPath,
isUps:false,
forbidEdit:true,// 禁止修改
msg:'add',
noClick:true,
treeNode:[],//部门下拉数据
constructionUserList:[],
constructionindex:-1,
applyUserList:[],
applyindex:-1,
auditUserList:[],
auditindex:-1,
approveUserList:[],
approveindex:-1,
acceptUserList:[],
acceptindex:-1,
pd:{
OTHER_PROTECTIVE_MEASURES: ';_;;_;;_;',
HAZARD_IDENTIFICATION: ';_;;_;;_;'
},// 数据
measuresList:[],
rules:[
{name:'CHECK_NO',message:'请输入编号'},
{name:'BELONGING_CORP',message:'请输入所属单位'},
{name:'WORK_PLACE',message:'请输入施工地点'},
// {name:'WORK_CORP',message:'请输入施工单位'},
{name:'APPLY_USER',message:'请输入填写人'},
{name:'PROJECT_MANAGER',message:'请输入作业人'},
{name:'WORK_CONTENT',message:'请输入作业内容'},
{name:'WORK_START_DATE',message:'请选择开工时间'},
{name:'CONSTRUCTION_USER_ID',message:'请选择施工单位负责人'},
{name:'AUDIT_USER_ID',message:'请选择审核人'},
{name:'APPROVE_USER_ID',message:'请选择审批人'},
{name:'ACCEPT_USER_ID',message:'请选择验收人'},
],
todayDate:'',
}
},
onLoad(event){
this.todayDate = formatDate(new Date(), 'yyyy-MM-dd hh:mm');
this.pd.HIGHWORK_ID = event.HIGHWORK_ID;
if(this.pd.HIGHWORK_ID){
this.msg="edit";
this.getData();
}else {
// 初始化作业负责人
this.pd.APPLY_DEPARTMENT_ID = loginUser.DEPARTMENT_ID;
this.pd.APPLY_DEPARTMENT_NAME = loginUser.DEPARTMENT_NAME;
this.pd.APPLY_USER_ID = loginUser.USER_ID;
this.pd.APPLY_USER = loginUser.NAME;
this.forbidEdit = false;
this.pd.OTHER_PROTECTIVE_MEASURES = ''
this.pd.HAZARD_IDENTIFICATION = ''
}
// 初始化现场作业负责人
this.getDept();
loginSession();
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/highwork/goEdit',
method: 'POST',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
HIGHWORK_ID: _this.pd.HIGHWORK_ID,
},
success: (res) => {
if ("success" == res.data.result) {
uni.hideLoading();
_this.pd = res.data.pd; //参数map
_this.pd = Object.assign(_this.pd,
{
"CONFIRM_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[0],
"AUDIT_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[1],
"APPROVE_USER_MEASURES": _this.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[2]
})
_this.pd.OTHER_PROTECTIVE_MEASURES = ''
_this.pd = Object.assign(_this.pd,
{
"CONFIRM_USER_IDENTIFICATION": _this.pd.HAZARD_IDENTIFICATION.split(";_;")[0],
"AUDIT_USER_IDENTIFICATION": _this.pd.HAZARD_IDENTIFICATION.split(";_;")[1],
"APPROVE_USER_IDENTIFICATION": _this.pd.HAZARD_IDENTIFICATION.split(";_;")[2]
})
_this.pd.HAZARD_IDENTIFICATION = ''
_this.measuresList = res.data.measuresList
if(_this.pd.APPLY_STATUS < 1){
_this.forbidEdit = false;
}
} else if ("exception" == data.result) {
uni.showToast({
title: '错误',
duration: 2000
});
}
}
});
},
goSubmit(STATUS){
var _this = this;
let required = true
uni.showLoading({
title: '请稍候'
})
if(STATUS==1) {
this.rules.map(({name,message}) => {
if (!this.pd[name]) {
uni.showToast({
icon: 'none',
title: message,
duration: 1500
});
required = false
}
})
if (!required) {
return
}
}
const formData={}
Object.keys(this.pd).map(key => {
formData[key]=this.pd[key]
})
formData.CORPINFO_ID=corpinfoId
formData.CREATOR=loginUser.USER_ID
formData.OPERATOR=loginUser.USER_ID
formData.ACTION_USER=loginUser.NAME
formData.APPLY_STATUS=STATUS
uni.request({
url: basePath + "app/highwork/"+_this.msg,
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: formData,
success: (res) => {
uni.showToast({
icon:'none',
title: '保存成功',
duration: 2000
});
_this.goback()
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
},
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
});
}
}
});
},
//获取人员列表
getUserList(dept,list,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:dept,tm:new Date().getTime()},
success: function(res){
if("success" == res.data.result){
if(i>-1) {
_this[list][i] = [];
_this[list][i] = res.data.userList;
_this.$forceUpdate();//强制刷新
}else{
_this[list]=res.data.userList;
}
}else{
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
})
},
isBlankList(userType) {
switch(userType) {
case 'construction':
if(this.constructionUserList.length == 0) {
uni.showToast({
icon: 'none',
title: '请先选择施工单位',
duration: 1500
})
}
break
case 'audit':
if(this.auditUserList.length == 0) {
uni.showToast({
icon: 'none',
title: '请先选择审核单位',
duration: 1500
})
}
break
case 'approve':
if(this.approveUserList.length == 0) {
uni.showToast({
icon: 'none',
title: '请先选择审批单位',
duration: 1500
})
}
break
case 'accept':
if(this.acceptUserList.length == 0) {
uni.showToast({
icon: 'none',
title: '请先选择验收部门',
duration: 1500
})
}
break
}
},
/*
*施工单位
*/
// 确定回调事件
constructiontreeConfirm(e) {
this.isUps=false;
this.pd.CONSTRUCTION_DEPARTMENT_ID=e[0].id;
this.pd.CONSTRUCTION_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'constructionUserList');
},
// 取消回调事件
constructiontreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showConstructionTree() {
this.isUps=true
this.$refs.tkiTree_construction._show();
},
PickerConstruction(e) {
this.constructionindex = e.detail.value;
this.pd.CONSTRUCTION_USER_ID=this.constructionUserList[this.constructionindex].USER_ID;
this.pd.CONSTRUCTION_USER_NAME=this.constructionUserList[this.constructionindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*审核人
*/
// 确定回调事件
audittreeConfirm(e) {
this.isUps=false;
this.pd.AUDIT_DEPARTMENT_ID=e[0].id;
this.pd.AUDIT_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'auditUserList');
},
// 取消回调事件
audittreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showAuditTree() {
this.isUps=true
this.$refs.tkiTree_audit._show();
},
PickerAudit(e) {
this.auditindex = e.detail.value;
this.pd.AUDIT_USER_ID=this.auditUserList[this.auditindex].USER_ID;
this.pd.AUDIT_USER_NAME=this.auditUserList[this.auditindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*审批人
*/
// 确定回调事件
approvetreeConfirm(e) {
this.isUps=false;
this.pd.APPROVE_DEPARTMENT_ID=e[0].id;
this.pd.APPROVE_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'approveUserList');
},
// 取消回调事件
approvetreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showApproveTree() {
this.isUps=true
this.$refs.tkiTree_approve._show();
},
PickerApprove(e) {
this.approveindex = e.detail.value;
this.pd.APPROVE_USER_ID=this.approveUserList[this.approveindex].USER_ID;
this.pd.APPROVE_USER_NAME=this.approveUserList[this.approveindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*验收部门
*/
// 确定回调事件
accepttreeConfirm(e) {
this.isUps=false;
this.pd.ACCEPT_DEPARTMENT_ID=e[0].id;
this.pd.ACCEPT_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'acceptUserList');
},
// 取消回调事件
accepttreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showAcceptTree() {
this.isUps=true
this.$refs.tkiTree_accept._show();
},
PickerAccept(e) {
this.acceptindex = e.detail.value;
this.pd.ACCEPT_USER_ID=this.acceptUserList[this.acceptindex].USER_ID;
this.pd.ACCEPT_USER_NAME=this.acceptUserList[this.acceptindex].NAME;
this.$forceUpdate();//强制刷新
},
changeStartDate(e) {
this.pd.WORK_START_DATE = e
this.$forceUpdate();//强制刷新
},
changeEndDate(e) {
this.pd.WORK_END_DATE = e
this.$forceUpdate();//强制刷新
},
goback(){
var pages = getCurrentPages(); // 获取当前页面栈
var prePage = pages[pages.length - 2]; // 上二级页面
prePage.$vm.initflag = true; // A 页面 init方法 为true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
radioType(e){
this.HASINSTRUCTOR = e.detail.value
},
goToEdit(){
this.forbidEdit = false;
}
}
}
</script>
<style>
</style>