<template>
|
<div class="system-menu-dialog-container">
|
<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">-->
|
<!-- <el-form-item label="评估计划" prop="id">-->
|
<!-- <el-select class="input-length" :disabled="true" v-model="evaluateDialogState.evaluateForm.id" style="width:100%" placeholder="评估计划" clearable>-->
|
<!-- <el-option v-for="item in evaluateDialogState.planList" :key="item.id" :label="item.assessPlanName" :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="riskValue">-->
|
<!-- <el-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.riskValue" style="width:100%" placeholder="风险数值">-->
|
<!-- </el-input>-->
|
<!-- </el-form-item>-->
|
<!-- </el-col>-->
|
|
<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="检查项目">
|
<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="存在风险因素">
|
<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="可能产生的后果">
|
<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>
|
|
<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="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="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 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="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="风险等级值" 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="风险级别" 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 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="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="管理措施" 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>
|
|
<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>
|
</template>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
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()
|
|
const evaluateDialogState = reactive<EvaluateDialogType>({
|
title: '',
|
time:[],
|
disabled: false,
|
evaluateDialogVisible: false,
|
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,
|
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: ''
|
},
|
evaluateFormRules: {
|
|
},
|
listLecL: [],
|
listLecE: [],
|
listLecC: [],
|
listLsL:[],
|
listLsS:[],
|
listRsR:[],
|
listRsS:[],
|
listMesM:[],
|
listMesE:[],
|
listMesS:[],
|
manageLevelList: [
|
{id:1, name: '院所级'},
|
{id:2, name: '部门级'},
|
{id:3, name: '项目组级'},
|
],
|
riskColorList: [
|
{id:1, name: '蓝色'},
|
{id:2, name: '黄色'},
|
{id:3, name: '橙色'},
|
{id:4, name: '红色'},
|
],
|
riskLevelList: [
|
{id:1, name: '低'},
|
{id:2, name: '一般'},
|
{id:3, name: '较大'},
|
{id:4, name: '重大'},
|
],
|
riskLevelValueList: [
|
{id:1, name: '1级'},
|
{id:2, name: '2级'},
|
{id:3, name: '3级'},
|
{id:4, name: '4级'},
|
{id:5, name: '5级'},
|
],
|
identificationMethodList: [
|
{id:1, name: 'PHA'},
|
{id:2, name: 'JHA'},
|
{id:3, name: 'SCL'},
|
{id:4, name: 'HAZOP'},
|
{id:5, name: '类比法'},
|
],
|
evaluateMethodList: [
|
{id:1, name: 'LEC'},
|
{id:2, name: 'LS'},
|
{id:3, name: 'MES'},
|
{id:4, name: 'RS'},
|
]
|
})
|
|
const numOriginValue = computed( () => {
|
return numFloat(
|
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 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( title === '评价'){
|
if(value.riskValue){
|
evaluateDialogState.title = '编辑评价';
|
for(let i in evaluateDialogState.evaluateForm){
|
if(isValidKey(i, evaluateDialogState.evaluateForm)){
|
evaluateDialogState.evaluateForm[i] = value[i]
|
}
|
}
|
}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]
|
}
|
}
|
}
|
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(numOriginValue.value)
|
if(evaluateDialogState.title === '评价'){
|
let { lecId, lsId, mesId, rsId, ...data} = evaluateDialogState.evaluateForm
|
let res = await evaluateApi().addEvaluate(data);
|
if(res.data.code === 100){
|
emit('refresh')
|
evaluateDialogState.evaluateDialogVisible = false;
|
ElMessage({
|
type: 'success',
|
message: '评价成功'
|
})
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg,
|
});
|
}
|
}else{
|
let res = await evaluateApi().modEvaluate(evaluateDialogState.evaluateForm)
|
if(res.data.code === 100){
|
emit('refresh')
|
evaluateDialogState.evaluateDialogVisible = false;
|
ElMessage({
|
type: 'success',
|
message: '编辑成功'
|
})
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg,
|
});
|
}
|
}
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: '请完善基本信息',
|
});
|
}
|
})
|
}
|
|
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 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>
|