查看验收视频

pull/1/head
chenxinying 2024-02-06 15:39:39 +08:00
parent 91f0d30d74
commit 6df7f671c4
6 changed files with 134 additions and 56 deletions

View File

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

View File

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

View File

@ -102,6 +102,15 @@
>
添加监控
</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
type="primary"
text
@ -135,6 +144,11 @@
v-model:visible="data.flowChartDialog.visible"
:flow-list="data.flowChartDialog.flowList"
/>
<layout-video
:src="data.videoDialog.src"
v-model:visible="data.videoDialog.visible"
append-to-body
/>
</div>
</template>
@ -149,6 +163,7 @@ import {
getHighWorkList,
getTaskSetps,
} from "@/request/eight_work.js";
import LayoutVideo from "@/components/video/index.vue";
const props = defineProps({
entrance: {
@ -166,6 +181,11 @@ const getStepList = async () => {
{ 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 } =
@ -177,6 +197,10 @@ const data = reactive({
visible: false,
flowList: {},
},
videoDialog: {
visible: false,
src: "",
},
});
const fnFlowChart = async (HIGHWORK_ID) => {
const { flowList } = await getHighWorkFlow({ HIGHWORK_ID });

View File

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

View File

@ -108,6 +108,15 @@
>
流程图
</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
type="primary"
text
@ -132,6 +141,11 @@
v-model:visible="data.flowChartDialog.visible"
:flow-list="data.flowChartDialog.flowList"
/>
<layout-video
:src="data.videoDialog.src"
v-model:visible="data.videoDialog.visible"
append-to-body
/>
</div>
</template>
@ -141,6 +155,7 @@ import { useRouter } from "vue-router";
import useListData from "@/assets/js/useListData.js";
import { reactive, ref } from "vue";
import FlowChart from "./components/flow_chart.vue";
import LayoutVideo from "@/components/video/index.vue";
import {
getHotWorkList,
getTaskSetps,
@ -166,6 +181,11 @@ const getStepList = async () => {
};
getStepList();
const fnPreviewVideo = (VIDEO_PATH) => {
data.videoDialog.visible = true;
data.videoDialog.src = VIDEO_PATH;
};
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getHotWorkList, {
@ -176,6 +196,10 @@ const data = reactive({
visible: false,
flowList: {},
},
videoDialog: {
visible: false,
src: "",
},
});
const fnFlowChart = async (HOTWORK_ID) => {
const { flowList } = await getHotWorkFlow({ HOTWORK_ID });

View File

@ -42,7 +42,7 @@
<td class="title">气体取样分析时间</td>
<td>{{ item.ANALYZE_TIME }}</td>
<td class="title">代表性气体</td>
<td>{{ item.ANALYZE_PLACE }}</td>
<td>{{ item.ANALYZE_GAS }}</td>
</tr>
<tr>
<td class="title">分析结果/%</td>
@ -50,6 +50,10 @@
<td class="title">分析人</td>
<td>{{ item.ANALYZE_USER }}</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>