qa-regulatory-gwj-app/pages/larger-major-hidden-management/major-hidden-management/detail.vue

343 lines
12 KiB
Vue

<template>
<view class="content">
<view class="card">
<view class="view-title">
<u--text text="隐患信息" bold></u--text>
</view>
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title">隐患来源</view>
<view slot="value">{{ sourceName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患描述</view>
<view slot="label" class="mt-10">{{ form.hiddendescr }}</view>
</u-cell>
<template v-if="form.source === '2'">
<u-cell>
<view slot="title" class="title">风险点(单元)</view>
<view slot="value">{{ form.riskUnit }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">辨识部位</view>
<view slot="value">{{ form.identification }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">存在风险</view>
<view slot="value">{{ form.riskDescr }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">风险分级</view>
<view slot="value">{{ form.level }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查内容</view>
<view slot="value">{{ form.checkContent }}</view>
</u-cell>
</template>
<u-cell>
<view slot="title" class="title">隐患级别</view>
<view slot="value">{{ form.hiddenlevelName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患状态</view>
<view slot="value">
<template>已核定</template>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患类型</view>
<view slot="value">{{ form.hiddenTypeName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患部位</view>
<view slot="value">{{ form.hiddenpartStr || info.hiddenpart }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">是否是相关方:</view>
<view slot="value">{{ form.isrelevant === '1'?'是':'否' }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患位置描述:</view>
<view slot="value">{{ form.positiondesc }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患上报位置</view>
<view slot="label" class="mt-10">
<view>经度:{{ form.longitude }}</view>
<view>纬度:{{ form.latitude }}</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患图片</view>
<view slot="label" class="mt-10">
<view style="display: flex;flex-wrap: wrap">
<view v-for="(item,index) in hImgs" :key="index" class="ml-10 mt-10">
<u--image :showLoading="true" :src="item" width="80px" height="80px"
@click="previewImage(hImgs,item)"></u--image>
</view>
</view>
</view>
</u-cell>
<u-cell v-if="videoUrl">
<view slot="title" class="title">隐患视频</view>
<view slot="value">
<u-icon name="play-circle-fill" size="30" @click="modalShow = true"></u-icon>
</view>
</u-cell>
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
<view>
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
</view>
</u-modal>
<u-cell>
<view slot="title" class="title">隐患发现人</view>
<view slot="value">
{{
hiddenFindPeople
.map((item) => item.userName)
.filter(Boolean)
.join("、") || info.creatorName
}}
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患发现时间</view>
<view slot="value">{{ form.discoverytime }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="发现隐患部门负责人确认" bold></u--text>
</view>
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title">隐患级别</view>
<view slot="value">{{ form.hiddenlevelName }}</view>
</u-cell>
<u-cell v-if="majorinforPdf">
<view slot="title" class="title">临时处置信息</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(majorinforPdf)"></u-button>
</view>
</u-cell>
<u-cell v-if="supplementPdf">
<view slot="title" class="title">补充重大隐患信息</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(supplementPdf)"></u-button>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患确认人</view>
<view slot="value">{{ form.confirmUserName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患确认时间</view>
<view slot="value">{{ form.confirmTime }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="分公司安委会办公室副主任核实" bold></u--text>
</view>
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title">隐患级别</view>
<view slot="value">{{ form.hiddenlevelName }}</view>
</u-cell>
<u-cell v-if="safetyofficePdf">
<view slot="title" class="title">安委会办公室会议记录</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(safetyofficePdf)"></u-button>
</view>
</u-cell>
<u-cell v-if="majorapprovedPdf">
<view slot="title" class="title">临时处置信息</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(majorapprovedPdf)"></u-button>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">核对结果</view>
<view slot="value">{{ resultslist.checkresults === '2' ? '核对确定' : '' }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">核实人</view>
<view slot="value">{{ resultslist.checker }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">核实时间</view>
<view slot="value">{{ resultslist.checkTime }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="港股分公司安委会办公室副主任核定" bold></u--text>
</view>
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title">隐患级别</view>
<view slot="value">{{ form.hiddenlevelName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">核定人</view>
<view slot="value">{{ resultslist.approved || resultslist.checker }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">核定时间</view>
<view slot="value">{{ resultslist.approvedTime }}</view>
</u-cell>
<u-cell v-if="reportPdf">
<view slot="title" class="title">隐患调查报告</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(reportPdf)"></u-button>
</view>
</u-cell>
<u-cell v-if="resolutionPdf">
<view slot="title" class="title">安委会或党委会决议记录</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(resolutionPdf)"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
<view class="card" v-if="form.rectificationName">
<view class="view-title">
<u--text text="较大隐患整改" bold></u--text>
</view>
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title">整改部门</view>
<view slot="value">{{ form.rectificationDeptName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改人</view>
<view slot="value">{{ form.rectificationName }}</view>
</u-cell>
<u-cell v-if="rectificationPdf">
<view slot="title" class="title">隐患调查报告</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(rectificationPdf)"></u-button>
</view>
</u-cell>
<u-cell v-if="processPdf">
<view slot="title" class="title">安委会或党委会决议记录</view>
<view slot="value">
<u-button type="primary" text="下载" size="mini"
@click="downloadAppendix(processPdf)"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</view>
</template>
<script>
import {getHiddenGoEdit} from "@/api";
export default {
data() {
return {
hiddenId: '',
form: {},
hImgs: [],
videoUrl: '',
modalShow: false,
majorinforPdf: {},
supplementPdf: {},
safetyofficePdf: {},
majorapprovedPdf: {},
resultslist: {},
reportPdf: {},
resolutionPdf: {},
rectificationPdf: {},
processPdf: {},
hiddenFindPeople: [],
}
},
onLoad(event) {
this.hiddenId = event.hiddenId;
this.getData()
},
methods: {
async getData() {
let resData = await getHiddenGoEdit({ id: this.hiddenId });
this.form = resData.data;
this.hiddenFindPeople = resData.data?.acceptor;
this.resultslist = resData.data?.major?.[0] || {};
this.majorinforPdf = this.findAPicture(resData.data?.files, 106)?.[0];
this.majorapprovedPdf = this.findAPicture(resData.data?.files, 107)?.[0];
this.resolutionPdf = this.findAPicture(resData.data?.files, 109)?.[0];
this.reportPdf = this.findAPicture(resData.data?.files, 108)?.[0];
this.rectificationPdf = this.findAPicture(resData.data?.files, 110)?.[0];
this.processPdf = this.findAPicture(resData.data?.files, 111)?.[0];
this.supplementPdf = this.findAPicture(resData.data?.files, 112)?.[0];
this.safetyofficePdf = this.findAPicture(resData.data?.files, 113)?.[0];
this.hImgs = this.findAPicture(resData.data?.files, 3);
this.videoUrl = this.findAPicture(resData.data?.files, 102)?.[0];
},
previewImage(list, current) {
uni.previewImage({
urls: list,
current
});
},
downloadAppendix(DISPOSAL_FILE) {
uni.downloadFile({
url: this.$store.state.filePath + DISPOSAL_FILE,
success: (res) => {
uni.openDocument({
filePath: res.tempFilePath,
});
},
});
},
findAPicture(files, type) {
const result = [];
files?.forEach((item) => {
if (item?.type === type) {
result.push(this.$store.state.filePath + item.filepath);
}
});
return result.length > 0 ? result : null;
}
},
computed: {
sourceName: function () {
switch (this.form.source) {
case '1':
return '隐患快报';
case '2':
return '清单排查';
case '3':
return '清单排查';
case '4':
return '安全环保检查(监管端)';
case '5':
return '安全环保检查(企业端)';
case '6':
return '消防检查';
case '8':
return '点检隐患';
default:
return '';
}
}
}
}
</script>
<style scoped>
</style>