forked from integrated_whb/integrated_whb_vue
PC端八项作业
parent
3c7c37d7f2
commit
305800c71a
|
|
@ -184,7 +184,7 @@ a {
|
|||
display: none;
|
||||
}
|
||||
|
||||
@mixin table {
|
||||
@mixin table($tdTextAlign,$titleTextAlign) {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
display: table;
|
||||
|
|
@ -198,17 +198,22 @@ a {
|
|||
border: 1px solid var(--el-border-color);
|
||||
padding: 8px;
|
||||
line-height: 1.6;
|
||||
text-align: center;
|
||||
text-align: $tdTextAlign;
|
||||
}
|
||||
|
||||
.title {
|
||||
background: var(--el-fill-color-light);
|
||||
width: 200px;
|
||||
text-align: $titleTextAlign;
|
||||
}
|
||||
}
|
||||
|
||||
.print_table {
|
||||
@include table;
|
||||
@include table(center,left);
|
||||
}
|
||||
|
||||
.archive_print_table {
|
||||
@include table(left,center);
|
||||
}
|
||||
|
||||
img.ml-10:first-child {
|
||||
|
|
@ -326,7 +331,7 @@ div::-webkit-scrollbar-track {
|
|||
}
|
||||
|
||||
.print_use {
|
||||
@include table;
|
||||
@include table(center,left);
|
||||
}
|
||||
|
||||
.print_no_use {
|
||||
|
|
|
|||
|
|
@ -1794,6 +1794,14 @@ export default [
|
|||
},
|
||||
component: "blind_plate_plugging/job_data/view",
|
||||
},
|
||||
{
|
||||
path: "/blind_plate_plugging/job_data/add_video",
|
||||
meta: {
|
||||
title: "添加监控",
|
||||
activeMenu: "/blind_plate_plugging/job_data",
|
||||
},
|
||||
component: "eightwork_videomanager/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
@ -1834,6 +1842,14 @@ export default [
|
|||
},
|
||||
component: "groundbreaking/job_data/view",
|
||||
},
|
||||
{
|
||||
path: "/blind_plate_plugging/job_data/add_video",
|
||||
meta: {
|
||||
title: "添加监控",
|
||||
activeMenu: "/blind_plate_plugging/job_data",
|
||||
},
|
||||
component: "eightwork_videomanager/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
@ -1922,6 +1938,14 @@ export default [
|
|||
},
|
||||
component: "hoisting/job_data/view",
|
||||
},
|
||||
{
|
||||
path: "/hoisting/job_data/add_video",
|
||||
meta: {
|
||||
title: "添加监控",
|
||||
activeMenu: "/hoisting/job_data",
|
||||
},
|
||||
component: "eightwork_videomanager/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
@ -1942,6 +1966,7 @@ export default [
|
|||
},
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
path: "/open_circuit",
|
||||
redirect: "/open_circuit/job_data",
|
||||
|
|
@ -1962,6 +1987,14 @@ export default [
|
|||
},
|
||||
component: "open_circuit/job_data/view",
|
||||
},
|
||||
{
|
||||
path: "/open_circuit/job_data/add_video",
|
||||
meta: {
|
||||
title: "添加监控",
|
||||
activeMenu: "/open_circuit/job_data",
|
||||
},
|
||||
component: "eightwork_videomanager/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
@ -2002,6 +2035,14 @@ export default [
|
|||
},
|
||||
component: "temporary_electricity_usage/job_data/view",
|
||||
},
|
||||
{
|
||||
path: "/temporary_electricity_usage/job_data/add_video",
|
||||
meta: {
|
||||
title: "添加监控",
|
||||
activeMenu: "/temporary_electricity_usage/job_data",
|
||||
},
|
||||
component: "eightwork_videomanager/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ export default function usePrint() {
|
|||
id: "printContent",
|
||||
closeCallback() {
|
||||
document.querySelector("#printContent").style.overflow = "hidden";
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
elements[i].removeAttribute("style");
|
||||
}
|
||||
},
|
||||
};
|
||||
const fnPrint = () => {
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
import { post } from "@/request/axios.js";
|
||||
|
||||
export const getBlindPlatePluggingList = (params) =>
|
||||
post("/blindboard/list", params); // 盲板抽堵作业管理列表
|
||||
export const getBlindPlatePluggingView = (params) =>
|
||||
post("/blindboard/goEdit", params); // 盲板抽堵作业管理查看
|
||||
|
|
@ -19,3 +19,33 @@ export const getHighWorkView = (params) => post("/highwork/findById", params); /
|
|||
|
||||
export const getHighWorkFlow = (params) =>
|
||||
post("/highwork/getFlowList", params); // 高处作业流程图
|
||||
|
||||
export const getHoistingList = (params) => post("/hoisting/list", params);
|
||||
export const getHoistingView = (params) => post("/hoisting/findById", params);
|
||||
export const getHoistingFlow = (params) =>
|
||||
post("/hoisting/getFlowList", params);
|
||||
|
||||
export const getBlindBoardList = (params) => post("/blindboard/list", params);
|
||||
export const getBlindBoardView = (params) =>
|
||||
post("/blindboard/findById", params);
|
||||
export const getBlindBoardFlow = (params) =>
|
||||
post("/blindboard/getFlowList", params);
|
||||
|
||||
export const getGroundbreakingList = (params) =>
|
||||
post("/breakground/list", params);
|
||||
export const getGroundbreakingView = (params) =>
|
||||
post("/breakground/findById", params);
|
||||
export const getGroundbreakingFlow = (params) =>
|
||||
post("/breakground/getFlowList", params);
|
||||
|
||||
export const getOpenCircuitList = (params) => post("/cutroad/list", params);
|
||||
export const getOpenCircuitView = (params) => post("/cutroad/findById", params);
|
||||
export const getOpenCircuitFlow = (params) =>
|
||||
post("/cutroad/getFlowList", params);
|
||||
|
||||
export const getTemporaryElectricityUsageList = (params) =>
|
||||
post("/electricity/list", params);
|
||||
export const getTemporaryElectricityUsageView = (params) =>
|
||||
post("/electricity/findById", params);
|
||||
export const getTemporaryElectricityUsageFlow = (params) =>
|
||||
post("/electricity/getFlowList", params);
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
import { post } from "@/request/axios.js";
|
||||
|
||||
export const getHoistingList = (params) => post("/hoisting/list", params); // 吊装作业管理列表
|
||||
export const getHoistingView = (params) => post("/hoisting/goEdit", params); // 吊装作业管理查看
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
<td colspan="10">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS[0].IMG_PATH">
|
||||
<div v-if="data.signs.CONFESS[0].IMG_PATH[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS[0].IMG_PATH"
|
||||
:key="img"
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@
|
|||
<td colspan="10">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS[0].IMG_PATH">
|
||||
<div v-if="data.signs.CONFESS[0].IMG_PATH[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS[0].IMG_PATH"
|
||||
:key="img"
|
||||
|
|
|
|||
|
|
@ -1,81 +1,17 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1200px">
|
||||
<el-steps
|
||||
:active="fnGetStatus()"
|
||||
:process-status="fnGetProcessStatus()"
|
||||
align-center
|
||||
finish-status="success"
|
||||
>
|
||||
<el-step title="盲板抽堵作业提交">
|
||||
<template #description>
|
||||
<div>{{ fnGetProcessMessage().title }}</div>
|
||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="作业负责人意见">
|
||||
<template #description>
|
||||
<div>{{ info.CONSTRUCTION_USER_NAME }}</div>
|
||||
<div>{{ info.CONSTRUCTION_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="所在单位意见">
|
||||
<template #description>
|
||||
<div>{{ info.LEADER_USER_NAME }}</div>
|
||||
<div>{{ info.LEADER_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>
|
||||
<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>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -91,7 +27,12 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
flowList: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
|
|
@ -99,45 +40,27 @@ const props = defineProps({
|
|||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = () => {
|
||||
const result = {
|
||||
1: 1,
|
||||
4: 2,
|
||||
5: 3,
|
||||
6: 5,
|
||||
};
|
||||
return result[props.info.APPLY_STATUS] || 0;
|
||||
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
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,
|
||||
},
|
||||
"-5": {
|
||||
title: "所在单位审核打回",
|
||||
USER_NAME: info.LEADER_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_NAME,
|
||||
OPERATTIME: info.CREATTIME,
|
||||
}
|
||||
);
|
||||
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="entrance === 'job_data'" :span="6">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-form-item label="状态" prop="STEP_ID">
|
||||
<el-select v-model="searchForm.STEP_ID">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
v-for="item in stepList"
|
||||
:key="item.STEP_ID"
|
||||
:label="item.STEP_NAME"
|
||||
:value="item.STEP_ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
<el-table-column prop="APPLY_USER_NAME" label="申请人" width="100" />
|
||||
<el-table-column prop="APPLY_DEPARTMENT_NAME" label="申请部门" />
|
||||
<el-table-column
|
||||
prop="CONSTRUCTION_USER_NAME"
|
||||
prop="CONFIRM_USER_NAME"
|
||||
label="作业负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
|
|
@ -76,19 +76,22 @@
|
|||
label="验收部门负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="审核状态">
|
||||
<el-table-column label="审核状态" width="170">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
<span v-if="row.STEP_ID === 0">暂存</span>
|
||||
<span v-else-if="row.STATUS === -2">气体检测打回</span>
|
||||
<span v-else-if="row.STEP_ID !== -1">{{ row.NEXT_STEP_NAME }}</span>
|
||||
<span v-else>{{ row.STEP_NAME }}打回</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="250">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="entrance === 'job_data' && row.APPLY_STATUS !== '6'"
|
||||
v-if="
|
||||
entrance === 'job_data' &&
|
||||
row.STATUS > -1 &&
|
||||
row.NEXT_STEP_ID !== 99
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
|
|
@ -109,10 +112,23 @@
|
|||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
@click="fnFlowChart(row.BLINDBOARD_ID)"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnPreviewVideo(row.VIDEO_PATH)"
|
||||
>
|
||||
查看验收视频
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -135,18 +151,29 @@
|
|||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
:src="data.videoDialog.src"
|
||||
append-to-body
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getBlindPlatePluggingList } from "@/request/blind_plate_plugging.js";
|
||||
import LayoutVideo from "@/components/video/index.vue";
|
||||
import {
|
||||
getBlindBoardFlow,
|
||||
getBlindBoardList,
|
||||
getTaskSetps,
|
||||
} from "@/request/eight_work.js";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
|
|
@ -154,30 +181,43 @@ const props = defineProps({
|
|||
default: "job_data",
|
||||
},
|
||||
});
|
||||
const stateList = [
|
||||
{ ID: "0", NAME: "待提交" },
|
||||
{ ID: "1", NAME: "作业负责人待审核" },
|
||||
{ ID: "4", NAME: "所在单位领导人待审核" },
|
||||
{ ID: "5", NAME: "待验收" },
|
||||
{ ID: "6", NAME: "验收归档" },
|
||||
{ ID: "-2", NAME: "作业负责人待审核打回" },
|
||||
{ ID: "-5", NAME: "所在单位领导人待审核打回" },
|
||||
{ ID: "-6", NAME: "待验收打回" },
|
||||
];
|
||||
const stepList = ref([]);
|
||||
const getStepList = async () => {
|
||||
const { list } = await getTaskSetps({ TASK_ID: 1 });
|
||||
stepList.value = [
|
||||
{ STEP_NAME: "请选择", STEP_ID: "" },
|
||||
...list,
|
||||
{ STEP_NAME: "验收归档", STEP_ID: "99" },
|
||||
];
|
||||
};
|
||||
getStepList();
|
||||
|
||||
const fnPreviewVideo = (VIDEO_PATH) => {
|
||||
data.videoDialog.visible = true;
|
||||
data.videoDialog.src = VIDEO_PATH;
|
||||
};
|
||||
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getBlindPlatePluggingList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
useListData(getBlindBoardList, {
|
||||
otherParams: props.entrance === "archive" ? { STEP_ID: "99" } : {},
|
||||
});
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
src: "",
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
const fnFlowChart = async (BLINDBOARD_ID) => {
|
||||
const { flowList, flowingWork } = await getBlindBoardFlow({ BLINDBOARD_ID });
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,320 +1,383 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
盲板抽堵安全作业票
|
||||
</el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
盲板抽堵安全作业票
|
||||
</el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">申请单位</td>
|
||||
<td colspan="2">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业单位</td>
|
||||
<td colspan="2">{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业类别</td>
|
||||
<td>
|
||||
<input
|
||||
:checked="data.info.WORK_TYPE === 1"
|
||||
type="checkbox"
|
||||
disabled
|
||||
/>堵盲板
|
||||
<input
|
||||
:checked="data.info.WORK_TYPE === 2"
|
||||
type="checkbox"
|
||||
disabled
|
||||
/>抽盲板
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">申请单位</td>
|
||||
<td colspan="2">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业单位</td>
|
||||
<td colspan="2">{{ data.info.CONSTRUCTION_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业类别</td>
|
||||
<td>
|
||||
<input
|
||||
:checked="data.info.WORK_TYPE === 1"
|
||||
type="checkbox"
|
||||
disabled
|
||||
/>堵盲板
|
||||
<input
|
||||
:checked="data.info.WORK_TYPE === 2"
|
||||
type="checkbox"
|
||||
disabled
|
||||
/>抽盲板
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2" class="title">设备、管道名称</td>
|
||||
<td colspan="3" class="title">管道参数</td>
|
||||
<td colspan="3" class="title">盲板参数</td>
|
||||
<td rowspan="2" class="title">实际作业开始时间</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">介质</td>
|
||||
<td class="title">温度</td>
|
||||
<td class="title">压力</td>
|
||||
<td class="title">材质</td>
|
||||
<td class="title">规格</td>
|
||||
<td class="title">编号</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.boardList" :key="index">
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.NAME }}
|
||||
</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.MEDIUM }}
|
||||
</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.TEMPERATURE }}
|
||||
</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.PRESSURE }}
|
||||
</td>
|
||||
<td>{{ item.BOARD_MATERIAL }}</td>
|
||||
<td>{{ item.BOARD_SPECIFICATION }}</td>
|
||||
<td>{{ item.BOARD_NO }}</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.BOARD_INSTALL_TIME }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<div>盲板位置图(可另附图)及编号:</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.BOARD_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<div>
|
||||
编制人:
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.APPLY_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
{{ data.info.APPLY_USER_SIGNER_TIME }}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="title">作业负责人</td>
|
||||
<td colspan="2">{{ data.info.CONSTRUCTION_USER_NAME }}</td>
|
||||
<td class="title">作业人</td>
|
||||
<td>{{ data.info.WORK_USER }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td v-if="data.info.GUARDIAN_USER_SIGNER_PATH" colspan="5">
|
||||
<div 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>
|
||||
<td colspan="2" class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="6">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="title">风险辨识结果</td>
|
||||
<td colspan="6">{{ data.info.BOARD_HARM }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>{{ item.PROTECTIVE_MEASURES }}</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
<input type="radio" checked disabled /> 涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'">
|
||||
<input type="radio" checked disabled /> 不涉及
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ item.CONFIRM_NAME }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr
|
||||
v-if="
|
||||
data.info.APPLY_USER_MEASURES ||
|
||||
data.info.CONSTRUCTION_USER_MEASURES ||
|
||||
data.info.LEADER_USER_MEASURES
|
||||
<tr>
|
||||
<td rowspan="2" class="title">设备、管道名称</td>
|
||||
<td colspan="3" class="title">管道参数</td>
|
||||
<td colspan="3" class="title">盲板参数</td>
|
||||
<td rowspan="2" class="title">实际作业开始时间</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">介质</td>
|
||||
<td class="title">温度</td>
|
||||
<td class="title">压力</td>
|
||||
<td class="title">材质</td>
|
||||
<td class="title">规格</td>
|
||||
<td class="title">编号</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.boardList" :key="index">
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.NAME }}
|
||||
</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.MEDIUM }}
|
||||
</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.TEMPERATURE }}
|
||||
</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.PRESSURE }}
|
||||
</td>
|
||||
<td>{{ item.BOARD_MATERIAL }}</td>
|
||||
<td>{{ item.BOARD_SPECIFICATION }}</td>
|
||||
<td>{{ item.BOARD_NO }}</td>
|
||||
<td v-if="index === 0" :rowspan="data.boardList.length">
|
||||
{{ data.info.WORK_START_DATE }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.BOARD_PATH">
|
||||
<td colspan="8">
|
||||
<div>盲板位置图(可另附图)及编号:</div>
|
||||
<div
|
||||
v-if="data.info.BOARD_PATH"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 }}</td>
|
||||
<td colspan="3">
|
||||
<div
|
||||
v-if="data.info.APPLY_USER_MEASURES"
|
||||
style="display: flex; justify-content: space-between"
|
||||
>
|
||||
<span>其他安全措施:{{ data.info.APPLY_USER_MEASURES }}</span>
|
||||
<span>编制人:{{ data.info.APPLY_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="data.info.CONSTRUCTION_USER_MEASURES"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.CONSTRUCTION_USER_MEASURES }}
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.BOARD_PATH"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mt-10 mr-10"
|
||||
/>
|
||||
<div>
|
||||
签字:
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORKSHOP?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.WORKSHOP?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="title">作业负责人</td>
|
||||
<td colspan="2">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">作业人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORK_USER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">监护人</td>
|
||||
<td colspan="4">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="6">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="title">风险辨识结果</td>
|
||||
<td colspan="6">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
涉 及
|
||||
</span>
|
||||
<span>编制人:{{ data.info.CONSTRUCTION_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="data.info.LEADER_USER_MEASURES"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
<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="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_BLINDBOARD_MEASURES_ID"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.LEADER_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.LEADER_USER_NAME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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">
|
||||
<div
|
||||
v-for="item in data.imgList"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.CONSTRUCTION_USER_SIGNER_PATH">
|
||||
<td colspan="8">
|
||||
<div>作业负责人意见:{{ data.info.CONSTRUCTION_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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="8">
|
||||
<div>所在单位意见:{{ data.info.LEADER_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.imgList1.length > 0">
|
||||
<td colspan="10">
|
||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
||||
<div
|
||||
v-for="item in data.imgList1"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="11">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT_CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFIRM">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.LEADER">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.LEADER?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.ACCEPT">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</layout-card>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getBlindPlatePluggingView } from "@/request/blind_plate_plugging.js";
|
||||
import { getBlindBoardView } from "@/request/eight_work.js";
|
||||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { BLINDBOARD_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
imgList1: [],
|
||||
boardList: [],
|
||||
measuresList: [],
|
||||
signs: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getBlindPlatePluggingView({ BLINDBOARD_ID });
|
||||
const resData = await getBlindBoardView({ BLINDBOARD_ID });
|
||||
data.info = resData.pd;
|
||||
data.imgList = resData.imgList;
|
||||
data.imgList1 = resData.imgList1;
|
||||
data.boardList = resData.boardList;
|
||||
data.measuresList = resData.measuresList;
|
||||
data.info.APPLY_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
||||
data.info.CONSTRUCTION_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[1];
|
||||
data.info.LEADER_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[2];
|
||||
data.signs = resData.signs;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-steps align-center finish-status="success">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ item.ACT_USER_NAME || item.SIGN_USER }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-steps>
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -30,17 +32,33 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,11 @@
|
|||
添加监控
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="entrance === 'archive' && row.NEXT_STEP_ID === 99"
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
|
|
@ -127,6 +131,7 @@
|
|||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
|
|
@ -182,6 +187,7 @@ const data = reactive({
|
|||
flowChartDialog: {
|
||||
visible: false,
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
|
|
@ -189,9 +195,12 @@ const data = reactive({
|
|||
},
|
||||
});
|
||||
const fnFlowChart = async (CONFINEDSPACE_ID) => {
|
||||
const { flowList } = await getConfinedSpaceFlow({ CONFINEDSPACE_ID });
|
||||
const { flowList, flowingWork } = await getConfinedSpaceFlow({
|
||||
CONFINEDSPACE_ID,
|
||||
});
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,340 +1,368 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="11" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
受限空间安全作业票
|
||||
</el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="11" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
受限空间安全作业票
|
||||
</el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td colspan="5">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td colspan="4">{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">受限空间名称</td>
|
||||
<td colspan="5">{{ data.info.LIMITSPACE_NAME }}</td>
|
||||
<td class="title">受限空间内原有介质名称</td>
|
||||
<td colspan="4">{{ data.info.MEDIUM_NAME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业内容</td>
|
||||
<td colspan="10">{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td colspan="5">{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td colspan="4">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td colspan="5">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td colspan="4">{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">受限空间名称</td>
|
||||
<td colspan="5">{{ data.info.LIMITSPACE_NAME }}</td>
|
||||
<td class="title">受限空间内原有介质名称</td>
|
||||
<td colspan="4">{{ data.info.MEDIUM_NAME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业内容</td>
|
||||
<td colspan="10">{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td colspan="5">{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td colspan="4">{{ data.info.CONFIRM_USER_NAME }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="10">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="10">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td :rowspan="3 + data.gasList.length" class="title">气体分析</td>
|
||||
<td class="title" rowspan="2">分析项目</td>
|
||||
<td class="title" colspan="2">有毒有害气体名称</td>
|
||||
<td class="title" colspan="2">可燃气体名称</td>
|
||||
<td class="title" rowspan="2">氧气含量</td>
|
||||
<td class="title" rowspan="3">取样分析时间</td>
|
||||
<td class="title" rowspan="3">分析部位</td>
|
||||
<td class="title" rowspan="3">分析地点</td>
|
||||
<td class="title" rowspan="3">分析人</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td :style="{ padding: data.gas.GAS_NAME1 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME1 }}
|
||||
</td>
|
||||
<td :style="{ padding: data.gas.GAS_NAME2 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME2 }}
|
||||
</td>
|
||||
<td :style="{ padding: data.gas.GAS_NAME3 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME3 }}
|
||||
</td>
|
||||
<td :style="{ padding: data.gas.GAS_NAME4 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME4 }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">合格标准</td>
|
||||
<td>{{ data.gas.GAS_STANDARD1 }}</td>
|
||||
<td>{{ data.gas.GAS_STANDARD2 }}</td>
|
||||
<td>{{ data.gas.GAS_STANDARD3 }}</td>
|
||||
<td>{{ data.gas.GAS_STANDARD4 }}</td>
|
||||
<td>19.5% 〜21%(体积分数)</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.gasList" :key="index">
|
||||
<td v-if="index === 0" :rowspan="data.gasList.length" class="title">
|
||||
分析数据
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME1">{{ item.DATA1 }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME2">{{ item.DATA2 }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME3">{{ item.DATA3 }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME4">{{ item.DATA4 }}</span>
|
||||
</td>
|
||||
<td>{{ item.OXYGEN_CONTENT }}</td>
|
||||
<td>{{ item.ANALYZE_TIME }}</td>
|
||||
<td>{{ item.ANALYZE_PART }}</td>
|
||||
<td>{{ item.ANALYZE_PLACE }}</td>
|
||||
<td>{{ item.ANALYZE_USER }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="10">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ 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>
|
||||
<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>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_CONFINEDSPACE_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
<tr>
|
||||
<td class="title">作业人</td>
|
||||
<td colspan="5">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORK_USER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">监护人</td>
|
||||
<td colspan="4">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="10">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="10">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td :rowspan="3 + data.gasList.length" class="title">气体分析</td>
|
||||
<td class="title" rowspan="2">分析项目</td>
|
||||
<td class="title" colspan="2">有毒有害气体名称</td>
|
||||
<td class="title" colspan="2">可燃气体名称</td>
|
||||
<td class="title" rowspan="2">氧气含量</td>
|
||||
<td class="title" rowspan="3">取样分析时间</td>
|
||||
<td class="title" rowspan="3">分析部位</td>
|
||||
<td class="title" rowspan="3">分析地点</td>
|
||||
<td class="title" rowspan="3">分析人</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td :style="{ padding: data.gas.GAS_NAME1 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME1 }}
|
||||
</td>
|
||||
<td :style="{ padding: data.gas.GAS_NAME2 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME2 }}
|
||||
</td>
|
||||
<td :style="{ padding: data.gas.GAS_NAME3 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME3 }}
|
||||
</td>
|
||||
<td :style="{ padding: data.gas.GAS_NAME4 ? '8px' : '16px' }">
|
||||
{{ data.gas.GAS_NAME4 }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">合格标准</td>
|
||||
<td>{{ data.gas.GAS_STANDARD1 }}</td>
|
||||
<td>{{ data.gas.GAS_STANDARD2 }}</td>
|
||||
<td>{{ data.gas.GAS_STANDARD3 }}</td>
|
||||
<td>{{ data.gas.GAS_STANDARD4 }}</td>
|
||||
<td>19.5% 〜21%(体积分数)</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.gasList" :key="index">
|
||||
<td v-if="index === 0" :rowspan="data.gasList.length" class="title">
|
||||
分析数据
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME1">{{ item.DATA1 }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME2">{{ item.DATA2 }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME3">{{ item.DATA3 }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="data.gas.GAS_NAME4">{{ item.DATA4 }}</span>
|
||||
</td>
|
||||
<td>{{ item.OXYGEN_CONTENT }}</td>
|
||||
<td>{{ item.ANALYZE_TIME }}</td>
|
||||
<td>{{ item.ANALYZE_PART }}</td>
|
||||
<td>{{ item.ANALYZE_PLACE }}</td>
|
||||
<td>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="10">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'"> 不涉及 </span>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH[0]"
|
||||
v-if="item.SIGN_PATH"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH[0]"
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.GUARDIAN">
|
||||
<td colspan="11">
|
||||
<div>监护人:</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.GUARDIAN[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.signs.GUARDIAN[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="11">
|
||||
<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 v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_CONFINEDSPACE_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="11">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||
<td colspan="11">
|
||||
<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.WORK_USER">
|
||||
<td colspan="11">
|
||||
<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.CONFIRM">
|
||||
<td colspan="11">
|
||||
<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>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT_CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.LEADER">
|
||||
<td colspan="11">
|
||||
<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.CONFIRM">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.ACCEPT">
|
||||
<td colspan="11">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<tr v-if="data.signs.LEADER">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.LEADER?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.ACCEPT">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { findCharIndex } from "@/assets/js/utils.js";
|
||||
|
|
|
|||
|
|
@ -1,96 +1,17 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-steps
|
||||
:active="fnGetStatus()"
|
||||
:process-status="fnGetProcessStatus()"
|
||||
align-center
|
||||
finish-status="success"
|
||||
>
|
||||
<el-step title="动土作业提交">
|
||||
<template #description>
|
||||
<div>{{ fnGetProcessMessage().title }}</div>
|
||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="作业负责人意见">
|
||||
<template #description>
|
||||
<div>{{ info.CONSTRUCTION_USER_NAME }}</div>
|
||||
<div>{{ info.CONSTRUCTION_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="所在单位意见">
|
||||
<template #description>
|
||||
<div v-if="!info.PRODUCTION_USER_NAME">{{ "已跳过" }}</div>
|
||||
<div v-else>{{ info.PRODUCTION_USER_NAME }}</div>
|
||||
<div>{{ info.PRODUCTION_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="有关部门意见">
|
||||
<template #description>
|
||||
<div v-if="!info.SAFETY_USER_NAME">{{ "已跳过" }}</div>
|
||||
<div v-else>{{ info.SAFETY_USER_NAME }}</div>
|
||||
<div>{{ info.SAFETY_USER_SIGNER_TIME }}</div>
|
||||
</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>{{ 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>
|
||||
<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>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -106,7 +27,12 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
flowList: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
|
|
@ -114,57 +40,27 @@ const props = defineProps({
|
|||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = () => {
|
||||
const result = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
6: 7,
|
||||
};
|
||||
return result[props.info.APPLY_STATUS] || 0;
|
||||
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
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.PRODUCTION_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-4": {
|
||||
title: "有关部门审核打回",
|
||||
USER_NAME: info.SAFETY_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-5": {
|
||||
title: "审批部门审核打回",
|
||||
USER_NAME: info.LEADER_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-6": {
|
||||
title: "验收打回",
|
||||
AUSER_NAME: info.ACCEPT_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
};
|
||||
return (
|
||||
result[props.info.APPLY_STATUS] || {
|
||||
title: "",
|
||||
USER_NAME: info.APPLY_USER_NAME,
|
||||
OPERATTIME: info.CREATTIME,
|
||||
}
|
||||
);
|
||||
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="entrance === 'job_data'" :span="6">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-form-item label="状态" prop="STEP_ID">
|
||||
<el-select v-model="searchForm.STEP_ID">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
v-for="item in stepList"
|
||||
:key="item.STEP_ID"
|
||||
:label="item.STEP_NAME"
|
||||
:value="item.STEP_ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -50,47 +50,51 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip />
|
||||
<el-table-column prop="CONSTRUCTION_DEPARTMENT_NAME" label="施工单位" />
|
||||
<el-table-column prop="APPLY_USER_NAME" label="申请人" width="100" />
|
||||
<el-table-column prop="APPLY_DEPARTMENT_NAME" label="申请部门" />
|
||||
<el-table-column
|
||||
prop="CONSTRUCTION_USER_NAME"
|
||||
prop="CONFIRM_USER_NAME"
|
||||
label="作业负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="所在单位负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.PRODUCTION_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="有关部门负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.SAFETY_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审批部门负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.LEADER_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="LEADER_USER_NAME"
|
||||
label="所在单位负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
prop="SAFETY_USER_NAME"
|
||||
label="有关水、电、汽、工艺、设备、消防安全等部门意见负责人"
|
||||
show-overflow-tooltip
|
||||
width="150"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="APPROVE_USER_NAME"
|
||||
label="审批部门负责人"
|
||||
show-overflow-tooltip
|
||||
width="150"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="ACCEPT_USER_NAME"
|
||||
label="验收部门负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="审核状态">
|
||||
<el-table-column label="审核状态" width="170">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
<span v-if="row.STEP_ID === 0">暂存</span>
|
||||
<span v-else-if="row.STATUS === -2">气体检测打回</span>
|
||||
<span v-else-if="row.STEP_ID !== -1">{{ row.NEXT_STEP_NAME }}</span>
|
||||
<span v-else>{{ row.STEP_NAME }}打回</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="250">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="entrance === 'job_data' && row.APPLY_STATUS !== '6'"
|
||||
v-if="
|
||||
entrance === 'job_data' &&
|
||||
row.STATUS > -1 &&
|
||||
row.NEXT_STEP_ID !== 99
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
|
|
@ -111,10 +115,23 @@
|
|||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
@click="fnFlowChart(row.BREAKGROUND_ID)"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnPreviewVideo(row.VIDEO_PATH)"
|
||||
>
|
||||
查看验收视频
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -137,18 +154,29 @@
|
|||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
:src="data.videoDialog.src"
|
||||
append-to-body
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getGroundbreakingList } from "@/request/groundbreaking.js";
|
||||
import LayoutVideo from "@/components/video/index.vue";
|
||||
import {
|
||||
getGroundbreakingList,
|
||||
getTaskSetps,
|
||||
getGroundbreakingFlow,
|
||||
} from "@/request/eight_work.js";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
|
|
@ -156,35 +184,47 @@ const props = defineProps({
|
|||
default: "job_data",
|
||||
},
|
||||
});
|
||||
const stateList = [
|
||||
{ ID: "0", NAME: "动土作业待提交" },
|
||||
{ ID: "1", NAME: "作业负责人待审核" },
|
||||
{ ID: "2", NAME: "所在单位待审核" },
|
||||
{ ID: "3", NAME: "有关部门待审核" },
|
||||
{ ID: "4", NAME: "审批部门待审核" },
|
||||
{ ID: "5", NAME: "待验收" },
|
||||
{ ID: "6", NAME: "验收归档" },
|
||||
{ ID: "-2", NAME: "作业负责人审核打回" },
|
||||
{ ID: "-3", NAME: "所在单位审核打回" },
|
||||
{ ID: "-4", NAME: "有关部门审核打回" },
|
||||
{ ID: "-5", NAME: "审批部门审核打回" },
|
||||
{ ID: "-6", NAME: "验收打回" },
|
||||
];
|
||||
|
||||
const stepList = ref([]);
|
||||
|
||||
const getStepList = async () => {
|
||||
const { list } = await getTaskSetps({ TASK_ID: 1 });
|
||||
stepList.value = [
|
||||
{ STEP_NAME: "请选择", STEP_ID: "" },
|
||||
...list,
|
||||
{ STEP_NAME: "验收归档", STEP_ID: "99" },
|
||||
];
|
||||
};
|
||||
getStepList();
|
||||
|
||||
const fnPreviewVideo = (VIDEO_PATH) => {
|
||||
data.videoDialog.visible = true;
|
||||
data.videoDialog.src = VIDEO_PATH;
|
||||
};
|
||||
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getGroundbreakingList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
otherParams: props.entrance === "archive" ? { STEP_ID: "99" } : {},
|
||||
});
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
src: "",
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
const fnFlowChart = async (BREAKGROUND_ID) => {
|
||||
const { flowList, flowingWork } = await getGroundbreakingFlow({
|
||||
BREAKGROUND_ID,
|
||||
});
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
|
|
|||
|
|
@ -1,362 +1,389 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 动土安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 动土安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title" colspan="2">作业申请时间</td>
|
||||
<td colspan="2">{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业地点</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">作业内容</td>
|
||||
<td>{{ data.info.JOB_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title" colspan="2">作业负责人</td>
|
||||
<td colspan="2">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title" colspan="2">作业申请时间</td>
|
||||
<td colspan="2">{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONSTRUCTION_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业地点</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">作业内容</td>
|
||||
<td>{{ data.info.JOB_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<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>
|
||||
<td class="title" colspan="2">作业负责人</td>
|
||||
<td colspan="2">{{ data.info.CONSTRUCTION_USER_NAME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<div>
|
||||
作业内容、范围、方式(包括深度、面积,并附简图):{{
|
||||
data.info.WORK_CONTENT
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.CONTENT_IMG_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<div>
|
||||
编制人:
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.APPLY_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
{{ data.info.APPLY_USER_SIGNER_TIME }}
|
||||
作业内容、范围、方式(包括深度、面积,并附简图):{{
|
||||
data.info.WORK_CONTENT
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.HAZARD_IDENTIFICATION?.split(";_;")[0] }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>{{ item.PROTECTIVE_MEASURES }}</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
<input type="radio" disabled checked />涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'">
|
||||
<input type="radio" disabled checked />不涉及
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ item.CONFIRM_NAME }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr
|
||||
v-if="
|
||||
data.info.APPLY_USER_MEASURES ||
|
||||
data.info.CONSTRUCTION_USER_MEASURES ||
|
||||
data.info.PRODUCTION_USER_MEASURES ||
|
||||
data.info.SAFETY_USER_MEASURES ||
|
||||
data.info.LEADER_USER_MEASURES
|
||||
<div
|
||||
v-if="data.info.CONTENT_IMG_PATH"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 }}</td>
|
||||
<td colspan="3">
|
||||
<div
|
||||
v-if="data.info.APPLY_USER_MEASURES"
|
||||
style="display: flex; justify-content: space-between"
|
||||
>
|
||||
<span>其他安全措施:{{ data.info.APPLY_USER_MEASURES }}</span>
|
||||
<span>编制人:{{ data.info.APPLY_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="data.info.CONSTRUCTION_USER_MEASURES"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.CONSTRUCTION_USER_MEASURES }}
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.CONTENT_IMG_PATH"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<div>
|
||||
签字:
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORK_USER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.RISK_IDENTIFICATION?.split(";_;")[0] }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
涉 及
|
||||
</span>
|
||||
<span>编制人:{{ data.info.CONSTRUCTION_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.PRODUCTION_USER_ID &&
|
||||
data.info.PRODUCTION_USER_MEASURES
|
||||
"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_BREAKGROUND_MEASURES_ID"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.PRODUCTION_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.PRODUCTION_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.SAFETY_USER_ID && data.info.SAFETY_USER_MEASURES
|
||||
"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="11">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.SAFETY_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.SAFETY_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.LEADER_USER_ID && data.info.LEADER_USER_MEASURES
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT_CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFIRM">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.LEADER">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.LEADER?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.SAFETY">
|
||||
<td colspan="6">
|
||||
<div>
|
||||
有关水、电、汽、工艺、设备、消防、安全等部门会签意见:{{
|
||||
data.signs.SAFETY?.[0].DESCR
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.SAFETY?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.SAFETY?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.SAFETY?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.APPROVE">
|
||||
<td colspan="6">
|
||||
<div>审批部门意见:{{ data.signs.APPROVE?.[0].DESCR }}</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.APPROVE?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="
|
||||
VITE_FILE_URL + data.signs.APPROVE?.[0].SIGN_PATH[index]
|
||||
"
|
||||
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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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">
|
||||
<div
|
||||
v-for="item in data.imgList"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.CONSTRUCTION_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>作业负责人意见:{{ data.info.CONSTRUCTION_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.PRODUCTION_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>所在单位意见:{{ data.info.PRODUCTION_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.PRODUCTION_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.PRODUCTION_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.SAFETY_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>
|
||||
有关水、电、汽、工艺、设备、消防、安全等部门会签意见:{{
|
||||
data.info.SAFETY_CONTENT
|
||||
}}
|
||||
</div>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.SAFETY_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.SAFETY_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.LEADER_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>审批部门意见:{{ data.info.LEADER_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.imgList1.length > 0">
|
||||
<td colspan="10">
|
||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
||||
<div
|
||||
v-for="item in data.imgList1"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.APPROVE?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.ACCEPT">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getGroundbreakingView } from "@/request/groundbreaking.js";
|
||||
import { getGroundbreakingView } from "@/request/eight_work.js";
|
||||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { BREAKGROUND_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
imgList1: [],
|
||||
measuresList: [],
|
||||
signs: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getGroundbreakingView({ BREAKGROUND_ID });
|
||||
data.info = resData.pd;
|
||||
data.imgList = resData.imgList;
|
||||
data.imgList1 = resData.imgList1;
|
||||
data.measuresList = resData.measuresList;
|
||||
data.info.APPLY_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
||||
data.info.CONSTRUCTION_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[1];
|
||||
data.info.PRODUCTION_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[2];
|
||||
data.info.SAFETY_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[3];
|
||||
data.info.LEADER_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[4];
|
||||
data.signs = resData.signs;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,22 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-steps align-center finish-status="success">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ item.ACT_USER_NAME || item.SIGN_USER }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
</el-steps>
|
||||
</el-dialog>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -30,17 +37,33 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -103,7 +103,11 @@
|
|||
添加监控
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="entrance === 'archive' && row.NEXT_STEP_ID === 99"
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
|
|
@ -143,6 +147,7 @@
|
|||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
|
|
@ -196,6 +201,7 @@ const data = reactive({
|
|||
flowChartDialog: {
|
||||
visible: false,
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
|
|
@ -203,9 +209,10 @@ const data = reactive({
|
|||
},
|
||||
});
|
||||
const fnFlowChart = async (HIGHWORK_ID) => {
|
||||
const { flowList } = await getHighWorkFlow({ HIGHWORK_ID });
|
||||
const { flowList, flowingWork } = await getHighWorkFlow({ HIGHWORK_ID });
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,331 +1,353 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 高处安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 高处安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td>{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业地点</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">作业内容</td>
|
||||
<td>{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业高度</td>
|
||||
<td>{{ data.info.WORK_HIGH }}</td>
|
||||
<td class="title">高处作业级别</td>
|
||||
<td>
|
||||
{{ data.info.WORK_LEVEL === 1 ? "I级高处作业" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 2 ? "II级高处作业" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 3 ? "III级高处作业" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 4 ? "IV级高处作业" : "" }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td>{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业地点</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">作业内容</td>
|
||||
<td>{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业高度</td>
|
||||
<td>{{ data.info.WORK_HIGH }}</td>
|
||||
<td class="title">高处作业级别</td>
|
||||
<td>
|
||||
{{ data.info.WORK_LEVEL === 1 ? "I级高处作业" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 2 ? "II级高处作业" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 3 ? "III级高处作业" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 4 ? "IV级高处作业" : "" }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td>{{ data.info.CONFIRM_USER_NAME }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="3">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="3">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="3">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ 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>
|
||||
<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>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_HOTWORK_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
<tr>
|
||||
<td class="title">作业人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORK_USER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="3">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="3">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="3">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'"> 不涉及 </span>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH[0]"
|
||||
v-if="item.SIGN_PATH"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH[0]"
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.GUARDIAN">
|
||||
<td colspan="10">
|
||||
<div>监护人:</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.GUARDIAN[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.signs.GUARDIAN[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<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 v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_HIGHWORK_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="10">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<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.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.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>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT_CONFESS?.[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.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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[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.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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.AUDIT?.[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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getHighWorkView } from "@/request/eight_work.js";
|
||||
|
|
|
|||
|
|
@ -1,96 +1,17 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-steps
|
||||
:active="fnGetStatus()"
|
||||
:process-status="fnGetProcessStatus()"
|
||||
align-center
|
||||
finish-status="success"
|
||||
>
|
||||
<el-step title="吊装作业提交">
|
||||
<template #description>
|
||||
<div>{{ fnGetProcessMessage().title }}</div>
|
||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="作业指挥意见">
|
||||
<template #description>
|
||||
<div>{{ info.LEADER_USER_NAME }}</div>
|
||||
<div>{{ info.LEADER_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="所在单位意见">
|
||||
<template #description>
|
||||
<div v-if="!info.CONSTRUCTION_USER_NAME">{{ "已跳过" }}</div>
|
||||
<div v-else>{{ info.CONSTRUCTION_USER_NAME }}</div>
|
||||
<div>{{ info.CONSTRUCTION_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>
|
||||
<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>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -106,7 +27,12 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
flowList: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
|
|
@ -114,57 +40,27 @@ const props = defineProps({
|
|||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = () => {
|
||||
const result = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
6: 7,
|
||||
};
|
||||
return result[props.info.APPLY_STATUS] || 0;
|
||||
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
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.LEADER_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-3": {
|
||||
title: "所在单位审核打回",
|
||||
USER_NAME: info.CONSTRUCTION_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,
|
||||
}
|
||||
);
|
||||
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="entrance === 'job_data'" :span="6">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-form-item label="状态" prop="STEP_ID">
|
||||
<el-select v-model="searchForm.STEP_ID">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
v-for="item in stepList"
|
||||
:key="item.STEP_ID"
|
||||
:label="item.STEP_NAME"
|
||||
:value="item.STEP_ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -50,45 +50,38 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip />
|
||||
<el-table-column prop="LEADER_DEPARTMENT_NAME" label="作业单位" />
|
||||
<el-table-column prop="CONFIRM_USER_NAME" label="作业负责人" />
|
||||
<el-table-column prop="LEADER_USER_NAME" label="所在单位负责人" />
|
||||
<el-table-column
|
||||
prop="LEADER_USER_NAME"
|
||||
label="作业指挥负责人"
|
||||
label="审核部门负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="所在单位负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.CONSTRUCTION_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核部门负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.AUDIT_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审批部门负责人" show-overflow-toolti>
|
||||
<template #default="{ row }">
|
||||
{{ row.APPROVE_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
prop="AUDIT_USER_NAME"
|
||||
width="150"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ACCEPT_USER_NAME"
|
||||
label="验收部门负责人"
|
||||
label="审批部门负责人"
|
||||
prop="APPROVE_USER_NAME"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="审核状态">
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
||||
<el-table-column label="审核状态" width="170">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
<span v-if="row.STEP_ID === 0">暂存</span>
|
||||
<span v-else-if="row.STATUS === -2">气体检测打回</span>
|
||||
<span v-else-if="row.STEP_ID !== -1">{{ row.NEXT_STEP_NAME }}</span>
|
||||
<span v-else>{{ row.STEP_NAME }}打回</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="250">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="entrance === 'job_data' && row.APPLY_STATUS !== '6'"
|
||||
v-if="
|
||||
entrance === 'job_data' &&
|
||||
row.STATUS > -1 &&
|
||||
row.NEXT_STEP_ID !== 99
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
|
|
@ -109,10 +102,23 @@
|
|||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
@click="fnFlowChart(row.HOISTING_ID)"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnPreviewVideo(row.VIDEO_PATH)"
|
||||
>
|
||||
查看验收视频
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -135,18 +141,29 @@
|
|||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
:src="data.videoDialog.src"
|
||||
append-to-body
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getHoistingList } from "@/request/hoisting.js";
|
||||
import LayoutVideo from "@/components/video/index.vue";
|
||||
import {
|
||||
getHoistingList,
|
||||
getTaskSetps,
|
||||
getHoistingFlow,
|
||||
} from "@/request/eight_work.js";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
|
|
@ -154,34 +171,45 @@ const props = defineProps({
|
|||
default: "job_data",
|
||||
},
|
||||
});
|
||||
const stateList = [
|
||||
{ ID: "0", NAME: "吊装作业待提交" },
|
||||
{ ID: "1", NAME: "作业指挥待审核" },
|
||||
{ ID: "2", NAME: "所在单位待审核" },
|
||||
{ ID: "3", NAME: "审核部门待审核" },
|
||||
{ ID: "4", NAME: "审批部门待审核" },
|
||||
{ ID: "5", NAME: "待验收" },
|
||||
{ ID: "6", NAME: "验收归档" },
|
||||
{ ID: "-2", NAME: "作业指挥审核打回" },
|
||||
{ ID: "-3", NAME: "所在单位审核打回" },
|
||||
{ ID: "-4", NAME: "审核部门审核打回" },
|
||||
{ ID: "-5", NAME: "审批部门审核打回" },
|
||||
{ ID: "-6", NAME: "验收打回" },
|
||||
];
|
||||
|
||||
const stepList = ref([]);
|
||||
|
||||
const getStepList = async () => {
|
||||
const { list } = await getTaskSetps({ TASK_ID: 1 });
|
||||
stepList.value = [
|
||||
{ STEP_NAME: "请选择", STEP_ID: "" },
|
||||
...list,
|
||||
{ STEP_NAME: "验收归档", STEP_ID: "99" },
|
||||
];
|
||||
};
|
||||
getStepList();
|
||||
|
||||
const fnPreviewVideo = (VIDEO_PATH) => {
|
||||
data.videoDialog.visible = true;
|
||||
data.videoDialog.src = VIDEO_PATH;
|
||||
};
|
||||
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getHoistingList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
otherParams: props.entrance === "archive" ? { STEP_ID: "99" } : {},
|
||||
});
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
src: "",
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
const fnFlowChart = async (HOISTING_ID) => {
|
||||
const { flowList, flowingWork } = await getHoistingFlow({ HOISTING_ID });
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,338 +1,407 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 吊装安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 吊装安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.LEADER_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td>{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">吊装地点</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">吊具名称</td>
|
||||
<td>{{ data.info.TOOL_NAME }}</td>
|
||||
<td class="title">吊物内容</td>
|
||||
<td>{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">吊装作业人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORK_USER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">司索人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.SISUO?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.LEADER_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td>{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">吊装地点</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">吊具名称</td>
|
||||
<td>{{ data.info.TOOL_NAME }}</td>
|
||||
<td class="title">吊物内容</td>
|
||||
<td>{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">吊装作业人</td>
|
||||
<td>{{ data.info.WORK_USER }}</td>
|
||||
<td class="title">司索人</td>
|
||||
<td>{{ data.info.SISUO_USER }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<div v-if="data.info.GUARDIAN_USER_SIGNER_PATH" class="tr">
|
||||
<span>签字:</span>
|
||||
<tr>
|
||||
<td class="title">指挥人员</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.PROJECT_MANAGER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.GUARDIAN_USER_SIGNER_PATH"
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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" colspan="2">吊物质量(t)及作业级别</td>
|
||||
<td colspan="2">
|
||||
<span>{{ data.info.PART_WEIGHT }}t</span>
|
||||
<span style="margin-left: 20px">
|
||||
{{ data.info.WORK_LEVEL === 1 ? "一级作业级别" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 2 ? "二级作业级别" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 3 ? "三级作业级别" : "" }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr />
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">{{ data.info.HAZARD_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>{{ item.PROTECTIVE_MEASURES }}</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
<input type="radio" disabled checked />涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'">
|
||||
<input type="radio" disabled checked />不涉及
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ item.CONFIRM_NAME }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr
|
||||
v-if="
|
||||
data.info.LEADER_USER_MEASURES ||
|
||||
data.info.CONFIRM_USER_MEASURES ||
|
||||
data.info.AUDIT_USER_MEASURES ||
|
||||
data.info.APPROVE_USER_MEASURES
|
||||
"
|
||||
</td>
|
||||
<td class="title" colspan="2">吊物质量(t)及作业级别</td>
|
||||
<td colspan="2">
|
||||
<span>{{ data.info.PART_WEIGHT }}t</span>
|
||||
<span style="margin-left: 20px">
|
||||
{{ data.info.WORK_LEVEL === 1 ? "一级作业级别" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 2 ? "二级作业级别" : "" }}
|
||||
{{ data.info.WORK_LEVEL === 3 ? "三级作业级别" : "" }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr />
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_HOISTING_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="10">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 }}</td>
|
||||
<td colspan="3">
|
||||
<div
|
||||
v-if="data.info.LEADER_USER_MEASURES"
|
||||
style="display: flex; justify-content: space-between"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.LEADER_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.LEADER_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.CONSTRUCTION_USER_ID &&
|
||||
data.info.CONFIRM_USER_MEASURES
|
||||
"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.CONFIRM_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.CONSTRUCTION_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_ID && 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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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">
|
||||
<div
|
||||
v-for="item in data.imgList"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.LEADER_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>作业指挥意见:{{ data.info.LEADER_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.CONSTRUCTION_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>所在单位意见:{{ data.info.CONSTRUCTION_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.AUDIT_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>审核部门意见:{{ data.info.AUDIT_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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="6">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.imgList1.length > 0">
|
||||
<td colspan="10">
|
||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
||||
<div
|
||||
v-for="item in data.imgList1"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.PROJECT_MANAGER">
|
||||
<td colspan="10">
|
||||
<div>
|
||||
吊装指挥负责人意见:{{ data.signs.PROJECT_MANAGER?.[0].DESCR }}
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.PROJECT_MANAGER?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="
|
||||
VITE_FILE_URL +
|
||||
data.signs.PROJECT_MANAGER?.[0].SIGN_PATH[index]
|
||||
"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{
|
||||
data.signs.PROJECT_MANAGER?.[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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getHoistingView } from "@/request/hoisting.js";
|
||||
import { findCharIndex } from "@/assets/js/utils.js";
|
||||
import { getHoistingView } from "@/request/eight_work.js";
|
||||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { HOISTING_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
imgList1: [],
|
||||
measuresList: [],
|
||||
signs: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getHoistingView({ HOISTING_ID });
|
||||
data.info = resData.pd;
|
||||
data.imgList = resData.imgList;
|
||||
data.imgList1 = resData.imgList1;
|
||||
for (let i = 0; i < resData.measuresList.length; i++) {
|
||||
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.info.LEADER_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
||||
data.info.CONFIRM_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];
|
||||
data.signs = resData.signs;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-steps align-center finish-status="success">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-steps>
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -109,7 +109,11 @@
|
|||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="entrance === 'archive' && row.NEXT_STEP_ID === 99"
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
|
|
|
|||
|
|
@ -1,353 +1,395 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 动火安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 动火安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td>{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业内容</td>
|
||||
<td>{{ data.info.WORK_CONTENT }}</td>
|
||||
<td class="title">动火地点及动火部位</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">动火作业级别</td>
|
||||
<td>{{ data.info.WORK_LEVEL }}</td>
|
||||
<td class="title">动火方式</td>
|
||||
<td>{{ data.info.WORK_FUNCTION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">动火人及证书编号</td>
|
||||
<td colspan="3">{{ data.info.WORK_USER }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">作业申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td>{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业内容</td>
|
||||
<td>{{ data.info.WORK_CONTENT }}</td>
|
||||
<td class="title">动火地点及动火部位</td>
|
||||
<td>{{ data.info.WORK_PLACE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">动火作业级别</td>
|
||||
<td>{{ data.info.WORK_LEVEL }}</td>
|
||||
<td class="title">动火方式</td>
|
||||
<td>{{ data.info.WORK_FUNCTION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">动火人及证书编号</td>
|
||||
<td colspan="3">{{ data.info.WORK_USER }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td>{{ data.info.CONFIRM_USER_NAME }}</td>
|
||||
</tr>
|
||||
<template v-for="(item, index) in data.gasList" :key="index">
|
||||
<template v-for="(item, index) in data.gasList" :key="index">
|
||||
<tr>
|
||||
<td class="title">气体取样分析时间</td>
|
||||
<td>{{ item.ANALYZE_TIME }}</td>
|
||||
<td class="title">代表性气体</td>
|
||||
<td>{{ item.ANALYZE_GAS }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">分析结果/%</td>
|
||||
<td>{{ item.ANALYZE_RESULT }}</td>
|
||||
<td class="title">分析人</td>
|
||||
<td>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="ml-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="item.ANALYZE_PLACE">
|
||||
<td class="title">分析地点</td>
|
||||
<td colspan="3">{{ item.ANALYZE_PLACE }}</td>
|
||||
</tr>
|
||||
</template>
|
||||
<tr>
|
||||
<td class="title">气体取样分析时间</td>
|
||||
<td>{{ item.ANALYZE_TIME }}</td>
|
||||
<td class="title">代表性气体</td>
|
||||
<td>{{ item.ANALYZE_GAS }}</td>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="3">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">分析结果/%</td>
|
||||
<td>{{ item.ANALYZE_RESULT }}</td>
|
||||
<td class="title">分析人</td>
|
||||
<td>{{ item.ANALYZE_USER }}</td>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="3">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr v-if="item.ANALYZE_PLACE">
|
||||
<td class="title">分析地点</td>
|
||||
<td colspan="3">{{ item.ANALYZE_PLACE }}</td>
|
||||
<tr>
|
||||
<td class="title">动火作业实施时间</td>
|
||||
<td colspan="3">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="3">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="3">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">动火作业实施时间</td>
|
||||
<td colspan="3">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ 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>
|
||||
<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>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_HOTWORK_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ 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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'"> 不涉及 </span>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH[0]"
|
||||
v-if="item.SIGN_PATH"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH[0]"
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.GUARDIAN">
|
||||
<td colspan="10">
|
||||
<div>监护人:</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.GUARDIAN[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.signs.GUARDIAN[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<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 v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_HOTWORK_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="10">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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.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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT_CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.GUARDIAN">
|
||||
<td colspan="10">
|
||||
<div>监护人:</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.GUARDIAN?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.GUARDIAN?.[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.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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[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.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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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.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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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.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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.APPROVE?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.MONITOR">
|
||||
<td colspan="10">
|
||||
<div>动火前在岗班长意见:{{ data.signs.MONITOR[0].DESCR }}</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.MONITOR[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.MONITOR[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.signs.MONITOR[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.MONITOR">
|
||||
<td colspan="10">
|
||||
<div>动火前在岗班长意见:{{ data.signs.MONITOR?.[0].DESCR }}</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.MONITOR?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.MONITOR?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.MONITOR?.[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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<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"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getHotWorkView } from "@/request/eight_work.js";
|
||||
|
|
|
|||
|
|
@ -1,96 +1,22 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-steps
|
||||
:active="fnGetStatus()"
|
||||
:process-status="fnGetProcessStatus()"
|
||||
align-center
|
||||
finish-status="success"
|
||||
>
|
||||
<el-step title="断路安全作业提交">
|
||||
<template #description>
|
||||
<div>{{ fnGetProcessMessage().title }}</div>
|
||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="作业负责人意见">
|
||||
<template #description>
|
||||
<div>{{ info.CONSTRUCTION_USER_NAME }}</div>
|
||||
<div>{{ info.CONSTRUCTION_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="所在单位意见">
|
||||
<template #description>
|
||||
<div v-if="!info.PRODUCTION_USER_NAME">{{ "已跳过" }}</div>
|
||||
<div v-else>{{ info.PRODUCTION_USER_NAME }}</div>
|
||||
<div>{{ info.PRODUCTION_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="消防、安全管理部门意见">
|
||||
<template #description>
|
||||
<div v-if="!info.LEADER_USER_NAME">{{ "已跳过" }}</div>
|
||||
<div v-else>{{ info.SAFETY_USER_NAME }}</div>
|
||||
<div>{{ info.SAFETY_USER_SIGNER_TIME }}</div>
|
||||
</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>{{ 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>
|
||||
<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>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -106,7 +32,12 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
flowList: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
|
|
@ -114,57 +45,26 @@ const props = defineProps({
|
|||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = () => {
|
||||
const result = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
6: 7,
|
||||
};
|
||||
return result[props.info.APPLY_STATUS] || 0;
|
||||
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
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.PRODUCTION_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-4": {
|
||||
title: "消防、安全管理部门审核打回",
|
||||
USER_NAME: info.SAFETY_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-5": {
|
||||
title: "审批部门审核打回",
|
||||
USER_NAME: info.LEADER_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_NAME,
|
||||
OPERATTIME: info.CREATTIME,
|
||||
}
|
||||
);
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="entrance === 'job_data'" :span="6">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-form-item label="状态" prop="STEP_ID">
|
||||
<el-select v-model="searchForm.STEP_ID">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
v-for="item in stepList"
|
||||
:key="item.STEP_ID"
|
||||
:label="item.STEP_NAME"
|
||||
:value="item.STEP_ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -52,13 +52,13 @@
|
|||
<el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip />
|
||||
<el-table-column prop="APPLY_USER_NAME" label="填写人" />
|
||||
<el-table-column
|
||||
prop="CONSTRUCTION_USER_NAME"
|
||||
prop="CONFIRM_USER_NAME"
|
||||
label="作业负责人"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="所在单位负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.PRODUCTION_USER_NAME || " 已跳过" }}
|
||||
{{ row.LEADER_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
|
@ -67,12 +67,12 @@
|
|||
width="200"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
{{ row.SAFETY_DEPARTMENT_NAME || " 已跳过" }}
|
||||
{{ row.AUDIT_DEPARTMENT_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审批部门负责人" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.LEADER_USER_NAME || " 已跳过" }}
|
||||
{{ row.APPROVE_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
|
@ -82,35 +82,53 @@
|
|||
/>
|
||||
<el-table-column label="审核状态">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
<span v-if="row.STEP_ID === 0">暂存</span>
|
||||
<span v-else-if="row.STEP_ID !== -1">{{ row.NEXT_STEP_NAME }}</span>
|
||||
<span v-else>{{ row.STEP_NAME }}打回</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="250">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="entrance === 'job_data' && row.APPLY_STATUS !== '6'"
|
||||
v-if="
|
||||
entrance === 'job_data' &&
|
||||
row.STATUS > -1 &&
|
||||
row.NEXT_STEP_ID !== 99
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/open_circuit/job_data/add_video',
|
||||
query: { CUTROAD_ID: row.CUTROAD_ID, CHECK_NO: row.CHECK_NO },
|
||||
query: {
|
||||
CUTROAD_ID: row.CUTROAD_ID,
|
||||
CHECK_NO: row.CHECK_NO,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
添加监控
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnPreviewVideo(row.VIDEO_PATH)"
|
||||
>
|
||||
查看验收视频
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="entrance === 'job_data'"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
@click="fnFlowChart(row.CUTROAD_ID)"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
|
|
@ -136,18 +154,29 @@
|
|||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
:src="data.videoDialog.src"
|
||||
append-to-body
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getOpenCircuitList } from "@/request/open_circuit.js";
|
||||
import {
|
||||
getOpenCircuitFlow,
|
||||
getOpenCircuitList,
|
||||
getTaskSetps,
|
||||
} from "@/request/eight_work.js";
|
||||
import LayoutVideo from "@/components/video/index.vue";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
|
|
@ -155,35 +184,42 @@ const props = defineProps({
|
|||
default: "job_data",
|
||||
},
|
||||
});
|
||||
const stateList = [
|
||||
{ ID: "0", NAME: "断路安全作业待提交" },
|
||||
{ ID: "1", NAME: "作业负责人待审核" },
|
||||
{ ID: "2", NAME: "所在单位待审核" },
|
||||
{ ID: "3", NAME: "消防、安全管理部门待审核" },
|
||||
{ ID: "4", NAME: "审批部门待审核" },
|
||||
{ ID: "5", NAME: "待验收" },
|
||||
{ ID: "6", NAME: "验收归档" },
|
||||
{ ID: "-2", NAME: "作业负责人审核打回" },
|
||||
{ ID: "-3", NAME: "所在单位审核打回" },
|
||||
{ ID: "-4", NAME: "消防、安全管理部门审核打回" },
|
||||
{ ID: "-5", NAME: "审批部门审核打回" },
|
||||
{ ID: "-6", NAME: "验收打回" },
|
||||
];
|
||||
const stepList = ref([]);
|
||||
const getStepList = async () => {
|
||||
const { list } = await getTaskSetps({ TASK_ID: 1 });
|
||||
stepList.value = [
|
||||
{ STEP_NAME: "请选择", STEP_ID: "" },
|
||||
...list,
|
||||
{ STEP_NAME: "验收归档", STEP_ID: "99" },
|
||||
];
|
||||
};
|
||||
const fnPreviewVideo = (VIDEO_PATH) => {
|
||||
data.videoDialog.visible = true;
|
||||
data.videoDialog.src = VIDEO_PATH;
|
||||
};
|
||||
|
||||
getStepList();
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getOpenCircuitList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
otherParams: props.entrance === "archive" ? { STEP_ID: "99" } : {},
|
||||
});
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
src: "",
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
const fnFlowChart = async (CUTROAD_ID) => {
|
||||
const { flowList, flowingWork } = await getOpenCircuitFlow({ CUTROAD_ID });
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
|
|
|||
|
|
@ -1,354 +1,378 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 断路安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left"> 断路安全作业票 </el-divider>
|
||||
<div class="tr">编号:{{ data.info.CHECK_NO }}</div>
|
||||
<td class="title">申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">申请单位</td>
|
||||
<td>{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业单位</td>
|
||||
<td>{{ data.info.CONSTRUCTION_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td>{{ data.info.CONSTRUCTION_USER_NAME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">涉及相关单位(部门)</td>
|
||||
<td colspan="3">{{ data.info.OTHER_DEPT }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<div v-if="data.info.GUARDIAN_USER_SIGNER_PATH" class="tr">
|
||||
<span>签字:</span>
|
||||
<tr>
|
||||
<td class="title">涉及相关单位(部门)</td>
|
||||
<td colspan="3">{{ data.info.OTHER_DEPT }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.GUARDIAN_USER_SIGNER_PATH"
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.GUARDIAN_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">断路原因</td>
|
||||
<td colspan="5">{{ data.info.WORK_REASON }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<div>
|
||||
断路地段示意图(可另附图)及相关说明:{{ data.info.WORK_CONTENT }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.CONTENT_IMG_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">断路原因</td>
|
||||
<td colspan="5">{{ data.info.WORK_REASON }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<div>
|
||||
编制人:
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.APPLY_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
{{ data.info.APPLY_USER_SIGNER_TIME }}
|
||||
断路地段示意图(可另附图)及相关说明:{{ data.info.WORK_CONTENT }}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.HAZARD_IDENTIFICATION?.split(";_;")[0] }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>{{ item.PROTECTIVE_MEASURES }}</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
<input type="radio" disabled checked />涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'">
|
||||
<input type="radio" disabled checked />不涉及
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ item.CONFIRM_NAME }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr
|
||||
v-if="
|
||||
data.info.APPLY_USER_MEASURES ||
|
||||
data.info.CONSTRUCTION_USER_MEASURES ||
|
||||
data.info.PRODUCTION_USER_MEASURES ||
|
||||
data.info.SAFETY_USER_MEASURES ||
|
||||
data.info.LEADER_USER_MEASURES
|
||||
<div
|
||||
v-if="data.info.CONTENT_IMG_PATH"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 }}</td>
|
||||
<td colspan="3">
|
||||
<div
|
||||
v-if="data.info.APPLY_USER_MEASURES"
|
||||
style="display: flex; justify-content: space-between"
|
||||
>
|
||||
<span>其他安全措施:{{ data.info.APPLY_USER_MEASURES }}</span>
|
||||
<span>编制人:{{ data.info.APPLY_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="data.info.CONSTRUCTION_USER_MEASURES"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.CONSTRUCTION_USER_MEASURES }}
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.CONTENT_IMG_PATH"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<div>
|
||||
签字:
|
||||
<img
|
||||
v-for="(item, index) in data.signs.PROJECT_MANAGER?.[0]
|
||||
.SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{
|
||||
data.signs.PROJECT_MANAGER?.[0].SIGN_TIME[index]
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
涉 及
|
||||
</span>
|
||||
<span>编制人:{{ data.info.CONSTRUCTION_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.PRODUCTION_USER_ID &&
|
||||
data.info.PRODUCTION_USER_MEASURES
|
||||
"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_CUTROAD_MEASURES_ID"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.PRODUCTION_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.PRODUCTION_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.SAFETY_USER_ID && data.info.SAFETY_USER_MEASURES
|
||||
"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="10">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.SAFETY_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.SAFETY_USER_NAME }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
data.info.LEADER_USER_ID && data.info.LEADER_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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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">
|
||||
<div
|
||||
v-for="item in data.imgList"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.CONSTRUCTION_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>作业负责人意见:{{ data.info.CONSTRUCTION_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.PRODUCTION_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>所在单位意见:{{ data.info.PRODUCTION_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.PRODUCTION_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.PRODUCTION_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.SAFETY_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>消防、安全管理部门意见:{{ data.info.SAFETY_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.SAFETY_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.SAFETY_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.LEADER_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>审批部门意见:{{ data.info.LEADER_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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.imgList1.length > 0">
|
||||
<td colspan="10">
|
||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
||||
<div
|
||||
v-for="item in data.imgList1"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getOpenCircuitView } from "@/request/open_circuit.js";
|
||||
import { getOpenCircuitView } from "@/request/eight_work.js";
|
||||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { CUTROAD_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
imgList1: [],
|
||||
measuresList: [],
|
||||
signs: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getOpenCircuitView({ CUTROAD_ID });
|
||||
data.info = resData.pd;
|
||||
data.measuresList = resData.measuresList;
|
||||
data.imgList = resData.imgList;
|
||||
data.imgList1 = resData.imgList1;
|
||||
data.info.APPLY_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
||||
data.info.CONSTRUCTION_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[1];
|
||||
data.info.PRODUCTION_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[2];
|
||||
data.info.SAFETY_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[3];
|
||||
data.info.LEADER_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[4];
|
||||
data.signs = resData.signs;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,87 +1,17 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1300px">
|
||||
<el-steps
|
||||
:active="fnGetStatus()"
|
||||
:process-status="fnGetProcessStatus()"
|
||||
align-center
|
||||
finish-status="success"
|
||||
>
|
||||
<el-step title="临时用电作业提交">
|
||||
<template #description>
|
||||
<div>{{ fnGetProcessMessage().title }}</div>
|
||||
<div>{{ fnGetProcessMessage().USER_NAME }}</div>
|
||||
<div>{{ fnGetProcessMessage().OPERATTIME }}</div>
|
||||
<el-dialog v-model="visible" title="查看流程图" width="1500px">
|
||||
<el-scrollbar style="height: 150px">
|
||||
<el-steps align-center finish-status="success" style="width: 2000px">
|
||||
<template v-for="(item, index) in flowList" :key="index">
|
||||
<el-step :title="item.STEP_NAME" :status="fnGetStatus(item)">
|
||||
<template #description>
|
||||
<div>{{ fnGetShowStepUser(item) }}</div>
|
||||
<div>{{ item.ACT_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="作业负责人意见">
|
||||
<template #description>
|
||||
<div>{{ info.CONFIRM_USER_NAME }}</div>
|
||||
<div>{{ info.CONFIRM_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="用电单位意见">
|
||||
<template #description>
|
||||
<div>{{ info.AUDIT_USER_NAME }}</div>
|
||||
<div>{{ info.AUDIT_USER_SIGNER_TIME }}</div>
|
||||
</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>
|
||||
<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>
|
||||
</el-steps>
|
||||
</el-scrollbar>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
|
|
@ -97,7 +27,12 @@ const props = defineProps({
|
|||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
flowList: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
flowing: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
|
|
@ -105,56 +40,27 @@ const props = defineProps({
|
|||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = () => {
|
||||
const result = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 6,
|
||||
};
|
||||
return result[props.info.APPLY_STATUS] || 0;
|
||||
|
||||
const fnGetStatus = (step) => {
|
||||
if (step.STATUS === 1) {
|
||||
return "finish";
|
||||
} else if (step.STATUS < 0) {
|
||||
return "error";
|
||||
} else if (step.CURRENT_STEP) {
|
||||
return "process";
|
||||
}
|
||||
};
|
||||
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.CONFIRM_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-3": {
|
||||
title: "用电单位审核打回",
|
||||
USER_NAME: info.AUDIT_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-4": {
|
||||
title: "配送电单位审核打回",
|
||||
USER_NAME: info.APPROVE_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-5": {
|
||||
title: "验收打回",
|
||||
USER_NAME: info.ACCEPT_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-99": {
|
||||
title: "已作废",
|
||||
USER_NAME: "",
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
};
|
||||
return (
|
||||
result[props.info.APPLY_STATUS] || {
|
||||
title: "",
|
||||
USER_NAME: info.APPLY_USER_NAME,
|
||||
OPERATTIME: info.CREATTIME,
|
||||
}
|
||||
);
|
||||
|
||||
const fnGetShowStepUser = (step) => {
|
||||
if (step.SIGN_USER) {
|
||||
return step.SIGN_USER;
|
||||
} else if (step.FINISHED_SIGN_USER) {
|
||||
return step.FINISHED_SIGN_USER;
|
||||
} else if (step.ACT_USER_NAME) {
|
||||
return step.ACT_USER_NAME;
|
||||
} else if (step.CAN_SKIP && !props.flowing[step.ACTOR_FIELD]) {
|
||||
return "已跳过";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="entrance === 'job_data'" :span="6">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-form-item label="状态" prop="STEP_ID">
|
||||
<el-select v-model="searchForm.STEP_ID">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
v-for="item in stepList"
|
||||
:key="item.STEP_ID"
|
||||
:label="item.STEP_NAME"
|
||||
:value="item.STEP_ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -51,18 +51,21 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="CHECK_NO" label="编号" />
|
||||
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
|
||||
<el-table-column prop="ANALYZE_USER_NAME" label="分析人" />
|
||||
<el-table-column label="分析人">
|
||||
<template #default="{ row }">
|
||||
{{ row.ANALYZE_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="CONFIRM_USER_NAME" label="作业单位负责人" />
|
||||
<el-table-column prop="AUDIT_USER_NAME" label="用电单位负责人" />
|
||||
<el-table-column prop="APPROVE_USER_NAME" label="配送电单位负责人" />
|
||||
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
||||
<el-table-column label="审核状态">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
<span v-if="row.STEP_ID === 0">暂存</span>
|
||||
<span v-else-if="row.STATUS === -2">气体检测打回</span>
|
||||
<span v-else-if="row.STEP_ID !== -1">{{ row.NEXT_STEP_NAME }}</span>
|
||||
<span v-else>{{ row.STEP_NAME }}打回</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="250">
|
||||
|
|
@ -70,8 +73,8 @@
|
|||
<el-button
|
||||
v-if="
|
||||
entrance === 'job_data' &&
|
||||
row.APPLY_STATUS !== '5' &&
|
||||
row.APPLY_STATUS !== '-99'
|
||||
row.STATUS > -1 &&
|
||||
row.NEXT_STEP_ID !== 99
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -93,10 +96,23 @@
|
|||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
@click="fnFlowChart(row.ELECTRICITY_ID)"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="
|
||||
entrance === 'archive' &&
|
||||
row.NEXT_STEP_ID === 99 &&
|
||||
row.VIDEO_PATH
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnPreviewVideo(row.VIDEO_PATH)"
|
||||
>
|
||||
查看验收视频
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -119,18 +135,29 @@
|
|||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
:flow-list="data.flowChartDialog.flowList"
|
||||
:flowing="data.flowChartDialog.flowing"
|
||||
/>
|
||||
<layout-video
|
||||
v-model:visible="data.videoDialog.visible"
|
||||
:src="data.videoDialog.src"
|
||||
append-to-body
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getTemporaryElectricityUsageList } from "@/request/temporary_electricity_usage.js";
|
||||
import {
|
||||
getTemporaryElectricityUsageFlow,
|
||||
getTaskSetps,
|
||||
getTemporaryElectricityUsageList,
|
||||
} from "@/request/eight_work.js";
|
||||
import LayoutVideo from "@/components/video/index.vue";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
|
|
@ -138,33 +165,47 @@ const props = defineProps({
|
|||
default: "job_data",
|
||||
},
|
||||
});
|
||||
const stateList = [
|
||||
{ ID: "0", NAME: "临时用电作业待提交" },
|
||||
{ ID: "1", NAME: "作业负责人待审核" },
|
||||
{ ID: "2", NAME: "用电单位待审核" },
|
||||
{ ID: "3", NAME: "配送电单位待审核" },
|
||||
{ ID: "4", NAME: "待验收" },
|
||||
{ ID: "5", NAME: "验收归档" },
|
||||
{ ID: "-2", NAME: "作业负责人审核打回" },
|
||||
{ ID: "-3", NAME: "用电单位审核打回" },
|
||||
{ ID: "-4", NAME: "配送电单位审核打回" },
|
||||
{ ID: "-5", NAME: "验收打回" },
|
||||
{ ID: "-99", NAME: "已作废" },
|
||||
];
|
||||
|
||||
const stepList = ref([]);
|
||||
|
||||
const getStepList = async () => {
|
||||
const { list } = await getTaskSetps({ TASK_ID: 1 });
|
||||
stepList.value = [
|
||||
{ STEP_NAME: "请选择", STEP_ID: "" },
|
||||
...list,
|
||||
{ STEP_NAME: "验收归档", STEP_ID: "99" },
|
||||
];
|
||||
};
|
||||
getStepList();
|
||||
|
||||
const fnPreviewVideo = (VIDEO_PATH) => {
|
||||
data.videoDialog.visible = true;
|
||||
data.videoDialog.src = VIDEO_PATH;
|
||||
};
|
||||
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getTemporaryElectricityUsageList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "5" } : {},
|
||||
otherParams: props.entrance === "archive" ? { STEP_ID: "99" } : {},
|
||||
});
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
flowList: {},
|
||||
flowing: {},
|
||||
},
|
||||
videoDialog: {
|
||||
visible: false,
|
||||
src: "",
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
const fnFlowChart = async (ELECTRICITY_ID) => {
|
||||
const { flowList, flowingWork } = await getTemporaryElectricityUsageFlow({
|
||||
ELECTRICITY_ID,
|
||||
});
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
data.flowChartDialog.flowList = flowList;
|
||||
data.flowChartDialog.flowing = flowingWork;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,300 +1,391 @@
|
|||
<template>
|
||||
<layout-print-table-package :print="entrance === 'archive'">
|
||||
<table>
|
||||
<thead>
|
||||
<layout-card>
|
||||
<div id="printContent">
|
||||
<table class="archive_print_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
临时用电作业许可证
|
||||
</el-divider>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
临时用电作业许可证
|
||||
</el-divider>
|
||||
<td class="title">申请单位</td>
|
||||
<td colspan="2">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td colspan="2">{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业地点</td>
|
||||
<td colspan="2">{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">作业内容</td>
|
||||
<td colspan="2">{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">电源接入点及许可用电功率</td>
|
||||
<td colspan="2">{{ data.info.ALLOW_POWER }}</td>
|
||||
<td class="title">工作电压</td>
|
||||
<td colspan="2">{{ data.info.WORK_VOLTAGE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">用电设备名称及额定功率</td>
|
||||
<td>{{ data.info.RATED_POWER }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.GUARDIAN?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">用电人</td>
|
||||
<td>
|
||||
<img
|
||||
v-for="(item, index) in data.signs.ELECTRICITY?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td class="title">申请单位</td>
|
||||
<td colspan="2">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
|
||||
<td class="title">作业申请时间</td>
|
||||
<td colspan="2">{{ data.info.CREATTIME }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业地点</td>
|
||||
<td colspan="2">{{ data.info.WORK_PLACE }}</td>
|
||||
<td class="title">作业内容</td>
|
||||
<td colspan="2">{{ data.info.WORK_CONTENT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">电源接入点及许可用电功率</td>
|
||||
<td colspan="2">{{ data.info.ALLOW_POWER }}</td>
|
||||
<td class="title">工作电压</td>
|
||||
<td colspan="2">{{ data.info.WORK_VOLTAGE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">用电设备名称及额定功率</td>
|
||||
<td>{{ data.info.RATED_POWER }}</td>
|
||||
<td class="title">监护人</td>
|
||||
<td>
|
||||
<div v-if="data.info.GUARDIAN_USER_SIGNER_PATH" class="tr">
|
||||
<span>签字:</span>
|
||||
<tr>
|
||||
<td class="title">作业人</td>
|
||||
<td colspan="2">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.WORK_USER?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.GUARDIAN_USER_SIGNER_PATH"
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.info.GUARDIAN_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="title">用电人</td>
|
||||
<td>{{ data.info.ELECTRICITY_USER }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业人</td>
|
||||
<td colspan="2">{{ data.info.WORK_USER }}</td>
|
||||
<td class="title">电工证号</td>
|
||||
<td colspan="2">{{ data.info.CARD_NO }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">作业负责人</td>
|
||||
<td colspan="2">{{ data.info.CONFIRM_USER_NAME }}</td>
|
||||
<td class="title">电工证号</td>
|
||||
<td colspan="2">{{ data.info.LEADER_CARD_NO }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title" colspan="6">
|
||||
可燃气体分析(运行的生产装置、罐区和具有火灾爆炸危险场所)
|
||||
</td>
|
||||
</tr>
|
||||
<template v-for="(item, index) in data.gasList" :key="index">
|
||||
<tr>
|
||||
<td class="title">分析时间</td>
|
||||
<td colspan="2">{{ item.ANALYZE_TIME }}</td>
|
||||
<td class="title">分析点</td>
|
||||
<td colspan="2">{{ item.ANALYZE_PLACE }}</td>
|
||||
</td>
|
||||
<td class="title">电工证号</td>
|
||||
<td colspan="2">{{ data.info.CARD_NO }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">可燃气体检测结果</td>
|
||||
<td colspan="2">{{ item.ANALYZE_RESULT }}</td>
|
||||
<td class="title">分析人</td>
|
||||
<td colspan="2">{{ item.ANALYZE_USER }}</td>
|
||||
<td class="title">作业负责人</td>
|
||||
<td colspan="2">
|
||||
<img
|
||||
v-for="(item, index) in data.signs.CONFIRM?.[0].SIGN_PATH"
|
||||
:key="index"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
<td class="title">电工证号</td>
|
||||
<td colspan="2">{{ data.info.LEADER_CARD_NO }}</td>
|
||||
</tr>
|
||||
</template>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>{{ item.PROTECTIVE_MEASURES }}</td>
|
||||
<td>
|
||||
<span v-if="item.STATUS === '1'">
|
||||
<input type="radio" disabled checked />涉 及
|
||||
</span>
|
||||
<span v-if="item.STATUS === '-1'">
|
||||
<input type="radio" disabled checked />不涉及
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ item.CONFIRM_NAME }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr
|
||||
v-if="
|
||||
data.info.CONFIRM_USER_MEASURES ||
|
||||
data.info.AUDIT_USER_MEASURES ||
|
||||
data.info.APPROVE_USER_MEASURES
|
||||
"
|
||||
<tr>
|
||||
<td class="title">关联的其他特殊作业及安全作业票编号</td>
|
||||
<td colspan="5">{{ data.info.SPECIAL_WORK }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">风险辨识结果</td>
|
||||
<td colspan="5">{{ data.info.RISK_IDENTIFICATION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title" colspan="6">
|
||||
可燃气体分析(运行的生产装置、罐区和具有火灾爆炸危险场所)
|
||||
</td>
|
||||
</tr>
|
||||
<template v-for="(item, index) in data.gasList" :key="index">
|
||||
<tr>
|
||||
<td class="title">分析时间</td>
|
||||
<td colspan="2">{{ item.ANALYZE_TIME }}</td>
|
||||
<td class="title">分析点</td>
|
||||
<td colspan="2">{{ item.ANALYZE_PLACE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">可燃气体检测结果</td>
|
||||
<td colspan="2">{{ item.ANALYZE_RESULT }}</td>
|
||||
<td class="title">分析人</td>
|
||||
<td colspan="2">
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
<tr>
|
||||
<td class="title">作业实施时间</td>
|
||||
<td colspan="5">
|
||||
{{ data.info.WORK_START_DATE }}至{{ data.info.WORK_END_DATE }}止
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="11">
|
||||
<table class="archive_print_table">
|
||||
<tr>
|
||||
<td style="width: 80px">序号</td>
|
||||
<td>安全措施</td>
|
||||
<td style="width: 100px">是否涉及</td>
|
||||
<td style="width: 100px">确认人</td>
|
||||
</tr>
|
||||
<tr v-for="(item, index) in data.measuresList" :key="index">
|
||||
<td>{{ index + 1 }}</td>
|
||||
<td>
|
||||
{{ item.PROTECTIVE_MEASURES }}
|
||||
<div v-if="item.IMG_PATH" class="mt-10">
|
||||
<template
|
||||
v-for="img in item.IMG_PATH.split(',')"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<template v-if="data.signs.MEASURES_CONFIRM">
|
||||
<tr
|
||||
v-for="(item, index) in data.signs.MEASURES_CONFIRM"
|
||||
:key="item.BUS_ELECTRICITY_MEASURES_ID"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 + index }}</td>
|
||||
<td colspan="2">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span> 其他安全措施: {{ item.DESCR }} </span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<img
|
||||
v-if="item.SIGN_PATH?.[0]"
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.SIGN_PATH?.[0]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFESS">
|
||||
<td colspan="11">
|
||||
<div>
|
||||
安全交底人:
|
||||
<div v-if="data.signs.CONFESS?.[0].IMG_PATH?.[0]">
|
||||
<template
|
||||
v-for="img in data.signs.CONFESS?.[0].IMG_PATH"
|
||||
:key="img"
|
||||
>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + img"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in data.signs.CONFESS?.[0].SIGN_TIME"
|
||||
:key="index"
|
||||
class="tr"
|
||||
>
|
||||
<td>{{ data.measuresList.length + 1 }}</td>
|
||||
<td colspan="3">
|
||||
<div
|
||||
v-if="data.info.CONFIRM_USER_MEASURES"
|
||||
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.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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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">
|
||||
<div
|
||||
v-for="item in data.imgList"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_CONFESS_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.CONFIRM_USER_SIGNER_TIME">
|
||||
<td colspan="6">
|
||||
<div>作业负责人意见:{{ data.info.CONFIRM_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.CONFIRM_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.CONFIRM_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.AUDIT_USER_SIGNER_TIME">
|
||||
<td colspan="6">
|
||||
<div>用电单位意见:{{ data.info.AUDIT_CONTENT }}</div>
|
||||
<div class="tr">
|
||||
<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_TIME">
|
||||
<td colspan="6">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.imgList1.length > 0">
|
||||
<td colspan="10">
|
||||
<div>完工验收:{{ data.info.ACCEPT_CONTENT }}</div>
|
||||
<div
|
||||
v-for="item in data.imgList1"
|
||||
:key="item.ACCEPT_CONFESS_ID"
|
||||
class="tr"
|
||||
>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + item.ACCEPT_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</layout-print-table-package>
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.signs.CONFESS?.[0].SIGN_PATH[index]"
|
||||
alt=""
|
||||
width="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.ACCEPT_CONFESS">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT_CONFESS?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.CONFIRM">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.CONFIRM?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.AUDIT">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.AUDIT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.signs.APPROVE">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.APPROVE?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="data.signs.ACCEPT">
|
||||
<td colspan="11">
|
||||
<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="20"
|
||||
height="20"
|
||||
class="mr-10 mt-10"
|
||||
/>
|
||||
<span>{{ data.signs.ACCEPT?.[0].SIGN_TIME[index] }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div v-if="entrance === 'archive'" class="mt-10 tc">
|
||||
<el-button v-print="'#printContent'" type="primary">打印</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutPrintTablePackage from "@/components/print_table_package/index.vue";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { getTemporaryElectricityUsageView } from "@/request/temporary_electricity_usage.js";
|
||||
import { getTemporaryElectricityUsageView } from "@/request/eight_work.js";
|
||||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { ELECTRICITY_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
imgList1: [],
|
||||
measuresList: [],
|
||||
gasList: [],
|
||||
gas: {},
|
||||
measuresList: [],
|
||||
signs: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getTemporaryElectricityUsageView({ ELECTRICITY_ID });
|
||||
data.info = resData.pd;
|
||||
data.imgList = resData.imgList;
|
||||
data.imgList1 = resData.imgList1;
|
||||
data.measuresList = resData.measuresList;
|
||||
data.gasList = resData.gasList;
|
||||
data.gas = resData.gas || {};
|
||||
data.signs = resData.signs;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue