From e989421722e522f4879a354a15ba14912d7acaaa Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期五, 24 二月 2023 16:49:38 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/scienceexperimentweb

---
 src/views/analyse/evaluate/components/evaluateDialog.vue |  332 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 332 insertions(+), 0 deletions(-)

diff --git a/src/views/analyse/evaluate/components/evaluateDialog.vue b/src/views/analyse/evaluate/components/evaluateDialog.vue
new file mode 100644
index 0000000..2fb58e0
--- /dev/null
+++ b/src/views/analyse/evaluate/components/evaluateDialog.vue
@@ -0,0 +1,332 @@
+<template>
+    <div class="system-menu-dialog-container">
+        <el-dialog :title="evaluateDialogState.title" v-model="evaluateDialogState.evaluateDialogVisible" width="600px">
+            <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>-->
+                    <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">
+                        <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-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-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-col>
+                    </div>
+
+                    <div style="width: 100%" 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-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.lsL" placeholder="LS_L    " 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="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-col>
+                    </div>
+
+                    <div style="width: 100%" 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-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.mesM" placeholder="MES_M" 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-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-col>
+                    </div>
+
+                    <div style="width: 100%" 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-input type="number" class="input-length" :disabled="evaluateDialogState.disabled" v-model="evaluateDialogState.evaluateForm.rsR" placeholder="RS_R" 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-col>
+                    </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>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <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, reactive, ref} from "vue";
+import {ElMessage} from "element-plus";
+import {evaluateApi} from "/@/api/analyse/evaluate";
+import {isValidKey, numFloat} from "/@/utils/methods";
+
+const evaluateFormRef = ref()
+
+const evaluateDialogState = reactive<EvaluateDialogType>({
+    title: '',
+    time:[],
+    disabled: false,
+    evaluateDialogVisible: false,
+    evaluateMethod: 1,
+    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,
+    },
+    evaluateFormRules: {
+
+    },
+    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 numValue = 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)
+})
+
+const showEvaluateDialog = (title: string, value: EvaluateType ) => {
+    evaluateDialogState.evaluateDialogVisible = true;
+    evaluateDialogState.disabled = false
+    evaluateDialogState.evaluateMethod = value.evaluateMethod as number
+    setTimeout(() => {
+        evaluateFormRef.value.clearValidate();
+    });
+    if( value.lecId || value.lsId || value.mesId || value.rsId){
+        evaluateDialogState.title = '编辑评价';
+        for(let i in evaluateDialogState.evaluateForm){
+            if(isValidKey(i, evaluateDialogState.evaluateForm)){
+                evaluateDialogState.evaluateForm[i] = value[i]
+            }
+        }
+    }else if(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.identificationId = (value.hazopId || value.jhaId || value.phaId || value.sclId || value.analogyId) as number
+};
+
+const onSubmitEvaluate = () => {
+    evaluateFormRef.value.validate(async(valid: boolean) => {
+        if(valid){
+            evaluateDialogState.evaluateForm.riskValue = Number(numValue.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 emit = defineEmits(['refresh']);
+
+defineExpose({
+    showEvaluateDialog
+});
+</script>
+
+<style scoped>
+
+</style>

--
Gitblit v1.9.2