Compare commits

...

20 Commits

Author SHA1 Message Date
guoyuepeng c1fbdd4cf5 Merge pull request '曹煤炭摄像头播放 ---张悦提交' (#4) from 2024年1月12日V01.00.51 into 2023年12月27日V01.00.50
Reviewed-on: #4
2024-01-18 09:54:05 +08:00
liulixin 0a822905d7 hiddenRegionTree bug 2024-01-15 10:14:51 +08:00
guoyuepeng 4c8e9100fd 曹煤炭摄像头播放 ---张悦提交 2024-01-12 09:52:58 +08:00
limingyu a79cd7165e Merge remote-tracking branch 'origin/2023年12月27日V01.00.50' into 2023年12月27日V01.00.50 2024-01-08 19:11:26 +08:00
limingyu 86f9a751b8 Merge branch 'dev' into 2023年12月27日V01.00.50 2024-01-08 19:10:34 +08:00
limingyu ec26080425 对接bug修复 2024-01-08 19:10:03 +08:00
songwenxuan f585920e15 已过期状态显示 2024-01-08 19:06:06 +08:00
limingyu d027db8bb7 对接bug修复 2024-01-08 16:39:35 +08:00
songwenxuan 201eb7aba0 重置按钮刷新数据,修复查询选择条件重复 2024-01-08 16:33:53 +08:00
songwenxuan d0669502ce 重置按钮刷新数据,修复查询选择条件重复 2024-01-08 10:03:31 +08:00
songwenxuan 85f25331c5 修复 隐患排查治理 消防检查隐患不显示隐患来源 2024-01-08 09:48:32 +08:00
songwenxuan ae6fb36382 修复 隐患排查治理 消防检查隐患不显示隐患来源 2024-01-05 10:47:54 +08:00
songwenxuan 8c193c829e 修复 隐患排查治理 消防检查隐患不显示隐患来源 2024-01-05 09:20:53 +08:00
songwenxuan 5d6dfc3bc7 修复 隐患排查治理 消防检查隐患不显示隐患来源 2024-01-05 09:14:34 +08:00
songwenxuan 2768b4b6ef 修复 隐患排查治理 消防检查隐患不显示隐患来源 2024-01-04 18:55:06 +08:00
zhaoyu fdbecc3f17 地图展示具体位置 2024-01-04 16:44:12 +08:00
zhaoyu beea017dbb 重点工程具体位置 2024-01-04 16:43:20 +08:00
zhaoyu f4bd540162 删除隐患考评 2024-01-03 16:58:10 +08:00
zhaoyu c8fe830e31 展示有限空间数据 2024-01-03 10:31:14 +08:00
guoyuepeng b65da94eb7 添加 更新.md 2023-12-28 10:48:17 +08:00
22 changed files with 456 additions and 238 deletions

View File

@ -74,7 +74,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[1].AUTOGRAPH" :src="config.fileUrl+hotUserList[1].AUTOGRAPH">
</span>
<span v-if="hotUserList[1].OPERATTIME">{{ formatTime(hotUserList[1].OPERATTIME) }}</span>
<span v-if="hotUserList[1].AUTOGRAPH">{{ formatTime(hotUserList[1].OPERATTIME) }}</span>
</td>
</tr>
<tr v-if="pd.JOB_TYPE_INDEX == '1'" >
@ -87,7 +87,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[2].AUTOGRAPH" :src="config.fileUrl+hotUserList[2].AUTOGRAPH">
</span>
<span v-if="hotUserList[2].OPERATTIME">{{ formatTime(hotUserList[2].OPERATTIME) }}</span>
<span v-if="hotUserList[2].AUTOGRAPH">{{ formatTime(hotUserList[2].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -100,7 +100,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[3].AUTOGRAPH" :src="config.fileUrl+hotUserList[3].AUTOGRAPH">
</span>
<span v-if="hotUserList[3].OPERATTIME">{{ formatTime(hotUserList[3].OPERATTIME) }}</span>
<span v-if="hotUserList[3].AUTOGRAPH">{{ formatTime(hotUserList[3].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -113,7 +113,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[4].AUTOGRAPH" :src="config.fileUrl+hotUserList[4].AUTOGRAPH">
</span>
<span v-if="hotUserList[4].OPERATTIME">{{ formatTime(hotUserList[4].OPERATTIME) }}</span>
<span v-if="hotUserList[4].AUTOGRAPH">{{ formatTime(hotUserList[4].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -130,7 +130,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[5].AUTOGRAPH" :src="config.fileUrl+hotUserList[5].AUTOGRAPH">
</span>
<span v-if="hotUserList[5].OPERATTIME">{{ formatTime(hotUserList[5].OPERATTIME) }}</span>
<span v-if="hotUserList[5].AUTOGRAPH">{{ formatTime(hotUserList[5].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -143,7 +143,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[6].AUTOGRAPH" :src="config.fileUrl+hotUserList[6].AUTOGRAPH">
</span>
<span v-if="hotUserList[6].OPERATTIME">{{ formatTime(hotUserList[6].OPERATTIME) }}</span>
<span v-if="hotUserList[6].AUTOGRAPH">{{ formatTime(hotUserList[6].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -156,7 +156,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[7].AUTOGRAPH" :src="config.fileUrl+hotUserList[7].AUTOGRAPH">
</span>
<span v-if="hotUserList[7].OPERATTIME">{{ formatTime(hotUserList[7].OPERATTIME) }}</span>
<span v-if="hotUserList[7].AUTOGRAPH">{{ formatTime(hotUserList[7].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -169,7 +169,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[8].AUTOGRAPH" :src="config.fileUrl+hotUserList[8].AUTOGRAPH">
</span>
<span v-if="hotUserList[8].OPERATTIME">{{ formatTime(hotUserList[8].OPERATTIME) }}</span>
<span v-if="hotUserList[8].AUTOGRAPH">{{ formatTime(hotUserList[8].OPERATTIME) }}</span>
</td>
</tr>
<tr>
@ -182,7 +182,7 @@
<span class="print-approval-img">
<img v-if="hotUserList[9].AUTOGRAPH" :src="config.fileUrl+hotUserList[9].AUTOGRAPH">
</span>
<span v-if="hotUserList[9].OPERATTIME">{{ formatTime(hotUserList[9].OPERATTIME) }}</span>
<span v-if="hotUserList[9].AUTOGRAPH">{{ formatTime(hotUserList[9].OPERATTIME) }}</span>
</td>
</tr>
<tr>

View File

@ -403,8 +403,12 @@ export default {
this.pd = data.pd
this.hotUserList = data.hotUserList
for (let i = 0; i < data.hotOperator.length; i++) {
if (i === data.hotOperator.length - 1) {
this.hotOperatorNames += data.hotOperator[i].userName2
} else {
this.hotOperatorNames += data.hotOperator[i].userName2 + ';'
}
}
this.corpinfo = data.corpinfo
}).catch((e) => {

View File

@ -164,6 +164,12 @@
icon="el-icon-view"
@click="fnEvaluation(row.HIDDEN_ID,row.SOURCE, row.CREATOR,'edit')">考评
</el-button>
<el-button
v-if="USER_ID=='1'"
type="danger"
icon="el-icon-view"
@click="fnDelvaluation(row.HIDDEN_ID)">删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -420,6 +426,34 @@ export default {
})
}
})
},
fnDelvaluation(hiddenId) {
this.$confirm('确定要删除选中的评审记录吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/hiddenevaluationrecord/deleteEvaluation',
{
HIDDEN_ID: hiddenId
}
).then((data) => {
this.listLoading = false
if (data.result === 'success') {
this.$message.success('删除成功')
this.getList()
} else {
this.$message({
message: data.message,
type: 'error'
})
}
}).catch((e) => {
})
}).catch(() => {
})
}
}
}

View File

@ -18,6 +18,7 @@
<span v-else-if="row.SOURCE == 2">清单排查</span>
<span v-else-if="row.SOURCE == 4">安全环保检查(监管端)</span>
<span v-else-if="row.SOURCE == 5">安全环保检查(企业端)</span>
<span v-else-if="row.SOURCE == 6">消防检查</span>
</template>
</el-table-column>
<el-table-column prop="HIDDENDESCR" label="隐患描述"/>

View File

@ -9,6 +9,7 @@
<el-option :value="2" label="清单排查"/>
<el-option :value="4" label="安全环保检查(监管端)"/>
<el-option :value="5" label="安全环保检查(企业端)"/>
<el-option :value="6" label="消防检查"/>
</el-select>
</el-form-item>
</el-col>
@ -137,6 +138,7 @@
<template v-else-if="row.SOURCE=='3'">清单排查 </template>
<template v-else-if="row.SOURCE=='4'">安全环保检查(监管端) </template>
<template v-else-if="row.SOURCE=='5'">安全环保检查(企业端) </template>
<template v-else-if="row.SOURCE=='6'">消防检查 </template>
</template>
</el-table-column>
<el-table-column prop="HIDDENDESCR" label="隐患描述"/>

View File

@ -22,6 +22,9 @@
<template v-else-if="pd.SOURCE=='5'">
<td colspan="3">安全环保检查(企业端)</td>
</template>
<template v-else-if="pd.SOURCE=='6'">
<td colspan="3">消防检查</td>
</template>
</tr>
<!--<tr>
<td class="tbg">检查内容</td>

View File

@ -9,6 +9,7 @@
<el-option :value="2" label="清单排查"/>
<el-option :value="4" label="安全环保检查(监管端)"/>
<el-option :value="5" label="安全环保检查(企业端)"/>
<el-option :value="6" label="消防检查"/>
</el-select>
</el-form-item>
</el-col>
@ -117,6 +118,7 @@
<span v-if="row.SOURCE == 1"></span>
<span v-else-if="row.SOURCE == 4">安全环保检查(监管端)</span>
<span v-else-if="row.SOURCE == 5">安全环保检查(企业端)</span>
<span v-else-if="row.SOURCE == 6">消防检查</span>
<span v-else></span>
</template>
</el-table-column>

View File

@ -23,6 +23,9 @@
<template v-else-if="pd.SOURCE=='5'">
安全环保检查(企业端)
</template>
<template v-else-if="pd.SOURCE=='6'">
消防检查
</template>
</td>
</tr>
<tr>

View File

@ -9,6 +9,7 @@
<el-option :value="2" label="清单排查"/>
<el-option :value="4" label="安全环保检查(监管端)"/>
<el-option :value="5" label="安全环保检查(企业端)"/>
<el-option :value="6" label="消防检查"/>
</el-select>
</el-form-item>
</el-col>
@ -82,6 +83,7 @@
<span v-if="row.SOURCE == 1"></span>
<span v-else-if="row.SOURCE == 4">安全环保检查(监管端)</span>
<span v-else-if="row.SOURCE == 5">安全环保检查(企业端)</span>
<span v-else-if="row.SOURCE == 6">消防检查</span>
<span v-else></span>
</template>
</el-table-column>
@ -107,6 +109,8 @@
<template slot-scope="{row}">
<template v-if="row.SOURCE == 4">{{ row.RECTIFICATIONOR_NAME }}</template>
<template v-else-if="row.SOURCE == 5">{{ row.RECTIFICATIONOR_NAME }}</template>
<template v-else-if="row.SOURCE == 6">{{ row.RECTIFICATIONOR_NAME }}</template>
<template v-else-if="row.SOURCE == 2">{{ row.RECTIFICATIONOR_NAME }}</template>
<template v-else>{{ row.PERSONCHARGE }}</template>
</template>
</el-table-column>

View File

@ -23,6 +23,9 @@
<template v-else-if="pd.SOURCE=='5'">
安全环保检查(企业端)
</template>
<template v-else-if="pd.SOURCE=='6'">
消防检查
</template>
</td>
</tr>
<tr>

View File

@ -181,7 +181,8 @@ export default {
varList: [],
hiddenSourceList: [ // 1- 2-
{ value: '1', label: '隐患快报' },
{ value: '2', label: '清单排查' }
{ value: '2', label: '清单排查' },
{ value: '6', label: '消防检查' }
],
statusList: [
{ ID: '14', NAME: '待验收' },
@ -238,9 +239,9 @@ export default {
chongzhi() {
this.STATE = ''
this.$refs.searchForm.resetFields()
this.$refs.deptTree_Select.clearHandle()
this.$refs.deptTree_Select1.clearHandle()
this.$refs.deptTree_Select3.clearHandle()
// this.$refs.deptTree_Select.clearHandle()
// this.$refs.deptTree_Select1.clearHandle()
// this.$refs.deptTree_Select3.clearHandle()
this.getList()
},
//

View File

@ -7,7 +7,6 @@
<el-select v-model="form.SOURCE" placeholder="隐患来源" clearable style="width: 100%" class="filter-item">
<el-option :value="1" label="隐患快报"/>
<el-option :value="2" label="清单排查"/>
<el-option :value="2" label="清单排查"/>
<el-option :value="6" label="消防检查"/>
</el-select>
</el-form-item>

View File

@ -178,7 +178,8 @@ export default {
varList: [],
hiddenSourceList: [ // 1- 2-
{ value: '1', label: '隐患快报' },
{ value: '2', label: '清单排查' }
{ value: '2', label: '清单排查' },
{ value: '6', label: '消防检查' }
],
statusList: [
{ ID: '-2', NAME: '待确认' },

View File

@ -112,6 +112,10 @@
<td v-else colspan="2">未定位</td>
<td><el-button type="success" @click="handleMap(pd)"></el-button></td>
</tr>
<tr>
<td class="tbg">具体位置</td>
<td colspan="3">{{ pd.LOCATION }}</td>
</tr>
<tr v-for="(item, index) in file9" :key="index">
<td class="tbg">安全管理协议{{ index + 1 }}</td>
<td colspan="2">{{ item.FILE_NAME }}</td>

View File

@ -2,219 +2,179 @@
<div class="app-container print-work">
<div class="level-title">
<h1>有限空间作业许可证</h1>
<div class="level-btns">编号:{{ info.WORK_PERMIT_NUMBER }}</div>
<div class="level-btns">编号:{{ info.CHECK_NO }}</div>
</div>
<table class="table-ui">
<tr>
<td class="bbg-transparent">管理单位</td>
<td>{{ info.MANAGEMENT_UNIT_NAME }}</td>
<td class="bbg-transparent">作业单位</td>
<td>{{ info.WORK_UNIT_NAME }}</td>
<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>{{ info.WORK_LOCATION }}</td>
<td class="bbg-transparent">有限空间名称及编号</td>
<td>{{ info.RESTRICTED_SPACE_NAME }}</td>
<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>{{ info.MAIN_MEDIUM }}</td>
<td class="bbg-transparent">主要危险因素</td>
<td>{{ info.MAJOR_RISK_FACTORS }}</td>
</tr>
<tr>
<td class="bbg-transparent">作业内容</td>
<td colspan="3">{{ info.CONTENTS_OF_HOMEWORK }}</td>
<td colspan="9">{{ info.WORK_CONTENT }}</td>
</tr>
<tr>
<td colspan="4" style="padding: 0;">
<table class="table-vi">
<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>{{ info.WORKER }}</td>
<td colspan="5">{{ info.WORK_USER }}</td>
<td class="bbg-transparent">监护人</td>
<td>{{ info.GUARDIAN }}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="bbg-transparent">作业时间</td>
<td colspan="3">
{{ formatDate(info.WORK_START_DATE, 'YYYY年MM月DD日HH时mm分') }}
{{ formatDate(info.WORK_END_DATE, 'YYYY年MM月DD日HH时mm分') }}
<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 colspan="4" style="padding: 0;">
<table class="table-vi">
<tr class="bbg-transparent">
<td :rowspan="gasList.length+1" align="center"> 采样分析</td>
<td align="center">分析项目</td>
<td align="center">有毒有害物质</td>
<td align="center">可燃气</td>
<td align="center">含氧量</td>
<td align="center">取样时间</td>
<td align="center">取样部位</td>
<td align="center">分析人</td>
<td class="bbg-transparent">关联的其他特殊作业及安全作业票编号</td>
<td colspan="9">{{ info.SPECIAL_WORK }}</td>
</tr>
<template v-if="gasList.length > 0 ">
<tr v-for="(item,index) in gasList" :key="item.CONFINEDSPACEGAS_ID">
<td v-if="index==0" :rowspan="gasList.length"></td>
<td>{{ item.HARMFUL_MATERIALS }}</td>
<td>{{ item.COMBUSTIBLE_GAS }}</td>
<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>
</template>
<tr v-else>
<td colspan="8" class="bbg-transparent">暂无数据</td>
</tr>
</table>
</td>
<tr>
<td class="bbg-transparent">作业实施时间</td>
<td colspan="9">{{ info.WORK_START_DATE }}{{ info.WORK_END_DATE }}</td>
</tr>
<tr>
<td colspan="4" style="padding: 0;">
<table class="table-vi">
<tr class="bbg-transparent">
<td style="width:80px">序号</td>
<td>主要安全措施</td>
<td style="width: 80px">是否合格</td>
<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="item.BUS_CONFINEDSPACE_MEASURES_ID" class="bbg-transparent">
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ index + 1 }}</td>
<td>
{{ index + 1 }}
{{ item.PROTECTIVE_MEASURES }}
</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>
<td>{{ item.PROTECTIVE_MEASURES }}</td>
<td v-if="item.STATUS == 1"></td>
<td v-else-if="item.STATUS == 0">不合格</td>
<td v-else/>
</tr>
</table>
</td>
</tr>
<tr v-if="oldHazardIdentification.length > 0">
<td colspan="4" style="padding: 0;">
<table class="table-vi">
<tr class="bbg-transparent">
<td>危害因素辨识</td>
<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 v-for="(item,index) in oldHazardIdentification" :key="index">
<td v-if="item">{{ item }}</td>
<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>
</table>
<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="oldWorkSafetyMeasures.length > 0">
<td colspan="4" style="padding: 0;">
<table class="table-vi">
<tr class="bbg-transparent">
<td>作业安全措施</td>
</tr>
<tr v-for="(item,index) in oldWorkSafetyMeasures" :key="index">
<td v-if="item">{{ item }}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>作业单位负责人意见</span>
<span>
{{ info.WORK_UNIT_MANAGER_OPINION }}
</span>
</div>
<div style="text-align: right;">
<span class="print-approval-img">
<img v-if="info.WORK_UNIT_MANAGER_IMG" :src="config.fileUrl+info.WORK_UNIT_MANAGER_IMG">
</span>
<span v-if="info.WORK_UNIT_MANAGER_TIME">{{
formatDate(info.WORK_UNIT_MANAGER_TIME, 'YYYY年MM月DD日HH时mm分')
}}</span>
<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>
<td colspan="4">
<div><span>作业现场负责人意见</span>
<span>
{{ info.JOB_SITE_MANAGER_OPINION }}
</span>
</div>
<div style="text-align: right;">
<span class="print-approval-img">
<img v-if="info.JOB_SITE_MANAGER_IMG" :src="config.fileUrl+info.JOB_SITE_MANAGER_IMG">
</span>
<span v-if="info.JOB_SITE_MANAGER_TIME">{{
formatDate(info.JOB_SITE_MANAGER_TIME, 'YYYY年MM月DD日HH时mm分')
}}</span>
<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>
<tr>
<td colspan="4">
<div><span>管理单位负责人意见</span>
<span>
{{ info.MANAGEMENT_UNIT_OPINION }}
</span>
</div>
<div style="text-align: right;">
<span class="print-approval-img">
<img v-if="info.MANAGEMENT_UNIT_IMG" :src="config.fileUrl+info.MANAGEMENT_UNIT_IMG">
</span>
<span v-if="info.MANAGEMENT_UNIT_TIME">{{
formatDate(info.MANAGEMENT_UNIT_TIME, 'YYYY年MM月DD日HH时mm分')
}}</span>
</div>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>完工验收作业单位负责人意见</span>
<span>
{{ info.COMPLETION_ACCEPTANCE_OPINION }}
</span>
</div>
<div style="text-align: right;">
<span class="print-approval-img">
<img v-if="info.COMPLETION_ACCEPTANCE_IMG" :src="config.fileUrl+info.COMPLETION_ACCEPTANCE_IMG">
</span>
<span v-if="info.COMPLETION_ACCEPTANCE_TIME">{{
formatDate(info.COMPLETION_ACCEPTANCE_TIME, 'YYYY年MM月DD日HH时mm分')
}}</span>
</div>
</td>
</tr>
<!--<tr>
<td colspan="4">
<div><span>完工验收管理单位负责人意见</span>
<span>
{{ info.COMPLETION_ACCEPTANCE_MANAGEMENT_OPINION }}
</span>
</div>
<div style="text-align: right;">
<span class="print-approval-img">
<img
v-if="info.COMPLETION_ACCEPTANCE_MANAGEMENT_OPINION_IMG"
:src="config.fileUrl+info.COMPLETION_ACCEPTANCE_MANAGEMENT_OPINION_IMG">
</span>
<span v-if="info.COMPLETION_ACCEPTANCE_MANAGEMENT_TIME">{{
formatDate(info.COMPLETION_ACCEPTANCE_MANAGEMENT_TIME, 'YYYY年MM月DD日HH时mm分')
}}</span>
</div>
</td>
</tr>-->
</table>
</div>
</template>
@ -249,7 +209,11 @@ export default {
measuresList: [],
gasList: [],
oldHazardIdentification: [],
oldWorkSafetyMeasures: []
oldWorkSafetyMeasures: [],
imgList: [],
imgList1: [],
gas: {},
otherProtectiveMeasures: []
}
},
created() {
@ -266,7 +230,7 @@ export default {
},
getData() {
requestFN(
'/map/Eight/getById',
'/map/Eight/getByIdOrder',
{
id: this.id,
TYPE: this.type,
@ -275,15 +239,30 @@ export default {
).then((data) => {
this.listLoading = false
this.info = data.pd
this.measuresList = data.measuresList || []
this.gasList = data.gasList || []
if (this.info.HARM) {
this.oldHazardIdentification = this.info.HARM.split('$$$')
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]
)
}
if (this.info.SAFTETY) {
this.oldWorkSafetyMeasures = this.info.SAFTETY.split('$$$')
}
//
data.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join('')
}
this.measuresList = data.measuresList // map
this.gasList = data.gasList // map
this.gas = data.gas || {} // map
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.APPROVE_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
}).catch((e) => {
})
}

View File

@ -18,23 +18,21 @@
<!--秦港一公司 边界入侵 详细页面 start-->
<video-play-bianjieruqin v-if="type === 'bianjieruqin'" :id="id" :type="type" :gangkou="gangkou"/>
<!--秦港一公司 边界入侵 详细页面 end-->
<!--秦港一公司 八项作业 详细页面 start-->
<!--秦港一公司 动火作业 详细页面 start-->
<hotworkFirst v-if="type === 'HOTWORK' && corpInfoId === '035958e685cf4850bc40151c5e0617a6' " :id="id" :type="type" :gangkou="gangkou"/>
<!--秦港一公司 动火作业 详细页面 end-->
<!--其他公司 动火作业 详细页面 start-->
<hotwork v-if="type === 'HOTWORK'&& corpInfoId !== '635917e77af8461691d5da5507b56347' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" :gangkou="gangkou"/>
<!--其他公司 动火作业 详细页面 end-->
<!--其他七项作业共用一个详细页面 start-->
<confinedspace v-if="type === 'CONFINEDSPACE' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<electricity v-if="type === 'ELECTRICITY' && corpInfoId === '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" :gangkou="gangkou"/>
<highwork v-if="type === 'HIGHWORK' && corpInfoId === '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" :gangkou="gangkou"/>
<hoisting v-if="type === 'HOISTING' && corpInfoId === '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" :gangkou="gangkou"/>
<blindboard v-if="type === 'BLINDBOARD' && corpInfoId === '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" :gangkou="gangkou"/>
<!--秦港一公司 八项作业 详细页面 end-->
<!--其他公司 八项作业 详细页面 start--> <!-- 有限空间 动火 复用一公司-->
<electricityOrder v-if="type === 'ELECTRICITY' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'&& corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<highworkOrder v-if="type === 'HIGHWORK' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'&& corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<hoistingOrder v-if="type === 'HOISTING' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'&& corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<blindboardOrder v-if="type === 'BLINDBOARD' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'&& corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<cutroadOrder v-if="type === 'CUTROAD' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'&& corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<breakgroundOrder v-if="type === 'BREAKGROUND' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'&& corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<!--其他公司 八项作业 详细页面 start-->
<electricityOrder v-if="type === 'ELECTRICITY' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<highworkOrder v-if="type === 'HIGHWORK' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<hoistingOrder v-if="type === 'HOISTING' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<blindboardOrder v-if="type === 'BLINDBOARD' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<cutroadOrder v-if="type === 'CUTROAD' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<breakgroundOrder v-if="type === 'BREAKGROUND' && corpInfoId !== '635917e77af8461691d5da5507b56347'" :id="id" :type="type" :gangkou="gangkou"/>
<!--其他七项作业共用一个详细页面 end-->
<!--曹妃甸东 八项作业 曹实业详细页面 start-->
<hotworkCfdD v-if="type === 'HOTWORK'&& corpInfoId === '635917e77af8461691d5da5507b56347'" :id="id" :type="type"/>
<confinedspaceCfdD v-if="type === 'CONFINEDSPACE' && corpInfoId === '635917e77af8461691d5da5507b56347'" :id="id" :type="type"/>
@ -65,10 +63,6 @@ import weatherstation from './weatherstation.vue'
import temperaturestation from './weatherstation.vue'
import humiditystation from './weatherstation.vue'
import windspeedstation from './weatherstation.vue'
import electricity from './electricity.vue'
import highwork from './highwork.vue'
import hoisting from './hoisting.vue'
import blindboard from './blindboard.vue'
import XfControl from './xfControl.vue'
import XfPoint from './xfPoint.vue'
import MkGateMachine from './mkGateMachine.vue'
@ -112,10 +106,6 @@ export default {
temperaturestation,
humiditystation,
windspeedstation,
electricity,
highwork,
hoisting,
blindboard,
electricityOrder,
highworkOrder,
cutroadOrder,

View File

@ -76,6 +76,10 @@
<span v-if="pd.STATE == -2"></span>
</td>
</tr>
<tr>
<td class="bbg-transparent">具体位置</td>
<td colspan="3">{{ pd.LOCATION }}</td>
</tr>
<tr v-for="(item, index) in file9" :key="index">
<td class="bbg-transparent">安全管理协议{{ index + 1 }}</td>
<td colspan="2">{{ item.FILE_NAME }}</td>

View File

@ -250,7 +250,14 @@ var tiandituTk = 'e8a16137fd226a62a23cc7ba5c9c78ce'
var subdomains = ['0', '1', '2', '3', '4', '5', '6', '7']
const Cesium = window.Cesium
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkOWQ0MGYwMy0yODUwLTQ1YzktOGM4OC02MTMwY2UyZjNlMzQiLCJpZCI6MTY0NTUwLCJpYXQiOjE2OTM4OTU1Mjd9.1cC0sSzyj79LZv0ILNCcl0Mabw6hl8TNngFNFr7H8f4'
// ys使
import axios from 'axios'
// md5
import md5 from 'md5'
const imosPlayer = window.imosPlayer
const iframeObj = null
export default {
components: {
AnquanCfd,
@ -1071,15 +1078,171 @@ export default {
iniOne: 0,
/* 一公司人员定位 结束*/
bottomClickDisable: false
bottomClickDisable: false,
//
dialogVideoYs: true,
ysVideoInfo: {
vmip: '10.30.20.54',
name: 'loadmin',
passwd: '_Ab54321',
vmport: '7010',
linkPort: '8093',
VIIDPort: '8088'
}
}
},
mounted() {
this.initMap()
this.pointBoxCfd = loadMapBoxCfd()
this.pointBox = loadMapBox()
this.ysVideoInit()
},
methods: {
getRandom() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)
}
return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4()
},
// keepalive(token) {
// //
// requestFN(
// '/map/loginOrKeepAlive',
// {
// }
// ).then((data) => {
//
// })
// },
// ysVideoInit() {
// //
// var _this = this
// requestFN(
// '/map/loginOrKeepAlive',
// {
// }
// ).then((data) => {
// const token = data.token
// var nbsp = String.fromCharCode(160)
// var arr = []
// arr.length = 40
// const str = arr.fill(nbsp).join('')
// const voidPath = imosPlayer.getUniqueID()
// window.voidPath = voidPath
// document.title = document.title + str + new Date().getTime()
// _this.keepalive(token)
// setInterval(_this.keepalive, 30000, token)
// console.info('-----------1-------------------')
// window.videoWindow = 0
// imosPlayer.setLinkPort('8093')
// imosPlayer
// .init({
// ip: '10.30.20.54',
// token: token,
// title: document.title,
// voidListenerPath: '\\' + voidPath
// })
// .then(async(resr) => {
// console.info('-----------2-------------------')
// if (resr.ErrCode === 0) {
// console.info('-----------3-------------------')
// // imosPlayer.setLiveNetLinkMode(liveNetProtocol, liveByMS)
// // imosPlayer.setReplayNetLinkMode(replayNetProtocol, replayByMS)
//
// // eslint-disable-next-line no-alert
// console.info('')
// } else {
//
// console.info('-----------4-------------------')
// // eslint-disable-next-line no-alert
// console.info(resr.ErrMsg)
// }
// })
// .catch((err) => {
//
// console.info('-----------5-------------------')
// console.error(err)
// })
// })
// },
keepalive(token) {
axios({
method: 'POST',
url: config.ysurl + '/VIID/hadesadapter/user/keepalive',
headers: {
'Content-Type': 'application/json; charset=utf8',
Authorization: token
},
responseType: 'json'
}).then((res) => { })
},
ysVideoInit() {
var _this = this
axios({
method: 'POST',
url: config.ysurl + '/VIID/login/v2', // protocolhttp://
headers: {
'Content-Type': 'application/json; charset=utf8'
},
responseType: 'json'
}).then((res) => {
const AccessCode = res.data.AccessCode// res.bodyres.data
const LoginSignature = md5(btoa(_this.ysVideoInfo.name) + AccessCode + md5(_this.ysVideoInfo.passwd))
axios({
method: 'POST',
url: config.ysurl + '/VIID/login/v2',
headers: {
'Content-Type': 'application/json; charset=utf8'
},
responseType: 'json',
data: {
UserName: _this.ysVideoInfo.name,
AccessCode,
LoginSignature
}
}).then((res) => {
var nbsp = String.fromCharCode(160)
var arr = []
arr.length = 40
const str = arr.fill(nbsp).join('')
const voidPath = imosPlayer.getUniqueID()
window.voidPath = voidPath
document.title = document.title + str + new Date().getTime()
var token = res.data.AccessToken
window.token = res.data.AccessToken
console.log(res)
_this.keepalive(token)
setInterval(_this.keepalive, 30000, token)
window.videoWindow = 0
imosPlayer.setLinkPort('8093')
imosPlayer
.init({
ip: '10.30.20.54',
token: token,
title: document.title,
voidListenerPath: '\\' + voidPath
})
.then(async(resr) => {
if (resr.ErrCode === 0) {
// imosPlayer.setLiveNetLinkMode(liveNetProtocol, liveByMS)
// imosPlayer.setReplayNetLinkMode(replayNetProtocol, replayByMS)
// eslint-disable-next-line no-alert
console.info('登录成功')
} else {
// eslint-disable-next-line no-alert
console.info(resr.ErrMsg)
}
})
.catch((err) => {
console.error(err)
})
})
})
},
initMap() {
viewer = new Cesium.Viewer('cesiumContainer', {
// terrainProvider: Cesium.createWorldTerrain()

View File

@ -83,7 +83,8 @@ export default {
{ ID: '-2', NAME: '已指派确认人' },
{ ID: '8', NAME: '特殊处置通过' },
{ ID: '16', NAME: '确认打回' },
{ ID: '7', NAME: '待处理的特殊隐患' }
{ ID: '7', NAME: '待处理的特殊隐患' },
{ ID: '-1', NAME: '已过期' }
],
inspectionStatusList: [
{ ID: '3-7', NAME: '请选择' },

View File

@ -458,6 +458,7 @@ export default {
await this.getDict()
await this.handleAdd()
await this.getEditMyInfo()
await this.getHiddenReginTreeListData()
loading.close()
},
mounted() {
@ -1048,6 +1049,23 @@ export default {
openConfirm() {
this.$refs.confirm.init()
},
//
getHiddenReginTreeListData() {
return new Promise((resolve) => {
this.treeLoading = true
requestFN(
'/hiddenRegion/listAll',
{}
).then((data) => {
this.treeLoading = false
this.hiddenPartList = JSON.parse(data.zTreeNodes)
resolve('ok')
}).catch((e) => {
this.treeLoading = false
})
})
},
getProposal(information) {
this.form.CONFIRM_MESSAGE = information.INSPECTION_USER_OPINION
this.form.CONFIRM_MESSAGE_SIGN = information.INSPECTION_USER_SIGN_IMG

View File

@ -1,6 +1,6 @@
const config = {
weburl: 'http://192.168.0.45:8082/', // 前台地址
httpurl: 'http://192.168.151.56:8092/', // 后台地址
httpurl: 'http://192.168.151.43:8092/', // 后台地址
qyurl: 'http://192.168.0.45:8080/', // 企业前台
fileUrl: 'http://192.168.192.201:8991/file/', // 附件服务器地址
publicKey: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2zCyUYSD0pNrbtaYdvGfHfWoRV+fo/2N9O2PLLz/jZvMkigkq4eAq4JO+Ek0wDHI9WxP6iTSLYCHhIOs9CQTPvyldJFm8riZtQZlBTD8Plkb3rjrgwTqbBi3w3+HKYdkSvGFXJIdSOPbpXnj5BzN8vlVaybs24R/vpUzG9178lwIDAQAB',
@ -12,5 +12,6 @@ const config = {
perRealTimeLocUrl: '192.168.210.32:8084/netty/test.io',
cfdfileUrl: 'http://60.2.209.238:8991/file',
xfgUrl: 'https://skqhdg.porthebei.com:9006/static/qrcode/views/xgf_hgz/index.html',
messageUrl: 'http://192.168.151.56:8082/static/qrcode/views/xgf_hgz/index.html'
messageUrl: 'http://192.168.151.56:8082/static/qrcode/views/xgf_hgz/index.html',
ysurl:'/ysapi'
}

1
更新.md Normal file
View File

@ -0,0 +1 @@
升级内容: 企业端PC 1、新增-三人以上风险分布图菜单-分公司进行上传维护 2、新增-人员聚集分布图菜单-分公司进行上传维护 3、新增-人员培训申请-分公司进行申请培训 4、新增-相关方人员撤场申请审批-分公司审批相关方人员撤回申请 监管端PC 1、新增-三人以上风险分布图菜单,查看分公司数据 2、新增-人员聚集分布图菜单,查看分公司数据 3、优化-重点工程菜单-搜索条件可以手动输入,主管部门和监管部门可以选择全部企业 4、优化-入场告知培训管理-优化审核流程 相关方PC 1、新增-人员推送申请-相关方对分公司推送人员 2、新增-人员撤回申请-相关方对分公司申请撤回人员 企业端APP 1、优化-动火作业-监火改为选择部门 2、新增-查看重点工程监控视频 3、新增-重点工程创建人审核开工申请和结束申请 监管端APP 1、新增-查看重点工程监控视频 2、新增-重点工程创建人审核开工申请和结束申请 一公司app 1、新增-原来动火作业改为国标新动火作业审批流程