From 0c0fa2483fd431104f6498e40fffd983d913dce2 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Tue, 25 Apr 2023 17:11:09 +0800
Subject: [PATCH] 修改
---
src/views/analyse/evaluate/components/evaluateDialog.vue | 1119 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 992 insertions(+), 127 deletions(-)
diff --git a/src/views/analyse/evaluate/components/evaluateDialog.vue b/src/views/analyse/evaluate/components/evaluateDialog.vue
index 2fb58e0..0962dd0 100644
--- a/src/views/analyse/evaluate/components/evaluateDialog.vue
+++ b/src/views/analyse/evaluate/components/evaluateDialog.vue
@@ -1,6 +1,6 @@
<template>
<div class="system-menu-dialog-container">
- <el-dialog :title="evaluateDialogState.title" v-model="evaluateDialogState.evaluateDialogVisible" width="600px">
+ <el-dialog :title="evaluateDialogState.title" v-model="evaluateDialogState.evaluateDialogVisible" width="70%">
<el-form ref="evaluateFormRef" :rules="evaluateDialogState.evaluateFormRules" :model="evaluateDialogState.evaluateForm" size="default" label-width="140px">
<el-row :gutter="35">
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
@@ -16,126 +16,609 @@
<!-- </el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="风险等级" prop="riskLevelValue">
- <el-select class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.riskLevelValue" style="width:100%" placeholder="风险等级" clearable>
- <el-option v-for="item in evaluateDialogState.riskLevelValueList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="风险级别" prop="riskLevel">
- <el-select class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.riskLevel" style="width:100%" placeholder="风险级别" clearable>
- <el-option v-for="item in evaluateDialogState.riskLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="风险色" prop="riskColor">
- <el-select class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.riskColor" style="width:100%" placeholder="风险色" clearable>
- <el-option v-for="item in evaluateDialogState.riskColorList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="管理层级" prop="manageLevel">
- <el-select class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.manageLevel" style="width:100%" placeholder="管理层级" clearable>
- <el-option v-for="item in evaluateDialogState.manageLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="评价方法" prop="identificationMethod">
- <el-select class="input-length" :disabled="true" v-model="evaluateDialogState.evaluateMethod" style="width:100%" placeholder="评价方法" clearable>
- <el-option v-for="item in evaluateDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
-
- <div style="width: 100%" v-if="evaluateDialogState.evaluateMethod === 1">
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span v-if="evaluateDialogState.evaluateForm.identificationMethod === 1">PHA辨识法</span>
+ <span v-if="evaluateDialogState.evaluateForm.identificationMethod === 2">JHA辨识法</span>
+ <span v-if="evaluateDialogState.evaluateForm.identificationMethod === 3">SCL辨识法</span>
+ <span v-if="evaluateDialogState.evaluateForm.identificationMethod === 4">HAZOP辨识法</span>
+ <span v-if="evaluateDialogState.evaluateForm.identificationMethod === 5">类比辨识法</span>
+ </div>
+ <div v-if="evaluateDialogState.evaluateForm.identificationMethod === 1">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="LEC_L" prop="lecL">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lecL" placeholder="LEC_L" clearable></el-input>
- </el-form-item>
+ <el-form-item label="检查项目">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.phaCheckItem" placeholder="检查项目" clearable></el-input>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="LEC_E" prop="lecE">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lecE" placeholder="LEC_E" clearable></el-input>
- </el-form-item>
+ <el-form-item label="存在风险因素">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.phaRiskFactor" placeholder="存在风险因素" clearable></el-input>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="LEC_C" prop="lecC">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lecC" placeholder="LEC_C" clearable></el-input>
- </el-form-item>
+ <el-form-item label="可能产生的后果">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.phaResult" placeholder="可能产生的后果" clearable></el-input>
+ </el-form-item>
</el-col>
+ </div>
+ <div v-if="evaluateDialogState.evaluateForm.identificationMethod === 2">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="作业步骤">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.jhaCheckItem" placeholder="作业步骤" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="危险源或潜在事件">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.jhaRiskFactor" placeholder="危险源或潜在事件" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="可能产生的后果">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.jhaResult" placeholder="可能产生的后果" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div v-if="evaluateDialogState.evaluateForm.identificationMethod === 3">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="检查项目">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.sclCheckItem" placeholder="检查项目" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="检查标准">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.sclCheckStandard" placeholder="检查标准" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="不符合标准情况">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.sclCheckUnstandard" placeholder="不符合标准情况" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="主要后果">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.sclCheckResult" placeholder="主要后果" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div v-if="evaluateDialogState.evaluateForm.identificationMethod === 4">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="节点">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopNode" placeholder="HAZOP_节点" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="参数">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopParam" placeholder="HAZOP_参数" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="参数描述">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopParamDesc" placeholder="HAZOP_参数描述" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="引导词">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopGuide" placeholder="HAZOP_引导词" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="偏差">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopDeviation" placeholder="HAZOP_偏差" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="可能原因">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopPossibleCauses" placeholder="HAZOP_可能原因" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="主要后果">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.hazopResult" placeholder="HAZOP_主要后果" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div v-if="evaluateDialogState.evaluateForm.identificationMethod === 5">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="检查项目" prop="analogyCheckItem">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.analogyCheckItem" placeholder="检查项目" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="类比参照" prop="analogyReference">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.analogyReference" placeholder="类比参照" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="存在风险因素" prop="analogyRiskFactor">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.analogyRiskFactor" placeholder="存在风险因素" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="可能产生的后果" prop="analogyResult">
+ <el-input class="input-length" disabled v-model="evaluateDialogState.evaluateInfo.analogyResult" placeholder="可能产生的后果" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </div>
</div>
- <div style="width: 100%" v-if="evaluateDialogState.evaluateMethod === 2">
+ <el-col style="display: flex;align-items: center" :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="评价方法" style="width: 80% !important;">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.evaluateMethod" style="width:100%" placeholder="评价方法" clearable>
+ <el-option v-for="item in evaluateDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-button :disabled="evaluateDialogState.disabled" size="default" type="primary" @click="openChangeMethod()">修改评价方法</el-button>
+ </el-col>
+
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span>固有风险评分</span>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 1">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="LS_L" prop="lsL">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lsL" placeholder="LS_L " clearable></el-input>
- </el-form-item>
+ <el-form-item label="LEC_L" prop="originalLecL">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalLecL" @change="calcOriginScore('lec')" style="width:100%" placeholder="LEC_L的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLecL" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="LS_S" prop="lsS">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lsS" placeholder="LS_S" clearable></el-input>
- </el-form-item>
+ <el-form-item label="LEC_E" prop="originalLecE">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalLecE" @change="calcOriginScore('lec')" style="width:100%" placeholder="LEC_E的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLecE" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
</el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LEC_C" prop="originalLecC">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalLecC" @change="calcOriginScore('lec')" style="width:100%" placeholder="LEC_C的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLecC" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div class="longTit"><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div class="longTit"><div>停工情况:</div><span>{{item.stopWork}}</span></div>
+ <div class="longTit"><div>企业形象:</div><span>{{item.company}}</span></div>
+ <div class="longTit"><div>法律,法规及其它要求:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 2">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LS_L" prop="originalLsL">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalLsL" @change="calcOriginScore('ls')" style="width:100%" placeholder="LS_L的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLsL" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LS_S" prop="originalLsS">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalLsS" @change="calcOriginScore('ls')" style="width:100%" placeholder="LS_S的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLsS" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div class="longTit"><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div class="longTit"><div>停工情况:</div><span>{{item.stopWork}}</span></div>
+ <div class="longTit"><div>企业形象:</div><span>{{item.company}}</span></div>
+ <div class="longTit"><div>法律,法规及其它要求:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 3">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="MES_M" prop="originalMesM">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalMesM" @change="calcOriginScore('mes')" style="width:100%" placeholder="MES_M的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listMesM" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="MES_E" prop="originalMesE">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalMesE" @change="calcOriginScore('mes')" style="width:100%" placeholder="MES_E的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listMesE" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>e1标准:</div><span>{{item.e1Desc}}</span></div>
+ <div><div>e2标准:</div><span>{{item.e2Desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="MES_S" prop="originalMesS">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalMesS" @change="calcOriginScore('mes')" style="width:100%" placeholder="MES_S的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listMesS" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div class="longTit"><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div class="longTit"><div>停工情况:</div><span>{{item.stopWork}}</span></div>
+ <div class="longTit"><div>法律,法规及其它要求:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 4">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RS_R" prop="originalRsR">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalRsR" @change="calcOriginScore('rs')" style="width:100%" placeholder="RS_R的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listRsR" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>区间,定量描述:</div><span>{{item.section}}</span></div>
+ <div class="longTit"><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RS_S" prop="originalRsS">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.originalRsS" @change="calcOriginScore('rs')" style="width:100%" placeholder="RS_S的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listRsS" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
</div>
- <div style="width: 100%" v-if="evaluateDialogState.evaluateMethod === 3">
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span>固有风险分值</span>
+ </div>
+ <div>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="MES_M" prop="mesM">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesM" placeholder="MES_M" clearable></el-input>
- </el-form-item>
+ <el-form-item label="风险值" prop="originalRiskValue">
+ <el-input type="number" class="input-length" disabled v-model="evaluateDialogState.evaluateForm.originalRiskValue" placeholder="风险数值" clearable></el-input>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="MES_E" prop="mesE">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesE" placeholder="MES_E" clearable></el-input>
- </el-form-item>
+ <el-form-item label="风险等级值" prop="originalRiskLevelValue">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.originalRiskLevelValue" style="width:100%" placeholder="风险等级值" clearable>
+ <el-option v-for="item in evaluateDialogState.riskLevelValueList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="MES_S" prop="mesS">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesS" placeholder="MES_S" clearable></el-input>
- </el-form-item>
+ <el-form-item label="风险级别" prop="originalRiskLevel">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.originalRiskLevel" style="width:100%" placeholder="风险级别" clearable>
+ <el-option v-for="item in evaluateDialogState.riskLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
</el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="风险色" prop="originalRiskColor">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.originalRiskColor" style="width:100%" placeholder="风险色" clearable>
+ <el-option v-for="item in evaluateDialogState.riskColorList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
</div>
- <div style="width: 100%" v-if="evaluateDialogState.evaluateMethod === 4">
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span>现有措施</span>
+ </div>
+ <div>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="RS_R" prop="rsR">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.rsR" placeholder="RS_R" clearable></el-input>
- </el-form-item>
+ <el-form-item label="技术措施" prop="technologyMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.technologyMeasure" placeholder="技术措施" clearable></el-input>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="RS_S" prop="rsS">
- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.rsS" placeholder="RS_S" clearable></el-input>
- </el-form-item>
+ <el-form-item label="管理措施" prop="manageMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.manageMeasure" placeholder="管理措施" clearable></el-input>
+ </el-form-item>
</el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="教育措施" prop="educationMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.educationMeasure" placeholder="教育措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="个体防护措施" prop="personalProtectionMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.personalProtectionMeasure" placeholder="个体防护措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="应急措施" prop="emergencyMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.emergencyMeasure" placeholder="应急措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </div>
</div>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="风险数值" prop="rsS">
- <el-input type="number" class="input-length" :disabled="true" v-model="numValue" placeholder="风险数值" clearable></el-input>
- </el-form-item>
+
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span>现有风险评分</span>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 1">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LEC_L" prop="lecL">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lecL" @change="calcScore('lec')" style="width:100%" placeholder="LEC_L的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLecL" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LEC_E" prop="lecE">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lecE" @change="calcScore('lec')" style="width:100%" placeholder="LEC_E的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLecE" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LEC_C" prop="lecC">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lecC" @change="calcScore('lec')" style="width:100%" placeholder="LEC_C的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLecC" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div class="longTit"><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div class="longTit"><div>停工情况:</div><span>{{item.stopWork}}</span></div>
+ <div class="longTit"><div>企业形象:</div><span>{{item.company}}</span></div>
+ <div class="longTit"><div>法律,法规及其它要求:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 2">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LS_L" prop="lsL">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lsL" @change="calcScore('ls')" style="width:100%" placeholder="LS_L的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLsL" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="LS_S" prop="lsS">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lsS" @change="calcScore('ls')" style="width:100%" placeholder="LS_S的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listLsS" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div class="longTit"><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div class="longTit"><div>停工情况:</div><span>{{item.stopWork}}</span></div>
+ <div class="longTit"><div>企业形象:</div><span>{{item.company}}</span></div>
+ <div class="longTit"><div>法律,法规及其它要求:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 3">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="MES_M" prop="mesM">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesM" @change="calcScore('mes')" style="width:100%" placeholder="MES_M的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listMesM" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="MES_E" prop="mesE">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesE" @change="calcScore('mes')" style="width:100%" placeholder="MES_E的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listMesE" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>e1标准:</div><span>{{item.e1Desc}}</span></div>
+ <div><div>e2标准:</div><span>{{item.e2Desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="MES_S" prop="mesS">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesS" @change="calcScore('mes')" style="width:100%" placeholder="MES_S的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listMesS" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div class="longTit"><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div class="longTit"><div>停工情况:</div><span>{{item.stopWork}}</span></div>
+ <div class="longTit"><div>法律,法规及其它要求:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ <div class="valueSelect" v-if="evaluateDialogState.evaluateMethod === 4">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RS_R" prop="rsR">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.rsR" @change="calcScore('rs')" style="width:100%" placeholder="RS_R的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listRsR" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div class="longTit"><div>分值:</div><span>{{item.value}}</span></div>
+ <div class="longTit"><div>区间,定量描述:</div><span>{{item.section}}</span></div>
+ <div class="longTit"><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RS_S" prop="rsS">
+ <el-select class="input-length" :teleported="false" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.rsS" @change="calcScore('rs')" style="width:100%" placeholder="RS_S的数值" clearable>
+ <el-option v-for="item in evaluateDialogState.listRsS" :key="item.value" :label="item.value" :value="item.value">
+ <div class="valueTable">
+ <div><div>分值:</div><span>{{item.value}}</span></div>
+ <div><div>人员伤亡:</div><span>{{item.person}}</span></div>
+ <div><div>直接经济损失:</div><span>{{item.money}}</span></div>
+ <div><div>标准:</div><span>{{item.desc}}</span></div>
+ </div>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ </div>
+
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span>现有风险分值</span>
+ </div>
+ <div>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="风险值" prop="riskValue">
+ <el-input type="number" class="input-length" disabled v-model="evaluateDialogState.evaluateForm.riskValue" placeholder="风险数值" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="风险等级值" prop="riskLevelValue">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.riskLevelValue" style="width:100%" placeholder="风险等级值" clearable>
+ <el-option v-for="item in evaluateDialogState.riskLevelValueList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="风险级别" prop="riskLevel">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.riskLevel" style="width:100%" placeholder="风险级别" clearable>
+ <el-option v-for="item in evaluateDialogState.riskLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="风险色" prop="riskColor">
+ <el-select class="input-length" disabled v-model="evaluateDialogState.evaluateForm.riskColor" style="width:100%" placeholder="风险色" clearable>
+ <el-option v-for="item in evaluateDialogState.riskColorList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </div>
+ </div>
+
+ <div class="evaluateCard">
+ <div class="cardTit">
+ <span>建议措施</span>
+ </div>
+ <div>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="技术措施" prop="adviseTechnologyMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.adviseTechnologyMeasure" placeholder="技术措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="管理措施" prop="adviseManageMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.adviseManageMeasure" placeholder="管理措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="教育措施" prop="adviseEducationMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.adviseEducationMeasure" placeholder="教育措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="个体防护措施" prop="advisePersonalProtectionMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.advisePersonalProtectionMeasure" placeholder="个体防护措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="应急措施" prop="adviseEmergencyMeasure">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:1 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.adviseEmergencyMeasure" placeholder="应急措施" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </div>
+ </div>
+
+ <el-col style="display: flex;align-items: center" :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="评价专家意见" prop="evaluateDesc" style="width: 100% !important;">
+ <el-input type="textarea" class="input-length" :autosize="{ minRows:2 }" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.evaluateDesc" placeholder="评价专家意见" clearable></el-input>
+ </el-form-item>
</el-col>
</el-row>
</el-form>
+ <el-dialog title="修改评价方法" v-model="evaluateDialogState.evaluateMethodVisible" width="30%">
+ <el-select class="input-length" v-model="evaluateDialogState.evaluateForm.evaluateMethod" style="width:100%" placeholder="评价方法" clearable>
+ <el-option v-for="item in evaluateDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ <template #footer>
+ <span class="Query-footer">
+ <el-button @click="evaluateDialogState.evaluateMethodVisible = false" size="default">取 消</el-button>
+ <el-button type="primary" @click="conFirmChange()" size="default">确定</el-button>
+ </span>
+ </template>
+ </el-dialog>
<template #footer>
- <span class="dialog-footer">
- <el-button @click="evaluateDialogState.evaluateDialogVisible = !evaluateDialogState.evaluateDialogVisible" size="default">取 消</el-button>
- <el-button v-if="!evaluateDialogState.disabled" type="primary" @click="onSubmitEvaluate" size="default">确定</el-button>
- </span>
+ <span class="dialog-footer">
+ <el-button @click="evaluateDialogState.evaluateDialogVisible = !evaluateDialogState.evaluateDialogVisible" size="default">取 消</el-button>
+ <el-button v-if="!evaluateDialogState.disabled" type="primary" @click="onSubmitEvaluate" size="default">提交</el-button>
+ </span>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts">
-import {computed, reactive, ref} from "vue";
+import {computed, onMounted, reactive, ref} from "vue";
import {ElMessage} from "element-plus";
import {evaluateApi} from "/@/api/analyse/evaluate";
import {isValidKey, numFloat} from "/@/utils/methods";
+import { BigNumber } from 'bignumber.js';
+import {identifyApi} from "/@/api/analyse/identify";
+import {ElMessageBox} from "element-plus/es";
const evaluateFormRef = ref()
@@ -144,15 +627,51 @@
time:[],
disabled: false,
evaluateDialogVisible: false,
- evaluateMethod: 1,
+ evaluateMethodVisible:false,
+ evaluateMethod: null,
+ evaluateInfo: {
+ id: null,
+ identificationMethod: null,
+ result: null,
+ identificationDesc: '',
+ analogyCheckItem: '',
+ analogyRiskFactor: '',
+ analogyResult: '',
+ analogyReference: '',
+ hazopNode: '',
+ hazopParam: '',
+ hazopParamDesc: '',
+ hazopGuide: '',
+ hazopDeviation: '',
+ hazopPossibleCauses: '',
+ hazopResult: '',
+ jhaCheckItem: '',
+ jhaRiskFactor: '',
+ jhaResult: '',
+ phaCheckItem: '',
+ phaRiskFactor: '',
+ phaResult: '',
+ sclCheckItem: '',
+ sclCheckStandard: '',
+ sclCheckUnstandard: '',
+ sclCheckResult: '',
+ hazopId: null,
+ jhaId: null,
+ phaId: null,
+ sclId: null,
+ analogyId: null
+ },
evaluateForm: {
id: null,
+ evaluateMethod: null,
+ identificationMethod: null,
identificationId: null,
+ manageLevel: 1,
+ originalManageLevel: 1,
riskValue: null,
riskLevelValue: null,
riskLevel: null,
riskColor: null,
- manageLevel: null,
lecL: null,
lecE: null,
lecC: null,
@@ -167,10 +686,45 @@
lsId: null,
mesId: null,
rsId: null,
+ originalLecL: null,
+ originalLecE: null,
+ originalLecC: null,
+ originalLsL: null,
+ originalLsS: null,
+ originalMesM: null,
+ originalMesE: null,
+ originalMesS: null,
+ originalRsR: null,
+ originalRsS: null,
+ originalRiskValue: null,
+ originalRiskLevelValue: null,
+ originalRiskLevel: null,
+ originalRiskColor: null,
+ technologyMeasure: '',
+ manageMeasure: '',
+ educationMeasure: '',
+ personalProtectionMeasure: '',
+ emergencyMeasure: '',
+ adviseTechnologyMeasure: '',
+ adviseManageMeasure: '',
+ adviseEducationMeasure: '',
+ advisePersonalProtectionMeasure: '',
+ adviseEmergencyMeasure: '',
+ evaluateDesc: ''
},
evaluateFormRules: {
},
+ listLecL: [],
+ listLecE: [],
+ listLecC: [],
+ listLsL:[],
+ listLsS:[],
+ listRsR:[],
+ listRsS:[],
+ listMesM:[],
+ listMesE:[],
+ listMesS:[],
manageLevelList: [
{id:1, name: '院所级'},
{id:2, name: '部门级'},
@@ -210,75 +764,159 @@
]
})
-const numValue = computed( () => {
+const numOriginValue = computed( () => {
return numFloat(
- evaluateDialogState.evaluateForm.lecE,
- evaluateDialogState.evaluateForm.lecL,
- evaluateDialogState.evaluateForm.lecC,
- evaluateDialogState.evaluateForm.mesE,
- evaluateDialogState.evaluateForm.mesM,
- evaluateDialogState.evaluateForm.mesS,
- evaluateDialogState.evaluateForm.rsS,
- evaluateDialogState.evaluateForm.rsR,
- evaluateDialogState.evaluateForm.lsS,
- evaluateDialogState.evaluateForm.lsL)
+ evaluateDialogState.evaluateForm.originalLecL,
+ evaluateDialogState.evaluateForm.originalLecE,
+ evaluateDialogState.evaluateForm.originalLecC,
+ evaluateDialogState.evaluateForm.originalLsL,
+ evaluateDialogState.evaluateForm.originalLsS,
+ evaluateDialogState.evaluateForm.originalMesM,
+ evaluateDialogState.evaluateForm.originalMesE,
+ evaluateDialogState.evaluateForm.originalMesS,
+ evaluateDialogState.evaluateForm.originalRsR,
+ evaluateDialogState.evaluateForm.originalRsS
+ )
})
-const showEvaluateDialog = (title: string, value: EvaluateType ) => {
+const numValue = computed( () => {
+ return numFloat(
+ evaluateDialogState.evaluateForm.lecL,
+ evaluateDialogState.evaluateForm.lecE,
+ evaluateDialogState.evaluateForm.lecC,
+ evaluateDialogState.evaluateForm.lsL,
+ evaluateDialogState.evaluateForm.lsS,
+ evaluateDialogState.evaluateForm.mesM,
+ evaluateDialogState.evaluateForm.mesE,
+ evaluateDialogState.evaluateForm.mesS,
+ evaluateDialogState.evaluateForm.rsR,
+ evaluateDialogState.evaluateForm.rsS
+ )
+})
+
+const showEvaluateDialog = (title: string, value: IdentifyType ) => {
evaluateDialogState.evaluateDialogVisible = true;
evaluateDialogState.disabled = false
evaluateDialogState.evaluateMethod = value.evaluateMethod as number
+ evaluateDialogState.evaluateInfo = value
setTimeout(() => {
evaluateFormRef.value.clearValidate();
});
- if( value.lecId || value.lsId || value.mesId || value.rsId){
+ if( title === '评价'){
+ if(value.riskValue){
evaluateDialogState.title = '编辑评价';
for(let i in evaluateDialogState.evaluateForm){
- if(isValidKey(i, evaluateDialogState.evaluateForm)){
- evaluateDialogState.evaluateForm[i] = value[i]
- }
+ if(isValidKey(i, evaluateDialogState.evaluateForm)){
+ evaluateDialogState.evaluateForm[i] = value[i]
+ }
}
- }else if(title === '查看'){
+ }else{
+ evaluateDialogState.title = '评价'
+ evaluateDialogState.evaluateForm = {
+ id: null,
+ evaluateMethod: null,
+ identificationMethod: null,
+ identificationId: null,
+ manageLevel: 1,
+ originalManageLevel: 1,
+ riskValue: null,
+ riskLevelValue: null,
+ riskLevel: null,
+ riskColor: null,
+ lecL: null,
+ lecE: null,
+ lecC: null,
+ lsL: null,
+ lsS: null,
+ mesM: null,
+ mesE: null,
+ mesS: null,
+ rsR: null,
+ rsS: null,
+ lecId: null,
+ lsId: null,
+ mesId: null,
+ rsId: null,
+ originalLecL: null,
+ originalLecE: null,
+ originalLecC: null,
+ originalLsL: null,
+ originalLsS: null,
+ originalMesM: null,
+ originalMesE: null,
+ originalMesS: null,
+ originalRsR: null,
+ originalRsS: null,
+ originalRiskValue: null,
+ originalRiskLevelValue: null,
+ originalRiskLevel: null,
+ originalRiskColor: null,
+ technologyMeasure: '',
+ manageMeasure: '',
+ educationMeasure: '',
+ personalProtectionMeasure: '',
+ emergencyMeasure: '',
+ adviseTechnologyMeasure: '',
+ adviseManageMeasure: '',
+ adviseEducationMeasure: '',
+ advisePersonalProtectionMeasure: '',
+ adviseEmergencyMeasure: '',
+ evaluateDesc: ''
+ };
+ }
+ }else {
+ evaluateDialogState.title = '查看'
evaluateDialogState.disabled = true
for(let i in evaluateDialogState.evaluateForm){
if(isValidKey(i, evaluateDialogState.evaluateForm)){
evaluateDialogState.evaluateForm[i] = value[i]
}
}
- }else{
- evaluateDialogState.title = '评价';
- evaluateDialogState.evaluateForm = {
- id: null,
- identificationId: null,
- riskValue: null,
- riskLevelValue: null,
- riskLevel: null,
- riskColor: null,
- manageLevel: null,
- lecL: null,
- lecE: null,
- lecC: null,
- lsL: null,
- lsS: null,
- mesM: null,
- mesE: null,
- mesS: null,
- rsR: null,
- rsS: null,
- lecId: null,
- lsId: null,
- mesId: null,
- rsId: null,
- };
}
evaluateDialogState.evaluateForm.id = value.id as number
+ evaluateDialogState.evaluateForm.evaluateMethod = value.evaluateMethod as number
+ evaluateDialogState.evaluateForm.identificationMethod = value.phaId?1:value.jhaId?2:value.sclId?3:value.hazopId?4:5
evaluateDialogState.evaluateForm.identificationId = (value.hazopId || value.jhaId || value.phaId || value.sclId || value.analogyId) as number
};
+
+const openChangeMethod = ()=>{
+ evaluateDialogState.evaluateMethodVisible = true
+}
+
+const conFirmChange = async () =>{
+ ElMessageBox.confirm(`此操作将修改该评价计划的评价方法并清除之前的所有评价信息,是否继续?`, '提示', {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(async () => {
+ let res = await evaluateApi().modEvaluateMethod({
+ id: evaluateDialogState.evaluateForm.id,
+ evaluateMethodId: evaluateDialogState.evaluateForm.evaluateMethod
+ });
+ if(res.data.code === 100){
+ ElMessage({
+ type: 'success',
+ message: '评价方法修改成功'
+ })
+ emit('refresh')
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ })
+ }
+ evaluateDialogState.evaluateMethodVisible = false
+ evaluateDialogState.evaluateDialogVisible = false
+ })
+ .catch((error) => {
+ });
+}
const onSubmitEvaluate = () => {
evaluateFormRef.value.validate(async(valid: boolean) => {
if(valid){
- evaluateDialogState.evaluateForm.riskValue = Number(numValue.value)
+ // evaluateDialogState.evaluateForm.riskValue = Number(numOriginValue.value)
if(evaluateDialogState.title === '评价'){
let { lecId, lsId, mesId, rsId, ...data} = evaluateDialogState.evaluateForm
let res = await evaluateApi().addEvaluate(data);
@@ -287,7 +925,7 @@
evaluateDialogState.evaluateDialogVisible = false;
ElMessage({
type: 'success',
- message: '新增成功'
+ message: '评价成功'
})
}else{
ElMessage({
@@ -320,13 +958,240 @@
})
}
+const getListLecL = async() =>{
+ let res = await evaluateApi().getListLecL()
+ if(res.data.code === 100){
+ evaluateDialogState.listLecL = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListLecE = async() =>{
+ let res = await evaluateApi().getListLecE()
+ if(res.data.code === 100){
+ evaluateDialogState.listLecE = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListLecC = async() =>{
+ let res = await evaluateApi().getListLecC()
+ if(res.data.code === 100){
+ evaluateDialogState.listLecC = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListLsL = async() =>{
+ let res = await evaluateApi().getListLsL()
+ if(res.data.code === 100){
+ evaluateDialogState.listLsL = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListLsS = async() =>{
+ let res = await evaluateApi().getListLsS()
+ if(res.data.code === 100){
+ evaluateDialogState.listLsS = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListRsR = async() =>{
+ let res = await evaluateApi().getListRsR()
+ if(res.data.code === 100){
+ evaluateDialogState.listRsR = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListRsS = async() =>{
+ let res = await evaluateApi().getListRsS()
+ if(res.data.code === 100){
+ evaluateDialogState.listRsS = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const getListMesM = async() =>{
+ let res = await evaluateApi().getListMesM()
+ if(res.data.code === 100){
+ evaluateDialogState.listMesM = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+const getListMesE = async() =>{
+ let res = await evaluateApi().getListMesE()
+ if(res.data.code === 100){
+ evaluateDialogState.listMesE = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+const getListMesS = async() =>{
+ let res = await evaluateApi().getListMesS()
+ if(res.data.code === 100){
+ evaluateDialogState.listMesS = res.data.data
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+}
+
+const calcOriginScore=(i:string)=>{
+ if((i == 'lec' && (evaluateDialogState.evaluateForm.originalLecL && evaluateDialogState.evaluateForm.originalLecE && evaluateDialogState.evaluateForm.originalLecC))||(i == 'ls' && (evaluateDialogState.evaluateForm.originalLsL && evaluateDialogState.evaluateForm.originalLsS))||(i == 'mes' &&(evaluateDialogState.evaluateForm.originalMesM && evaluateDialogState.evaluateForm.originalMesE && evaluateDialogState.evaluateForm.originalMesS))||(i == 'rs' && (evaluateDialogState.evaluateForm.originalRsR && evaluateDialogState.evaluateForm.originalRsS))){
+ evaluateDialogState.evaluateForm.originalRiskValue = Number(numOriginValue.value)
+ if(evaluateDialogState.evaluateForm.originalRiskValue<=0.5){
+ evaluateDialogState.evaluateForm.originalRiskLevelValue = 1
+ evaluateDialogState.evaluateForm.originalRiskLevel = 1
+ evaluateDialogState.evaluateForm.originalRiskColor = 1
+ }else if(evaluateDialogState.evaluateForm.originalRiskValue>0.5&&evaluateDialogState.evaluateForm.originalRiskValue<1){
+ evaluateDialogState.evaluateForm.originalRiskLevelValue = 2
+ evaluateDialogState.evaluateForm.originalRiskLevel = 2
+ evaluateDialogState.evaluateForm.originalRiskColor = 2
+ }else{
+ evaluateDialogState.evaluateForm.originalRiskLevelValue = 3
+ evaluateDialogState.evaluateForm.originalRiskLevel = 3
+ evaluateDialogState.evaluateForm.originalRiskColor = 3
+ }
+ }
+}
+
+const calcScore=(i:string)=>{
+ if((i == 'lec' && (evaluateDialogState.evaluateForm.lecL && evaluateDialogState.evaluateForm.lecE && evaluateDialogState.evaluateForm.lecC))||(i == 'ls' && (evaluateDialogState.evaluateForm.lsL && evaluateDialogState.evaluateForm.lsS))||(i == 'mes' &&(evaluateDialogState.evaluateForm.mesM && evaluateDialogState.evaluateForm.mesE && evaluateDialogState.evaluateForm.mesS))||(i == 'rs' && (evaluateDialogState.evaluateForm.rsR && evaluateDialogState.evaluateForm.rsS))){
+ evaluateDialogState.evaluateForm.riskValue = Number(numValue.value)
+ if(evaluateDialogState.evaluateForm.riskValue<=0.5){
+ evaluateDialogState.evaluateForm.riskLevelValue = 1
+ evaluateDialogState.evaluateForm.riskLevel = 1
+ evaluateDialogState.evaluateForm.riskColor = 1
+ }else if(evaluateDialogState.evaluateForm.riskValue>0.5&&evaluateDialogState.evaluateForm.riskValue<1){
+ evaluateDialogState.evaluateForm.riskLevelValue = 2
+ evaluateDialogState.evaluateForm.riskLevel = 2
+ evaluateDialogState.evaluateForm.riskColor = 2
+ }else{
+ evaluateDialogState.evaluateForm.riskLevelValue = 3
+ evaluateDialogState.evaluateForm.riskLevel = 3
+ evaluateDialogState.evaluateForm.riskColor = 3
+ }
+ }
+}
+
const emit = defineEmits(['refresh']);
+
+onMounted(()=>{
+ getListLecL()
+ getListLecE()
+ getListLecC()
+ getListLsL()
+ getListLsS()
+ getListRsR()
+ getListRsS()
+ getListMesM()
+ getListMesE()
+ getListMesS()
+})
defineExpose({
showEvaluateDialog
});
</script>
-<style scoped>
+<style lang="scss" scoped>
+.evaluateCard{
+ width: 100%;
+ margin: 0 40px 20px;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ background: #fff;
+ .cardTit{
+ width: 100%;
+ padding: 10px 20px;
+ background: #f5f5f5;
+ border-bottom: 1px solid #ccc;
+ margin-bottom: 20px;
+ }
+
+ .valueSelect{
+ ::v-deep(.el-popper){
+ .el-select-dropdown__item{
+ width: 100%;
+ height: auto;
+ white-space: normal;
+ word-break: break-all;
+ word-wrap: break-word;
+ overflow: auto;
+ padding: 10px 25px;
+ border-bottom: 1px solid #ccc;
+
+ .valueTable{
+ &>div{
+ line-height: 1.5;
+ margin-bottom: 6px;
+ padding-bottom: 6px;
+ display: flex;
+ align-items: center;
+
+ div{
+ width: 8%;
+ }
+ span{
+ width: 92%;
+ }
+
+ &:last-of-type{
+ margin-bottom: 0;
+ }
+ }
+ .longTit{
+ div{
+ width: 15%;
+ }
+ span{
+ width: 85%;
+ }
+ }
+ }
+ }
+ }
+ }
+}
</style>
--
Gitblit v1.9.2