463 lines
13 KiB
Vue
463 lines
13 KiB
Vue
|
<template>
|
||
|
<u-cell-group>
|
||
|
<u-cell :title="data.info.HIDDENDESCR" />
|
||
|
<u-cell title="隐患来源" :value="hiddenSource[data.info.SOURCE]" />
|
||
|
|
||
|
<block v-if="data.info.SOURCE === '2'">
|
||
|
<u-cell title="风险点(单元)" :value="data.info.RISK_UNIT" />
|
||
|
<u-cell title="辨识部位" :value="data.info.IDENTIFICATION" />
|
||
|
<u-cell title="存在风险" :value="data.info.RISK_DESCR" />
|
||
|
<u-cell title="风险分级" :value="data.info.LEVEL" />
|
||
|
<u-cell title="检查内容" :value="data.info.CHECK_CONTENT" />
|
||
|
</block>
|
||
|
|
||
|
<u-cell title="隐患上报位置(经纬度)">
|
||
|
<template #label>
|
||
|
<view v-if="data.info.LONGITUDE && data.info.LATITUDE">
|
||
|
<view>经度:{{ data.info.LONGITUDE }}</view>
|
||
|
<view>纬度:{{ data.info.LATITUDE }}</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
|
||
|
<u-cell
|
||
|
title="隐患部位"
|
||
|
:value="data.info.hregionName || data.info.HIDDENPART"
|
||
|
/>
|
||
|
|
||
|
<u-cell title="隐患位置描述" :value="data.info.POSITIONDESC" />
|
||
|
<u-cell title="隐患类型" :value="data.info.HIDDENTYPENAME" />
|
||
|
<u-cell title="隐患级别" :value="data.info.HIDDENLEVELNAME" />
|
||
|
|
||
|
<u-cell
|
||
|
title="隐患发现人"
|
||
|
:value="data.hiddenFindPeople.map((item) => item.NAME).join('、')"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="隐患发现时间"
|
||
|
:value="fnFormatTime(data.info.DISCOVERYTIME)"
|
||
|
/>
|
||
|
|
||
|
<u-cell title="整改类型">
|
||
|
<template #value>
|
||
|
<text v-if="data.info.RECTIFICATIONTYPE === '1'">立即整改</text>
|
||
|
<text v-else-if="data.info.RECTIFICATIONTYPE === '2'">限期整改</text>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
|
||
|
<u-cell title="整改负责部门" :value="data.info.editDeptName" />
|
||
|
<u-cell title="整改负责人" :value="data.info.editUserName" />
|
||
|
|
||
|
<block v-if="data.info.RECTIFICATIONTYPE === '2'">
|
||
|
<u-cell title="整改期限" :value="data.info.editRectificationDeadline" />
|
||
|
</block>
|
||
|
|
||
|
<u-cell title="是否相关方">
|
||
|
<template #value>
|
||
|
<text v-if="data.info.ISRELEVANT === '1'">是</text>
|
||
|
<text v-else-if="data.info.ISRELEVANT === '2'">否</text>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
|
||
|
<u-cell title="隐患照片">
|
||
|
<template #label>
|
||
|
<view class="mt-10 flex-start">
|
||
|
<view v-for="(item, index) in data.hImgs" :key="index" class="ml-10">
|
||
|
<u-image
|
||
|
show-loading
|
||
|
width="100rpx"
|
||
|
height="100rpx"
|
||
|
:src="item.FILEPATH"
|
||
|
@click="fnPreviewImage(item.FILEPATH, data.hImgs)"
|
||
|
/>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
|
||
|
<block v-if="data.hiddenVideo.length > 0">
|
||
|
<u-cell title="隐患视频">
|
||
|
<template #value>
|
||
|
<u-icon
|
||
|
name="play-circle-fill"
|
||
|
size="24"
|
||
|
@click="fnPreviewVideo(data.hiddenVideo[0].FILEPATH)"
|
||
|
/>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
</block>
|
||
|
|
||
|
<view v-for="(item, index) in data.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="data.info.conUserName" />
|
||
|
<u-cell title="隐患确认时间" :value="data.info.CONFIRM_TIME" />
|
||
|
</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="fnFormatTime(item.DELAY_TIME)" />
|
||
|
<u-cell title="审核人" :value="data.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' }"
|
||
|
@click="fnPreviewFile(item.DISPOSAL_FILE)"
|
||
|
>
|
||
|
下载
|
||
|
</u-button>
|
||
|
</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>
|
||
|
<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>
|
||
|
<up-button
|
||
|
type="primary"
|
||
|
size="mini"
|
||
|
shape="circle"
|
||
|
:custom-style="{ width: 'auto' }"
|
||
|
@click="fnPreviewFile(item.DISPOSAL_FILE)"
|
||
|
>
|
||
|
下载
|
||
|
</up-button>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
</block>
|
||
|
</block>
|
||
|
<block v-if="item.STATE !== -1">
|
||
|
<u-cell title="审核时间" :value="item.OPERATTIME" />
|
||
|
<u-cell title="审核人" :value="data.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>
|
||
|
</view>
|
||
|
|
||
|
<block
|
||
|
v-if="
|
||
|
data.info.STATE === '2' ||
|
||
|
data.info.STATE === '4' ||
|
||
|
data.info.STATE === '10'
|
||
|
"
|
||
|
>
|
||
|
<u-divider text-position="left" text="整改信息"></u-divider>
|
||
|
<u-cell title="整改描述" :label="data.info.RECTIFYDESCR" />
|
||
|
<u-cell title="整改部门" :value="data.info.RECTIFICATIONDEPTNAME" />
|
||
|
<u-cell title="整改人" :value="data.info.RECTIFICATIONORNAME" />
|
||
|
<u-cell title="整改时间" :value="data.info.RECTIFICATIONTIME" />
|
||
|
<u-cell title="投入资金" :value="data.info.INVESTMENT_FUNDS + '元'" />
|
||
|
<u-cell title="整改后图片">
|
||
|
<template #label>
|
||
|
<view class="mt-10 flex-start">
|
||
|
<view
|
||
|
v-for="(item, index) in data.rImgs"
|
||
|
:key="index"
|
||
|
class="ml-10"
|
||
|
>
|
||
|
<u-image
|
||
|
show-loading
|
||
|
width="100rpx"
|
||
|
height="100rpx"
|
||
|
:src="item.FILEPATH"
|
||
|
@click="fnPreviewImage(item.FILEPATH, data.rImgs)"
|
||
|
/>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
<u-cell title="整改方案">
|
||
|
<template #value>
|
||
|
<text v-if="data.info.HAVESCHEME === '0'">无</text>
|
||
|
<text v-else-if="data.info.HAVESCHEME === '1'">有</text>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
<block v-if="data.info.HAVESCHEME === '1'">
|
||
|
<u-cell
|
||
|
title="排查日期"
|
||
|
:value="data.rectificationPlanInfo.SCREENINGDATE"
|
||
|
/>
|
||
|
<block v-if="data.rectificationPlanInfo.LISTNAME">
|
||
|
<u-cell
|
||
|
title="隐患清单"
|
||
|
:value="data.rectificationPlanInfo.LISTNAME"
|
||
|
/>
|
||
|
</block>
|
||
|
<u-cell
|
||
|
title="治理标准要求"
|
||
|
:value="data.rectificationPlanInfo.GOVERNSTANDARDS"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="治理方法"
|
||
|
:value="data.rectificationPlanInfo.GOVERNMETHOD"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="经费和物资的落实"
|
||
|
:value="data.rectificationPlanInfo.EXPENDITURE"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="负责治理人员"
|
||
|
:value="data.rectificationPlanInfo.PRINCIPAL"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="工时安排"
|
||
|
:value="data.rectificationPlanInfo.PROGRAMMING"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="时限要求"
|
||
|
:value="data.rectificationPlanInfo.TIMELIMITFOR"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="工作要求"
|
||
|
:value="data.rectificationPlanInfo.JOBREQUIREMENT"
|
||
|
/>
|
||
|
<u-cell
|
||
|
title="其他事项"
|
||
|
:value="data.rectificationPlanInfo.OTHERBUSINESS"
|
||
|
/>
|
||
|
<u-cell title="方案图片">
|
||
|
<template #label>
|
||
|
<view class="mt-10 flex-start">
|
||
|
<view
|
||
|
v-for="(item, index) in data.sImgs"
|
||
|
:key="index"
|
||
|
class="ml-10"
|
||
|
>
|
||
|
<u-image
|
||
|
show-loading
|
||
|
width="100rpx"
|
||
|
height="100rpx"
|
||
|
:src="item.FILEPATH"
|
||
|
@click="fnPreviewImage(item.FILEPATH, data.sImgs)"
|
||
|
/>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
</block>
|
||
|
</block>
|
||
|
|
||
|
<block v-if="data.info.STATE === '4'">
|
||
|
<u-divider text-position="left" text="验收信息"></u-divider>
|
||
|
<block v-if="data.info.RECTIFICATIONTYPE === '1'">
|
||
|
<u-cell title="验收人" :value="data.info.CHECKORNAME" />
|
||
|
</block>
|
||
|
<block v-else>
|
||
|
<view v-for="(item, index) in data.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" />
|
||
|
<u-cell title="验收图片">
|
||
|
<template #label>
|
||
|
<view class="mt-10 flex-start">
|
||
|
<view
|
||
|
v-for="(item1, index1) in item.cImgs"
|
||
|
:key="index1"
|
||
|
class="ml-10"
|
||
|
>
|
||
|
<u-image
|
||
|
show-loading
|
||
|
width="100rpx"
|
||
|
height="100rpx"
|
||
|
:src="item1.FILEPATH"
|
||
|
@click="fnPreviewImage(item1.FILEPATH, item.cImgs)"
|
||
|
/>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
</u-cell>
|
||
|
</view>
|
||
|
</block>
|
||
|
</block>
|
||
|
|
||
|
<u-modal
|
||
|
:show="data.videoDialog.visible"
|
||
|
title="视频预览"
|
||
|
:show-confirm-button="false"
|
||
|
show-cancel-button
|
||
|
cancel-text="关闭"
|
||
|
@cancel="fnCloseVideoDialog"
|
||
|
>
|
||
|
<video
|
||
|
v-if="data.videoDialog.src"
|
||
|
:src="data.videoDialog.src"
|
||
|
style="width: 100%; height: 200px; margin: 10px"
|
||
|
autoplay
|
||
|
/>
|
||
|
</u-modal>
|
||
|
</u-cell-group>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import { getHiddenInfo } from "@/api";
|
||
|
import { HIDDEN_LEVEL_COlOR, HIDDEN_SOURCE } from "@/utils/constant";
|
||
|
import dayjs from "dayjs";
|
||
|
import { goEditData as resData } from "@/Mock/responseData.js";
|
||
|
|
||
|
export default {
|
||
|
props: {
|
||
|
hiddenId: {
|
||
|
type: String,
|
||
|
reequired: true,
|
||
|
},
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
data: {
|
||
|
info: {},
|
||
|
hiddenFindPeople: [],
|
||
|
hImgs: [],
|
||
|
hiddenVideo: [],
|
||
|
rImgs: [],
|
||
|
sImgs: [],
|
||
|
hiddenExamineList: [],
|
||
|
checkList: [],
|
||
|
videoDialog: {
|
||
|
visible: false,
|
||
|
src: "",
|
||
|
},
|
||
|
specialDisposalReviewInfo: {},
|
||
|
rectificationPlanInfo: {},
|
||
|
},
|
||
|
};
|
||
|
},
|
||
|
mounted() {
|
||
|
this.fnGetData();
|
||
|
},
|
||
|
computed: {
|
||
|
hiddenLevelColor() {
|
||
|
return HIDDEN_LEVEL_COlOR;
|
||
|
},
|
||
|
hiddenSource() {
|
||
|
return HIDDEN_SOURCE;
|
||
|
},
|
||
|
selfStore() {
|
||
|
return this.$store;
|
||
|
},
|
||
|
},
|
||
|
methods: {
|
||
|
/** 预览图片处理 */
|
||
|
fnPreviewImage(src, srcArr) {
|
||
|
let urls = srcArr.map((sos) => sos.FILEPATH);
|
||
|
uni.previewImage({
|
||
|
urls,
|
||
|
current: src,
|
||
|
});
|
||
|
},
|
||
|
/** 预览视频处理 */
|
||
|
fnPreviewVideo(src) {
|
||
|
this.data.videoDialog.visible = true;
|
||
|
this.data.videoDialog.src = src;
|
||
|
},
|
||
|
/** 预览文件处理 */
|
||
|
fnPreviewFile(src) {
|
||
|
let { filePath } = this.selfStore.state;
|
||
|
uni.downloadFile({
|
||
|
url: filePath + src,
|
||
|
success: (res) => {
|
||
|
const filePath = res.tempFilePath;
|
||
|
uni.openDocument({
|
||
|
filePath,
|
||
|
});
|
||
|
},
|
||
|
});
|
||
|
},
|
||
|
/** 关闭视频弹窗 */
|
||
|
fnCloseVideoDialog() {
|
||
|
this.data.videoDialog.visible = false;
|
||
|
this.data.videoDialog.src = "";
|
||
|
},
|
||
|
/** 时间格式化 */
|
||
|
fnFormatTime(val) {
|
||
|
return dayjs(val).format("YYYY-MM-DD");
|
||
|
},
|
||
|
// 异步获取隐患信息
|
||
|
async fnGetData() {
|
||
|
let { filePath } = this.selfStore.state;
|
||
|
|
||
|
// const responseData = await getHiddenInfo({
|
||
|
// HIDDEN_ID: this.hiddenId
|
||
|
// })
|
||
|
// console.log('responseData :>> ', responseData);
|
||
|
|
||
|
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.data.info = resData.pd;
|
||
|
this.data.rectificationPlanInfo = resData.hs;
|
||
|
this.data.hiddenFindPeople = resData.hiddenFindPeople;
|
||
|
this.data.hImgs = resData.hImgs;
|
||
|
this.data.rImgs = resData.rImgs;
|
||
|
this.data.sImgs = resData.sImgs;
|
||
|
this.data.checkList = resData.checkList;
|
||
|
this.data.hiddenVideo = resData.hiddenVideo;
|
||
|
this.data.hiddenExamineList = resData.hiddenExa;
|
||
|
this.$emit("throw-basic-info", resData);
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
/deep/ .u-cell__body {
|
||
|
padding: 26rpx 30rpx;
|
||
|
}
|
||
|
</style>
|