马宇豪
2025-03-04 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c
src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue
@@ -1,42 +1,51 @@
<template>
    <div class="system-add-menu-container">
        <el-dialog :title="title" v-model="isSafetyRiskEventDialog" width="600px">
            <el-form
                :model="safetyRiskEventForm"
                :rules="safetyRiskEventFormRules"
                ref="safetyRiskAnalyseUnitFormRef"
                size="default"
                label-width="180px"
            >
        <el-dialog :title="title" v-model="isSafetyRiskEventDialog" width="600px" :close-on-click-modal="false">
            <el-form :model="safetyRiskEventForm" :rules="safetyRiskEventFormRules" ref="safetyRiskAnalyseUnitFormRef" size="default" label-width="180px">
                <el-row :gutter="35">
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="安全风险分析单元名称" prop="riskUnitId">
                            <el-select class="input-length" v-model="safetyRiskEventForm.riskUnitId" placeholder="请输入安全风险分析单元名称">
                                <el-option
                                    v-for="item in allSafetyRiskEventData"
                                    :key="item.id"
                                    :label="item.riskUnitName"
                                    :value="item.id"
                                ></el-option>
                            <el-select class="input-add" :disabled="!disabled" v-model="safetyRiskEventForm.riskUnitId" placeholder="请输入安全风险分析单元名称">
                                <el-option v-for="item in allSafetyRiskEventData" :key="item.id" :label="item.riskUnitName" :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="riskEventName">
                            <el-input
                                class="input-length"
                                v-model.trim="safetyRiskEventForm.riskEventName"
                                placeholder="请输入生产装置名称"
                                clearable
                            ></el-input>
                            <el-input class="input-add" :disabled="!disabled" v-model.trim="safetyRiskEventForm.riskEventName" 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="eventResult">
                            <el-input class="input-add" type="textarea" :rows="2" :disabled="!disabled" v-model.trim="safetyRiskEventForm.eventResult" placeholder="请输入请输入安全风险事件名称" clearable></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-show="personTime">
                        <el-form-item label="创建人" prop="location">
                            <el-input class="input-add" :disabled="!disabled" v-model.trim="safetyRiskEventForm.createByUserName" placeholder="请输入区域位置"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-show="personTime">
                        <el-form-item label="创建时间" prop="location">
                            <el-input class="input-add" :disabled="!disabled" v-model.trim="safetyRiskEventForm.gmtCreate" placeholder="请输入区域位置"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-show="personTime">
                        <el-form-item label="最后修改人" prop="location">
                            <el-input class="input-add" :disabled="!disabled" v-model.trim="safetyRiskEventForm.lastEditUserName" placeholder="请输入区域位置"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-show="personTime">
                        <el-form-item label="最后修改时间" prop="location">
                            <el-input class="input-add" :disabled="!disabled" v-model.trim="safetyRiskEventForm.gmtModitify" placeholder="请输入区域位置"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                <span class="dialog-footer" v-show="disabled">
                    <el-button @click="isSafetyRiskEventDialog = !isSafetyRiskEventDialog" size="default">取 消</el-button>
                    <el-button type="primary" @click="submitSafetyRiskEventDialog" v-throttle size="default">确 实</el-button>
                    <el-button type="primary" @click="submitSafetyRiskEventDialog" v-throttle size="default">确 定</el-button>
                </span>
            </template>
        </el-dialog>
@@ -46,8 +55,11 @@
<script lang="ts">
interface stateType {
    isSafetyRiskEventDialog: Boolean;
    disabled: Boolean;
    personTime: Boolean;
    safetyRiskEventForm: {
        riskEventName: string | null;
        eventResult: string | null;
        riskUnitId: number | null;
    };
    title: string;
@@ -64,34 +76,46 @@
        const safetyRiskAnalyseUnitFormRef = ref();
        const state = reactive<stateType>({
            title: '',
            disabled: false,
            personTime: false,
            departmentList: [],
            allSafetyRiskEventData: [],
            isSafetyRiskEventDialog: false,
            safetyRiskEventForm: {
                riskEventName: null,
                eventResult: null,
                riskUnitId: null
            },
            safetyRiskEventFormRules: {
                riskEventName: [{ required: true, message: '请填写安全风险分析对象编码', trigger: 'blur' }],
                riskUnitId: [{ required: true, message: '请填写安全风险分析单元名称', trigger: 'blur' }]
                eventResult: [{ required: true, message: '请填写可能造成的后果', trigger: 'blur' }],
                riskUnitId: [{ required: true, message: '请选择安全风险分析单元名称', trigger: 'change' }]
            }
        });
        //打开模态框
        const openSafetyRiskEventDialog = (type: string, value: object, department: [], allSafetyRiskEventData: []) => {
        const openSafetyRiskEventDialog = (type: string, value: object, allSafetyRiskEventData: []) => {
            state.isSafetyRiskEventDialog = true;
            state.allSafetyRiskEventData = JSON.parse(JSON.stringify(allSafetyRiskEventData));
            state.departmentList = department;
            setTimeout(() => {
                safetyRiskAnalyseUnitFormRef.value.clearValidate();
            });
            if (type === '新增') {
                state.disabled = true;
                state.personTime = false;
                state.title = '新增风险事件';
                state.safetyRiskEventForm = {
                    riskEventName: null,
                    riskUnitId: null
                };
            } else if (type === '查看') {
                state.disabled = false;
                state.personTime = true;
                state.title = '查看风险事件';
                state.safetyRiskEventForm = JSON.parse(JSON.stringify(value));
            } else {
                state.disabled = true;
                state.personTime = false;
                state.title = '修改风险事件';
                state.safetyRiskEventForm = JSON.parse(JSON.stringify(value));
            }