integrated_traffic_uniapp/pages/application/equipment-overhaul/equipment-overhaul-confirm/equipment-overhaul-confirm-...

627 lines
19 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="NAME" :disabled="forbidEdit" v-model="pd.NAME" placeholder="请输入设备名称"></input>
</view>
<view class="cu-form-group">
<view class="title">所属单位:</view>
<input name="input" ref="EQUIPMENT_CORP" :disabled="forbidEdit" v-model="pd.EQUIPMENT_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 margin-top" v-if="!forbidEdit">
<view class="title">检修单位:</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showOverhaulTree">{{pd.OVERHAUL_DEPARTMENT_NAME?pd.OVERHAUL_DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree_overhaul"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="overhaultreeConfirm"
@cancel="overhaultreeCancel"></tki-tree>
</view>
<view class="cu-form-group margin-top" v-if="!forbidEdit">
<view class="title">检修人</view>
<picker @change="PickerOverhaul" :value="overhaulindex" :range="overhaulUserList" range-key="NAME">
<view class="picker">
{{pd.OVERHAUL_USER_NAME?pd.OVERHAUL_USER_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group group-picker" v-if="forbidEdit">
<view class="title">检修人:</view>
{{pd.OVERHAUL_USER_NAME}}
</view>
<view class="cu-form-group">
<view class="title">参与检修人:</view>
<input name="input" ref="OTHER_USERS" :disabled="forbidEdit" v-model="pd.OTHER_USERS" placeholder="请输入参与检修人"></input>
</view>
<view class="cu-form-group margin-top" v-if="!forbidEdit">
<view class="title">申请单位:</view>
<view class="picker-tree-box">
<view class="picker-tree" @tap="showApplyTree">{{pd.APPLY_DEPARTMENT_NAME?pd.APPLY_DEPARTMENT_NAME:'请选择'}}</view>
</view>
<tki-tree ref="tkiTree_apply"
:selectParent=true
:range="treeNode"
rangeKey="name"
@confirm="applytreeConfirm"
@cancel="applytreeCancel"></tki-tree>
</view>
<view class="cu-form-group margin-top" v-if="!forbidEdit">
<view class="title">申请人:</view>
<picker @change="PickerApply" :value="applyindex" :range="applyUserList" range-key="NAME">
<view class="picker">
{{pd.APPLY_USER_NAME?pd.APPLY_USER_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group group-picker" v-if="forbidEdit">
<view class="title">申请人:</view>
{{pd.APPLY_USER_NAME}}
</view>
<view class="cu-form-group">
<view class="title">监护人</view>
<input name="input" ref="CUSTODIAN_USER" :disabled="forbidEdit" v-model="pd.CUSTODIAN_USER" placeholder="请输入监护人"></input>
</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 class="cu-form-group">
<view class="title">作业结束时间:</view>
<ruiDatePicker v-if="!forbidEdit"
:start="todayDate"
fields="minute"
:value="pd.WORK_END_DATE?pd.WORK_END_DATE:''"
@change="changeEndDate"
></ruiDatePicker>
<view v-else>{{pd.WORK_END_DATE}}</view>
</view>
<view class="cu-form-group">
<view class="title">作业内容:</view>
<input name="input" ref="WORK_CONTENT" :disabled="forbidEdit" v-model="pd.WORK_CONTENT" placeholder="请输入作业内容"></input>
</view>
</view>
<view class="wui-form-list" style="padding-top: 20upx;">
<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;">防护措施</uni-th>
<uni-th align="center" style="font-weight: bold;">操作</uni-th>
</uni-tr>
<uni-tr v-for="(item,index) in measuresList" :key="item.BUS_EQUIPMENTOVERHAUL_MEASURES_ID">
<uni-td>{{item.RISK_IDENTIFICATION}}</uni-td>
<uni-td>{{item.PROTECTIVE_MEASURES}}</uni-td>
<uni-td align="center">
<radio-group class="wui-radio-group">
<view class="group">
<radio class='radio' value="-1" :checked="item.STATUS=='-1'" @click="changeRadio(index,'-1')"></radio>
</view>
<view class="group">
<radio value="1" :checked="item.STATUS=='1'" @click="changeRadio(index,'1')"></radio>
</view>
</radio-group>
</uni-td>
</uni-tr>
</uni-table>
</view>
<view class="cu-form-group">
<view class="title">其他防护措施:</view>
<input name="input" ref="OTHER_PROTECTIVE_MEASURES" v-model="pd.OTHER_PROTECTIVE_MEASURES" placeholder="请输入其他防护措施"></input>
</view>
</view>
<view class="wui-form-list">
<view class="wui-sign">
<view class="title">安全措施确认人签字</view>
<button class="cu-btn bg-green shadow" @tap="showModal" data-target="Modal">手写签字</button>
</view>
<view class="wui-sign-box" v-show="imgList && imgList.length > 0">
<view class="sign-title">
签字照片:
</view>
<view class="wui-sign-cotent">
<view class="sign-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="aspectFit"></image>
</view>
</view>
</view>
<view class="cu-modal" :class="modalName=='Modal'?'show':''">
<writing-board @confirm="subCanvas" @cancel="hideModal"></writing-board>
</view>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-red margin-tb-sm lg" @click="$noMultipleClicks(goSubmit,'-2')">打 回</button>
<button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goSubmit,'2')">通 过</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:[],//部门下拉数据
overhaulUserList:[],
overhaulindex:-1,
applyUserList:[],
applyindex:-1,
confirmUserList:[],
confirmindex:-1,
auditUserList:[],
auditindex:-1,
approveUserList:[],
approveindex:-1,
pd:{},// 数据
measuresList:[],
rules:[
{name:'NAME',message:'请输入作业编号'},
{name:'EQUIPMENT_CORP',message:'请输入所属单位'},
{name:'WORK_PLACE',message:'请输入检修地点'},
{name:'OVERHAUL_DEPARTMENT_ID',message:'请选择检修单位'},
{name:'OVERHAUL_USER_ID',message:'请选择检修人'},
{name:'OTHER_USERS',message:'请输入参与检修人'},
{name:'APPLY_DEPARTMENT_ID',message:'请选择申请单位'},
{name:'APPLY_USER_ID',message:'请选择申请人'},
{name:'CUSTODIAN_USER',message:'请输入监护人'},
{name:'WORK_START_DATE',message:'请选择作业开始时间'},
{name:'WORK_END_DATE',message:'请选择作业结束时间'},
{name:'WORK_CONTENT',message:'请选择作业内容'},
{name:'CONFIRM_DEPARTMENT_ID',message:'请选择安全措施确认单位'},
{name:'CONFIRM_USER_ID',message:'请选择安全措施确认人'},
{name:'AUDIT_DEPARTMENT_ID',message:'请选择动力部门审批单位'},
{name:'AUDIT_USER_ID',message:'请选择动力部门审批人'},
{name:'APPROVE_DEPARTMENT_ID',message:'请选择生产部门审批单位'},
{name:'APPROVE_USER_ID',message:'请选择生产部门审批人'},
],
todayDate:'',
modalName:null,
imgList:[],
}
},
onLoad(event){
this.todayDate = formatDate(new Date(), 'yyyy-MM-dd hh:mm');
this.pd.EQUIPMENTOVERHAUL_ID = event.EQUIPMENTOVERHAUL_ID;
if(this.pd.EQUIPMENTOVERHAUL_ID){
this.msg="edit";
this.getData();
}else {
// 初始化作业负责人
this.forbidEdit = false;
}
// 初始化现场作业负责人
this.getDept();
loginSession();
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/equipmentoverhaul/goEdit',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
EQUIPMENTOVERHAUL_ID: _this.pd.EQUIPMENTOVERHAUL_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.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==2) {
if (_this.imgList.length <= 0) {
uni.showToast({
icon: 'none',
title: '请签字',
duration: 1500
});
return;
}
}
const formData={}
Object.keys(this.pd).map(key => {
formData[key]=this.pd[key]
})
formData.CREATOR=loginUser.USER_ID
formData.OPERATOR=loginUser.USER_ID
formData.ACTION_USER=loginUser.NAME
formData.CORPINFO_ID = loginUser.CORPINFO_ID
formData.USER_ID = loginUser.USER_ID
if(STATUS==2){
formData.STATUS = STATUS
for (let i = 0; i < this.measuresList.length; i++) {
const measures = this.measuresList[i]
if(!measures.STATUS){
uni.showToast({
icon: 'none',
title: '第'+(i+1)+'项未勾选',
duration: 1500
});
return;
}
}
formData.measuresList = JSON.stringify(this.measuresList)
uni.uploadFile({
url: basePath+'app/equipmentoverhaul/editStatus',
filePath: _this.imgList[0].filePath,
name: 'FFILE',
formData:formData,
success: (res) => {
uni.showToast({
icon:'none',
title: '保存成功',
duration: 2000
});
_this.goback()
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else{
formData.STATUS=STATUS
uni.request({
url: basePath + "app/equipmentoverhaul/editStatus",
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
...formData,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
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: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
});
}
}
});
},
//获取人员列表
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(),
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
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
});
}
}
})
},
/*
*检修人
*/
// 确定回调事件
overhaultreeConfirm(e) {
this.isUps=false;
this.pd.OVERHAUL_DEPARTMENT_ID=e[0].id;
this.pd.OVERHAUL_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'overhaulUserList');
},
// 取消回调事件
overhaultreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showOverhaulTree() {
this.isUps=true
this.$refs.tkiTree_overhaul._show();
},
PickerOverhaul(e) {
this.overhaulindex = e.detail.value;
this.pd.OVERHAUL_USER_ID=this.overhaulUserList[this.overhaulindex].USER_ID;
this.pd.OVERHAUL_USER_NAME=this.overhaulUserList[this.overhaulindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*申请人
*/
// 确定回调事件
applytreeConfirm(e) {
this.isUps=false;
this.pd.APPLY_DEPARTMENT_ID=e[0].id;
this.pd.APPLY_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'applyUserList');
},
// 取消回调事件
applytreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showApplyTree() {
this.isUps=true
this.$refs.tkiTree_apply._show();
},
PickerApply(e) {
this.applyindex = e.detail.value;
this.pd.APPLY_USER_ID=this.applyUserList[this.applyindex].USER_ID;
this.pd.APPLY_USER_NAME=this.applyUserList[this.applyindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*确认人
*/
// 确定回调事件
confirmtreeConfirm(e) {
this.isUps=false;
this.pd.CONFIRM_DEPARTMENT_ID=e[0].id;
this.pd.CONFIRM_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'confirmUserList');
},
// 取消回调事件
confirmtreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showConfirmTree() {
this.isUps=true
this.$refs.tkiTree_confirm._show();
},
PickerConfirm(e) {
this.confirmindex = e.detail.value;
this.pd.CONFIRM_USER_ID=this.confirmUserList[this.confirmindex].USER_ID;
this.pd.CONFIRM_USER_NAME=this.confirmUserList[this.confirmindex].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();//强制刷新
},
changeStartDate(e) {
this.pd.WORK_START_DATE = e
this.$forceUpdate();//强制刷新
},
changeEndDate(e) {
this.pd.WORK_END_DATE = e
this.$forceUpdate();//强制刷新
},
/*
*手写板
*/
showModal(e) {
this.modalName = e.currentTarget.dataset.target
},
hideModal(e) {
this.modalName = null
},
//完成
subCanvas(e) {
this.imgList.splice(0,this.imgList.length);
this.imgList.push(e);
this.pd.SIGNER_TIME = formatDate(new Date(), 'yyyy-MM-dd hh:mm');
this.hideModal()
},
ViewImage(e) {
let files =[];
files.push(e.currentTarget.dataset.url)
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
},
changeRadio(i,value){
this.measuresList[i].STATUS=value
},
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>