sx_yjb_app/pages/application/hoisting/hoisting-detail/index.vue

616 lines
26 KiB
Vue
Raw Permalink Normal View History

2025-09-09 09:32:47 +08:00
<template>
<view>
<view class="wui-form-list">
<view class="cu-form-group bb-default">
<view class="title">申请分厂</view>
{{ pd.APPLY_DEPARTMENT_NAME }}
</view>
<view class="cu-form-group bb-default">
<view class="title">申请工段</view>
{{ pd.APPLY_WORKSHOP_DEPARTMENT_NAME }}
</view>
<view class="cu-form-group bb-default">
<view class="title">申请人</view>
{{ pd.APPLY_USER_NAME }}
</view>
<view class="cu-form-group bb-default">
<view class="title">编号</view>
{{ pd.CHECK_NO }}
</view>
<view class="cu-form-group bb-default">
<view class="title">吊装地点</view>
{{ pd.WORK_PLACE }}
</view>
<view class="cu-form-group bb-default">
<view class="title">吊具名称</view>
{{ pd.TOOL_NAME }}
</view>
<view class="cu-form-group bb-default">
<view class="title">吊物质量()</view>
{{ pd.PART_WEIGHT }}
</view>
<view class="cu-form-group bb-default">
<view class="title">作业级别</view>
{{ pd.WORK_LEVEL == '1' ? '一级作业级别' : '' }}
{{ pd.WORK_LEVEL == '2' ? '二级作业级别' : '' }}
{{ pd.WORK_LEVEL == '3' ? '三级作业级别' : '' }}
</view>
<view class="cu-form-group bb-default">
<view class="title">吊物内容</view>
{{ pd.WORK_CONTENT }}
</view>
<view v-if="pd.WORK_START_DATE" class="cu-form-group bb-default">
<view class="title">作业开始时间</view>
{{ pd.WORK_START_DATE }}
</view>
<view v-if="pd.WORK_END_DATE" class="cu-form-group bb-default">
<view class="title">作业结束时间</view>
{{ pd.WORK_END_DATE }}
</view>
<view class="cu-form-group bb-default">
<view class="title">关联的其他特殊作业及安全作业票编号</view>
{{ pd.SPECIAL_WORK }}
</view>
<view class="cu-form-group bb-default">
<view class="title">风险辨识结果</view>
{{ pd.RISK_IDENTIFICATION }}
</view>
</view>
<view class="wui-form-list" style="padding-top: 20upx;" v-if="showMeasures && measuresList.length > 0">
<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;width: 100px">操作</uni-th>
</uni-tr>
<uni-tr v-for="(item,index) in measuresList" :key="item.BUS_HOISTING_MEASURES_ID">
<uni-td>
<view style="margin-bottom: 20upx;">
{{ item.PROTECTIVE_MEASURES }}
<view v-if="item.SIGN_PATH" class="cu-item">
<view class="imgs" v-for="(itemPath,itemIndex) in item.SIGN_PATH.split(',')"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + itemPath" :data-index="itemIndex"
@click="ViewShowImage(baseImgPath + itemPath)"
mode="" style="width: 50upx;height: 50upx;"></image>
<text> {{ item.SIGN_TIME }}</text>
</view>
</view>
</view>
<view class="cu-form-group" v-if="item.QUESTION1">
<view class="title">{{ item.QUESTION1 }}</view>
{{ item.ANSWER1 ? item.ANSWER1 : 0 }}
</view>
</uni-td>
<uni-td align="center">
<view class="group" v-if="item.STATUS=='-1'">
<text class="wui-pl10">不涉及</text>
</view>
<view class="group" v-if="item.STATUS=='1'">
<text class="wui-pl10">&nbsp;&nbsp;&nbsp;&nbsp;</text>
</view>
<view v-if="item.IMG_PATH">
<view class="imgs" v-for="img in item.IMG_PATH.split(',')"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + img" :data-index="index" @click="ViewShowImage(baseImgPath + img)"
mode="" style="width: 50upx;height: 50upx;"></image>
</view>
</view>
</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
<view class="wui-form-list" style="padding-top: 20upx;" v-if="showMeasures && signs.MEASURES_CONFIRM">
<view class="wui-title" style="margin-left: 20upx;">
<text class="text-semi">其他安全防护措施</text>
</view>
<view class="wui-table" style="padding: 0 20upx;">
<uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<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 signs.MEASURES_CONFIRM" :key="index">
<uni-td>
<view style="margin-bottom: 20upx;">
{{ item.DESCR }}
</view>
<template v-for="(ITEM_SIGN_PATH,ITEM_SIGN_INDEX) in item.SIGN_PATH">
<view style="display: flex;justify-content: space-between;align-items: flex-end; padding: 10upx 25upx;">
<image :src="baseImgPath + ITEM_SIGN_PATH" :data-index="index"
@click="ViewShowImage(baseImgPath + ITEM_SIGN_PATH)" mode=""
style="width: 200upx;height: 200upx;">
<text> {{ item.SIGN_TIME[ITEM_SIGN_INDEX] }}</text>
</image>
</view>
</template>
</uni-td>
<!-- <uni-td align="center">-->
<!-- <view class="imgs" style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">-->
<!-- <image :src="baseImgPath + item.SIGN_PATH[0]" :data-index="index" @click="ViewShowImage(baseImgPath + item.SIGN_PATH[0])"-->
<!-- mode="" style="width: 50upx;height: 50upx;"></image>-->
<!-- </view>-->
<!-- </uni-td>-->
</uni-tr>
</uni-table>
<!-- <view class="cu-item" >-->
<!-- <view class="imgs" style="padding: 20upx 50upx;" v-for="(item,index) in signs.MEASURES_CONFIRM" :key="index">-->
<!-- <template v-for="(ITEM_SIGN_PATH,ITEM_SIGN_INDEX) in item.SIGN_PATH">-->
<!-- <view style="display: flex;justify-content: space-between;align-items: flex-end;">-->
<!-- <image :src="baseImgPath + ITEM_SIGN_PATH" :data-index="index"-->
<!-- @click="ViewShowImage(baseImgPath + ITEM_SIGN_PATH)" mode=""-->
<!-- style="width: 200upx;height: 200upx;">-->
<!-- <text> {{ item.SIGN_TIME[ITEM_SIGN_INDEX] }}</text>-->
<!-- </image>-->
<!-- </view>-->
<!-- </template>-->
<!-- </view>-->
<!-- </view>-->
</view>
</view>
<view class="wui-form-list">
<view v-if="signs.SISUO">
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">吊装作业人</view>
{{ pd.SISUO_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.SISUO[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.SISUO[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.SISUO[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.SISUO[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.GUARDIAN">
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">监护人</view>
{{ pd.GUARDIAN_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.GUARDIAN[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.GUARDIAN[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.GUARDIAN[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.GUARDIAN[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
</view>
<view class="wui-form-list">
<view v-if="signs.WORKSHOP">
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">工段负责人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="signs.WORKSHOP[0].DESCR"></textarea>
</view>
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">工段负责人</view>
{{ pd.WORKSHOP_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.WORKSHOP[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.WORKSHOP[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.WORKSHOP[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.WORKSHOP[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.LEADER">
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">分厂贯标中心负责人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="signs.LEADER[0].DESCR"></textarea>
</view>
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">分厂贯标中心负责人</view>
{{ pd.LEADER_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.LEADER[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.LEADER[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.LEADER[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.LEADER[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.AUDIT">
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">分厂负责人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="signs.AUDIT[0].DESCR"></textarea>
</view>
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">分厂负责人</view>
{{ pd.AUDIT_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.AUDIT[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.AUDIT[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.AUDIT[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.AUDIT[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.APPROVE">
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">安全处负责人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="signs.APPROVE[0].DESCR"></textarea>
</view>
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">安全处负责人</view>
{{ pd.APPROVE_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.APPROVE[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.APPROVE[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.APPROVE[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.APPROVE[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.SAFETY">
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">生产部负责人意见</view>
<textarea maxlength="255" disabled="disabled" v-model="signs.SAFETY[0].DESCR"></textarea>
</view>
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">生产部负责人</view>
{{ pd.SAFETY_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.SAFETY[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.SAFETY[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.SAFETY[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.SAFETY[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.WORK_START">
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">作业开始负责人</view>
{{ pd.WORK_START_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.WORK_START[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.WORK_START[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.WORK_START[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.WORK_START[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.WORK_END">
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">作业结束负责人</view>
{{ pd.WORK_END_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.WORK_END[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.WORK_END[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.WORK_END[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<text> {{ signs.WORK_END[0].SIGN_TIME[index] }}</text>
</view>
</view>
</view>
</view>
<view v-if="signs.ACCEPT">
<view class="cu-form-textarea" style="border: none;">
<view class="cu-form-title">完工验收</view>
<textarea maxlength="255" disabled="disabled" v-model="signs.ACCEPT[0].DESCR"></textarea>
</view>
<view style="border-bottom: 1px solid #eeeeee; border-top: 1px solid #eeeeee">
<view class="cu-form-group">
<view class="title">验收部门负责人</view>
{{ pd.ACCEPT_USER_NAME }}
</view>
<view class="cu-item" v-for="(item,index) in signs.ACCEPT[0].SIGN_TIME" :key="index"
style="border-bottom: 1px solid #e3e3e3">
<view class="imgs"
style="display: flex;justify-content: space-between;align-items: flex-end;padding: 20upx 50upx;">
<image :src="baseImgPath + signs.ACCEPT[0].SIGN_PATH[index]" :data-index="index"
@click="ViewShowImage(baseImgPath + signs.ACCEPT[0].SIGN_PATH[index])"
mode="" style="width: 200upx;height: 200upx;"></image>
<test>{{ pd.ACCEPT_TIME }}</test>
</view>
</view>
</view>
</view>
</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/horizontal-writing-board/writing-board.vue"
import gcoord from '@/common/gcoord.js'
import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue';
import OtherSelect from '@/components/other-select/index.vue';
export default {
components: {
tkiTree, ruiDatePicker, writingBoard, OtherSelect
},
props: {
hoistingId: {
type: String,
default: ""
},
showMeasures: {
type: Boolean,
default: true
},
},
data() {
return {
baseImgPath: baseImgPath,
buttonloading: false,
isUps: false,
msg: 'add',
noClick: true,
treeNode: [],//部门下拉数据
levelList: [
{id: '特级', name: '特级'},
{id: '一级', name: '一级'},
{id: '二级', name: '二级'},
],
levelindex: -1,
files: [],
files1: [],
analyzeUserList: [],
analyzeindex: -1,
confirmUserList: [],
workuserindex: -1,
confessUserList: [],
confessindex: -1,
acceptconfessUserList: [],
acceptconfessindex: -1,
workUserList: [],
workstartindex: -1,
workstartUserList: [],
workendindex: -1,
workendUserList: [],
confirmindex: -1,
guardianUserList: [],
guardianindex: -1,
leaderUserList: [],
leaderindex: -1,
auditUserList: [],
auditindex: -1,
approveUserList: [],
approveindex: -1,
monitorUserList: [],
monitorindex: -1,
acceptUserList: [],
acceptindex: -1,
pd: {},// 数据
signs: {},
measuresList: [],
rules: [
// {name:'CHECK_NO',message:'请输入编号'},
{name: 'WORK_CONTENT', message: '请输入作业内容'},
{name: 'WORK_PLACE', message: '请输入动火地点及动火部位'},
{name: 'WORK_LEVEL', message: '请选择动火级别'},
{name: 'WORK_FUNCTION', message: '请输入动火方式'},
// {name:'WORK_START_DATE',message:'请选择工作开始时间'},
// {name:'WORK_END_DATE',message:'请选择工作结束时间'},
// {name:'WORK_MANAGER',message:'请输入作业负责人'},
{name: 'WORK_USER', message: '请输入动火人及证书编号'},
// {name:'SPECIAL_WORK',message:'请输入关联的其他特殊作业及安全作业票编号'},
{name: 'RISK_IDENTIFICATION', message: '请输入风险辨识结果'},
// {name:'CONFESS_USER',message:'请输入安全交底人'},
// {name:'EDUCATE_USER',message:'请输入安全教育人'},
// {name:'ACCEPT_EDUCATE_USER',message:'请输入接受交底、教育人'},
// {name:'TRIAL_USER',message:'请输入动火措施初审人'},
{name: 'ANALYZE_USER_ID', message: '请选择分析人'},
{name: 'CONFIRM_USER_ID', message: '请选择作业负责人'},
// {name:'GUARDIAN_USER_ID',message:'请选择监护人'},
{name: 'LEADER_USER_ID', message: '请选择动火点车间负责人'},
// {name:'AUDIT_USER_ID',message:'请选择安全管理部门负责人'},
// {name:'APPROVE_USER_ID',message:'请选择动火审批人'},
{name: 'MONITOR_USER_ID', message: '请选择验票班长'},
{name: 'ACCEPT_USER_ID', message: '请选择验收部门负责人'},
{name: 'GUARDIAN_USER_ID', message: '请选择监护人'},
{name: 'CONFESS_USER_ID', message: '请选择安全交底人'},
{name: 'ACCEPT_CONFESS_USER_ID', message: '请选择接受交底人'},
],
todayDate: '',
otherAssignments: false,
otherIdentification: false,
}
},
mounted() {
console.log(this.hoistingId)
this.todayDate = formatDate(new Date(), 'yyyy-MM-dd hh:mm');
this.pd.HOISTING_ID = this.hoistingId;
this.getData();
},
methods: {
//跳转事件
getCode() {
uni.request({
url: basePath + '/app/hoisting/getCode',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
CORPINFO_ID: loginUser.CORPINFO_ID,
},
success: (res) => {
this.pd.CHECK_NO = res.data.code;
}
})
},
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/hoisting/findById',
method: 'POST',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
HOISTING_ID: _this.pd.HOISTING_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.getSigns()
this.getMeasures()
} else if ("exception" == data.result) {
uni.showToast({
title: '错误',
duration: 2000
});
}
}
});
},
getSigns() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/hoisting/listSignFinished',
method: 'POST',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
HOISTING_ID: _this.pd.HOISTING_ID,
},
success: (res) => {
if ("success" == res.data.result) {
uni.hideLoading();
_this.signs = res.data.signs; //参数map
} else if ("exception" == data.result) {
uni.showToast({
title: '错误',
duration: 2000
});
}
}
});
},
getMeasures() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/hoisting/listSignFinishMeasures',
method: 'POST',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
HOISTING_ID: _this.pd.HOISTING_ID,
},
success: (res) => {
if ("success" == res.data.result) {
uni.hideLoading();
_this.measuresList = res.data.finishMeasuresList; //参数map
} else if ("exception" == data.result) {
uni.showToast({
title: '错误',
duration: 2000
});
}
}
});
},
ViewShowImage(url) {
let files = [];
files.push(url)
uni.previewImage({
urls: files,
current: 0
});
},
}
}
</script>
<style>
</style>