马宇豪
2023-04-12 8d14fec97344df49d58db115852c03b466482bc6
src/views/analyse/plan/components/planDialog.vue
@@ -23,11 +23,11 @@
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评估时间" prop="assessPlanName">
                        <el-form-item label="评估时间" prop="assessTime">
                            <el-date-picker
                                :disabled="planDialogState.disabled"
                                type="datetimerange"
                                v-model="planDialogState.time"
                                v-model="planDialogState.planForm.assessTime"
                                start-placeholder="开始时间"
                                end-placeholder="结束时间"
                                format="YYYY-MM-DD HH:mm:ss"
@@ -37,23 +37,9 @@
                        </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 :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationMethod" style="width:100%" placeholder="辨识方法" clearable>
                                <el-option v-for="item in planDialogState.identificationMethodList" :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="identificationUserId">
                        <el-form-item label="辨识专家" prop="identificationUserId">
                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationUserId" style="width:100%"  placeholder="负责人" clearable>
                                <el-option v-for="item in planDialogState.personList" :key="item.id" :label="item.realName" :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="evaluateMethod">
                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.evaluateMethod" style="width:100%"  placeholder="推荐评价方法" clearable>
                                <el-option v-for="item in planDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
@@ -77,7 +63,7 @@
</template>
<script setup lang="ts">
import { reactive, ref } from "vue";
import { reactive, ref, getCurrentInstance } from "vue";
import {ElMessage} from "element-plus";
import {planApi} from "/@/api/analyse/plan";
import {isValidKey} from "/@/utils/methods";
@@ -86,46 +72,29 @@
const planDialogState = reactive<PlanDialogType>({
    title: '',
    time:[],
    disabled: false,
    planDialogVisible: false,
    planForm: {
        riskUnitId: null,
        planUserId: null,
        assessPlanName: '',
        assessTime: [],
        assessStartTime: '',
        assessEndTime: '',
        identificationMethod: null,
        identificationUserId: null,
        evaluateMethod: null,
        evaluateUserId: null,
        riskType: 2
    },
    planFormRules: {
        deviceCode: [{ required: true, message: '请填写设备编号', trigger: 'blur' }],
        deviceName: [{ required: true, message: '请填写设备名称', trigger: 'blur' }],
        devicePower: [{ required: true, message: '请填写设备功率', trigger: 'blur' }],
        riskUnitId: [{ required: true, message: '请选择风险分析单元', trigger: 'change' }],
        assessPlanName: [{ required: true, message: '请填写评估计划名称', trigger: 'blur' }],
        assessTime: [{ required: true, message: '请选择评估时间', trigger: 'blur' }],
        planUserId: [{ required: true, message: '请选择计划制定人', trigger: 'change' }],
        identificationMethod: [{ required: true, message: '请选择辨识方法', trigger: 'change' }],
        identificationUserId: [{ required: true, message: '请选择负责人', trigger: 'change' }],
        evaluateMethod: [{ required: true, message: '请选择推荐评价方法', trigger: 'change' }],
        identificationUserId: [{ required: true, message: '请选择辨识专家', trigger: 'change' }],
        evaluateUserId: [{ required: true, message: '请选择评价专家', trigger: 'change' }],
    },
    riskUnitList: [],
    personList: [],
    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'},
    ]
    personList: []
})
const showPlanDialog = (title: string, value: PlanType, riskUnitList: RiskUnitType [], personList: SystemPersonType []) => {
@@ -142,17 +111,17 @@
            riskUnitId: null,
            planUserId: null,
            assessPlanName: '',
            assessTime: [],
            assessStartTime: '',
            assessEndTime: '',
            identificationMethod: null,
            identificationUserId: null,
            evaluateMethod: null,
            evaluateUserId: null,
            riskType: 2
        };
    }else if(title === '查看'){
        planDialogState.title = '查看';
        planDialogState.disabled = true
        planDialogState.time = [value.assessStartTime, value.assessEndTime]
        planDialogState.planForm.assessTime = [value.assessStartTime, value.assessEndTime]
        for(let i in planDialogState.planForm){
            if(isValidKey(i, planDialogState.planForm)){
                planDialogState.planForm[i] = value[i]
@@ -161,7 +130,10 @@
    }else{
        planDialogState.title = '编辑';
        planDialogState.planForm.id = value.id
        planDialogState.time = [value.assessStartTime, value.assessEndTime]
        planDialogState.planForm.assessTime=[value.assessStartTime, value.assessEndTime]
        console.log(planDialogState.planForm.assessTime,'5')
        formatTime()
        console.log(planDialogState.planForm.assessTime,'6 ')
        for(let i in planDialogState.planForm){
            if(isValidKey(i, planDialogState.planForm)){
                planDialogState.planForm[i] = value[i]
@@ -171,13 +143,14 @@
};
const formatTime = () => {
    planDialogState.planForm.assessStartTime = planDialogState.time === null ? '' : planDialogState.time[0]
    planDialogState.planForm.assessEndTime = planDialogState.time === null ? '' : planDialogState.time[1]
    planDialogState.planForm.assessStartTime = planDialogState.planForm.assessTime === null ? '' : planDialogState.planForm.assessTime[0]
    planDialogState.planForm.assessEndTime = planDialogState.planForm.assessTime === null ? '' : planDialogState.planForm.assessTime[1]
};
const onSubmitPlan = () => {
    planFormRef.value.validate(async(valid: boolean) => {
        if(valid){
            delete planDialogState.planForm.assessTime
            if(planDialogState.title === '新增'){
                let res = await planApi().addPlan(planDialogState.planForm);
                if(res.data.code === 100){