<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="table-box" 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;width: 100px;">操作</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" 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 class="cu-form-textarea"> <view class="cu-form-title">其他防护措施:</view> <textarea maxlength="255" ref="OTHER_PROTECTIVE_MEASURES" v-model="pd.OTHER_PROTECTIVE_MEASURES" placeholder="请输入其他防护措施..."></textarea> </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> <view class="wui-form-list"> <view class="cu-form-group" v-if="forbidEdit"> <view class="title">安全措施确认人</view> {{pd.CONFIRM_USER_NAME}} {{pd.CONFIRM_USER_SIGNER_TIME}} </view> <view class="cu-form-group bb-default" v-if="forbidEdit"> <view class="title">动力部门审核部门</view> {{pd.AUDIT_USER_NAME}} {{pd.AUDIT_USER_SIGNER_TIME}} </view> <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,'-4')">打 回</button> <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goSubmit,'4')">通 过</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(); res.data.pd = Object.assign(res.data.pd, { "CONFIRM_USER_MEASURES": res.data.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[0], "AUDIT_USER_MEASURES":res.data.pd.OTHER_PROTECTIVE_MEASURES.split(";_;")[1] }) res.data.pd.OTHER_PROTECTIVE_MEASURES = '' _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==4) { 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==4){ formData.STATUS = STATUS 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 }); } } }) }, /* *手写板 */ 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 }); }, 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>