forked from integrated_whb/integrated_whb_vue
八项作业受限空间和高处作业PC端显示
parent
d699e3472f
commit
8c7cb413fe
|
@ -1561,6 +1561,14 @@ export default [
|
||||||
},
|
},
|
||||||
component: "confined_space/job_data/view",
|
component: "confined_space/job_data/view",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/confined_space/job_data/add_video",
|
||||||
|
meta: {
|
||||||
|
title: "添加监控",
|
||||||
|
activeMenu: "/confined_space/job_data",
|
||||||
|
},
|
||||||
|
component: "eightwork_videomanager/index",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1686,6 +1694,14 @@ export default [
|
||||||
},
|
},
|
||||||
component: "high/job_data/view",
|
component: "high/job_data/view",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/high/job_data/add_video",
|
||||||
|
meta: {
|
||||||
|
title: "添加监控",
|
||||||
|
activeMenu: "/high/job_data",
|
||||||
|
},
|
||||||
|
component: "eightwork_videomanager/index",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1846,6 +1862,14 @@ export default [
|
||||||
},
|
},
|
||||||
component: "hot_work/job_data/view",
|
component: "hot_work/job_data/view",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/hot_work/job_data/add_video",
|
||||||
|
meta: {
|
||||||
|
title: "添加监控",
|
||||||
|
activeMenu: "/hot_work/job_data",
|
||||||
|
},
|
||||||
|
component: "eightwork_videomanager/index",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
import { post, upload } from "@/request/axios.js";
|
import { post, upload } from "@/request/axios.js";
|
||||||
|
|
||||||
export const getConfinedSpaceList = (params) =>
|
|
||||||
post("/confinedspace/list", params); // 受限空间作业管理列表
|
|
||||||
export const getConfinedSpaceView = (params) =>
|
|
||||||
post("/confinedspace/goEdit", params); // 受限空间作业管理查看
|
|
||||||
export const getLedgerList = (params) => post("/limitspace/list", params); // 台账列表
|
export const getLedgerList = (params) => post("/limitspace/list", params); // 台账列表
|
||||||
export const setLedgerImport = (params) =>
|
export const setLedgerImport = (params) =>
|
||||||
upload("/limitspace/readExcel2", params); // 台账导入
|
upload("/limitspace/readExcel2", params); // 台账导入
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
import { post } from "@/request/axios.js";
|
|
||||||
|
|
||||||
export const getHighList = (params) => post("/highwork/list", params); // 高处作业管理列表
|
|
||||||
export const getHighView = (params) => post("/highwork/goEdit", params); // 高处作业管理查看
|
|
|
@ -1,81 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="visible" title="查看流程图" width="1200px">
|
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||||
<el-steps
|
<el-steps align-center finish-status="success">
|
||||||
:active="fnGetStatus()"
|
<template v-for="(item, index) in flowList" :key="index">
|
||||||
:process-status="fnGetProcessStatus()"
|
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||||
align-center
|
|
||||||
finish-status="success"
|
|
||||||
>
|
|
||||||
<el-step title="受限空间作业提交">
|
|
||||||
<template #description>
|
<template #description>
|
||||||
<div>{{ fnGetProcessMessage().title }}</div>
|
<div>{{ item.ACT_USER_NAME || item.SIGN_USER }}</div>
|
||||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
<div>{{ item.ACT_TIME }}</div>
|
||||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
|
||||||
</template>
|
</template>
|
||||||
</el-step>
|
</el-step>
|
||||||
<el-step title="作业负责人意见">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.CONFIRM_USER_NAME }}</div>
|
|
||||||
<div>{{ info.CONFIRM_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
</template>
|
||||||
</el-step>
|
|
||||||
<el-step title="所在单位意见">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.APPROVE_USER_NAME }}</div>
|
|
||||||
<div>{{ info.APPROVE_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="完成验收">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.ACCEPT_USER_NAME }}</div>
|
|
||||||
<div>{{ info.ACCEPT_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="验收归档">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.ACCEPT_USER_NAME }}</div>
|
|
||||||
<div>{{ info.ACCEPT_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
</el-steps>
|
</el-steps>
|
||||||
<div
|
|
||||||
style="
|
|
||||||
margin: 60px 60px 0 60px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<div v-if="info.GUARDIAN_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-success">
|
|
||||||
监护人:{{ info.GUARDIAN_USER_NAME }}已签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="!info.GUARDIAN_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-error">
|
|
||||||
监护人:{{ info.GUARDIAN_USER_NAME }}未签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="info.CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-success">
|
|
||||||
安全交底人:{{ info.CONFESS_USER_NAME }}已签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="!info.CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-error">
|
|
||||||
安全交底人:{{ info.CONFESS_USER_NAME }}未签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="info.ACCEPT_CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-success">
|
|
||||||
接受交底人:{{ info.ACCEPT_CONFESS_USER_NAME }}已签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="!info.ACCEPT_CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-error">
|
|
||||||
接受交底人:{{ info.ACCEPT_CONFESS_USER_NAME }}未签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="visible = false">关闭</el-button>
|
<el-button @click="visible = false">关闭</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -91,63 +25,23 @@ const props = defineProps({
|
||||||
required: true,
|
required: true,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
info: {
|
flowList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true,
|
required: true,
|
||||||
default: () => {},
|
default: () => {},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const emits = defineEmits(["update:visible"]);
|
const emits = defineEmits(["update:visible"]);
|
||||||
const visible = useVModel(props, "visible", emits);
|
const visible = useVModel(props, "visible", emits);
|
||||||
const fnGetStatus = () => {
|
const fnGetStatus = (step) => {
|
||||||
const result = {
|
if (step.STATUS === 1) {
|
||||||
1: 1,
|
return "finish";
|
||||||
4: 2,
|
} else if (step.STATUS < 0) {
|
||||||
5: 3,
|
return "error";
|
||||||
6: 5,
|
} else if (step.CURRENT_STEP) {
|
||||||
};
|
return "process";
|
||||||
return result[props.info.APPLY_STATUS] || 0;
|
|
||||||
};
|
|
||||||
const fnGetProcessStatus = () => {
|
|
||||||
if (props.info.APPLY_STATUS < "0") return "error";
|
|
||||||
else return "process";
|
|
||||||
};
|
|
||||||
const fnGetProcessMessage = () => {
|
|
||||||
const info = props.info;
|
|
||||||
const result = {
|
|
||||||
"-4": {
|
|
||||||
title: "作业负责人审核打回",
|
|
||||||
USER_NAME: info.CONFIRM_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-5": {
|
|
||||||
title: "所在单位审核打回",
|
|
||||||
USER_NAME: info.APPROVE_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-6": {
|
|
||||||
title: "验收打回",
|
|
||||||
AUSER_NAME: info.ACCEPT_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-99": {
|
|
||||||
title: "已作废(监护人未签字)",
|
|
||||||
AUSER_NAME: "",
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-98": {
|
|
||||||
title: "已作废(未进行气体检测)",
|
|
||||||
AUSER_NAME: "",
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return (
|
|
||||||
result[props.info.APPLY_STATUS] || {
|
|
||||||
title: "",
|
|
||||||
USER_NAME: info.APPLY_USER_NAME,
|
|
||||||
OPERATTIME: info.CREATTIME,
|
|
||||||
}
|
}
|
||||||
);
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
</layout-card>
|
</layout-card>
|
||||||
<flow-chart
|
<flow-chart
|
||||||
v-model:visible="data.flowChartDialog.visible"
|
v-model:visible="data.flowChartDialog.visible"
|
||||||
:flowList="data.flowChartDialog.flowList"
|
:flow-list="data.flowChartDialog.flowList"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -33,24 +33,7 @@
|
||||||
<td class="title">作业负责人</td>
|
<td class="title">作业负责人</td>
|
||||||
<td colspan="3">{{ data.info.CONFIRM_USER_NAME }}</td>
|
<td colspan="3">{{ data.info.CONFIRM_USER_NAME }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td class="title">作业人</td>
|
|
||||||
<td colspan="5">{{ data.info.WORK_USER }}</td>
|
|
||||||
<td class="title">监护人</td>
|
|
||||||
<td colspan="5">
|
|
||||||
<div v-if="data.info.GUARDIAN_USER_SIGNER_PATH" class="tr">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.GUARDIAN_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.GUARDIAN_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||||
<td colspan="9">{{ data.info.SPECIAL_WORK }}</td>
|
<td colspan="9">{{ data.info.SPECIAL_WORK }}</td>
|
||||||
|
@ -120,7 +103,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<table>
|
<table class="table-ui">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 80px">序号</td>
|
<td style="width: 80px">序号</td>
|
||||||
<td>安全措施</td>
|
<td>安全措施</td>
|
||||||
|
@ -131,135 +114,216 @@
|
||||||
<td>{{ index + 1 }}</td>
|
<td>{{ index + 1 }}</td>
|
||||||
<td>
|
<td>
|
||||||
{{ item.PROTECTIVE_MEASURES }}
|
{{ item.PROTECTIVE_MEASURES }}
|
||||||
|
<div v-if="item.IMG_PATH">
|
||||||
|
<template v-for="img in item.IMG_PATH.split(',')" :key="img">
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + img"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span v-if="item.STATUS === '1'">
|
<span v-if="item.STATUS === '1'"> 涉 及 </span>
|
||||||
<input type="radio" checked disabled /> 涉 及
|
<span v-if="item.STATUS === '-1'"> 不涉及 </span>
|
||||||
</span>
|
|
||||||
<span v-if="item.STATUS === '-1'">
|
|
||||||
<input type="radio" checked disabled /> 不涉及
|
|
||||||
</span>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ item.CONFIRM_NAME }}
|
<img
|
||||||
|
v-if="item.SIGN_PATH"
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||||
<tr
|
<tr
|
||||||
v-if="
|
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||||
data.info.CONFIRM_USER_MEASURES ||
|
:key="item.BUS_CONFINEDSPACE_MEASURES_ID"
|
||||||
data.info.APPROVE_USER_MEASURES
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<td>{{ data.measuresList.length + 1 }}</td>
|
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||||
<td colspan="3">
|
<td colspan="2">
|
||||||
<div
|
<div style="display: flex; justify-content: space-between">
|
||||||
v-if="data.info.CONFIRM_USER_MEASURES"
|
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||||
style="display: flex; justify-content: space-between"
|
|
||||||
>
|
|
||||||
<span>
|
|
||||||
其他安全措施:{{ data.info.CONFIRM_USER_MEASURES }}
|
|
||||||
</span>
|
|
||||||
<span>编制人:{{ data.info.CONFIRM_USER_NAME }}</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-if="data.info.APPROVE_USER_MEASURES"
|
|
||||||
style="display: flex; justify-content: space-between"
|
|
||||||
>
|
|
||||||
<span>
|
|
||||||
其他安全措施:{{ data.info.APPROVE_USER_MEASURES }}
|
|
||||||
</span>
|
|
||||||
<span>编制人:{{ data.info.APPROVE_USER_NAME }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<img
|
||||||
|
v-if="item.SIGN_PATH[0]"
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + item.SIGN_PATH[0]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</template>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr v-if="data.signs.GUARDIAN">
|
||||||
<td class="title">安全交底人</td>
|
|
||||||
<td colspan="10">
|
|
||||||
<div v-if="data.info.CONFESS_USER_SIGNER_PATH" class="tr">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.CONFESS_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.CONFESS_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="title">接受交底人</td>
|
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
|
<div>监护人:</div>
|
||||||
<div
|
<div
|
||||||
v-for="item in data.imgList"
|
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
||||||
:key="item.ACCEPT_CONFESS_ID"
|
:key="index"
|
||||||
class="tr"
|
class="tr"
|
||||||
>
|
>
|
||||||
<span>签字:</span>
|
<span>签字:</span>
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
:src="VITE_FILE_URL + data.signs.GUARDIAN[0].SIGN_PATH[index]"
|
||||||
alt=""
|
alt=""
|
||||||
width="100"
|
width="100"
|
||||||
height="100"
|
height="100"
|
||||||
/>
|
/>
|
||||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
<span>{{ data.signs.GUARDIAN[0].SIGN_TIME[index] }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="data.info.CONFIRM_USER_SIGNER_PATH">
|
<tr v-if="data.signs.CONFESS">
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>作业负责人意见:{{ data.info.CONFIRM_CONTENT }}</div>
|
<div>
|
||||||
<div class="tr">
|
安全交底人:
|
||||||
<span>签字:</span>
|
<div v-if="data.signs.CONFESS[0].IMG_PATH">
|
||||||
|
<template
|
||||||
|
v-for="img in data.signs.CONFESS[0].IMG_PATH"
|
||||||
|
:key="img"
|
||||||
|
>
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
:src="VITE_FILE_URL + data.info.CONFIRM_USER_SIGNER_PATH"
|
:src="VITE_FILE_URL + img"
|
||||||
alt=""
|
alt=""
|
||||||
width="100"
|
width="100"
|
||||||
height="100"
|
height="100"
|
||||||
/>
|
/>
|
||||||
<span>{{ data.info.CONFIRM_USER_SIGNER_TIME }}</span>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr v-if="data.info.APPROVE_USER_SIGNER_PATH">
|
|
||||||
<td colspan="10">
|
|
||||||
<div>所在单位意见:{{ data.info.APPROVE_CONTENT }}</div>
|
|
||||||
<div class="tr">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.APPROVE_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.APPROVE_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr v-if="data.imgList1.length > 0">
|
|
||||||
<td colspan="10">
|
|
||||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
|
||||||
<div
|
<div
|
||||||
v-for="item in data.imgList1"
|
v-for="(item, index) in data.signs.CONFESS[0].SIGN_TIME"
|
||||||
:key="item.ACCEPT_CONFESS_ID"
|
:key="index"
|
||||||
class="tr"
|
class="tr"
|
||||||
>
|
>
|
||||||
<span>签字:</span>
|
<span>签字:</span>
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
:src="VITE_FILE_URL + data.signs.CONFESS[0].SIGN_PATH[index]"
|
||||||
alt=""
|
alt=""
|
||||||
width="100"
|
width="100"
|
||||||
height="100"
|
height="100"
|
||||||
/>
|
/>
|
||||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
<span>{{ data.signs.CONFESS[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>接受交底人:</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.ACCEPT_CONFESS[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="
|
||||||
|
VITE_FILE_URL + data.signs.ACCEPT_CONFESS[0].SIGN_PATH[index]
|
||||||
|
"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.ACCEPT_CONFESS[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="data.signs.CONFIRM">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>作业负责人意见:{{ data.signs.CONFIRM[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.CONFIRM[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.CONFIRM[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.CONFIRM[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="data.signs.WORK_USER">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>作业人:</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.WORK_USER[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.WORK_USER[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.WORK_USER[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr v-if="data.signs.LEADER">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>所在单位意见:{{ data.signs.LEADER[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.LEADER[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.LEADER[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.LEADER[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr v-if="data.signs.ACCEPT">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>完工验收:{{ data.signs.ACCEPT[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.ACCEPT[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.ACCEPT[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.ACCEPT[0].SIGN_TIME[index] }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -272,7 +336,7 @@ import LayoutPrintTablePackage from "@/components/print_table_package/index.vue"
|
||||||
import { reactive } from "vue";
|
import { reactive } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { findCharIndex } from "@/assets/js/utils.js";
|
import { findCharIndex } from "@/assets/js/utils.js";
|
||||||
import { getConfinedSpaceView } from "@/request/confined_space.js";
|
import { getConfinedSpaceView } from "@/request/eight_work.js";
|
||||||
|
|
||||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
@ -282,14 +346,11 @@ const data = reactive({
|
||||||
gasList: [],
|
gasList: [],
|
||||||
gas: {},
|
gas: {},
|
||||||
measuresList: [],
|
measuresList: [],
|
||||||
imgList: [],
|
signs: [],
|
||||||
imgList1: [],
|
|
||||||
});
|
});
|
||||||
const fnGetData = async () => {
|
const fnGetData = async () => {
|
||||||
const resData = await getConfinedSpaceView({ CONFINEDSPACE_ID });
|
const resData = await getConfinedSpaceView({ CONFINEDSPACE_ID });
|
||||||
data.info = resData.pd;
|
data.info = resData.pd;
|
||||||
data.imgList = resData.imgList;
|
|
||||||
data.imgList1 = resData.imgList1;
|
|
||||||
for (let i = 0; i < resData.measuresList.length; i++) {
|
for (let i = 0; i < resData.measuresList.length; i++) {
|
||||||
const PROTECTIVE_MEASURES =
|
const PROTECTIVE_MEASURES =
|
||||||
resData.measuresList[i].PROTECTIVE_MEASURES.split("");
|
resData.measuresList[i].PROTECTIVE_MEASURES.split("");
|
||||||
|
@ -307,10 +368,7 @@ const fnGetData = async () => {
|
||||||
data.measuresList = resData.measuresList;
|
data.measuresList = resData.measuresList;
|
||||||
data.gasList = resData.gasList;
|
data.gasList = resData.gasList;
|
||||||
data.gas = resData.gas || {};
|
data.gas = resData.gas || {};
|
||||||
data.info.CONFIRM_USER_MEASURES =
|
data.signs = resData.signs;
|
||||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
|
||||||
data.info.APPROVE_USER_MEASURES =
|
|
||||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[1];
|
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,96 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||||
<el-steps
|
<el-steps align-center finish-status="success">
|
||||||
:active="fnGetStatus()"
|
<template v-for="(item, index) in flowList" :key="index">
|
||||||
:process-status="fnGetProcessStatus()"
|
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||||
align-center
|
|
||||||
finish-status="success"
|
|
||||||
>
|
|
||||||
<el-step title="高处作业提交">
|
|
||||||
<template #description>
|
<template #description>
|
||||||
<div>{{ fnGetProcessMessage().title }}</div>
|
<div>{{ item.ACT_USER_NAME || item.SIGN_USER }}</div>
|
||||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
<div>{{ item.ACT_TIME }}</div>
|
||||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
|
||||||
</template>
|
</template>
|
||||||
</el-step>
|
</el-step>
|
||||||
<el-step title="作业负责人意见">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.CONSTRUCTION_USER_NAME }}</div>
|
|
||||||
<div>{{ info.CONSTRUCTION_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
</template>
|
||||||
</el-step>
|
|
||||||
<el-step title="所在单位意见">
|
|
||||||
<template #description>
|
|
||||||
<div v-if="!info.LEADER_USER_NAME">{{ "已跳过" }}</div>
|
|
||||||
<div v-else>{{ info.LEADER_USER_NAME }}</div>
|
|
||||||
<div>{{ info.LEADER_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="审核部门意见">
|
|
||||||
<template #description>
|
|
||||||
<div v-if="!info.AUDIT_USER_NAME">{{ "已跳过" }}</div>
|
|
||||||
<div v-else>{{ info.AUDIT_USER_NAME }}</div>
|
|
||||||
<div>{{ info.AUDIT_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="审批部门意见">
|
|
||||||
<template #description>
|
|
||||||
<div v-if="!info.APPROVE_USER_NAME">{{ "已跳过" }}</div>
|
|
||||||
<div v-else>{{ info.APPROVE_USER_NAME }}</div>
|
|
||||||
<div>{{ info.APPROVE_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="完成验收">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.ACCEPT_USER_NAME }}</div>
|
|
||||||
<div>{{ info.ACCEPT_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="验收归档">
|
|
||||||
<template #description>
|
|
||||||
<div>{{ info.ACCEPT_USER_NAME }}</div>
|
|
||||||
<div>{{ info.ACCEPT_USER_SIGNER_TIME }}</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
</el-steps>
|
</el-steps>
|
||||||
<div
|
|
||||||
style="
|
|
||||||
margin: 60px 60px 0 60px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<div v-if="info.GUARDIAN_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-success">
|
|
||||||
监护人:{{ info.GUARDIAN_USER_NAME }}已签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="!info.GUARDIAN_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-error">
|
|
||||||
监护人:{{ info.GUARDIAN_USER_NAME }}未签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="info.CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-success">
|
|
||||||
安全交底人:{{ info.CONFESS_USER_NAME }}已签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="!info.CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-error">
|
|
||||||
安全交底人:{{ info.CONFESS_USER_NAME }}未签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="info.ACCEPT_CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-success">
|
|
||||||
接受交底人:{{ info.ACCEPT_CONFESS_USER_NAME }}已签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="!info.ACCEPT_CONFESS_USER_SIGNER_TIME">
|
|
||||||
<div class="el-step__title is-error">
|
|
||||||
接受交底人:{{ info.ACCEPT_CONFESS_USER_NAME }}未签字
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="visible = false">关闭</el-button>
|
<el-button @click="visible = false">关闭</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -106,7 +25,7 @@ const props = defineProps({
|
||||||
required: true,
|
required: true,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
info: {
|
flowList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true,
|
required: true,
|
||||||
default: () => {},
|
default: () => {},
|
||||||
|
@ -114,57 +33,15 @@ const props = defineProps({
|
||||||
});
|
});
|
||||||
const emits = defineEmits(["update:visible"]);
|
const emits = defineEmits(["update:visible"]);
|
||||||
const visible = useVModel(props, "visible", emits);
|
const visible = useVModel(props, "visible", emits);
|
||||||
const fnGetStatus = () => {
|
|
||||||
const result = {
|
const fnGetStatus = (step) => {
|
||||||
1: 1,
|
if (step.STATUS === 1) {
|
||||||
2: 2,
|
return "finish";
|
||||||
3: 3,
|
} else if (step.STATUS < 0) {
|
||||||
4: 4,
|
return "error";
|
||||||
5: 5,
|
} else if (step.CURRENT_STEP) {
|
||||||
6: 7,
|
return "process";
|
||||||
};
|
|
||||||
return result[props.info.APPLY_STATUS] || 0;
|
|
||||||
};
|
|
||||||
const fnGetProcessStatus = () => {
|
|
||||||
if (props.info.APPLY_STATUS < "0") return "error";
|
|
||||||
else return "process";
|
|
||||||
};
|
|
||||||
const fnGetProcessMessage = () => {
|
|
||||||
const info = props.info;
|
|
||||||
const result = {
|
|
||||||
"-2": {
|
|
||||||
title: "作业负责人审核打回",
|
|
||||||
USER_NAME: info.CONSTRUCTION_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-3": {
|
|
||||||
title: "所在单位审核打回",
|
|
||||||
USER_NAME: info.LEADER_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-4": {
|
|
||||||
title: "审核部门审核打回",
|
|
||||||
USER_NAME: info.AUDIT_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-5": {
|
|
||||||
title: "审批部门审核打回",
|
|
||||||
USER_NAME: info.APPROVE_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
"-6": {
|
|
||||||
title: "验收打回",
|
|
||||||
USER_NAME: info.ACCEPT_USER_NAME,
|
|
||||||
OPERATTIME: info.OPERATTIME,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return (
|
|
||||||
result[props.info.APPLY_STATUS] || {
|
|
||||||
title: "",
|
|
||||||
USER_NAME: info.APPLY_USER,
|
|
||||||
OPERATTIME: info.CREATTIME,
|
|
||||||
}
|
}
|
||||||
);
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -34,38 +34,18 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">作业单位</td>
|
<td class="title">作业单位</td>
|
||||||
<td>{{ data.info.CONSTRUCTION_DEPARTMENT_NAME }}</td>
|
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||||
<td class="title">监护人</td>
|
|
||||||
<td>
|
|
||||||
<div
|
|
||||||
v-if="data.info.GUARDIAN_USER_SIGNER_PATH"
|
|
||||||
style="text-align: right"
|
|
||||||
>
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.GUARDIAN_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.GUARDIAN_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="title">作业人</td>
|
|
||||||
<td>{{ data.info.PROJECT_MANAGER }}</td>
|
|
||||||
<td class="title">作业负责人</td>
|
<td class="title">作业负责人</td>
|
||||||
<td>{{ data.info.CONSTRUCTION_USER_NAME }}</td>
|
<td>{{ data.info.CONFIRM_USER_NAME }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||||
<td colspan="3">{{ data.info.SPECIAL_WORK }}</td>
|
<td colspan="3">{{ data.info.SPECIAL_WORK }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">风险辨识结果</td>
|
<td class="title">风险辨识结果</td>
|
||||||
<td colspan="3">{{ data.info.HAZARD_IDENTIFICATION }}</td>
|
<td colspan="3">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title">作业实施时间</td>
|
<td class="title">作业实施时间</td>
|
||||||
|
@ -75,7 +55,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4">
|
<td colspan="4">
|
||||||
<table>
|
<table class="table-ui">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 80px">序号</td>
|
<td style="width: 80px">序号</td>
|
||||||
<td>安全措施</td>
|
<td>安全措施</td>
|
||||||
|
@ -84,204 +64,259 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||||
<td>{{ index + 1 }}</td>
|
<td>{{ index + 1 }}</td>
|
||||||
<td>{{ item.PROTECTIVE_MEASURES }}</td>
|
|
||||||
<td>
|
<td>
|
||||||
<span v-if="item.STATUS === '1'">
|
{{ item.PROTECTIVE_MEASURES }}
|
||||||
<input type="radio" disabled checked />涉 及
|
<div v-if="item.IMG_PATH">
|
||||||
</span>
|
<template v-for="img in item.IMG_PATH.split(',')" :key="img">
|
||||||
<span v-if="item.STATUS === '-1'">
|
<img
|
||||||
<input type="radio" disabled checked />不涉及
|
v-viewer
|
||||||
</span>
|
:src="VITE_FILE_URL + img"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ item.CONFIRM_NAME }}
|
<span v-if="item.STATUS === '1'"> 涉 及 </span>
|
||||||
|
<span v-if="item.STATUS === '-1'"> 不涉及 </span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<img
|
||||||
|
v-if="item.SIGN_PATH"
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||||
<tr
|
<tr
|
||||||
v-if="
|
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||||
data.info.CONFIRM_USER_MEASURES ||
|
:key="item.BUS_HOTWORK_MEASURES_ID"
|
||||||
data.info.LEADER_USER_MEASURES ||
|
|
||||||
data.info.AUDIT_USER_MEASURES ||
|
|
||||||
data.info.APPROVE_USER_MEASURES
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<td>{{ data.measuresList.length + 1 }}</td>
|
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||||
<td colspan="3">
|
<td colspan="2">
|
||||||
<div
|
<div style="display: flex; justify-content: space-between">
|
||||||
v-if="data.info.CONFIRM_USER_MEASURES"
|
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||||
style="display: flex; justify-content: space-between"
|
|
||||||
>
|
|
||||||
<span>
|
|
||||||
其他安全措施:{{ data.info.CONFIRM_USER_MEASURES }}
|
|
||||||
</span>
|
|
||||||
<span>编制人:{{ data.info.CONSTRUCTION_USER_NAME }}</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-if="
|
|
||||||
data.info.LEADER_USER_ID && data.info.CONFIRM_USER_MEASURES
|
|
||||||
"
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin-top: 10px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<span>
|
|
||||||
其他安全措施:{{ data.info.LEADER_USER_MEASURES }}
|
|
||||||
</span>
|
|
||||||
<span>编制人:{{ data.info.LEADER_USER_NAME }}</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-if="
|
|
||||||
data.info.AUDIT_USER_ID && data.info.AUDIT_USER_MEASURES
|
|
||||||
"
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin-top: 10px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<span>其他安全措施:{{ data.info.AUDIT_USER_MEASURES }}</span>
|
|
||||||
<span>编制人:{{ data.info.AUDIT_USER_NAME }}</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-if="data.info.APPROVE_USER_MEASURES"
|
|
||||||
style="
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin-top: 10px;
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<span>
|
|
||||||
其他安全措施:{{ data.info.APPROVE_USER_MEASURES }}
|
|
||||||
</span>
|
|
||||||
<span>编制人:{{ data.info.APPROVE_USER_NAME }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<img
|
||||||
|
v-if="item.SIGN_PATH[0]"
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + item.SIGN_PATH[0]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
</template>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr v-if="data.signs.GUARDIAN">
|
||||||
<td class="title">安全交底人</td>
|
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
|
<div>监护人:</div>
|
||||||
<div
|
<div
|
||||||
v-if="data.info.CONFESS_USER_SIGNER_PATH"
|
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
||||||
style="text-align: right"
|
:key="index"
|
||||||
|
class="tr"
|
||||||
>
|
>
|
||||||
<span>签字:</span>
|
<span>签字:</span>
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
:src="VITE_FILE_URL + data.info.CONFESS_USER_SIGNER_PATH"
|
:src="VITE_FILE_URL + data.signs.GUARDIAN[0].SIGN_PATH[index]"
|
||||||
alt=""
|
alt=""
|
||||||
width="100"
|
width="100"
|
||||||
height="100"
|
height="100"
|
||||||
/>
|
/>
|
||||||
<span>{{ data.info.CONFESS_USER_SIGNER_TIME }}</span>
|
<span>{{ data.signs.GUARDIAN[0].SIGN_TIME[index] }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr v-if="data.signs.CONFESS">
|
||||||
<td class="title">接受交底人</td>
|
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
|
<div>
|
||||||
|
安全交底人:
|
||||||
|
<div v-if="data.signs.CONFESS[0].IMG_PATH">
|
||||||
|
<template
|
||||||
|
v-for="img in data.signs.CONFESS[0].IMG_PATH"
|
||||||
|
:key="img"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + img"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
v-for="item in data.imgList"
|
v-for="(item, index) in data.signs.CONFESS[0].SIGN_TIME"
|
||||||
:key="item.ACCEPT_CONFESS_ID"
|
:key="index"
|
||||||
style="text-align: right"
|
class="tr"
|
||||||
>
|
>
|
||||||
<span>签字:</span>
|
<span>签字:</span>
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
:src="VITE_FILE_URL + data.signs.CONFESS[0].SIGN_PATH[index]"
|
||||||
alt=""
|
alt=""
|
||||||
width="100"
|
width="100"
|
||||||
height="100"
|
height="100"
|
||||||
/>
|
/>
|
||||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
<span>{{ data.signs.CONFESS[0].SIGN_TIME[index] }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="data.info.CONSTRUCTION_USER_SIGNER_PATH">
|
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||||
<td colspan="4">
|
|
||||||
<div>作业负责人意见:{{ data.info.CONSTRUCTION_CONTENT }}</div>
|
|
||||||
<div style="text-align: right">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.CONSTRUCTION_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.CONSTRUCTION_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr v-if="data.info.LEADER_USER_SIGNER_PATH">
|
|
||||||
<td colspan="4">
|
|
||||||
<div>所在单位意见:{{ data.info.LEADER_CONTENT }}</div>
|
|
||||||
<div style="text-align: right">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.LEADER_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.LEADER_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr v-if="data.info.AUDIT_USER_SIGNER_PATH">
|
|
||||||
<td colspan="4">
|
|
||||||
<div>审核部门意见:{{ data.info.AUDIT_CONTENT }}</div>
|
|
||||||
<div style="text-align: right">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.AUDIT_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.AUDIT_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr v-if="data.info.APPROVE_USER_SIGNER_PATH">
|
|
||||||
<td colspan="4">
|
|
||||||
<div>审批部门意见:{{ data.info.APPROVE_CONTENT }}</div>
|
|
||||||
<div style="text-align: right">
|
|
||||||
<span>签字:</span>
|
|
||||||
<img
|
|
||||||
v-viewer
|
|
||||||
:src="VITE_FILE_URL + data.info.APPROVE_USER_SIGNER_PATH"
|
|
||||||
alt=""
|
|
||||||
width="100"
|
|
||||||
height="100"
|
|
||||||
/>
|
|
||||||
<span>{{ data.info.APPROVE_USER_SIGNER_TIME }}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr v-if="data.imgList1.length > 0">
|
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
<div>接受交底人:</div>
|
||||||
<div
|
<div
|
||||||
v-for="item in data.imgList1"
|
v-for="(item, index) in data.signs.ACCEPT_CONFESS[0].SIGN_TIME"
|
||||||
:key="item.ACCEPT_CONFESS_ID"
|
:key="index"
|
||||||
style="text-align: right"
|
class="tr"
|
||||||
>
|
>
|
||||||
<span>签字:</span>
|
<span>签字:</span>
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
:src="
|
||||||
|
VITE_FILE_URL + data.signs.ACCEPT_CONFESS[0].SIGN_PATH[index]
|
||||||
|
"
|
||||||
alt=""
|
alt=""
|
||||||
width="100"
|
width="100"
|
||||||
height="100"
|
height="100"
|
||||||
/>
|
/>
|
||||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
<span>{{ data.signs.ACCEPT_CONFESS[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="data.signs.CONFIRM">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>作业负责人意见:{{ data.signs.CONFIRM[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.CONFIRM[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.CONFIRM[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.CONFIRM[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="data.signs.WORK_USER">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>作业人:</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.WORK_USER[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.WORK_USER[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.WORK_USER[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr v-if="data.signs.LEADER">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>所在单位意见:{{ data.signs.LEADER[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.LEADER[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.LEADER[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.LEADER[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="data.signs.AUDIT">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>审核部门意见:{{ data.signs.AUDIT[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.AUDIT[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.AUDIT[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.AUDIT[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr v-if="data.signs.APPROVE">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>审批部门意见:{{ data.signs.APPROVE[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.APPROVE[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.APPROVE[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.APPROVE[0].SIGN_TIME[index] }}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr v-if="data.signs.ACCEPT">
|
||||||
|
<td colspan="10">
|
||||||
|
<div>完工验收:{{ data.signs.ACCEPT[0].DESCR }}</div>
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in data.signs.ACCEPT[0].SIGN_TIME"
|
||||||
|
:key="index"
|
||||||
|
class="tr"
|
||||||
|
>
|
||||||
|
<span>签字:</span>
|
||||||
|
<img
|
||||||
|
v-viewer
|
||||||
|
:src="VITE_FILE_URL + data.signs.ACCEPT[0].SIGN_PATH[index]"
|
||||||
|
alt=""
|
||||||
|
width="100"
|
||||||
|
height="100"
|
||||||
|
/>
|
||||||
|
<span>{{ data.signs.ACCEPT[0].SIGN_TIME[index] }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -293,31 +328,36 @@
|
||||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||||
import { reactive } from "vue";
|
import { reactive } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { getHighView } from "@/request/high.js";
|
import { getHighWorkView } from "@/request/eight_work.js";
|
||||||
|
import { findCharIndex } from "@/assets/js/utils.js";
|
||||||
|
|
||||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { HIGHWORK_ID, entrance } = route.query;
|
const { HIGHWORK_ID, entrance } = route.query;
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
info: {},
|
info: {},
|
||||||
imgList: [],
|
|
||||||
imgList1: [],
|
|
||||||
measuresList: [],
|
measuresList: [],
|
||||||
|
signs: [],
|
||||||
});
|
});
|
||||||
const fnGetData = async () => {
|
const fnGetData = async () => {
|
||||||
const resData = await getHighView({ HIGHWORK_ID });
|
const resData = await getHighWorkView({ HIGHWORK_ID });
|
||||||
data.info = resData.pd;
|
data.info = resData.pd;
|
||||||
data.imgList = resData.imgList;
|
for (let i = 0; i < resData.measuresList.length; i++) {
|
||||||
data.imgList1 = resData.imgList1;
|
const PROTECTIVE_MEASURES =
|
||||||
|
resData.measuresList[i].PROTECTIVE_MEASURES.split("");
|
||||||
|
for (let j = 1; j <= 3; j++) {
|
||||||
|
if (findCharIndex(PROTECTIVE_MEASURES, "(", j) !== -1) {
|
||||||
|
PROTECTIVE_MEASURES.splice(
|
||||||
|
findCharIndex(PROTECTIVE_MEASURES, "(", j) + 1,
|
||||||
|
0,
|
||||||
|
resData.measuresList[i]["ANSWER" + j]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resData.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join("");
|
||||||
|
}
|
||||||
data.measuresList = resData.measuresList;
|
data.measuresList = resData.measuresList;
|
||||||
data.info.CONFIRM_USER_MEASURES =
|
data.signs = resData.signs;
|
||||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
|
||||||
data.info.LEADER_USER_MEASURES =
|
|
||||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[1];
|
|
||||||
data.info.AUDIT_USER_MEASURES =
|
|
||||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[2];
|
|
||||||
data.info.APPROVE_USER_MEASURES =
|
|
||||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[3];
|
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -134,7 +134,7 @@
|
||||||
|
|
||||||
<tr v-if="data.signs.GUARDIAN">
|
<tr v-if="data.signs.GUARDIAN">
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>监护人:{{ data.signs.GUARDIAN[0].DESCR }}</div>
|
<div>监护人:</div>
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
@ -156,10 +156,10 @@
|
||||||
<tr v-if="data.signs.CONFESS">
|
<tr v-if="data.signs.CONFESS">
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>
|
<div>
|
||||||
安全交底人:{{ data.signs.CONFESS[0].DESCR }}
|
安全交底人:
|
||||||
<div v-if="data.signs.CONFESS[0].IMG_PATH">
|
<div v-if="data.signs.CONFESS[0].IMG_PATH">
|
||||||
<template
|
<template
|
||||||
v-for="img in data.signs.CONFESS[0].IMG_PATH.split(',')"
|
v-for="img in data.signs.CONFESS[0].IMG_PATH"
|
||||||
:key="img"
|
:key="img"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
|
|
||||||
<tr v-if="data.signs.ACCEPT_CONFESS">
|
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||||
<td colspan="10">
|
<td colspan="10">
|
||||||
<div>接受交底人:{{ data.signs.ACCEPT_CONFESS[0].DESCR }}</div>
|
<div>接受交底人:</div>
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in data.signs.ACCEPT_CONFESS[0].SIGN_TIME"
|
v-for="(item, index) in data.signs.ACCEPT_CONFESS[0].SIGN_TIME"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
@ -354,8 +354,6 @@ const route = useRoute();
|
||||||
const { HOTWORK_ID, entrance } = route.query;
|
const { HOTWORK_ID, entrance } = route.query;
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
info: {},
|
info: {},
|
||||||
imgList: [],
|
|
||||||
imgList1: [],
|
|
||||||
measuresList: [],
|
measuresList: [],
|
||||||
gasList: [],
|
gasList: [],
|
||||||
signs: [],
|
signs: [],
|
||||||
|
|
Loading…
Reference in New Issue