<template> <div> <el-divider content-position="left">隐患信息</el-divider> <el-descriptions :column="1" border> <el-descriptions-item label="隐患来源"> <span v-if="data.info.SOURCE === '1'"> 隐患快报 </span> <span v-else-if="data.info.SOURCE === '2'"> 隐患排查 </span> <span v-else-if="data.info.SOURCE === '3'"> 隐患排查 </span> <span v-else-if="data.info.SOURCE === '4'"> 安全环保检查 </span> <span v-else-if="data.info.SOURCE === '5'"> 安全环保检查 </span> </el-descriptions-item> <template v-if="data.info.SOURCE === '2' && listType === '1'"> <el-descriptions-item label="风险点(单元)"> {{ data.info.RISK_UNIT }} </el-descriptions-item> <el-descriptions-item label="辨识部位"> {{ data.info.IDENTIFICATION }} </el-descriptions-item> <el-descriptions-item label="存在风险"> {{ data.info.RISK_DESCR }} </el-descriptions-item> <el-descriptions-item label="风险分级"> {{ data.info.LEVEL }} </el-descriptions-item> <el-descriptions-item label="检查内容"> {{ data.info.CHECK_CONTENT }} </el-descriptions-item> </template> <template v-if="data.info.SOURCE === '2' && listType === '2'"> <el-descriptions-item label="检查类别"> {{ data.info.CHECK_CATEGORY_NAME }} </el-descriptions-item> <el-descriptions-item label="检查项目"> {{ data.info.CHECK_ITEM_NAME }} </el-descriptions-item> <el-descriptions-item label="检查内容"> {{ data.info.CHECK_CONTENT }} </el-descriptions-item> <el-descriptions-item label="检查标准"> {{ data.info.CHECK_STANDARD }} </el-descriptions-item> <el-descriptions-item label="参考依据"> {{ data.info.REFERENCE_BASIS }} </el-descriptions-item> </template> <el-descriptions-item label="隐患级别"> {{ data.info.HIDDENLEVELNAME }} </el-descriptions-item> <el-descriptions-item label="隐患类型"> {{ data.info.HIDDENTYPE_NAME }} </el-descriptions-item> <el-descriptions-item label="隐患状态"> <span v-if="data.info.STATE === '1'"> 未整改 </span> <span v-else-if="data.info.STATE === '3'"> 已整改 </span> <span v-else-if="data.info.STATE === '4'"> 已验收 </span> <span v-else-if="data.info.STATE === '-1'"> 已超期 </span> <span v-else-if="data.info.STATE === '10'"> 验收打回 </span> <span v-else-if="data.info.STATE === '100'"> 暂存 </span> <span v-else-if="data.info.STATE === '101'"> 待指派 </span> <span v-else-if="data.info.STATE === '102'"> 指派中 </span> </el-descriptions-item> <el-descriptions-item label="隐患描述"> {{ data.info.HIDDENDESCR }} </el-descriptions-item> <el-descriptions-item label="隐患部位"> {{ data.info.HIDDENPART }} </el-descriptions-item> <el-descriptions-item label="隐患发现部门"> {{ data.info.HIDDENFINDDEPTNAME }} </el-descriptions-item> <el-descriptions-item label="发现人"> {{ data.info.CREATORNAME }} </el-descriptions-item> <el-descriptions-item label="发现时间"> {{ data.info.CREATTIME }} </el-descriptions-item> <el-descriptions-item label="整改类型"> <span v-if="data.info.RECTIFICATIONTYPE === '1'"> 立即整改 </span> <span v-else-if="data.info.RECTIFICATIONTYPE === '2'"> 限期整改 </span> </el-descriptions-item> <el-descriptions-item label="整改期限" v-if="data.info.RECTIFICATIONTYPE === '2'" > {{ data.info.RECTIFICATIONDEADLINE }} </el-descriptions-item> <el-descriptions-item label="隐患类别" v-if="data.info.HIDDEN_CATEGORY"> {{ data.info.HIDDEN_CATEGORY_NAME }} </el-descriptions-item> <el-descriptions-item label="隐患图片"> <img v-viewer v-for="item in data.hImgs" :key="item.IMGFILES_ID" :src="VITE_FILE_URL + item.FILEPATH" alt="" width="100" height="100" class="ml-10" /> </el-descriptions-item> <el-descriptions-item label="隐患视频" v-if="data.videoDialog.src" class-name="print_no_use" label-class-name="print_no_use" > <el-icon size="30px" @click="data.videoDialog.visible = true" style="cursor: pointer" > <video-play /> </el-icon> <layout-video v-model:visible="data.videoDialog.visible" :src="data.videoDialog.src" /> </el-descriptions-item> </el-descriptions> <template v-if="data.info.RECTIFYDESCR"> <el-divider content-position="left">整改信息</el-divider> <el-descriptions :column="1" border> <el-descriptions-item label="整改描述"> {{ data.info.RECTIFYDESCR }} </el-descriptions-item> <el-descriptions-item label="整改部门"> {{ data.info.RECTIFICATIONDEPTNAME }} </el-descriptions-item> <el-descriptions-item label="整改人"> {{ data.info.RECTIFICATIONORNAME }} </el-descriptions-item> <el-descriptions-item label="整改时间"> {{ data.info.RECTIFICATIONTIME }} </el-descriptions-item> <el-descriptions-item label="整改后图片"> <img v-viewer v-for="item in data.rImgs" :key="item.IMGFILES_ID" :src="VITE_FILE_URL + item.FILEPATH" alt="" width="100" height="100" class="ml-10" /> </el-descriptions-item> <el-descriptions-item label="整改计划"> {{ data.info.HAVEPLAN === "0" ? "无" : "" }} {{ data.info.HAVEPLAN === "1" ? "有" : "" }} </el-descriptions-item> <el-descriptions-item label="计划图片" v-if="data.info.HAVEPLAN === '1'" > <img v-viewer v-for="item in data.pImgs" :key="item.IMGFILES_ID" :src="VITE_FILE_URL + item.FILEPATH" alt="" width="100" height="100" class="ml-10" /> </el-descriptions-item> <el-descriptions-item label="整改方案" v-if="data.info.RECTIFICATIONTYPE === '2'" > {{ data.info.HAVESCHEME === "0" ? "无" : "" }} {{ data.info.HAVESCHEME === "1" ? "有" : "" }} </el-descriptions-item> <template v-if="data.hs && data.info.HAVESCHEME === '1'"> <el-descriptions-item label="排查日期"> {{ data.hs.SCREENINGDATE }} </el-descriptions-item> <el-descriptions-item label="隐患清单"> {{ data.hs.LISTNAME }} </el-descriptions-item> <el-descriptions-item label="治理标准要求"> {{ data.hs.GOVERNSTANDARDS }} </el-descriptions-item> <el-descriptions-item label="治理方法"> {{ data.hs.GOVERNMETHOD }} </el-descriptions-item> <el-descriptions-item label="经费和物资的落实"> {{ data.hs.EXPENDITURE }} </el-descriptions-item> <el-descriptions-item label="负责治理人员"> {{ data.hs.PRINCIPAL }} </el-descriptions-item> <el-descriptions-item label="工时安排"> {{ data.hs.PROGRAMMING }} </el-descriptions-item> <el-descriptions-item label="时限要求"> {{ data.hs.TIMELIMITFOR }} </el-descriptions-item> <el-descriptions-item label="工作要求"> {{ data.hs.JOBREQUIREMENT }} </el-descriptions-item> <el-descriptions-item label="其他事项"> {{ data.hs.OTHERBUSINESS }} </el-descriptions-item> <el-descriptions-item label="方案图片"> <img v-viewer v-for="item in data.sImgs" :key="item.IMGFILES_ID" :src="VITE_FILE_URL + item.FILEPATH" alt="" width="100" height="100" class="ml-10" /> </el-descriptions-item> </template> </el-descriptions> </template> <template v-if="data.checkList.length > 0"> <el-divider content-position="left">验收信息</el-divider> <template v-for="(item, index) in data.checkList" :key="index"> <el-descriptions :column="1" border class="mt-10"> <el-descriptions-item label="验收描述"> {{ item.CHECKDESCR }} </el-descriptions-item> <el-descriptions-item label="是否合格"> <span v-if="item.STATUS === '1'"> 是 </span> <span v-else-if="item.STATUS === '0'"> 否 </span> </el-descriptions-item> <el-descriptions-item label="验收部门"> {{ item.CHECKDEPTNAME }} </el-descriptions-item> <el-descriptions-item label="验收人"> {{ item.CHECKORNAME }} </el-descriptions-item> <el-descriptions-item label="验收时间"> {{ item.CHECK_TIME }} </el-descriptions-item> <el-descriptions-item label="验收图片"> <img v-viewer v-for="item1 in item.cImgs" :key="item1.IMGFILES_ID" :src="VITE_FILE_URL + item1.FILEPATH" alt="" width="100" height="100" class="ml-10" /> </el-descriptions-item> </el-descriptions> </template> </template> </div> </template> <script setup> import { reactive, watchEffect } from "vue"; import { getFileSuffix } from "@/assets/js/utils.js"; import { VideoPlay } from "@element-plus/icons-vue"; import LayoutVideo from "@/components/video/index.vue"; import { getHiddenDangerView, getCustomHiddenDangerView, } from "@/request/hazard_investigation.js"; defineOptions({ name: "LayoutHiddenView", }); const VITE_FILE_URL = import.meta.env.VITE_FILE_URL; const props = defineProps({ hiddenId: { type: String, required: true, default: "", }, listType: { type: String, default: "1", }, }); const emits = defineEmits(["throw-data"]); const data = reactive({ info: {}, hs: {}, hImgs: [], rImgs: [], sImgs: [], pImgs: [], checkList: [], videoDialog: { src: "", visible: false, }, }); const fnGetData = async () => { const resData = props.listType === "2" ? await getCustomHiddenDangerView({ HIDDEN_ID: props.hiddenId }) : await getHiddenDangerView({ HIDDEN_ID: props.hiddenId, }); data.info = resData.pd; data.hs = resData.hs; data.checkList = resData.checkList; data.hImgs = []; for (let i = 0; i < resData.hImgs.length; i++) { if (getFileSuffix(resData.hImgs[i].FILEPATH) === "mp4") { data.videoDialog.src = resData.hImgs[i].FILEPATH; } else { data.hImgs.push(resData.hImgs[i]); } } data.rImgs = resData.rImgs; data.sImgs = resData.sImgs; data.pImgs = resData.pImgs; emits("throw-data", data.info); }; watchEffect(() => { if (props.hiddenId) fnGetData(); }); </script> <style scoped lang="scss"></style>