From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 04 三月 2025 08:39:55 +0800 Subject: [PATCH] 修改作业等级名称 --- src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 260 insertions(+), 0 deletions(-) diff --git a/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue new file mode 100644 index 0000000..81ab0c6 --- /dev/null +++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue @@ -0,0 +1,260 @@ +<template> + <div class="system-add-menu-container"> + <el-dialog :title="title" v-model="isShowCheckUnitDialog" append-to-body :close-on-click-modal="false" width="50%"> + <el-divider></el-divider> + <div class="checkUnit-form"> + <el-form :model="checkUnitForm" :rules="checkUnitFormRules" ref="checkUnitFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="任务单元名称" prop="taskUnitName"> + <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.taskUnitName" placeholder="请输入任务单元名称" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="任务单元说明" prop="note"> + <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.note" placeholder="请输入任务单元说明" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime"> + <el-form-item label="创建人" prop="location"> + <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.createByUserName" placeholder="请输入区域位置"></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime"> + <el-form-item label="创建时间" prop="location"> + <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.gmtCreate" placeholder="请输入区域位置"></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime"> + <el-form-item label="最后修改人" prop="location"> + <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.lastEditUserName" placeholder="请输入区域位置"></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime"> + <el-form-item label="最后修改时间" prop="location"> + <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.gmtModitify" placeholder="请输入区域位置"></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + + <div class="checkUnit-point"> + <el-tabs class="active" v-model="activeName"> + <el-tab-pane label="检查项信息" name="checkUnit"> + <div class="filter-container"> + <el-button size="default" :disabled="!disabled" type="success" @click="onOpenDialogRef('新增', '')"> + <el-icon> + <ele-FolderAdd /> + </el-icon> + 选择风险管控措施 + </el-button> + </div> + + <el-table :data="measureData" border fit highlight-current-row style="width: 100%"> + <el-table-column type="index" label="序号" width="60" /> + <el-table-column prop="checkContent" label="管控内容" show-overflow-tooltip align="center"></el-table-column> + <el-table-column label="操作" width="150" align="center"> + <template #default="scope"> + <el-button size="small" text :disabled="!disabled" type="danger" @click="onDelCheckUnit(scope.$index, scope.row)">删除</el-button> + </template> + </el-table-column> + </el-table> + </el-tab-pane> + </el-tabs> + </div> + + <template #footer> + <span class="dialog-footer" v-show="disabled"> + <el-button @click="isShowCheckUnitDialog = !isShowCheckUnitDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitCheckUnit" v-throttle size="default">确 定</el-button> + </span> + </template> + </el-dialog> + <el-dialog title="选择风险管控措施" v-model="isShowSelectMeasureControlDialog" append-to-body :close-on-click-modal="false" width="70%"> + <select-measure-control-dialog ref="SelectMeasureControlDialogRef" @receiveRiskControlId="receiveRiskControlId"></select-measure-control-dialog> + </el-dialog> + </div> +</template> + +<script lang="ts"> +import SelectMeasureControlDialog from './selectMeasureControlDialog.vue'; +import { reactive, toRefs, ref } from 'vue'; +import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit'; +import { ElMessage } from 'element-plus'; +interface stateType { + isShowCheckUnitDialog: Boolean; + disabled: Boolean; + personTime: Boolean; + isShowSelectMeasureControlDialog: Boolean; + checkUnitForm: { + taskUnitName: string | null; + note: string | null; + measureList: []; + }; + title: string; + activeName: string; + measureData: []; + checkUnitData: []; + checkUnitFormRules: {}; +} + +export default { + name: 'checkUnitDialog', + components: { SelectMeasureControlDialog }, + setup(props: any, context: any) { + const checkUnitFormRef = ref(); + const riskControlMeasureDialogRef = ref(); + const state = reactive<stateType>({ + title: '', + disabled: false, + personTime: false, + activeName: 'checkUnit', + measureData: [], + checkUnitData: [], + isShowCheckUnitDialog: false, + isShowSelectMeasureControlDialog: false, + checkUnitForm: { + taskUnitName: null, + note: null, + measureList: [] + }, + checkUnitFormRules: { + taskUnitName: [{ required: true, message: '请填写任务单元名称', trigger: 'blur' }], + note: [{ required: true, message: '请填写任务单元说明', trigger: 'change' }] + } + }); + + //打开模态框 + const openCheckUnitDialog = (type: string, value: object) => { + state.isShowCheckUnitDialog = true; + setTimeout(() => { + checkUnitFormRef.value.clearValidate(); + }); + if (type === '新增') { + state.disabled = true; + state.personTime = false; + state.title = '新增隐患排查单元'; + state.measureData = []; + state.checkUnitForm = { + taskUnitName: null, + note: null, + measureList: [] + }; + } else if (type === '查看') { + state.disabled = false; + state.personTime = true; + state.title = '查看隐患排查单元'; + state.checkUnitForm = JSON.parse(JSON.stringify(value)); + state.measureData = state.checkUnitForm.measureList; + } else { + state.disabled = true; + state.personTime = false; + state.title = '修改隐患排查单元'; + state.checkUnitForm = JSON.parse(JSON.stringify(value)); + state.measureData = state.checkUnitForm.measureList; + } + }; + + const onOpenDialogRef = () => { + state.isShowSelectMeasureControlDialog = true; + }; + + const onDelCheckUnit = (value: number, scope: object) => { + state.measureData.splice(value, 1); + }; + + const receiveRiskControlId = (value: []) => { + state.isShowSelectMeasureControlDialog = false; + state.measureData = value; + state.checkUnitForm.measureList = JSON.parse( + JSON.stringify( + value.map((item: { id: number }) => { + return item.id; + }) + ) + ); + }; + + //新增修改提交 + const submitCheckUnit = async () => { + checkUnitFormRef.value.validate(async (valid: Boolean) => { + if (valid) { + if (state.title === '新增隐患排查单元') { + let res = await checkUnitApi().addCheckUnit(state.checkUnitForm); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + message: '隐患排查单元新增成功', + duration: 2000 + }); + state.isShowCheckUnitDialog = false; + context.emit('refreshCheckUnit'); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } else { + let res = await checkUnitApi().modCheckUnit(state.checkUnitForm); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + message: '隐患排查单元修改成功', + duration: 2000 + }); + state.isShowCheckUnitDialog = false; + context.emit('refreshCheckUnit'); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + } else { + ElMessage({ + type: 'warning', + message: '请完善基本信息' + }); + } + }); + }; + + return { + ...toRefs(state), + checkUnitFormRef, + submitCheckUnit, + onDelCheckUnit, + onOpenDialogRef, + openCheckUnitDialog, + receiveRiskControlId, + riskControlMeasureDialogRef + }; + } +}; +</script> + +<style scoped> +::v-deep.el-divider--horizontal { + margin-top: 0px !important; +} + +::v-deep.el-dialog__body { + padding-top: 10px !important; +} +.filter-container { + padding: 10px 0px; +} +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> -- Gitblit v1.9.2