对比新文件 |
| | |
| | | <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> |