jy-safe-app/pages/apply/subPages/HM/5hazardShow.vue

390 lines
11 KiB
Vue
Raw Permalink Normal View History

2025-10-14 15:17:30 +08:00
<template>
<view class="todo-page">
<uni-card margin="0" :is-shadow="true">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model">
<u-form-item label="添加时间:" prop="model.CREATE_TIME" borderBottom>
<u--input v-model="model.CREATE_TIME" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="辨识区域:" prop="Nav_Area.NAME" borderBottom>
<u--input v-model="(model.Nav_Area||{}).NAME" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="职业危害位置:" prop="HAZARD_POSITION" borderBottom>
<u--input v-model="model.HAZARD_POSITION" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="职业危害名称:" prop="Nav_Identifying.NAME" borderBottom>
<u--input v-model="(model.Nav_Identifying||{}).NAME" border="none" slot="right" inputAlign="right"
disabled disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="暴露时间:" prop="EXPOSURE_TIME" borderBottom>
<u--input autoHeight v-model="model.EXPOSURE_TIME" border="none" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="暴露限值:" prop="EXPOSURE_LIMIT_VALUE" borderBottom>
<u--input autoHeight v-model="model.EXPOSURE_LIMIT_VALUE" border="none" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="暴露人数:" prop="EXPOSURE_NUMBER" borderBottom>
<u--input autoHeight v-model="model.EXPOSURE_NUMBER" border="none" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="可能造成的职业风险:" prop="Equs" borderBottom>
<u--input autoHeight v-model="(model.Nav_OccupationalRisk||{}).NAME" border="none" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="危害等级:" prop="HAZARD_LEVEL" borderBottom>
<u--input v-model="model.HAZARD_LEVEL" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="监测措施:" prop="Nav_MonitorMeasures.NAME" >
<!-- <u--input v-model="model.Nav_MonitorMeasures.NAME" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input> -->
</u-form-item>
<u-textarea v-model="(model.Nav_MonitorMeasures||{}).NAME" disabled border="none" inputAlign="right"></u-textarea>
<u-form-item label="个体防护措施:" prop="Measure1" borderBottom>
</u-form-item>
<u--textarea v-model="model.Measure1" border="none" inputAlign="right" disabled></u--textarea>
<u-form-item label="工程控制措施:" prop="Measure2" borderBottom>
</u-form-item>
<u--textarea v-model="model.Measure2" border="none" inputAlign="right" disabled></u--textarea>
<u-form-item label="管理控制措施:" prop="Measure3" borderBottom>
</u-form-item>
<u--textarea v-model="model.Measure3" border="none" inputAlign="right" disabled></u--textarea>
<u-form-item label="教育培训措施:" prop="Measure4" borderBottom>
</u-form-item>
<u--textarea v-model="model.Measure4" border="none" inputAlign="right" disabled></u--textarea>
<u-form-item label="应急处置措施:" prop="Measure5" borderBottom>
</u-form-item>
<u--textarea v-model="model.Measure5" border="none" inputAlign="right" disabled></u--textarea>
<u-form-item label="责任单位:" prop="Nav_DepartmentLiable.NAME" borderBottom>
<u--input v-model="(model.Nav_DepartmentLiable||{}).NAME" border="none" slot="right" inputAlign="right"
disabled disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="责任岗位:" prop="Nav_PostLiable.NAME" borderBottom>
<u--input v-model="(model.Nav_PostLiable||{}).NAME" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
<u-form-item label="管控层级:" prop="LEVEL" borderBottom>
<u--input v-model="model.LEVEL" border="none" slot="right" inputAlign="right" disabled
disabledColor="#fff"></u--input>
</u-form-item>
</u--form>
</uni-card>
</view>
</template>
<script>
import {
initFilter,
extendRule,
extendInclude
} from '../../../../utils/common'
import {
getRequest,
} from '../../../../services/apply/FOServices/FOServices'
import '../../../../utils/showMsg.js'
import color from '../../../../uni_modules/uview-ui/libs/config/color'
import config from '../../../../config/common'
export default {
data() {
return {
model: {
Nav_Area: "",
Nav_OperationStep: "",
Nav_Identifying: "",
Nav_Type: "",
Nav_DepartmentLiable:"",
Nav_PostLiable:"",
Nav_OccupationalRisk:"",
Nav_MonitorMeasures:"",
Posts: "",
Equs: "",
Measure1: "",
Measure2: "",
Measure3: "",
Measure4: "",
Measure5: "",
},
}
},
onLoad(option) {
this.model.ID = option.ID;
this.loadData()
},
methods: {
loadData() {
const orgId = uni.getStorageSync('orgId')
const json = initFilter(orgId, "", "CODE", 1)
extendRule(json, 'ID', 1, this.model.ID);
extendInclude(json, 'Nav_Identifying');
extendInclude(json, 'Nav_Area');
extendInclude(json, 'Nav_OccupationalRisk');
extendInclude(json, 'Nav_MonitorMeasures');
extendInclude(json, 'Nav_EvaluateHazardIndividualMeasures.Nav_IndividualMeasures');
extendInclude(json, 'Nav_EvaluateHazardEngineeringMeasures.Nav_EngineeringMeasures');
extendInclude(json, 'Nav_EvaluateHazardManagementMeasures.Nav_ManagementMeasures');
extendInclude(json, 'Nav_EvaluateHazardEducationMeasures.Nav_EducationMeasures');
extendInclude(json, 'Nav_EvaluateHazardEmergencyMeasures.Nav_EmergencyMeasures');
extendInclude(json, 'Nav_DepartmentLiable');
extendInclude(json, 'Nav_PostLiable');
getRequest(json,"/HM/EvaluateHazard/Get").then(res => {
this.model = res
//数据组装
this.model.HAZARD_LEVEL = this.transRiskLevel(this.model.HAZARD_LEVEL);
this.model.LEVEL = this.transLevel(this.model.LEVEL);
this.model.Measure1 = res.Nav_EvaluateHazardIndividualMeasures.length > 0 ? res
.Nav_EvaluateHazardIndividualMeasures[0].Nav_IndividualMeasures.NAME : "";
this.model.Measure2 = res.Nav_EvaluateHazardEngineeringMeasures.length > 0 ? res
.Nav_EvaluateHazardEngineeringMeasures[0].Nav_EngineeringMeasures.NAME : "";
this.model.Measure3 = res.Nav_EvaluateHazardManagementMeasures.length > 0 ? res
.Nav_EvaluateHazardManagementMeasures[0].Nav_ManagementMeasures.NAME : "";
this.model.Measure4 = res.Nav_EvaluateHazardEducationMeasures.length > 0 ? res
.Nav_EvaluateHazardEducationMeasures[0].Nav_EducationMeasures.NAME : "";
this.model.Measure5 = res.Nav_EvaluateHazardEmergencyMeasures.length > 0 ? res
.Nav_EvaluateHazardEmergencyMeasures[0].Nav_EmergencyMeasures.NAME : "";
})
},
transRiskLevel(level) {
if (level == 0) {
return '部门 ';
}
if (level == 10) {
return '1级';
}
if (level == 20) {
return '2级';
}
if (level == 30) {
return '3级';
}
if (level == 40) {
return '4级';
}
},
transLevel(level) {
if (level == 0) {
return '部门';
}
if (level == 1) {
return '车间';
}
if (level == 2) {
return '班组';
}
if (level == 3) {
return '公司';
}
},
},
}
</script>
<style>
.todo-page {
padding: 16px;
}
.todo-page .status-bar {
height: 120px;
background-image: linear-gradient(to right, #CFECFF, #6EB6FF);
position: absolute;
top: 0;
left: 0;
z-index: -10;
}
.todo-page .main {
padding: 62px 8px;
position: relative;
z-index: 10;
background-size: 100% 120px;
background-repeat: no-repeat;
}
.todo-page .swiper-wrap {
margin-bottom: 16px;
}
.tabs-bar {
display: flex;
flex-direction: row;
}
.tabs-bar .tab {
display: flex;
align-items: center;
position: relative;
margin-right: 20px;
padding-bottom: 6px;
}
.tabs-bar .tab .t {
position: relative
}
.tabs-bar .tab .t .name {
font-size: 18px;
line-height: 22px;
color: #999;
}
.tabs-bar .tab .bottom-widget {
width: 20px;
height: 3px;
background-color: #004F9D;
}
.content-list {
padding: 10px 0;
}
.content-list .card {
border-radius: 8px;
margin-bottom: 12px;
font-size: 14px;
overflow: hidden;
/*display: flex;*/
/*flex-direction: row;*/
padding: 14px;
/*box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);*/
/*box-sizing: border-box;*/
/* #ifndef APP-NVUE */
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);
/* #endif */
/*#ifdef APP-NVUE */
border: 1px solid rgba(0, 0, 0, 0.1);
/*#endif */
}
.content-list .card .card-body {
display: flex;
flex-direction: row;
}
.content-list .card .card-body .left {
margin-right: 4px;
width: 20px;
padding-top: 4px;
}
.content-list .card .card-body .left .todo-icon {
width: 16px;
height: 16px;
}
.content-list .card .card-body .contain {
flex: 1;
}
.content-list .card .card-body .content {
margin-bottom: 6px;
display: flex;
flex-direction: row;
}
.content-list .card .card-body .content-text {
color: #333333;
line-height: 24px;
font-weight: bold;
font-size: 16px;
flex: 1;
}
.content-list .card .card-body .content-bottom {
display: flex;
flex-direction: row;
align-items: flex-end;
}
.content-list .card .card-body .date-time {
flex: 1
}
.content-list .card .card-body .content-status {
width: 56px;
}
.content-list .card .card-body .status {
background: rgba(255, 87, 51, 0.2);
color: rgba(255, 87, 51, 1);
text-align: center;
font-size: 12px;
width: 56px;
height: 18px;
line-height: 18px;
border-radius: 2px;
}
.content-list .card .card-body .status.normal {
background: rgba(0, 161, 64, 0.2);
color: rgba(0, 161, 64, 1);
}
.content-list .card .card-body .status.warn {
background: rgba(202, 158, 3, 0.2);
color: rgba(202, 158, 3, 1);
}
.content-list .card .card-body .time {
font-weight: 400;
line-height: 18px;
color: #333333;
display: flex;
flex-direction: row;
margin-top: 4px;
align-items: center;
}
.content-list .card .card-body .time .point {
width: 8px;
height: 8px;
border-radius: 50%;
margin-right: 4px;
}
.content-list .card .card-body .time .point.green {
background: #00A140;
}
.content-list .card .card-body .time .point.red {
background: #EE0A24;
}
.content-list .card .card-body .label {
color: #666666;
font-size: 12px;
}
.content-list .card .card-body .value {
font-size: 12px;
}
.bottom {
position: fixed;
bottom: 0;
display: block;
margin-left: auto;
margin-right: auto;
padding-left: 14px;
padding-right: 14px;
box-sizing: border-box;
font-size: 18px;
text-align: center;
text-decoration: none;
line-height: 2.55555556;
border-radius: 5px;
-webkit-tap-highlight-color: transparent;
overflow: hidden;
color: #000;
background-color: #f8f8f8;
cursor: pointer;
color: #fff;
background-color: #007aff;
width: 92%;
}
</style>