qa-prevention-gwj-vue/src/views/map/dialog/confinedspace.vue

285 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="app-container print-work" style="width: 100%">
<div class="level-title">
<h1>有限空间作业许可证</h1>
<div class="level-btns">编号:{{ info.CHECK_NO }}</div>
</div>
<table class="table-ui">
<tr>
<td class="bbg-transparent">作业申请单位</td>
<td colspan="5">{{ info.APPLY_DEPARTMENT_NAME }}</td>
<td class="bbg-transparent">作业申请时间</td>
<td colspan="3">{{ info.CREATTIME }}</td>
</tr>
<tr>
<td class="bbg-transparent">受限空间名称</td>
<td colspan="5">{{ info.LIMITSPACE_NAME }}</td>
<td class="bbg-transparent">受限空间内原有介质名称</td>
<td colspan="3">{{ info.MEDIUM_NAME }}</td>
</tr>
<tr>
<td class="bbg-transparent">作业内容</td>
<td colspan="9">{{ info.WORK_CONTENT }}</td>
</tr>
<tr>
<td class="bbg-transparent">作业单位</td>
<td colspan="5">{{ info.CONFIRM_DEPARTMENT_NAME }}</td>
<td class="bbg-transparent">作业负责人</td>
<td colspan="3">{{ info.CONFIRM_USER_NAME }}</td>
</tr>
<tr>
<td class="bbg-transparent">作业人</td>
<td colspan="5">{{ info.WORK_USER }}</td>
<td class="bbg-transparent">监护人</td>
<td colspan="5">
<div v-if="info.GUARDIAN_USER_SIGNER_PATH" style="text-align: right">
<span>签字:</span>
<img v-viewer :src="config.fileUrl + info.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ info.GUARDIAN_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr>
<td class="bbg-transparent">关联的其他特殊作业及安全作业票编号</td>
<td colspan="9">{{ info.SPECIAL_WORK }}</td>
</tr>
<tr>
<td class="bbg-transparent">风险辨识结果</td>
<td colspan="9">{{ info.RISK_IDENTIFICATION }}</td>
</tr>
<tr>
<td :rowspan="3 + gasList.length" class="bbg-transparent">气体分析</td>
<td class="bbg-transparent" rowspan="2">分析项目</td>
<td class="bbg-transparent" colspan="2">有毒有害气体名称</td>
<td class="bbg-transparent" colspan="2">可燃气体名称</td>
<td class="bbg-transparent" rowspan="2">氧气含量</td>
<td class="bbg-transparent" rowspan="3">取样分析时间</td>
<td class="bbg-transparent" rowspan="3">分析部位</td>
<td class="bbg-transparent" rowspan="3">分析人</td>
</tr>
<tr>
<td :style="{padding:gas.GAS_NAME1 ? '8px' : '16px'}">{{ gas.GAS_NAME1 }}</td>
<td :style="{padding:gas.GAS_NAME2 ? '8px' : '16px'}">{{ gas.GAS_NAME2 }}</td>
<td :style="{padding:gas.GAS_NAME3 ? '8px' : '16px'}">{{ gas.GAS_NAME3 }}</td>
<td :style="{padding:gas.GAS_NAME4 ? '8px' : '16px'}">{{ gas.GAS_NAME4 }}</td>
</tr>
<tr>
<td class="bbg-transparent">合格标准</td>
<td>{{ gas.GAS_STANDARD1 }}</td>
<td>{{ gas.GAS_STANDARD2 }}</td>
<td>{{ gas.GAS_STANDARD3 }}</td>
<td>{{ gas.GAS_STANDARD4 }}</td>
<td>19.5% 〜21%(体积分数)</td>
</tr>
<tr v-for="(item,index) in gasList" :key="index">
<td v-if="index === 0" :rowspan="gasList.length" class="bbg-transparent">分析数据</td>
<td><span v-if="gas.GAS_NAME1">{{ item.DATA1 }}</span></td>
<td><span v-if="gas.GAS_NAME2">{{ item.DATA2 }}</span></td>
<td><span v-if="gas.GAS_NAME3">{{ item.DATA3 }}</span></td>
<td><span v-if="gas.GAS_NAME4">{{ item.DATA4 }}</span></td>
<td>{{ item.OXYGEN_CONTENT }}</td>
<td>{{ item.ANALYZE_TIME }}</td>
<td>{{ item.ANALYZE_PLACE }}</td>
<td>{{ item.ANALYZE_USER }}</td>
</tr>
<tr>
<td class="bbg-transparent">作业实施时间</td>
<td colspan="9">{{ info.WORK_START_DATE }}至{{ info.WORK_END_DATE }}止</td>
</tr>
<tr>
<td colspan="10">
<table class="table-ui">
<tr>
<td>序号</td>
<td>安全措施</td>
<td style="width: 100px">是否涉及</td>
<td style="width: 100px">确认人</td>
</tr>
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ index + 1 }}</td>
<td>
{{ item.PROTECTIVE_MEASURES }}
<span v-if="item.QUESTION1">{{ item.QUESTION1 }}:{{ item.ANSWER1? item.ANSWER1 : 0 }}</span>
<span v-if="item.QUESTION2">{{ item.QUESTION2 }}:{{ item.ANSWER2? item.ANSWER2 : 0 }}</span>
<span v-if="item.QUESTION3">{{ item.QUESTION3 }}:{{ item.ANSWER3? item.ANSWER3 : 0 }}</span>
</td>
<td>
<span v-if="item.STATUS=='1'"><input type="radio" disabled checked>&nbsp;&nbsp;&nbsp;</span>
<span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span>
</td>
<td>
{{ item.CONFIRM_NAME }}
</td>
</tr>
<tr v-if="info.CONFIRM_USER_MEASURES || info.APPROVE_USER_MEASURES" >
<td >{{ measuresList.length + 1 }}</td>
<td colspan="3">
<div v-if="info.CONFIRM_USER_MEASURES" style="display: flex;justify-content: space-between;">
<span>其他安全措施:{{ info.CONFIRM_USER_MEASURES }}</span>
<span>编制人:{{ info.CONFIRM_USER_NAME }}</span>
</div>
<div v-if="info.APPROVE_USER_MEASURES" style="display: flex;justify-content: space-between;">
<span>其他安全措施:{{ info.APPROVE_USER_MEASURES }}</span>
<span>编制人:{{ info.APPROVE_USER_NAME }}</span>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="bbg-transparent">安全交底人</td>
<td colspan="10">
<div v-if="info.CONFESS_USER_SIGNER_PATH" style="text-align: right">
<span>签字:</span>
<img v-viewer :src="config.fileUrl + info.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ info.CONFESS_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr>
<td class="bbg-transparent">接受交底人</td>
<td colspan="10">
<div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字:</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="info.CONFIRM_USER_SIGNER_PATH">
<td colspan="10">
<div>作业负责人意见:{{ info.CONFIRM_CONTENT }}</div>
<div style="text-align: right">
<span>签字:</span>
<img v-viewer :src="config.fileUrl + info.CONFIRM_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ info.CONFIRM_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="info.APPROVE_USER_SIGNER_PATH">
<td colspan="10">
<div>所在单位意见:{{ info.APPROVE_CONTENT }}</div>
<div style="text-align: right">
<span>签字:</span>
<img v-viewer :src="config.fileUrl + info.APPROVE_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ info.APPROVE_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收:{{ info.ACCEPT_CONTENT }}</div>
<div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字:</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
</table>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import moment from 'moment'
export default {
props: {
id: {
type: String,
default() {
return ''
}
},
type: {
type: String,
default() {
return ''
}
},
gangkou: {
type: String,
default: ''
}
},
data() {
return {
config: config,
info: {},
measuresList: [],
gasList: [],
oldHazardIdentification: [],
oldWorkSafetyMeasures: [],
imgList: [],
imgList1: [],
gas: {},
otherProtectiveMeasures: []
}
},
created() {
console.log(111)
this.getData()
},
methods: {
formatDate(date, format) {
if (date) {
return moment(date).format(format)
} else {
return ''
}
},
getData() {
requestFN(
'/map/Eight/getByIdOrder',
{
id: this.id,
TYPE: this.type,
GANGKOU: this.gangkou
}
).then((data) => {
this.listLoading = false
this.info = data.pd
this.imgList = data.imgList
this.imgList1 = data.imgList1
for (let i = 0; i < data.measuresList.length; i++) {
// 将字符串转成数组
const PROTECTIVE_MEASURES = data.measuresList[i].PROTECTIVE_MEASURES.split('')
for (let j = 1; j <= 3; j++) {
// 判断字符串是否存在
if (this.findCharIndex(PROTECTIVE_MEASURES, '', j) !== -1) {
// 给字符串后面添加上需要的数据
PROTECTIVE_MEASURES.splice(
this.findCharIndex(PROTECTIVE_MEASURES, '', j) + 1,
0,
data.measuresList[i]['ANSWER' + j]
)
}
}
// 将数组转回字符串
data.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join('')
}
this.measuresList = data.measuresList // 参数map
this.gasList = data.gasList // 参数map
this.gas = data.gas || {} // 参数map
this.info.CONFIRM_USER_MEASURES = data.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.info.APPROVE_USER_MEASURES = data.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
}).catch((e) => {
console.log(e)
})
},
findCharIndex(str, char, num) {
let index = str.indexOf(char)
for (let i = 0; i < num - 1; i++) {
index = str.indexOf(char, index + 1)
}
return index
}
}
}
</script>
<style lang="scss" scoped>
</style>