Merge remote-tracking branch 'origin/dev' into dev

pull/1/head
dearlin 2024-02-06 15:40:50 +08:00
commit dd91ce3a28
16 changed files with 195 additions and 85 deletions

View File

@ -28,19 +28,19 @@
</template> </template>
<template v-if="data.info.SOURCE === '2' && listType === '2'"> <template v-if="data.info.SOURCE === '2' && listType === '2'">
<el-descriptions-item label="检查类别"> <el-descriptions-item label="检查类别">
{{ data.info.BR_CHECK_CATEGORY_NAME }} {{ data.info.CHECK_CATEGORY_NAME }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="检查项目"> <el-descriptions-item label="检查项目">
{{ data.info.BR_CHECK_ITEM_NAME }} {{ data.info.CHECK_ITEM_NAME }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="检查内容"> <el-descriptions-item label="检查内容">
{{ data.info.BR_CHECK_CONTENT }} {{ data.info.CHECK_CONTENT }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="检查标准"> <el-descriptions-item label="检查标准">
{{ data.info.BR_CHECK_STANDARD }} {{ data.info.CHECK_STANDARD }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="参考依据"> <el-descriptions-item label="参考依据">
{{ data.info.BR_REFERENCE_BASIS }} {{ data.info.REFERENCE_BASIS }}
</el-descriptions-item> </el-descriptions-item>
</template> </template>
<el-descriptions-item label="隐患级别"> <el-descriptions-item label="隐患级别">

View File

@ -86,6 +86,15 @@
> >
添加监控 添加监控
</el-button> </el-button>
<el-button
v-if="entrance === 'archive' && row.NEXT_STEP_ID === 99"
type="primary"
text
link
@click="fnPreviewVideo(row.VIDEO_PATH)"
>
查看验收视频
</el-button>
<el-button <el-button
type="primary" type="primary"
text text
@ -119,6 +128,11 @@
v-model:visible="data.flowChartDialog.visible" v-model:visible="data.flowChartDialog.visible"
:flow-list="data.flowChartDialog.flowList" :flow-list="data.flowChartDialog.flowList"
/> />
<layout-video
:src="data.videoDialog.src"
v-model:visible="data.videoDialog.visible"
append-to-body
/>
</div> </div>
</template> </template>
@ -133,6 +147,7 @@ import {
getTaskSetps, getTaskSetps,
getConfinedSpaceList, getConfinedSpaceList,
} from "@/request/eight_work.js"; } from "@/request/eight_work.js";
import LayoutVideo from "@/components/video/index.vue";
const props = defineProps({ const props = defineProps({
entrance: { entrance: {
@ -153,6 +168,11 @@ const getStepList = async () => {
}; };
getStepList(); getStepList();
const fnPreviewVideo = (VIDEO_PATH) => {
data.videoDialog.visible = true;
data.videoDialog.src = VIDEO_PATH;
};
const router = useRouter(); const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } = const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getConfinedSpaceList, { useListData(getConfinedSpaceList, {
@ -163,6 +183,10 @@ const data = reactive({
visible: false, visible: false,
flowList: {}, flowList: {},
}, },
videoDialog: {
visible: false,
src: "",
},
}); });
const fnFlowChart = async (CONFINEDSPACE_ID) => { const fnFlowChart = async (CONFINEDSPACE_ID) => {
const { flowList } = await getConfinedSpaceFlow({ CONFINEDSPACE_ID }); const { flowList } = await getConfinedSpaceFlow({ CONFINEDSPACE_ID });

View File

@ -3,7 +3,7 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<td colspan="10" style="border: none"> <td colspan="11" style="border: none">
<el-divider content-position="left"> <el-divider content-position="left">
受限空间安全作业票 受限空间安全作业票
</el-divider> </el-divider>
@ -15,32 +15,32 @@
<td class="title">作业申请单位</td> <td class="title">作业申请单位</td>
<td colspan="5">{{ data.info.APPLY_DEPARTMENT_NAME }}</td> <td colspan="5">{{ data.info.APPLY_DEPARTMENT_NAME }}</td>
<td class="title">作业申请时间</td> <td class="title">作业申请时间</td>
<td colspan="3">{{ data.info.CREATTIME }}</td> <td colspan="4">{{ data.info.CREATTIME }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">受限空间名称</td> <td class="title">受限空间名称</td>
<td colspan="5">{{ data.info.LIMITSPACE_NAME }}</td> <td colspan="5">{{ data.info.LIMITSPACE_NAME }}</td>
<td class="title">受限空间内原有介质名称</td> <td class="title">受限空间内原有介质名称</td>
<td colspan="3">{{ data.info.MEDIUM_NAME }}</td> <td colspan="4">{{ data.info.MEDIUM_NAME }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">作业内容</td> <td class="title">作业内容</td>
<td colspan="9">{{ data.info.WORK_CONTENT }}</td> <td colspan="10">{{ data.info.WORK_CONTENT }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">作业单位</td> <td class="title">作业单位</td>
<td colspan="5">{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td> <td colspan="5">{{ data.info.CONFIRM_DEPARTMENT_NAME }}</td>
<td class="title">作业负责人</td> <td class="title">作业负责人</td>
<td colspan="3">{{ data.info.CONFIRM_USER_NAME }}</td> <td colspan="4">{{ data.info.CONFIRM_USER_NAME }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">关联的其他特殊作业及安全作业票编号</td> <td class="title">关联的其他特殊作业及安全作业票编号</td>
<td colspan="9">{{ data.info.SPECIAL_WORK }}</td> <td colspan="10">{{ data.info.SPECIAL_WORK }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">风险辨识结果</td> <td class="title">风险辨识结果</td>
<td colspan="9">{{ data.info.RISK_IDENTIFICATION }}</td> <td colspan="10">{{ data.info.RISK_IDENTIFICATION }}</td>
</tr> </tr>
<tr> <tr>
<td :rowspan="3 + data.gasList.length" class="title">气体分析</td> <td :rowspan="3 + data.gasList.length" class="title">气体分析</td>
@ -50,6 +50,7 @@
<td class="title" rowspan="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>
<td class="title" rowspan="3">分析地点</td>
<td class="title" rowspan="3">分析人</td> <td class="title" rowspan="3">分析人</td>
</tr> </tr>
<tr> <tr>
@ -92,17 +93,18 @@
</td> </td>
<td>{{ item.OXYGEN_CONTENT }}</td> <td>{{ item.OXYGEN_CONTENT }}</td>
<td>{{ item.ANALYZE_TIME }}</td> <td>{{ item.ANALYZE_TIME }}</td>
<td>{{ item.ANALYZE_PART }}</td>
<td>{{ item.ANALYZE_PLACE }}</td> <td>{{ item.ANALYZE_PLACE }}</td>
<td>{{ item.ANALYZE_USER }}</td> <td>{{ item.ANALYZE_USER }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">作业实施时间</td> <td class="title">作业实施时间</td>
<td colspan="9"> <td colspan="10">
{{ data.info.WORK_START_DATE }}{{ data.info.WORK_END_DATE }} {{ data.info.WORK_START_DATE }}{{ data.info.WORK_END_DATE }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="10"> <td colspan="11">
<table> <table>
<tr> <tr>
<td style="width: 80px">序号</td> <td style="width: 80px">序号</td>
@ -168,7 +170,7 @@
</td> </td>
</tr> </tr>
<tr v-if="data.signs.GUARDIAN"> <tr v-if="data.signs.GUARDIAN">
<td colspan="10"> <td colspan="11">
<div>监护人</div> <div>监护人</div>
<div <div
v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME" v-for="(item, index) in data.signs.GUARDIAN[0].SIGN_TIME"
@ -188,7 +190,7 @@
</td> </td>
</tr> </tr>
<tr v-if="data.signs.CONFESS"> <tr v-if="data.signs.CONFESS">
<td colspan="10"> <td colspan="11">
<div> <div>
安全交底人 安全交底人
<div v-if="data.signs.CONFESS[0].IMG_PATH"> <div v-if="data.signs.CONFESS[0].IMG_PATH">
@ -224,7 +226,7 @@
</td> </td>
</tr> </tr>
<tr v-if="data.signs.ACCEPT_CONFESS"> <tr v-if="data.signs.ACCEPT_CONFESS">
<td colspan="10"> <td colspan="11">
<div>接受交底人</div> <div>接受交底人</div>
<div <div
v-for="(item, index) in data.signs.ACCEPT_CONFESS[0].SIGN_TIME" v-for="(item, index) in data.signs.ACCEPT_CONFESS[0].SIGN_TIME"
@ -245,28 +247,8 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr v-if="data.signs.CONFIRM">
<td colspan="10">
<div>作业负责人意见{{ data.signs.CONFIRM[0].DESCR }}</div>
<div
v-for="(item, index) in data.signs.CONFIRM[0].SIGN_TIME"
:key="index"
class="tr"
>
<span>签字</span>
<img
v-viewer
:src="VITE_FILE_URL + data.signs.CONFIRM[0].SIGN_PATH[index]"
alt=""
width="100"
height="100"
/>
<span>{{ data.signs.CONFIRM[0].SIGN_TIME[index] }}</span>
</div>
</td>
</tr>
<tr v-if="data.signs.WORK_USER"> <tr v-if="data.signs.WORK_USER">
<td colspan="10"> <td colspan="11">
<div>作业人</div> <div>作业人</div>
<div <div
v-for="(item, index) in data.signs.WORK_USER[0].SIGN_TIME" v-for="(item, index) in data.signs.WORK_USER[0].SIGN_TIME"
@ -285,9 +267,29 @@
</div> </div>
</td> </td>
</tr> </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>
<tr v-if="data.signs.LEADER"> <tr v-if="data.signs.LEADER">
<td colspan="10"> <td colspan="11">
<div>所在单位意见{{ data.signs.LEADER[0].DESCR }}</div> <div>所在单位意见{{ data.signs.LEADER[0].DESCR }}</div>
<div <div
v-for="(item, index) in data.signs.LEADER[0].SIGN_TIME" v-for="(item, index) in data.signs.LEADER[0].SIGN_TIME"
@ -308,7 +310,7 @@
</tr> </tr>
<tr v-if="data.signs.ACCEPT"> <tr v-if="data.signs.ACCEPT">
<td colspan="10"> <td colspan="11">
<div>完工验收{{ data.signs.ACCEPT[0].DESCR }}</div> <div>完工验收{{ data.signs.ACCEPT[0].DESCR }}</div>
<div <div
v-for="(item, index) in data.signs.ACCEPT[0].SIGN_TIME" v-for="(item, index) in data.signs.ACCEPT[0].SIGN_TIME"

View File

@ -1,6 +1,8 @@
<template> <template>
<div> <div>
<el-divider content-position="left">清单信息</el-divider> <el-divider content-position="left">{{
listType === "1" ? "风险管控清单信息" : "隐患排查清单信息"
}}</el-divider>
<el-descriptions border :column="2"> <el-descriptions border :column="2">
<el-descriptions-item label="清单名称"> <el-descriptions-item label="清单名称">
{{ info.LIST_NAME ? info.LIST_NAME : info.CUSTOM_NAME }} {{ info.LIST_NAME ? info.LIST_NAME : info.CUSTOM_NAME }}

View File

@ -183,7 +183,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="TYPENAME" label="清单类型" width="90" /> <el-table-column prop="TYPENAME" label="清单类型" width="90" />
<el-table-column <el-table-column
v-if="SPECIAL_ENTERPRISES.includes(CORPINFO_ID)" v-if="data.WHETHER_HAZARDS === 1"
label="是否包保责任人任务" label="是否包保责任人任务"
width="90" width="90"
> >
@ -234,20 +234,28 @@ import {
layoutFnGetInventoryType, layoutFnGetInventoryType,
layoutFnGetTroubleshootingCycle, layoutFnGetTroubleshootingCycle,
} from "@/assets/js/data_dictionary.js"; } from "@/assets/js/data_dictionary.js";
import { getRiskStandardStatusList } from "@/request/hazard_investigation.js"; import {
getCorpinfo,
getRiskStandardStatusList,
} from "@/request/hazard_investigation.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { SPECIAL_ENTERPRISES } from "@/assets/js/constant.js";
import { useUserStore } from "@/pinia/user.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { reactive } from "vue";
const data = reactive({
WHETHER_HAZARDS: "",
});
const router = useRouter(); const router = useRouter();
const userStore = useUserStore();
const CORPINFO_ID = userStore.getUserInfo.CORPINFO_ID;
const { list, pagination, searchForm, fnGetData, fnResetPagination } = const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getRiskStandardStatusList); useListData(getRiskStandardStatusList);
const troubleshootingCycleList = await layoutFnGetTroubleshootingCycle(); const troubleshootingCycleList = await layoutFnGetTroubleshootingCycle();
const inventoryLevelList = await layoutFnGetInventoryLevel(); const inventoryLevelList = await layoutFnGetInventoryLevel();
const inventoryTypeList = await layoutFnGetInventoryType(); const inventoryTypeList = await layoutFnGetInventoryType();
const fnGetCorpinfo = async () => {
const resData = await getCorpinfo();
data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS;
};
fnGetCorpinfo();
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
fnGetData({ fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","), DEPTIDS: searchForm.value.DEPTIDS?.join(","),

View File

@ -122,7 +122,7 @@
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column
v-if="SPECIAL_ENTERPRISES.includes(CORPINFO_ID)" v-if="data.WHETHER_HAZARDS === 1"
prop="TASK_TYPE_NAME" prop="TASK_TYPE_NAME"
label="任务类型" label="任务类型"
width="100" width="100"
@ -141,11 +141,17 @@
name === 'risk' name === 'risk'
? router.push({ ? router.push({
path: '/hazard_investigation/delete_inventory_management/view', path: '/hazard_investigation/delete_inventory_management/view',
query: { LISTMANAGER_ID: row.LISTMANAGER_ID }, query: {
LISTMANAGER_ID: row.LISTMANAGER_ID,
WHETHER_HAZARDS: data.WHETHER_HAZARDS,
},
}) })
: router.push({ : router.push({
path: '/hazard_investigation/delete_inventory_management/view_custom', path: '/hazard_investigation/delete_inventory_management/view_custom',
query: { CUSTOM_ID: row.CUSTOM_ID }, query: {
CUSTOM_ID: row.CUSTOM_ID,
WHETHER_HAZARDS: data.WHETHER_HAZARDS,
},
}) })
" "
> >
@ -190,9 +196,8 @@ import {
layoutFnGetInventoryType, layoutFnGetInventoryType,
layoutFnGetTroubleshootingType, layoutFnGetTroubleshootingType,
} from "@/assets/js/data_dictionary.js"; } from "@/assets/js/data_dictionary.js";
import { SPECIAL_ENTERPRISES } from "@/assets/js/constant.js";
import { useUserStore } from "@/pinia/user.js";
import { import {
getCorpinfo,
getDeleteCustomList, getDeleteCustomList,
getDeleteInventoryManagementList, getDeleteInventoryManagementList,
setCustomBatchDelete, setCustomBatchDelete,
@ -201,6 +206,7 @@ import {
setInventoryManagementBatchDelete, setInventoryManagementBatchDelete,
} from "@/request/hazard_investigation.js"; } from "@/request/hazard_investigation.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { reactive } from "vue";
const tabName = defineProps({ const tabName = defineProps({
name: { name: {
@ -209,19 +215,24 @@ const tabName = defineProps({
default: "", default: "",
}, },
}); });
const data = reactive({
WHETHER_HAZARDS: "",
});
const router = useRouter(); const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } = const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
tabName.name === "risk" tabName.name === "risk"
? useListData(getDeleteInventoryManagementList) ? useListData(getDeleteInventoryManagementList)
: useListData(getDeleteCustomList); : useListData(getDeleteCustomList);
const userStore = useUserStore();
const CORPINFO_ID = userStore.getUserInfo.CORPINFO_ID;
const buttonJurisdiction = await useButtonJurisdiction("stoplistmanager"); const buttonJurisdiction = await useButtonJurisdiction("stoplistmanager");
const inventoryTypeList = await layoutFnGetInventoryType(); const inventoryTypeList = await layoutFnGetInventoryType();
const troubleshootingTypeList = await layoutFnGetTroubleshootingType(); const troubleshootingTypeList = await layoutFnGetTroubleshootingType();
const inventoryLevelList = await layoutFnGetInventoryLevel(); const inventoryLevelList = await layoutFnGetInventoryLevel();
const fnGetCorpinfo = async () => {
const resData = await getCorpinfo();
data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS;
};
fnGetCorpinfo();
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
fnGetData({ fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","), DEPTIDS: searchForm.value.DEPTIDS?.join(","),

View File

@ -5,7 +5,10 @@
<el-descriptions-item label="清单名称"> <el-descriptions-item label="清单名称">
{{ info.NAME }} {{ info.NAME }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否包保责任人任务"> <el-descriptions-item
label="是否包保责任人任务"
v-if="WHETHER_HAZARDS === '1'"
>
<span v-if="info.BAO_BAO_TYPE === '0'"></span> <span v-if="info.BAO_BAO_TYPE === '0'"></span>
<span v-if="info.BAO_BAO_TYPE === '1'"></span> <span v-if="info.BAO_BAO_TYPE === '1'"></span>
</el-descriptions-item> </el-descriptions-item>
@ -57,7 +60,7 @@ import { getInventoryManagementView } from "@/request/hazard_investigation.js";
import { ref } from "vue"; import { ref } from "vue";
const route = useRoute(); const route = useRoute();
const { LISTMANAGER_ID } = route.query; const { LISTMANAGER_ID, WHETHER_HAZARDS } = route.query;
const info = ref({}); const info = ref({});
const { list } = useListData(getInventoryManagementView, { const { list } = useListData(getInventoryManagementView, {
otherParams: { LISTMANAGER_ID }, otherParams: { LISTMANAGER_ID },

View File

@ -5,7 +5,10 @@
<el-descriptions-item label="清单名称"> <el-descriptions-item label="清单名称">
{{ info.NAME }} {{ info.NAME }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否包保责任人任务"> <el-descriptions-item
label="是否包保责任人任务"
v-if="WHETHER_HAZARDS === '1'"
>
<span v-if="info.BAO_BAO_TYPE === '0'"></span> <span v-if="info.BAO_BAO_TYPE === '0'"></span>
<span v-if="info.BAO_BAO_TYPE === '1'"></span> <span v-if="info.BAO_BAO_TYPE === '1'"></span>
</el-descriptions-item> </el-descriptions-item>
@ -72,7 +75,7 @@ import { getCustomStopView } from "@/request/hazard_investigation.js";
import { ref } from "vue"; import { ref } from "vue";
const route = useRoute(); const route = useRoute();
const { CUSTOM_ID } = route.query; const { CUSTOM_ID, WHETHER_HAZARDS } = route.query;
const info = ref({}); const info = ref({});
const { list } = useListData(getCustomStopView, { const { list } = useListData(getCustomStopView, {
otherParams: { CUSTOM_ID }, otherParams: { CUSTOM_ID },

View File

@ -7,7 +7,7 @@
<el-form ref="formRef" :rules="rules" :model="form" label-width="240px"> <el-form ref="formRef" :rules="rules" :model="form" label-width="240px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="检查类别" prop="CHECK_CATEGORY"> <el-form-item label="检查类别" prop="CHECK_CATEGORY_NAME">
<layout-select-create <layout-select-create
v-if="type === 'add'" v-if="type === 'add'"
:list="categoryData" :list="categoryData"
@ -22,7 +22,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="检查项目" prop="CHECK_ITEM"> <el-form-item label="检查项目" prop="CHECK_ITEM_NAME">
<layout-select-create <layout-select-create
v-if="type === 'add'" v-if="type === 'add'"
:list="data.itemData" :list="data.itemData"

View File

@ -124,7 +124,12 @@ const fnSubmit = debounce(
RECORDITEM_ID: props.info.RECORDITEM_ID, RECORDITEM_ID: props.info.RECORDITEM_ID,
RISKITEM_ID: props.info.LISTCHECKITEM_ID, RISKITEM_ID: props.info.LISTCHECKITEM_ID,
LONGITUDE: props.longitude, LONGITUDE: props.longitude,
LATITUDE: props.latitude, CHECK_CATEGORY: props.info.CHECK_CATEGORY,
CHECK_CATEGORY_NAME: props.info.CHECK_CATEGORY_NAME,
CHECK_ITEM: props.info.CHECK_ITEM,
CHECK_ITEM_NAME: props.info.CHECK_ITEM_NAME,
CHECK_STANDARD: props.info.CHECK_STANDARD,
REFERENCE_BASIS: props.info.REFERENCE_BASIS,
}; };
const resData = const resData =
props.listType === 1 props.listType === 1

View File

@ -1,6 +1,6 @@
<template> <template>
<layout-card> <layout-card>
<el-divider content-position="left">清单信息</el-divider> <el-divider content-position="left">风险管控清单信息</el-divider>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="清单名称"> <el-descriptions-item label="清单名称">
{{ info.NAME }} {{ info.NAME }}

View File

@ -1,6 +1,6 @@
<template> <template>
<layout-card> <layout-card>
<el-divider content-position="left">清单信息</el-divider> <el-divider content-position="left">隐患排查清单信息</el-divider>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="清单名称"> <el-descriptions-item label="清单名称">
{{ info.NAME }} {{ info.NAME }}

View File

@ -102,6 +102,15 @@
> >
添加监控 添加监控
</el-button> </el-button>
<el-button
v-if="entrance === 'archive' && row.NEXT_STEP_ID === 99"
type="primary"
text
link
@click="fnPreviewVideo(row.VIDEO_PATH)"
>
查看验收视频
</el-button>
<el-button <el-button
type="primary" type="primary"
text text
@ -135,6 +144,11 @@
v-model:visible="data.flowChartDialog.visible" v-model:visible="data.flowChartDialog.visible"
:flow-list="data.flowChartDialog.flowList" :flow-list="data.flowChartDialog.flowList"
/> />
<layout-video
:src="data.videoDialog.src"
v-model:visible="data.videoDialog.visible"
append-to-body
/>
</div> </div>
</template> </template>
@ -149,6 +163,7 @@ import {
getHighWorkList, getHighWorkList,
getTaskSetps, getTaskSetps,
} from "@/request/eight_work.js"; } from "@/request/eight_work.js";
import LayoutVideo from "@/components/video/index.vue";
const props = defineProps({ const props = defineProps({
entrance: { entrance: {
@ -166,6 +181,11 @@ const getStepList = async () => {
{ STEP_NAME: "验收归档", STEP_ID: "99" }, { STEP_NAME: "验收归档", STEP_ID: "99" },
]; ];
}; };
const fnPreviewVideo = (VIDEO_PATH) => {
data.videoDialog.visible = true;
data.videoDialog.src = VIDEO_PATH;
};
getStepList(); getStepList();
const router = useRouter(); const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } = const { list, pagination, searchForm, fnGetData, fnResetPagination } =
@ -177,6 +197,10 @@ const data = reactive({
visible: false, visible: false,
flowList: {}, flowList: {},
}, },
videoDialog: {
visible: false,
src: "",
},
}); });
const fnFlowChart = async (HIGHWORK_ID) => { const fnFlowChart = async (HIGHWORK_ID) => {
const { flowList } = await getHighWorkFlow({ HIGHWORK_ID }); const { flowList } = await getHighWorkFlow({ HIGHWORK_ID });

View File

@ -197,26 +197,6 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr v-if="data.signs.CONFIRM">
<td colspan="10">
<div>作业负责人意见{{ data.signs.CONFIRM[0].DESCR }}</div>
<div
v-for="(item, index) in data.signs.CONFIRM[0].SIGN_TIME"
:key="index"
class="tr"
>
<span>签字</span>
<img
v-viewer
:src="VITE_FILE_URL + data.signs.CONFIRM[0].SIGN_PATH[index]"
alt=""
width="100"
height="100"
/>
<span>{{ data.signs.CONFIRM[0].SIGN_TIME[index] }}</span>
</div>
</td>
</tr>
<tr v-if="data.signs.WORK_USER"> <tr v-if="data.signs.WORK_USER">
<td colspan="10"> <td colspan="10">
<div>作业人</div> <div>作业人</div>
@ -237,6 +217,26 @@
</div> </div>
</td> </td>
</tr> </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.LEADER"> <tr v-if="data.signs.LEADER">
<td colspan="10"> <td colspan="10">

View File

@ -108,6 +108,15 @@
> >
流程图 流程图
</el-button> </el-button>
<el-button
v-if="entrance === 'archive' && row.NEXT_STEP_ID === 99"
type="primary"
text
link
@click="fnPreviewVideo(row.VIDEO_PATH)"
>
查看验收视频
</el-button>
<el-button <el-button
type="primary" type="primary"
text text
@ -132,6 +141,11 @@
v-model:visible="data.flowChartDialog.visible" v-model:visible="data.flowChartDialog.visible"
:flow-list="data.flowChartDialog.flowList" :flow-list="data.flowChartDialog.flowList"
/> />
<layout-video
:src="data.videoDialog.src"
v-model:visible="data.videoDialog.visible"
append-to-body
/>
</div> </div>
</template> </template>
@ -141,6 +155,7 @@ import { useRouter } from "vue-router";
import useListData from "@/assets/js/useListData.js"; import useListData from "@/assets/js/useListData.js";
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import FlowChart from "./components/flow_chart.vue"; import FlowChart from "./components/flow_chart.vue";
import LayoutVideo from "@/components/video/index.vue";
import { import {
getHotWorkList, getHotWorkList,
getTaskSetps, getTaskSetps,
@ -166,6 +181,11 @@ const getStepList = async () => {
}; };
getStepList(); getStepList();
const fnPreviewVideo = (VIDEO_PATH) => {
data.videoDialog.visible = true;
data.videoDialog.src = VIDEO_PATH;
};
const router = useRouter(); const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } = const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getHotWorkList, { useListData(getHotWorkList, {
@ -176,6 +196,10 @@ const data = reactive({
visible: false, visible: false,
flowList: {}, flowList: {},
}, },
videoDialog: {
visible: false,
src: "",
},
}); });
const fnFlowChart = async (HOTWORK_ID) => { const fnFlowChart = async (HOTWORK_ID) => {
const { flowList } = await getHotWorkFlow({ HOTWORK_ID }); const { flowList } = await getHotWorkFlow({ HOTWORK_ID });

View File

@ -42,7 +42,7 @@
<td class="title">气体取样分析时间</td> <td class="title">气体取样分析时间</td>
<td>{{ item.ANALYZE_TIME }}</td> <td>{{ item.ANALYZE_TIME }}</td>
<td class="title">代表性气体</td> <td class="title">代表性气体</td>
<td>{{ item.ANALYZE_PLACE }}</td> <td>{{ item.ANALYZE_GAS }}</td>
</tr> </tr>
<tr> <tr>
<td class="title">分析结果/%</td> <td class="title">分析结果/%</td>
@ -50,6 +50,10 @@
<td class="title">分析人</td> <td class="title">分析人</td>
<td>{{ item.ANALYZE_USER }}</td> <td>{{ item.ANALYZE_USER }}</td>
</tr> </tr>
<tr v-if="item.ANALYZE_PLACE">
<td class="title">分析地点</td>
<td colspan="3">{{ item.ANALYZE_PLACE }}</td>
</tr>
</template> </template>
<tr> <tr>
<td class="title">关联的其他特殊作业及安全作业票编号</td> <td class="title">关联的其他特殊作业及安全作业票编号</td>