502 lines
14 KiB
Vue
502 lines
14 KiB
Vue
|
<template>
|
|||
|
<view >
|
|||
|
<cu-custom bgColor="bg-gradual-blueness" :isBack="true" :isRingt="true">
|
|||
|
<block slot="backText">返回</block>
|
|||
|
<block slot="content">受限空间信息</block>
|
|||
|
<block slot="right" v-if="loginUserId==pd.INFORMANT && msg =='edit'"><!-- 详情页面显示编辑按钮 -->
|
|||
|
<view @click="$noMultipleClicks(goToEdit)">编辑</view>
|
|||
|
</block>
|
|||
|
</cu-custom>
|
|||
|
<scroll-view scroll-y="false" >
|
|||
|
<view class="form">
|
|||
|
<!-- <view class="cu-form-textarea">
|
|||
|
<view class="cu-form-title text-hui">检查内容</view>
|
|||
|
<view class="f24 text-black">
|
|||
|
{{pd.CHECK_CONTENT}}
|
|||
|
</view>
|
|||
|
</view> -->
|
|||
|
<view class="de-card-list de-list">
|
|||
|
<!-- <view class="de-title">
|
|||
|
<text class="text-semi">隐患验收</text>
|
|||
|
</view> -->
|
|||
|
<view class="cu-form-textarea bb-default" style="border-top: 1upx solid #eee;" >
|
|||
|
<view class="cu-form-title">受限空间编号</view>
|
|||
|
<textarea maxlength="-1" :disabled="forbidEdit" v-model="pd.NUMBER" placeholder="按照(冀安监管(2016)217文件规定进行编制)"></textarea>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">受限空间名称</view>
|
|||
|
<input name="input" :disabled="forbidEdit" v-model="pd.NAME" placeholder="请输入受限空间名称"></input>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">受限空间类型</view>
|
|||
|
<picker @change="finiteSpaceChange" :disabled="forbidEdit" :value="findex" :range="finiteSpaceList" range-key="NAME">
|
|||
|
<view class="picker">
|
|||
|
{{pd.LIMITSPACETYPENAME?pd.LIMITSPACETYPENAME:'请选择'}}
|
|||
|
</view>
|
|||
|
</picker>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">位置及范围</view>
|
|||
|
<input name="input" :disabled="forbidEdit" v-model="pd.POSITIONSCOPE" placeholder="请输入位置及范围"></input>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">主要危险及有害因素</view>
|
|||
|
<input name="input" :disabled="forbidEdit" v-model="pd.PRIMARYHAZARD" placeholder="请输入主要危险及有害因素"></input>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">风险等级</view>
|
|||
|
<picker @change="riskGradeChange" :disabled="forbidEdit" :value="rindex" :range="riskGradeList" range-key="NAME">
|
|||
|
<view class="picker">
|
|||
|
{{pd.RISKGRADENAME?pd.RISKGRADENAME:'请选择'}}
|
|||
|
</view>
|
|||
|
</picker>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">本受限空间最多作业人数</view>
|
|||
|
<input name="input" :disabled="forbidEdit" type="number" @blur="isPosInt()" v-model="pd.MAXPERSON" placeholder="请输入最多作业人数"></input>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title text-hui">是否有应急指导书</view>
|
|||
|
<radio-group class="selected" @change="radioType" :disabled="forbidEdit">
|
|||
|
<view class="group mr20">
|
|||
|
<radio class='radio' :disabled="forbidEdit" value="1" :checked="HASINSTRUCTOR==1"></radio>
|
|||
|
<text>是</text>
|
|||
|
</view>
|
|||
|
<view class="group">
|
|||
|
<radio class='radio' :disabled="forbidEdit" value="0" :checked="HASINSTRUCTOR==0"></radio>
|
|||
|
<text>否</text>
|
|||
|
</view>
|
|||
|
</radio-group>
|
|||
|
</view>
|
|||
|
<view class="cu-form-textarea bb-default" style="border-top: 1upx solid #eee;" >
|
|||
|
<view class="cu-form-title">备注</view>
|
|||
|
<textarea maxlength="-1" :disabled="forbidEdit" v-model="pd.DESCR" placeholder="请输入备注"></textarea>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">填报人</view>
|
|||
|
<picker @change="informantChange" :disabled="forbidEdit" :value="uindex" :range="userList" range-key="USERNAME">
|
|||
|
<view class="picker">
|
|||
|
{{pd.INFORMANTNAME?pd.INFORMANTNAME:'请选择'}}
|
|||
|
</view>
|
|||
|
</picker>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">主要负责人</view>
|
|||
|
<picker @change="principalChange" :disabled="forbidEdit" :value="pindex" :range="userList" range-key="USERNAME">
|
|||
|
<view class="picker">
|
|||
|
{{pd.PRINCIPALNAME?pd.PRINCIPALNAME:'请选择'}}
|
|||
|
</view>
|
|||
|
</picker>
|
|||
|
</view>
|
|||
|
<view class="cu-form-group ">
|
|||
|
<view class="title">填报时间</view>
|
|||
|
<picker mode="date" :disabled="forbidEdit" :value="pd.COMPILETIME" @change="changeDate">
|
|||
|
<view class="picker">
|
|||
|
{{pd.COMPILETIME?pd.COMPILETIME:'请选择'}}
|
|||
|
</view>
|
|||
|
</picker>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="padding flex flex-direction">
|
|||
|
<button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goSubmit)">提交</button>
|
|||
|
</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 gcoord from '@/common/gcoord.js'
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
tkiTree
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
isUps:false,
|
|||
|
msg:'add',
|
|||
|
riskId:'',
|
|||
|
itemId:'',
|
|||
|
index:'',
|
|||
|
noClick:true,
|
|||
|
pd:[],// 数据
|
|||
|
finiteSpaceList:[], //受限空间类型
|
|||
|
riskGradeList:[], // 风险等级
|
|||
|
findex:-1,
|
|||
|
rindex:-1,
|
|||
|
HASINSTRUCTOR:1, // 是否有应急指导书
|
|||
|
userList:[],//用户列表
|
|||
|
uindex:-1,
|
|||
|
pindex:-1,
|
|||
|
todayDate:'',
|
|||
|
forbidEdit:true,// 禁止修改
|
|||
|
loginUserId:''
|
|||
|
|
|||
|
}
|
|||
|
},
|
|||
|
onLoad(event){
|
|||
|
this.todayDate = formatDate(new Date(), 'yyyy-MM-dd');
|
|||
|
this.pd.LIMITSPACE_ID = event.LIMITSPACE_ID;
|
|||
|
if(this.pd.LIMITSPACE_ID){
|
|||
|
this.msg="edit";
|
|||
|
this.getData();
|
|||
|
}else {
|
|||
|
// 初始化填报时间
|
|||
|
this.pd.COMPILETIME = this.todayDate;
|
|||
|
// 初始化填报人
|
|||
|
this.pd.INFORMANT = loginUser.USER_ID;
|
|||
|
this.pd.INFORMANTNAME = loginUser.NAME;
|
|||
|
this.forbidEdit = false;
|
|||
|
}
|
|||
|
this.loginUserId = loginUser.USER_ID;
|
|||
|
this.getDict();
|
|||
|
this.getUserList();
|
|||
|
loginSession();
|
|||
|
},
|
|||
|
methods: {
|
|||
|
getData() {
|
|||
|
var _this = this;
|
|||
|
uni.showLoading({
|
|||
|
title: '请稍候'
|
|||
|
})
|
|||
|
uni.request({
|
|||
|
url: basePath + '/app/limitspace/goEdit',
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
header: {
|
|||
|
'Content-type': 'application/x-www-form-urlencoded'
|
|||
|
},
|
|||
|
data: {
|
|||
|
LIMITSPACE_ID: _this.pd.LIMITSPACE_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.HASINSTRUCTOR=_this.pd.HASINSTRUCTOR;
|
|||
|
} else if ("exception" == data.result) {
|
|||
|
uni.showToast({
|
|||
|
title: '错误',
|
|||
|
duration: 2000
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
//获取数据字典数据
|
|||
|
getDict: 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: 'dad23a464729485ba364994942db83cc',
|
|||
|
CORPINFO_ID:loginUser.CORPINFO_ID,
|
|||
|
USER_ID:loginUser.USER_ID,
|
|||
|
},
|
|||
|
success: function (res) {
|
|||
|
_this.finiteSpaceList = 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: 'a178357ce6ce4d6a9ac95def6aca3a14',
|
|||
|
CORPINFO_ID:loginUser.CORPINFO_ID,
|
|||
|
USER_ID:loginUser.USER_ID,
|
|||
|
},
|
|||
|
success: function (res) {
|
|||
|
_this.riskGradeList = res.data.list;
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
// 获取用户列表
|
|||
|
getUserList(){
|
|||
|
var _this = this;
|
|||
|
uni.request({
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
header: {
|
|||
|
'Content-type': 'application/x-www-form-urlencoded'
|
|||
|
},
|
|||
|
url: basePath + '/app/user/listUserByCorp?tm=' + new Date().getTime(),
|
|||
|
data: {
|
|||
|
CORPINFO_ID:loginUser.CORPINFO_ID,
|
|||
|
USER_ID:loginUser.USER_ID,
|
|||
|
},
|
|||
|
success: function (res) {
|
|||
|
_this.userList = res.data.userList;
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
finiteSpaceChange(e) {
|
|||
|
this.findex = e.detail.value;
|
|||
|
this.pd.LIMITSPACETYPE=this.finiteSpaceList[this.findex].BIANMA;
|
|||
|
this.pd.LIMITSPACETYPENAME=this.finiteSpaceList[this.findex].NAME;
|
|||
|
this.$forceUpdate();//强制刷新
|
|||
|
},
|
|||
|
riskGradeChange(e) {
|
|||
|
this.rindex = e.detail.value;
|
|||
|
this.pd.RISKGRADE=this.riskGradeList[this.rindex].BIANMA;
|
|||
|
this.pd.RISKGRADENAME=this.riskGradeList[this.rindex].NAME;
|
|||
|
this.$forceUpdate();//强制刷新
|
|||
|
},
|
|||
|
informantChange(e){
|
|||
|
this.uindex = e.detail.value;
|
|||
|
this.pd.INFORMANT=this.userList[this.uindex].USER_ID;
|
|||
|
this.pd.INFORMANTNAME=this.userList[this.uindex].USERNAME;
|
|||
|
this.$forceUpdate();//强制刷新
|
|||
|
},
|
|||
|
principalChange(e){
|
|||
|
this.pindex = e.detail.value;
|
|||
|
this.pd.PRINCIPAL=this.userList[this.pindex].USER_ID;
|
|||
|
this.pd.PRINCIPALNAME=this.userList[this.pindex].USERNAME;
|
|||
|
this.$forceUpdate();//强制刷新
|
|||
|
},
|
|||
|
isPosInt(){
|
|||
|
if(!/^[1-9]\d*$/.test(this.pd.MAXPERSON)){
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请输入正整数',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
changeDate(e) {
|
|||
|
this.pd.COMPILETIME = e.detail.value
|
|||
|
this.$forceUpdate();//强制刷新
|
|||
|
},
|
|||
|
goSubmit() {
|
|||
|
var _this = this;
|
|||
|
uni.showLoading({
|
|||
|
title: '请稍候'
|
|||
|
})
|
|||
|
if (!_this.pd.NUMBER) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请填受限空间编号',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.NAME) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请填受限空间名称',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.LIMITSPACETYPE) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请选择受限空间类型',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.POSITIONSCOPE) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请填位置及范围',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.PRIMARYHAZARD) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请填主要危险及有害因素',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.RISKGRADE) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请选择风险等级',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.MAXPERSON) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请填本受限空间最多作业人数',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
} else if(!/^[1-9]\d*$/.test(this.pd.MAXPERSON)){
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请输入正整数',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
}
|
|||
|
if (!_this.HASINSTRUCTOR) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请选择是否有应急指导书',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.DESCR) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请填备注',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.INFORMANT) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请选择填报人',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.PRINCIPAL) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请选择主要负责人',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (!_this.pd.COMPILETIME) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请选择填报时间',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
uni.request({
|
|||
|
url: basePath+'/app/limitspace/'+_this.msg,
|
|||
|
method: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
header: {
|
|||
|
'Content-type':'application/x-www-form-urlencoded'
|
|||
|
},
|
|||
|
data: {
|
|||
|
LIMITSPACE_ID:this.pd.LIMITSPACE_ID,
|
|||
|
NUMBER:this.pd.NUMBER,
|
|||
|
NAME:this.pd.NAME,
|
|||
|
LIMITSPACETYPE:this.pd.LIMITSPACETYPE,
|
|||
|
POSITIONSCOPE:this.pd.POSITIONSCOPE,
|
|||
|
PRIMARYHAZARD:this.pd.PRIMARYHAZARD,
|
|||
|
RISKGRADE:this.pd.RISKGRADE,
|
|||
|
MAXPERSON:this.pd.MAXPERSON,
|
|||
|
HASINSTRUCTOR:this.HASINSTRUCTOR,
|
|||
|
DESCR:this.pd.DESCR,
|
|||
|
INFORMANT:this.pd.INFORMANT,
|
|||
|
PRINCIPAL:this.pd.PRINCIPAL,
|
|||
|
COMPILETIME:this.pd.COMPILETIME,
|
|||
|
USER:loginUser.USER_ID,
|
|||
|
CORPINFO_ID:loginUser.CORPINFO_ID,
|
|||
|
USER_ID:loginUser.USER_ID,
|
|||
|
},
|
|||
|
success: (res) => {
|
|||
|
uni.hideLoading();
|
|||
|
if ("success" == res.data.result) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '提交成功',
|
|||
|
duration: 1500
|
|||
|
});
|
|||
|
setTimeout(function(){
|
|||
|
var pages = getCurrentPages(); // 获取当前页面栈
|
|||
|
var prePage = pages[pages.length - 2]; // 上二级页面
|
|||
|
prePage.$vm.initflag = true; // A 页面 init方法 为true
|
|||
|
uni.navigateBack({delta: 1});
|
|||
|
uni.hideLoading();
|
|||
|
},1500);
|
|||
|
}else{
|
|||
|
uni.showToast({
|
|||
|
icon:'none',
|
|||
|
title: '系统错误',
|
|||
|
duration: 2000
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
radioType(e){
|
|||
|
this.HASINSTRUCTOR = e.detail.value
|
|||
|
},
|
|||
|
goToEdit(){
|
|||
|
this.forbidEdit = false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</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.75);
|
|||
|
margin-right: 10upx;
|
|||
|
}
|
|||
|
.group{
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
}
|
|||
|
.cu-form-group input{
|
|||
|
font-size: 28upx;
|
|||
|
}
|
|||
|
.cu-form-group .title{
|
|||
|
font-size: 28upx;
|
|||
|
color: #000;
|
|||
|
font-weight: bold;
|
|||
|
}
|
|||
|
.cu-bar .action:first-child {
|
|||
|
font-size: 28upx;
|
|||
|
}
|
|||
|
</style>
|