马宇豪
2025-05-27 d0d78b9fbe144326f136ee048bb59d314413032e
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,614 @@
<!--                            </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-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.safeRiskAnalysis" 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 +632,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 +691,46 @@
        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: '',
        safeRiskAnalysis: ''
    },
    evaluateFormRules: {
    },
    listLecL: [],
    listLecE: [],
    listLecC: [],
    listLsL:[],
    listLsS:[],
    listRsR:[],
    listRsS:[],
    listMesM:[],
    listMesE:[],
    listMesS:[],
    manageLevelList: [
        {id:1, name: '院所级'},
        {id:2, name: '部门级'},
@@ -206,79 +766,166 @@
        {id:1, name: 'LEC'},
        {id:2, name: 'LS'},
        {id:3, name: 'MES'},
        {id:4, name: 'RS'},
        // {id:4, name: 'RS'},
    ]
})
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: '',
          safeRiskAnalysis: ''
        };
      }
    }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.evaluateMethod = evaluateDialogState.evaluateForm.evaluateMethod
        evaluateFormRef.value.resetFields();
        evaluateFormRef.value.clearValidate();
      })
      .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 +934,7 @@
                    evaluateDialogState.evaluateDialogVisible = false;
                    ElMessage({
                        type: 'success',
                        message: '新增成功'
                        message: '评价成功'
                    })
                }else{
                    ElMessage({
@@ -320,13 +967,256 @@
    })
}
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 && evaluateDialogState.evaluateForm.originalRiskValue<=70){
        evaluateDialogState.evaluateForm.originalRiskLevel = 1
        evaluateDialogState.evaluateForm.originalRiskColor = 1
        if(evaluateDialogState.evaluateForm.originalRiskValue<=19){
          evaluateDialogState.evaluateForm.originalRiskLevelValue = 5
        }else{
          evaluateDialogState.evaluateForm.originalRiskLevelValue = 4
        }
      }else if(evaluateDialogState.evaluateForm.originalRiskValue>70&&evaluateDialogState.evaluateForm.originalRiskValue<=160){
        evaluateDialogState.evaluateForm.originalRiskLevelValue = 3
        evaluateDialogState.evaluateForm.originalRiskLevel = 2
        evaluateDialogState.evaluateForm.originalRiskColor = 2
      }else if(evaluateDialogState.evaluateForm.originalRiskValue>160&&evaluateDialogState.evaluateForm.originalRiskValue<=320){
        evaluateDialogState.evaluateForm.originalRiskLevelValue = 2
        evaluateDialogState.evaluateForm.originalRiskLevel = 3
        evaluateDialogState.evaluateForm.originalRiskColor = 3
      }else{
        evaluateDialogState.evaluateForm.originalRiskLevelValue = 1
        evaluateDialogState.evaluateForm.originalRiskLevel = 4
        evaluateDialogState.evaluateForm.originalRiskColor = 4
      }
  }
}
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 && evaluateDialogState.evaluateForm.riskValue<=70){
      evaluateDialogState.evaluateForm.riskLevel = 1
      evaluateDialogState.evaluateForm.riskColor = 1
      if(evaluateDialogState.evaluateForm.riskValue<=19){
        evaluateDialogState.evaluateForm.riskLevelValue = 5
      }else{
        evaluateDialogState.evaluateForm.riskLevelValue = 4
      }
    }else if(evaluateDialogState.evaluateForm.riskValue>70&&evaluateDialogState.evaluateForm.riskValue<=160){
      evaluateDialogState.evaluateForm.riskLevelValue = 3
      evaluateDialogState.evaluateForm.riskLevel = 2
      evaluateDialogState.evaluateForm.riskColor = 2
    }else if(evaluateDialogState.evaluateForm.riskValue>160&&evaluateDialogState.evaluateForm.riskValue<=320){
      evaluateDialogState.evaluateForm.originalRiskLevelValue = 2
      evaluateDialogState.evaluateForm.originalRiskLevel = 3
      evaluateDialogState.evaluateForm.originalRiskColor = 3
    }else{
      evaluateDialogState.evaluateForm.riskLevelValue = 1
      evaluateDialogState.evaluateForm.riskLevel = 4
      evaluateDialogState.evaluateForm.riskColor = 4
    }
  }
}
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>