forked from integrated_whb/integrated_whb_vue
init
parent
bff8547433
commit
29b4c7d2ba
|
@ -320,4 +320,84 @@ export default [
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/temporary_electricity_usage",
|
||||
redirect: "/temporary_electricity_usage/job_data",
|
||||
meta: { title: "临时用电作业管理", model: MODEL["3"] },
|
||||
component: "children",
|
||||
children: [
|
||||
{
|
||||
path: "/temporary_electricity_usage/job_data",
|
||||
meta: { title: "临时用电作业数据", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{ path: "", component: "temporary_electricity_usage/job_data/index" },
|
||||
{
|
||||
path: "/temporary_electricity_usage/job_data/view",
|
||||
meta: {
|
||||
title: "审批表详情",
|
||||
activeMenu: "/temporary_electricity_usage/job_data",
|
||||
},
|
||||
component: "temporary_electricity_usage/job_data/view",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/temporary_electricity_usage/archive",
|
||||
meta: { title: "归档管理", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{ path: "", component: "temporary_electricity_usage/archive/index" },
|
||||
{
|
||||
path: "/temporary_electricity_usage/archive/view",
|
||||
meta: {
|
||||
title: "审批表详情",
|
||||
activeMenu: "/temporary_electricity_usage/archive",
|
||||
},
|
||||
component: "temporary_electricity_usage/archive/view",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/hot_work",
|
||||
redirect: "/hot_work/job_data",
|
||||
meta: { title: "动火作业管理", model: MODEL["3"] },
|
||||
component: "children",
|
||||
children: [
|
||||
{
|
||||
path: "/hot_work/job_data",
|
||||
meta: { title: "动火作业数据", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{ path: "", component: "hot_work/job_data/index" },
|
||||
{
|
||||
path: "/hot_work/job_data/view",
|
||||
meta: {
|
||||
title: "审批表详情",
|
||||
activeMenu: "/hot_work/job_data",
|
||||
},
|
||||
component: "hot_work/job_data/view",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/hot_work/archive",
|
||||
meta: { title: "归档管理", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{ path: "", component: "hot_work/archive/index" },
|
||||
{
|
||||
path: "/hot_work/archive/view",
|
||||
meta: {
|
||||
title: "审批表详情",
|
||||
activeMenu: "/hot_work/archive",
|
||||
},
|
||||
component: "hot_work/archive/view",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { ref } from "vue";
|
||||
|
||||
export default function usePrint(THEAD_HEIGHT = 81.59) {
|
||||
export default function usePrint(THEAD_HEIGHT) {
|
||||
const buttonRef = ref(null);
|
||||
const A4_HEIGHT_MM = 297;
|
||||
const A4_HEIGHT_MM_TO_PX_PROPORTION = 3.78;
|
||||
|
|
|
@ -23,15 +23,22 @@
|
|||
|
||||
<script setup>
|
||||
import LayoutCard from "@/components/card/index.vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import usePrint from "@/assets/js/usePrint.js";
|
||||
|
||||
const { fnPrint, printObj, buttonRef } = usePrint();
|
||||
defineOptions({
|
||||
name: "LayoutPrintTablePackage",
|
||||
});
|
||||
const route = useRoute();
|
||||
const { entrance } = route.query;
|
||||
const props = defineProps({
|
||||
theadHeight: {
|
||||
type: Number,
|
||||
default: 81.59,
|
||||
},
|
||||
entrance: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
const { fnPrint, printObj, buttonRef } = usePrint(props.theadHeight);
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
import { post } from "@/request/axios.js";
|
||||
|
||||
export const getHotWorkList = (params) => post("/hotwork/list", params); // 动火作业管理列表
|
||||
export const getHotWorkView = (params) => post("/hotwork/goEdit", params); // 动火作业管理查看
|
|
@ -0,0 +1,6 @@
|
|||
import { post } from "@/request/axios.js";
|
||||
|
||||
export const getTemporaryElectricityUsageList = (params) =>
|
||||
post("/electricity/list", params); // 临时用电作业管理列表
|
||||
export const getTemporaryElectricityUsageView = (params) =>
|
||||
post("/electricity/goEdit", params); // 临时用电作业管理查看
|
|
@ -149,9 +149,7 @@ const stateList = [
|
|||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getBlindPlatePluggingList, {
|
||||
otherParams: {
|
||||
APPLY_STATUS: props.entrance === "archive" ? "6" : "",
|
||||
},
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<layout-print-table-package>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -294,7 +294,7 @@ import { getBlindPlatePluggingView } from "@/request/blind_plate_plugging.js";
|
|||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { BLINDBOARD_ID } = route.query;
|
||||
const { BLINDBOARD_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
|
|
|
@ -130,9 +130,7 @@ const stateList = [
|
|||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getConfinedSpaceList, {
|
||||
otherParams: {
|
||||
APPLY_STATUS: props.entrance === "archive" ? "6" : "",
|
||||
},
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<layout-print-table-package>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -276,7 +276,7 @@ import { getConfinedSpaceView } from "@/request/confined_space.js";
|
|||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { CONFINEDSPACE_ID } = route.query;
|
||||
const { CONFINEDSPACE_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
gasList: [],
|
||||
|
|
|
@ -155,9 +155,7 @@ const stateList = [
|
|||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getGroundbreakingList, {
|
||||
otherParams: {
|
||||
APPLY_STATUS: props.entrance === "archive" ? "6" : "",
|
||||
},
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<layout-print-table-package>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -334,7 +334,7 @@ import { getGroundbreakingView } from "@/request/groundbreaking.js";
|
|||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { BREAKGROUND_ID } = route.query;
|
||||
const { BREAKGROUND_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
|
|
|
@ -153,9 +153,7 @@ const stateList = [
|
|||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getHighList, {
|
||||
otherParams: {
|
||||
APPLY_STATUS: props.entrance === "archive" ? "6" : "",
|
||||
},
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<layout-print-table-package>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -297,7 +297,7 @@ import { getHighView } from "@/request/high.js";
|
|||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { HIGHWORK_ID } = route.query;
|
||||
const { HIGHWORK_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
|
|
|
@ -153,9 +153,7 @@ const stateList = [
|
|||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getHoistingList, {
|
||||
otherParams: {
|
||||
APPLY_STATUS: props.entrance === "archive" ? "6" : "",
|
||||
},
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<layout-print-table-package>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -298,7 +298,7 @@ import { findCharIndex } from "@/assets/js/utils.js";
|
|||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { HOISTING_ID } = route.query;
|
||||
const { HOISTING_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<template>
|
||||
<index-view entrance="archive" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import IndexView from "../job_data/index.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,9 @@
|
|||
<template>
|
||||
<view-info />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import ViewInfo from "../job_data/view.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,192 @@
|
|||
<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.CONFIRM_USER_NAME }}</div>
|
||||
<div>{{ info.CONFIRM_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 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>{{ info.APPROVE_USER_NAME }}</div>
|
||||
<div>{{ info.APPROVE_USER_SIGNER_TIME }}</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="班长验票">
|
||||
<template #description>
|
||||
<div>{{ info.MONITOR_USER_NAME }}</div>
|
||||
<div>{{ info.MONITOR_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>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useVModel } from "@vueuse/core";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnGetStatus = () => {
|
||||
const result = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
4: 3,
|
||||
5: 4,
|
||||
6: 5,
|
||||
7: 6,
|
||||
8: 8,
|
||||
};
|
||||
return result[props.info.APPLY_STATUS] || 0;
|
||||
};
|
||||
const fnGetProcessStatus = () => {
|
||||
if (props.info.APPLY_STATUS < "0") return "error";
|
||||
else return "process";
|
||||
};
|
||||
const fnGetProcessMessage = () => {
|
||||
const info = props.info;
|
||||
const result = {
|
||||
"-2": {
|
||||
title: "作业负责人审核打回",
|
||||
USER_NAME: info.CONFIRM_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-4": {
|
||||
title: "所在单位审核打回",
|
||||
USER_NAME: info.LEADER_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-5": {
|
||||
title: "安全管理部门审核打回",
|
||||
USER_NAME: info.AUDIT_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-6": {
|
||||
title: "动火审批人审核打回",
|
||||
USER_NAME: info.APPROVE_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-7": {
|
||||
title: "班长验票打回",
|
||||
USER_NAME: info.MONITOR_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-8": {
|
||||
title: "验收打回",
|
||||
USER_NAME: info.ACCEPT_USER_NAME,
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-99": {
|
||||
title: "已作废(班长未验票)",
|
||||
USER_NAME: "",
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
"-98": {
|
||||
title: "已作废(未进行气体检测)",
|
||||
USER_NAME: "",
|
||||
OPERATTIME: info.OPERATTIME,
|
||||
},
|
||||
};
|
||||
return (
|
||||
result[props.info.APPLY_STATUS] || {
|
||||
title: "",
|
||||
USER_NAME: info.APPLY_USER_NAME,
|
||||
OPERATTIME: info.CREATTIME,
|
||||
}
|
||||
);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,170 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="50px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="编号" prop="KEYWORDS">
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入关键字"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6" v-if="entrance === 'job_data'">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
:data="list"
|
||||
v-model:pagination="pagination"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column label="序号" width="70">
|
||||
<template v-slot="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="CHECK_NO" label="编号" />
|
||||
<el-table-column prop="WORK_LEVEL" label="作业级别" />
|
||||
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
|
||||
<el-table-column prop="ANALYZE_USER_NAME" label="分析人" />
|
||||
<el-table-column prop="CONFIRM_USER_NAME" label="作业负责人" />
|
||||
<el-table-column prop="LEADER_USER_NAME" label="所在单位负责人" />
|
||||
<el-table-column
|
||||
label="安全管理部门负责人"
|
||||
show-overflow-tooltip
|
||||
width="150"
|
||||
>
|
||||
<template v-slot="{ row }">
|
||||
{{ row.AUDIT_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="动火审批人" show-overflow-tooltip>
|
||||
<template v-slot="{ row }">
|
||||
{{ row.APPROVE_USER_NAME || " 已跳过" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="MONITOR_USER_NAME" label="动火前在岗班长" />
|
||||
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
|
||||
<el-table-column label="审核状态" width="170">
|
||||
<template v-slot="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="150">
|
||||
<template v-slot="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
v-if="entrance === 'job_data'"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path:
|
||||
props.entrance === 'job_data'
|
||||
? '/hot_work/job_data/view'
|
||||
: '/hot_work/archive/view',
|
||||
query: { HOTWORK_ID: row.HOTWORK_ID, entrance },
|
||||
})
|
||||
"
|
||||
>
|
||||
审批表详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getHotWorkList } from "@/request/hot_work.js";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
type: String,
|
||||
default: "job_data",
|
||||
},
|
||||
});
|
||||
const stateList = [
|
||||
{ ID: "0", NAME: "动火作业待提交" },
|
||||
{ ID: "1", NAME: "作业负责人待审核" },
|
||||
{ ID: "2", NAME: "所在单位待审核" },
|
||||
{ ID: "4", NAME: "安全管理部门待审核" },
|
||||
{ ID: "5", NAME: "动火审批人待审核" },
|
||||
{ ID: "6", NAME: "班长待验票" },
|
||||
{ ID: "7", NAME: "待验收" },
|
||||
{ ID: "8", NAME: "验收归档" },
|
||||
{ ID: "-2", NAME: "作业负责人审核打回" },
|
||||
{ ID: "-4", NAME: "所在单位审核打回" },
|
||||
{ ID: "-5", NAME: "安全管理部门审核打回" },
|
||||
{ ID: "-6", NAME: "动火审批人审核打回" },
|
||||
{ ID: "-7", NAME: "班长验票打回" },
|
||||
{ ID: "-8", NAME: "验收打回" },
|
||||
{ ID: "-99", NAME: "已作废(班长未验票)" },
|
||||
{ ID: "-98", NAME: "已作废(未进行气体检测)" },
|
||||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getHotWorkList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "8" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,379 @@
|
|||
<template>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<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 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">
|
||||
<tr>
|
||||
<td class="title">气体取样分析时间</td>
|
||||
<td>{{ item.ANALYZE_TIME }}</td>
|
||||
<td class="title">代表性气体</td>
|
||||
<td>{{ item.ANALYZE_PLACE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">分析结果/%</td>
|
||||
<td>{{ item.ANALYZE_RESULT }}</td>
|
||||
<td class="title">分析人</td>
|
||||
<td>{{ item.ANALYZE_USER }}</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 class="table-ui">
|
||||
<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.LEADER_USER_MEASURES ||
|
||||
data.info.AUDIT_USER_MEASURES ||
|
||||
data.info.APPROVE_USER_MEASURES ||
|
||||
data.info.MONITOR_USER_MEASURES
|
||||
"
|
||||
>
|
||||
<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.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>
|
||||
<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>
|
||||
<div
|
||||
v-if="data.info.MONITOR_USER_MEASURES"
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<span>
|
||||
其他安全措施:{{ data.info.MONITOR_USER_MEASURES }}
|
||||
</span>
|
||||
<span>编制人:{{ data.info.MONITOR_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>
|
||||
<td class="title">监护人</td>
|
||||
<td colspan="3">
|
||||
<div v-if="data.info.GUARDIAN_USER_SIGNER_PATH" class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.GUARDIAN_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.GUARDIAN_USER_SIGNER_TIME }}</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="data.info.CONFIRM_USER_SIGNER_PATH">
|
||||
<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.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.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.info.MONITOR_USER_SIGNER_PATH">
|
||||
<td colspan="6">
|
||||
<div>
|
||||
动火前,岗位当班班长验票情况:{{ data.info.MONITOR_CONTENT }}
|
||||
</div>
|
||||
<div class="tr">
|
||||
<span>签字:</span>
|
||||
<img
|
||||
v-viewer
|
||||
:src="VITE_FILE_URL + data.info.MONITOR_USER_SIGNER_PATH"
|
||||
alt=""
|
||||
width="100"
|
||||
height="100"
|
||||
/>
|
||||
<span>{{ data.info.MONITOR_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>
|
||||
</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/hot_work.js";
|
||||
import { findCharIndex } from "@/assets/js/utils.js";
|
||||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { HOTWORK_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
imgList1: [],
|
||||
measuresList: [],
|
||||
gasList: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getHotWorkView({ HOTWORK_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.gasList = resData.gasList;
|
||||
data.info.CONFIRM_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[0];
|
||||
data.info.LEADER_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[1];
|
||||
data.info.AUDIT_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[2];
|
||||
data.info.APPROVE_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[3];
|
||||
data.info.MONITOR_USER_MEASURES =
|
||||
data.info.OTHER_PROTECTIVE_MEASURES.split(";_;")[4];
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -157,9 +157,7 @@ const stateList = [
|
|||
];
|
||||
const router = useRouter();
|
||||
const listData = useListData(getOpenCircuitList, {
|
||||
otherParams: {
|
||||
APPLY_STATUS: props.entrance === "archive" ? "6" : "",
|
||||
},
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "6" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<layout-print-table-package>
|
||||
<layout-print-table-package :entrance="entrance">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -326,7 +326,7 @@ import { getOpenCircuitView } from "@/request/open_circuit.js";
|
|||
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const { CUTROAD_ID } = route.query;
|
||||
const { CUTROAD_ID, entrance } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
imgList: [],
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<template>
|
||||
<index-view entrance="archive" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import IndexView from "../job_data/index.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,9 @@
|
|||
<template>
|
||||
<view-info />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import ViewInfo from "../job_data/view.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,161 @@
|
|||
<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>
|
||||
</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>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useVModel } from "@vueuse/core";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
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 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,
|
||||
}
|
||||
);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,150 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="50px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="编号" prop="KEYWORDS">
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入关键字"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6" v-if="entrance === 'job_data'">
|
||||
<el-form-item label="状态" prop="APPLY_STATUS">
|
||||
<el-select v-model="searchForm.APPLY_STATUS">
|
||||
<el-option
|
||||
v-for="item in stateList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
:data="list"
|
||||
v-model:pagination="pagination"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column label="序号" width="70">
|
||||
<template v-slot="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</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 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 v-slot="{ row }">
|
||||
{{
|
||||
entrance === "job_data"
|
||||
? translationStatus(row.APPLY_STATUS, stateList)
|
||||
: "已归档"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="150">
|
||||
<template v-slot="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnFlowChart(row)"
|
||||
v-if="entrance === 'job_data'"
|
||||
>
|
||||
流程图
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path:
|
||||
props.entrance === 'job_data'
|
||||
? '/temporary_electricity_usage/job_data/view'
|
||||
: '/temporary_electricity_usage/archive/view',
|
||||
query: { ELECTRICITY_ID: row.ELECTRICITY_ID, entrance },
|
||||
})
|
||||
"
|
||||
>
|
||||
审批表详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
<flow-chart
|
||||
v-model:visible="data.flowChartDialog.visible"
|
||||
:info="data.flowChartDialog.info"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import FlowChart from "./components/flow_chart.vue";
|
||||
import { getTemporaryElectricityUsageList } from "@/request/temporary_electricity_usage.js";
|
||||
|
||||
const props = defineProps({
|
||||
entrance: {
|
||||
type: String,
|
||||
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 router = useRouter();
|
||||
const listData = useListData(getTemporaryElectricityUsageList, {
|
||||
otherParams: props.entrance === "archive" ? { APPLY_STATUS: "5" } : {},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } = listData;
|
||||
const data = reactive({
|
||||
flowChartDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
},
|
||||
});
|
||||
const fnFlowChart = (info) => {
|
||||
data.flowChartDialog.visible = true;
|
||||
data.flowChartDialog.info = info;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,302 @@
|
|||
<template>
|
||||
<layout-print-table-package :entrance="entrance" :thead-height="65.5">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="10" style="border: none">
|
||||
<el-divider content-position="left">
|
||||
临时用电作业许可证
|
||||
</el-divider>
|
||||
</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>
|
||||
<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">用电人</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>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">可燃气体检测结果</td>
|
||||
<td colspan="2">{{ item.ANALYZE_RESULT }}</td>
|
||||
<td class="title">分析人</td>
|
||||
<td colspan="2">{{ item.ANALYZE_USER }}</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
|
||||
"
|
||||
>
|
||||
<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>
|
||||
</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";
|
||||
|
||||
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: [],
|
||||
});
|
||||
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;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
Loading…
Reference in New Issue