integrated_traffic_uniapp/pages/application/limit-space/limit-space-detail.vue

502 lines
14 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" :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="按照冀安监管2016217文件规定进行编制"></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>