QA-UniApp-wlaq/pages/application/blind-board/blind-board-construction/blind-board-construction-de...

677 lines
20 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 group-picker" >
<view class="title">申请人:</view>
{{pd.APPLY_USER_NAME}}
</view>
<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="MEDIUM" :disabled="forbidEdit" v-model="pd.MEDIUM" placeholder="请输入介质"></input>
</view>
<view class="cu-form-group">
<view class="title">温度:</view>
<input name="input" ref="TEMPERATURE" :disabled="forbidEdit" v-model="pd.TEMPERATURE" placeholder="请输入温度"></input>
</view>
<view class="cu-form-group">
<view class="title">压力:</view>
<input name="input" ref="TEMPERATURE" :disabled="forbidEdit" v-model="pd.PRESSURE" placeholder="请输入压力"></input>
</view>
</view>
<view class="wui-form-list">
<view class="wui-sub-title">
<text>盲板</text>
</view>
<view class="cu-form-group">
<view class="title">材质:</view>
<input name="input" ref="BOARD_MATERIAL" :disabled="forbidEdit" v-model="pd.BOARD_MATERIAL" placeholder="请输入材质"></input>
</view>
<view class="cu-form-group" >
<view class="title">规格:</view>
<input name="input" ref="BOARD_SPECIFICATION" :disabled="forbidEdit" v-model="pd.BOARD_SPECIFICATION" placeholder="请输入规格"></input>
</view>
<view class="cu-form-group">
<view class="title">编号:</view>
<input name="input" ref="BOARD_NO" :disabled="forbidEdit" v-model="pd.BOARD_NO" placeholder="请输入编号"></input>
</view>
</view>
<view class="wui-form-list">
<view class="wui-sub-title">
<text class="text-grey">时间</text>
</view>
<view class="cu-form-group">
<view class="title">装</view>
<ruiDatePicker v-if="!forbidEdit"
:start="todayDate"
fields="minute"
:value="pd.BOARD_INSTALL_TIME?pd.BOARD_INSTALL_TIME:''"
@change="changeStartDate"
></ruiDatePicker>
<view v-else>{{pd.BOARD_INSTALL_TIME}}</view>
</view>
<view class="cu-form-group" >
<view class="title">拆</view>
<ruiDatePicker v-if="!forbidEdit"
:start="todayDate"
fields="minute"
:value="pd.BOARD_DISASSEMBLE_TIME?pd.BOARD_DISASSEMBLE_TIME:''"
@change="changeEndDate"
></ruiDatePicker>
<view v-else>{{pd.BOARD_DISASSEMBLE_TIME}}</view>
</view>
</view>
<view class="wui-form-list">
<view class="wui-sub-title">
<text class="text-grey">负责人</text>
</view>
<view class="cu-form-group">
<view class="title">装</view>
<input name="input" ref="BOARD_INSTALL_USER" :disabled="forbidEdit" v-model="pd.BOARD_INSTALL_USER" placeholder="请输入安装负责人"></input>
</view>
<view class="cu-form-group" >
<view class="title">拆</view>
<input name="input" ref="BOARD_DISASSEMBLE_USER" :disabled="forbidEdit" v-model="pd.BOARD_DISASSEMBLE_USER" placeholder="请输入拆卸负责人"></input>
</view>
</view>
<view class="wui-form-list">
<view class="wui-sub-title">
<text>盲板抽堵位置及安全措施</text>
</view>
<view class="cu-bar bg-white">
<view class="action">
盲板位置图
</view>
</view>
<view class="cu-form-group bb-default">
<view class="grid col-4 grid-square flex-sub">
<view v-if="pd.BOARD_PATH">
<image :src="baseImgPath+pd.BOARD_PATH" mode="aspectFill"></image>
<view v-if="!forbidEdit" class="cu-tag bg-red" @tap.stop="DelImg">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="ChooseImage" v-if="!pd.BOARD_PATH">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-textarea bb-default">
<view class="cu-form-title">危害分析</view>
<textarea maxlength="255" :disabled="forbidEdit" v-model="pd.BOARD_HARM" placeholder="请输入危害分析"></textarea>
</view>
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">安全措施</view>
<textarea maxlength="255" :disabled="forbidEdit" v-model="pd.BOARD_MEASURES" placeholder="请输入安全措施"></textarea>
</view>
</view>
<view class="wui-form-list">
<view class="cu-form-textarea">
<view class="cu-form-title">施工单位负责人意见</view>
<textarea maxlength="255" v-model="pd.CONTENT" placeholder="请输入意见"></textarea>
</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,'-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:[],//部门下拉数据
constructionUserList:[],
constructionindex:-1,
productionUserList:[],
productionindex:-1,
safetyUserList:[],
safetyindex:-1,
leaderUserList:[],
leaderindex:-1,
acceptUserList:[],
acceptindex:-1,
pd:{},// 数据
measuresList:[],
rules:[
{name:'NAME',message:'请输入设备管线名'},
{name:'CHECK_NO',message:'请输入编号'},
{name:'MEDIUM',message:'请输入介质'},
{name:'TEMPERATURE',message:'请输入温度'},
{name:'CONSTRUCTION_USER_ID',message:'请选择施工单位负责人'},
// {name:'PRODUCTION_USER_ID',message:'请选择生产单位负责人'},
// {name:'SAFETY_USER_ID',message:'请选择安全部门负责人'},
// {name:'LEADER_USER_ID',message:'请选择单位领导'},
{name:'ACCEPT_USER_ID',message:'请选择验收人'},
{name:'BOARD_INSTALL_TIME',message:'请选择安装时间'},
{name:'BOARD_DISASSEMBLE_TIME',message:'请选择拆卸时间'},
{name:'BOARD_MATERIAL',message:'请输入材质'},
{name:'BOARD_SPECIFICATION',message:'请输入规格'},
{name:'BOARD_NO',message:'请输入编号'},
{name:'BOARD_INSTALL_USER',message:'请输入安装人'},
{name:'BOARD_DISASSEMBLE_USER',message:'请输入拆卸人'},
{name:'BOARD_PATH',message:'请上传位置图'},
{name:'BOARD_HARM',message:'请输入危害分析'},
{name:'BOARD_MEASURES',message:'请输入安全措施'},
],
todayDate:'',
modalName:null,
imgList:[],
img2List:[],
}
},
onLoad(event){
this.todayDate = formatDate(new Date(), 'yyyy-MM-dd hh:mm');
this.pd.BLINDBOARD_ID = event.BLINDBOARD_ID;
if(this.pd.BLINDBOARD_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_NAME = loginUser.NAME;
this.forbidEdit = false;
}
// 初始化现场作业负责人
this.getDept();
loginSession();
},
methods: {
validStr(str){
if (str!=null && str!='' && typeof(str)!="undefined" && str!=0)
return true
return false
},
DelImg(e) {
var _this = this;
uni.showModal({
title: '',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
uni.request({
url: basePath + "app/blindboard/deleteImg",
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {path:_this.pd.BOARD_PATH},
success: (res) => {
_this.pd.BOARD_PATH = ''
_this.$forceUpdate()
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}
}
})
},
//图片上传
ChooseImage() {
var _this = this;
const formData={}
formData.CORPINFO_ID=corpinfoId
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera', 'album'], //从相册选择
success: (res) => {
uni.uploadFile({
url: basePath+'app/blindboard/uploadImg',
filePath: res.tempFilePaths[0],
name: 'FFILE',
formData:formData,
success: (res) => {
_this.pd.BOARD_PATH = JSON.parse(res.data).path
_this.$forceUpdate()
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}
});
},
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/blindboard/goEdit',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
BLINDBOARD_ID: _this.pd.BLINDBOARD_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.CORPINFO_ID=corpinfoId
formData.CREATOR=loginUser.USER_ID
formData.OPERATOR=loginUser.USER_ID
formData.ACTION_USER=loginUser.NAME
formData.APPLY_STATUS = STATUS
if(STATUS==2){
formData.STATUS = STATUS
if (!_this.validStr(this.pd.PRODUCTION_USER_ID) && !_this.validStr(this.pd.SAFETY_USER_ID) && !_this.validStr(this.pd.LEADER_USER_ID)) {
formData.APPLY_STATUS = 5
}else if (!_this.validStr(this.pd.PRODUCTION_USER_ID) && !_this.validStr(this.pd.SAFETY_USER_ID)){
formData.APPLY_STATUS = 4
}else if(!_this.validStr(this.pd.PRODUCTION_USER_ID)){
formData.APPLY_STATUS = 3
}
uni.uploadFile({
url: basePath+'app/blindboard/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/blindboard/editStatus",
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
});
}
}
})
},
/*
*手写板
*/
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
});
},
/*
*施工单位
*/
// 确定回调事件
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();//强制刷新
},
/*
*生产部门
*/
// 确定回调事件
productiontreeConfirm(e) {
this.isUps=false;
this.pd.PRODUCTION_DEPARTMENT_ID=e[0].id;
this.pd.PRODUCTION_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'productionUserList');
},
// 取消回调事件
productiontreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showProductionTree() {
this.isUps=true
this.$refs.tkiTree_production._show();
},
PickerProduction(e) {
this.productionindex = e.detail.value;
this.pd.PRODUCTION_USER_ID=this.productionUserList[this.productionindex].USER_ID;
this.pd.PRODUCTION_USER_NAME=this.productionUserList[this.productionindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*安全部门
*/
// 确定回调事件
safetytreeConfirm(e) {
this.isUps=false;
this.pd.SAFETY_DEPARTMENT_ID=e[0].id;
this.pd.SAFETY_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'safetyUserList');
},
// 取消回调事件
safetytreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showSafetyTree() {
this.isUps=true
this.$refs.tkiTree_safety._show();
},
PickerSafety(e) {
this.safetyindex = e.detail.value;
this.pd.SAFETY_USER_ID=this.safetyUserList[this.safetyindex].USER_ID;
this.pd.SAFETY_USER_NAME=this.safetyUserList[this.safetyindex].NAME;
this.$forceUpdate();//强制刷新
},
/*
*单位领导
*/
// 确定回调事件
leadertreeConfirm(e) {
this.isUps=false;
this.pd.LEADER_DEPARTMENT_ID=e[0].id;
this.pd.LEADER_DEPARTMENT_NAME=e[0].name;
this.$forceUpdate();//强制刷新
this.getUserList(e[0].id,'leaderUserList');
},
// 取消回调事件
leadertreeCancel(e) {
this.isUps=false;
},
// 显示树形选择器
showLeaderTree() {
this.isUps=true
this.$refs.tkiTree_leader._show();
},
PickerLeader(e) {
this.leaderindex = e.detail.value;
this.pd.LEADER_USER_ID=this.leaderUserList[this.leaderindex].USER_ID;
this.pd.LEADER_USER_NAME=this.leaderUserList[this.leaderindex].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.BOARD_INSTALL_TIME = e
this.$forceUpdate();//强制刷新
},
changeEndDate(e) {
this.pd.BOARD_DISASSEMBLE_TIME = 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>