330 lines
14 KiB
Vue
330 lines
14 KiB
Vue
|
<template>
|
|||
|
<view>
|
|||
|
<u-cell-group>
|
|||
|
<u-cell title="隐患描述" :label="info.HIDDENDESCR"/>
|
|||
|
<u-cell title="隐患来源" :value="HIDDEN_SOURCE[info.SOURCE]"/>
|
|||
|
<block v-if="info.SOURCE === '2'">
|
|||
|
<u-cell title="风险点(单元)" :value="info.RISK_UNIT"/>
|
|||
|
<u-cell title="辨识部位" :value="info.IDENTIFICATION"/>
|
|||
|
<u-cell title="存在风险" :value="info.RISK_DESCR"/>
|
|||
|
<u-cell title="风险分级" :value="info.LEVEL"/>
|
|||
|
<u-cell title="检查内容" :value="info.CHECK_CONTENT"/>
|
|||
|
</block>
|
|||
|
<u-cell title="隐患上报位置(经纬度)">
|
|||
|
<template #label>
|
|||
|
<view v-if="info.LONGITUDE && info.LATITUDE">
|
|||
|
<view>经度:{{ info.LONGITUDE }}</view>
|
|||
|
<view>纬度:{{ info.LATITUDE }}</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
<u-cell title="隐患部位" :value="info.hregionName || info.HIDDENPART"/>
|
|||
|
<u-cell title="隐患位置描述" :value="info.POSITIONDESC"/>
|
|||
|
<u-cell title="隐患类型" :value="info.HIDDENTYPENAME"/>
|
|||
|
<u-cell title="隐患级别" :value="info.HIDDENLEVELNAME"/>
|
|||
|
<u-cell title="隐患发现人" :value="hiddenFindPeople.map((item) => item.NAME).join('、')"/>
|
|||
|
<u-cell title="隐患发现时间" :value="info.DISCOVERYTIME"/>
|
|||
|
<block v-if="info.RECTIFICATIONTYPE">
|
|||
|
<u-cell title="整改类型">
|
|||
|
<template #value>
|
|||
|
<text v-if="info.RECTIFICATIONTYPE === '1'">立即整改</text>
|
|||
|
<text v-else-if="info.RECTIFICATIONTYPE === '2'">限期整改</text>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
<u-cell title="整改负责部门" :value="info.editDeptName"/>
|
|||
|
<u-cell title="整改负责人" :value="info.editUserName"/>
|
|||
|
<block v-if="info.RECTIFICATIONTYPE === '2'">
|
|||
|
<u-cell title="整改期限" :value="info.editRectificationDeadline"/>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
<u-cell title="是否相关方">
|
|||
|
<template #value>
|
|||
|
<text v-if="info.ISRELEVANT === '1'">是</text>
|
|||
|
<text v-else-if="info.ISRELEVANT === '2'">否</text>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
<app-preview-image :files="hImgs" label="隐患照片"/>
|
|||
|
<block v-if="hiddenVideo.length > 0">
|
|||
|
<u-cell title="隐患视频">
|
|||
|
<template #value>
|
|||
|
<u-icon
|
|||
|
name="play-circle-fill"
|
|||
|
size="24"
|
|||
|
@click="fnPreviewVideo(hiddenVideo[0].FILEPATH)"
|
|||
|
/>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
</block>
|
|||
|
<view v-for="(item, index) in hiddenExamineList" :key="index">
|
|||
|
<block v-if="item.TYPE === 4">
|
|||
|
<u-divider text-position="left" text="隐患确认"></u-divider>
|
|||
|
<u-cell title="隐患级别" :value="item.editLevelName"/>
|
|||
|
<u-cell title="整改负责人部门" :value="item.editDeptName"/>
|
|||
|
<u-cell title="整改负责人" :value="item.editUserName"/>
|
|||
|
<u-cell title="整改完成期限" :value="item.spare3"/>
|
|||
|
<u-cell title="隐患确认人" :value="info.conUserName"/>
|
|||
|
<u-cell title="隐患确认时间" :value="info.CONFIRM_TIME"/>
|
|||
|
</block>
|
|||
|
<block v-if="item.TYPE === 6 && item.spare5 !== '1'">
|
|||
|
<u-cell title="隐患状态" value="确认打回"/>
|
|||
|
<u-cell title="打回原因" :label="item.REPULSE_CAUSE"/>
|
|||
|
<u-cell title="打回时间" :value="item.CREATTIME"/>
|
|||
|
</block>
|
|||
|
<block v-if="item.TYPE === 2">
|
|||
|
<u-divider text-position="left" text="延期信息"></u-divider>
|
|||
|
<u-cell title="申请延期日期" :value="item.CREATTIME"/>
|
|||
|
<u-cell title="延期日期" :value="formatDate(item.DELAY_TIME)"/>
|
|||
|
<u-cell title="审核人" :value="info.conUserName"/>
|
|||
|
<u-cell title="处置方案" :value="item.DISPOSAL_PLAN"/>
|
|||
|
<block v-if="item.DISPOSAL_FILE">
|
|||
|
<u-cell title="处置方案附件">
|
|||
|
<template #value>
|
|||
|
<u-button
|
|||
|
type="primary"
|
|||
|
size="mini"
|
|||
|
shape="circle"
|
|||
|
:custom-style="{ width: 'auto' }"
|
|||
|
text="下载"
|
|||
|
@click="fnPreviewFile(item.DISPOSAL_FILE)"
|
|||
|
/>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
</block>
|
|||
|
<u-cell title="延期审核状态">
|
|||
|
<template #value>
|
|||
|
<text v-if="item.STATE === -1">待审核</text>
|
|||
|
<text v-if="item.STATE === 1">通过</text>
|
|||
|
<text v-if="item.STATE === 2">未通过</text>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
<block v-if="item.STATE !== -1">
|
|||
|
<u-cell title="审核时间" :value="item.OPERATTIME"/>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
<block v-if="item.TYPE === 1">
|
|||
|
<u-divider text-position="left" text="特殊处理审核信息"></u-divider>
|
|||
|
<u-cell title="无法整改原因" :label="item.EXAMINE"/>
|
|||
|
<u-cell title="特殊处置审核状态">
|
|||
|
<template #value>
|
|||
|
<!-- 是否通过审核 ,1未通过。2通过 -1(初始)16隐患确认打回 -->
|
|||
|
<text v-if="item.STATE === -1">待审核</text>
|
|||
|
<text v-if="item.STATE === 1">不通过</text>
|
|||
|
<text v-if="item.STATE === 2">通过</text>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
<block v-if="item.STATE === 1">
|
|||
|
<u-cell title="处置方案" :value="item.DISPOSAL_PLAN"/>
|
|||
|
<block v-if="item.DISPOSAL_FILE">
|
|||
|
<u-cell title="处置方案附件">
|
|||
|
<template #value>
|
|||
|
<u-button
|
|||
|
type="primary"
|
|||
|
size="mini"
|
|||
|
shape="circle"
|
|||
|
:custom-style="{ width: 'auto' }"
|
|||
|
text="下载"
|
|||
|
@click="fnPreviewFile(item.DISPOSAL_FILE)"
|
|||
|
/>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
<block v-if="item.STATE !== -1">
|
|||
|
<u-cell title="审核时间" :value="item.OPERATTIME"/>
|
|||
|
<u-cell title="审核人" :value="info.conUserName"/>
|
|||
|
</block>
|
|||
|
<block v-if="item.STATE === 2">
|
|||
|
<u-cell title="是否更换整改负责人" :value="item.spare1 === '1' ? '是' : '否'"/>
|
|||
|
<block v-if="item.spare1 === '1'">
|
|||
|
<u-cell title="整改负责人" :value="item.editUserName"/>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
<block v-if="item.TYPE === 3">
|
|||
|
<u-divider text-position="left" text="验收打回信息"></u-divider>
|
|||
|
<u-cell title="验收打回意见" :label="item.EXAMINE"/>
|
|||
|
<u-cell title="验收人" :value="item.CREATORNAME"/>
|
|||
|
<u-cell title="验收时间" :value="item.CREATTIME"/>
|
|||
|
</block>
|
|||
|
</view>
|
|||
|
<block v-if="info.REJECTREASON">
|
|||
|
<u-divider text-position="left" text="隐患复查"></u-divider>
|
|||
|
<u-cell title="复查驳回原因" :label="info.REJECTREASON"/>
|
|||
|
</block>
|
|||
|
<block v-if="info.STATE === '2' || info.STATE === '4' || (info.STATE === '-2' && info.RECTIFICATIONTYPE === '1') || info.STATE === '10'">
|
|||
|
<u-divider text-position="left" text="整改信息"></u-divider>
|
|||
|
<u-cell title="整改描述" :label="info.RECTIFYDESCR"/>
|
|||
|
<u-cell title="整改部门" :value="info.RECTIFICATIONDEPTNAME"/>
|
|||
|
<u-cell title="整改人" :value="info.RECTIFICATIONORNAME"/>
|
|||
|
<u-cell title="整改时间" :value="info.RECTIFICATIONTIME"/>
|
|||
|
<u-cell title="投入资金" :value="info.INVESTMENT_FUNDS === undefined ? '' : info.INVESTMENT_FUNDS + '元'"/>
|
|||
|
<app-preview-image :files="rImgs" label="整改后图片"/>
|
|||
|
<u-cell title="整改方案">
|
|||
|
<template #value>
|
|||
|
<text v-if="info.HAVESCHEME === '0'">无</text>
|
|||
|
<text v-else-if="info.HAVESCHEME === '1'">有</text>
|
|||
|
</template>
|
|||
|
</u-cell>
|
|||
|
<block v-if="info.HAVESCHEME === '1'">
|
|||
|
<u-cell title="排查日期" :value="rectificationPlanInfo.SCREENINGDATE"/>
|
|||
|
<block v-if="rectificationPlanInfo.LISTNAME">
|
|||
|
<u-cell title="隐患清单" :value="rectificationPlanInfo.LISTNAME"/>
|
|||
|
</block>
|
|||
|
<u-cell title="治理标准要求" :value="rectificationPlanInfo.GOVERNSTANDARDS"/>
|
|||
|
<u-cell title="治理方法" :value="rectificationPlanInfo.GOVERNMETHOD"/>
|
|||
|
<u-cell title="经费和物资的落实" :value="rectificationPlanInfo.EXPENDITURE"/>
|
|||
|
<u-cell title="负责治理人员" :value="rectificationPlanInfo.PRINCIPAL"/>
|
|||
|
<u-cell title="工时安排" :value="rectificationPlanInfo.PROGRAMMING"/>
|
|||
|
<u-cell title="时限要求" :value="rectificationPlanInfo.TIMELIMITFOR"/>
|
|||
|
<u-cell title="工作要求" :value="rectificationPlanInfo.JOBREQUIREMENT"/>
|
|||
|
<u-cell title="其他事项" :value="rectificationPlanInfo.OTHERBUSINESS"/>
|
|||
|
<app-preview-image :files="sImgs" label="方案图片"/>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
<block v-if="info.STATE === '4'">
|
|||
|
<u-divider text-position="left" text="验收信息"></u-divider>
|
|||
|
<block v-if="info.RECTIFICATIONTYPE === '1'">
|
|||
|
<u-cell title="验收人" :value="info.CHECKORNAME" />
|
|||
|
</block>
|
|||
|
<block v-else>
|
|||
|
<view v-for="(item, index) in checkList" :key="index">
|
|||
|
<u-cell title="验收描述" :label="item.CHECKDESCR" />
|
|||
|
<u-cell title="是否合格" :value="item.STATUS === 1 ? '是' : '否'" />
|
|||
|
<u-cell title="验收部门" :value="item.CHECKDEPTNAME" />
|
|||
|
<u-cell title="验收人" :value="item.CHECKORNAME" />
|
|||
|
<u-cell title="验收时间" :value="item.CHECK_TIME" />
|
|||
|
<app-preview-image :files="item.cImgs" label="验收图片" />
|
|||
|
</view>
|
|||
|
</block>
|
|||
|
</block>
|
|||
|
</u-cell-group>
|
|||
|
<u-modal
|
|||
|
:show="videoDialog.visible"
|
|||
|
title="视频预览"
|
|||
|
:show-confirm-button="false"
|
|||
|
show-cancel-button
|
|||
|
cancel-text="关闭"
|
|||
|
@cancel="fnCloseVideoDialog"
|
|||
|
>
|
|||
|
<video
|
|||
|
v-if="videoDialog.src"
|
|||
|
:src="videoDialog.src"
|
|||
|
style="width: 100%; height: 200px; margin: 10px"
|
|||
|
autoplay
|
|||
|
/>
|
|||
|
</u-modal>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import AppPreviewImage from '@/components/preview_image/index.vue'
|
|||
|
import dayjs from "dayjs";
|
|||
|
import {getHiddenInfo} from "@/api/api";
|
|||
|
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
AppPreviewImage,
|
|||
|
},
|
|||
|
props: {
|
|||
|
hiddenId: {
|
|||
|
type: String,
|
|||
|
required: true,
|
|||
|
},
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
HIDDEN_SOURCE: {
|
|||
|
1: "隐患快报",
|
|||
|
2: "清单排查",
|
|||
|
3: "清单排查",
|
|||
|
4: "安全环保检查(监管端)",
|
|||
|
5: "安全环保检查(企业端)",
|
|||
|
6: "消防检查",
|
|||
|
},
|
|||
|
info: {},
|
|||
|
hiddenFindPeople: [],
|
|||
|
hImgs: [],
|
|||
|
hiddenVideo: [],
|
|||
|
hiddenExamineList: [],
|
|||
|
rImgs: [],
|
|||
|
rectificationPlanInfo: {},
|
|||
|
sImgs: [],
|
|||
|
checkList: [],
|
|||
|
videoDialog: {
|
|||
|
visible: false,
|
|||
|
src: ''
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
this.fnGetData()
|
|||
|
},
|
|||
|
methods: {
|
|||
|
async fnGetData(){
|
|||
|
if (!this.hiddenId) return;
|
|||
|
const filePath = this.$filePath
|
|||
|
const resData = await getHiddenInfo({
|
|||
|
HIDDEN_ID: this.hiddenId,
|
|||
|
postMethod: 'application/json',
|
|||
|
});
|
|||
|
for (let i = 0; i < resData.hImgs.length; i++) {
|
|||
|
resData.hImgs[i].FILEPATH = filePath + resData.hImgs[i].FILEPATH;
|
|||
|
}
|
|||
|
for (let i = 0; i < resData.rImgs.length; i++) {
|
|||
|
resData.rImgs[i].FILEPATH = filePath + resData.rImgs[i].FILEPATH;
|
|||
|
}
|
|||
|
for (let i = 0; i < resData.sImgs.length; i++) {
|
|||
|
resData.sImgs[i].FILEPATH = filePath + resData.sImgs[i].FILEPATH;
|
|||
|
}
|
|||
|
for (let i = 0; i < resData.hiddenVideo.length; i++) {
|
|||
|
resData.hiddenVideo[i].FILEPATH =
|
|||
|
filePath + resData.hiddenVideo[i].FILEPATH;
|
|||
|
}
|
|||
|
for (let i = 0; i < resData.checkList.length; i++) {
|
|||
|
for (let j = 0; j < resData.checkList[i].cImgs.length; j++) {
|
|||
|
resData.checkList[i].cImgs[j].FILEPATH =
|
|||
|
filePath + resData.checkList[i].cImgs[j].FILEPATH;
|
|||
|
}
|
|||
|
}
|
|||
|
this.info = resData.pd;
|
|||
|
this.rectificationPlanInfo = resData.hs;
|
|||
|
this.hiddenFindPeople = resData.hiddenFindPeople;
|
|||
|
this.hImgs = resData.hImgs;
|
|||
|
this.rImgs = resData.rImgs;
|
|||
|
this.sImgs = resData.sImgs;
|
|||
|
this.checkList = resData.checkList;
|
|||
|
this.hiddenVideo = resData.hiddenVideo;
|
|||
|
this.hiddenExamineList = resData.hiddenExa;
|
|||
|
this.$emit("throw-basic-info", resData)
|
|||
|
},
|
|||
|
formatDate(date) {
|
|||
|
return dayjs(date).format('YYYY-MM-DD')
|
|||
|
},
|
|||
|
fnPreviewVideo(src) {
|
|||
|
this.videoDialog.visible = true;
|
|||
|
this.videoDialog.src = src;
|
|||
|
},
|
|||
|
fnCloseVideoDialog() {
|
|||
|
this.videoDialog.visible = false;
|
|||
|
this.videoDialog.src = '';
|
|||
|
},
|
|||
|
fnPreviewFile(src) {
|
|||
|
uni.downloadFile({
|
|||
|
url: this.$filePath + src,
|
|||
|
success: (res) => {
|
|||
|
uni.openDocument({
|
|||
|
filePath: res.tempFilePath,
|
|||
|
});
|
|||
|
},
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped lang="scss">
|
|||
|
.ml-10:first-child {
|
|||
|
margin-left: 0;
|
|||
|
}
|
|||
|
</style>
|