From 1621b3719092d93e6c29f7a27e401529e0454420 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期一, 01 八月 2022 18:57:45 +0800 Subject: [PATCH] 双重预防 --- src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue | 37 src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue | 78 - src/views/doublePrevent/riskLevel/action/index.vue | 48 - src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue | 10 src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue | 186 ++++++ src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue | 132 --- src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue | 119 ++- src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue | 14 src/views/doublePrevent/riskLevel/map/components/rectifyDialog.vue | 92 -- src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue | 40 /dev/null | 195 ------ src/views/doublePrevent/riskLevel/event/index.vue | 29 src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue | 0 src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue | 66 - src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/index.vue | 63 +- src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue | 62 - src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue | 92 +- src/api/doublePreventSystem/check/index.ts | 22 src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/index.vue | 80 + src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue | 54 - src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue | 185 ++++++ src/views/doublePrevent/riskLevel/device/index.vue | 73 +- src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue | 31 src/views/doublePrevent/riskLevel/unit/index.vue | 46 - 24 files changed, 813 insertions(+), 941 deletions(-) diff --git a/src/api/doublePreventSystem/check/index.ts b/src/api/doublePreventSystem/check/index.ts index 550ec9e..031fb54 100644 --- a/src/api/doublePreventSystem/check/index.ts +++ b/src/api/doublePreventSystem/check/index.ts @@ -5,31 +5,15 @@ // v1 getHiddenCheckList: (data: object) => { return request({ - url: `/prevent/dangerRectify/select/getDangerRectifyPage`, + url: `/prevent/dangerRectify/select/getRectifyOverPage`, method: 'post', data: data }); }, // v1 - addHiddenCheck: (data: object) => { + submitHiddenCheck: (data: object) => { return request({ - url: `/prevent/dangerManage/select/saveDangerManage`, - method: 'post', - data: data - }); - }, - // v1 - modHiddenCheck: (data: object) => { - return request({ - url: `/prevent/dangerRectify/update/updateDangerRectify`, - method: 'post', - data: data - }); - }, - // v1 - deleteHiddenCheck: (data: object) => { - return request({ - url: `/prevent/dangerRectify/delete/deleteDangerRectify`, + url: `/prevent/dangerRectify/update/reportRectify`, method: 'post', data: data }); diff --git a/src/views/doublePrevent/checkTaskManage/work/components/workDialog.vue b/src/views/doublePrevent/checkTaskManage/work/components/workDialog.vue deleted file mode 100644 index 88584e4..0000000 --- a/src/views/doublePrevent/checkTaskManage/work/components/workDialog.vue +++ /dev/null @@ -1,309 +0,0 @@ -<template> - <div class="system-add-menu-container"> - <el-dialog :title="title" v-model="isShowWorkDialog" append-to-body :close-on-click-modal="false" width="50%"> - <div class="work-form"> - <el-form :model="workForm" :rules="workFormRules" ref="workFormRef" size="default" label-width="150px"> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> - <el-form-item label="排查类型" prop="checkWorkType"> - <el-select class="input-add" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> - <el-option v-for="item in checkWorkTypeList" :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="12" class="mb20"> - <el-form-item label="排查名称" prop="checkWorkName"> - <el-input class="input-add" v-model.trim="workForm.checkWorkName" 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="depId"> - <el-cascader - @change="achieveUserList" - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-add" - v-model="workForm.depId" - > - </el-cascader> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> - <el-form-item label="执行人" prop="execUserId"> - <el-select class="input-add" v-model="workForm.execUserId" placeholder="请输入执行人" clearable filterable> - <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> - <el-form-item label="排查周期" prop="checkCycle"> - <el-input - class="input-add" - type="number" - v-model.trim="workForm.checkCycle" - 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="checkCycleUnit"> - <el-select class="input-add" v-model="workForm.checkCycleUnit" placeholder="请输入时间单位" clearable> - <el-option v-for="item in timeType" :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="12" class="mb20"> - <el-form-item label="有效时间" prop="validTime"> - <el-input - class="input-add" - type="number" - v-model.trim="workForm.validTime" - 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="validTimeUnit"> - <el-select class="input-add" v-model="workForm.validTimeUnit" placeholder="请输入时间单位" clearable> - <el-option v-for="item in timeType" :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="12" class="mb20"> - <el-form-item label="提醒时间" prop="noticeTime"> - <el-input - class="input-add" - type="number" - v-model.trim="workForm.noticeTime" - 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="noticeTimeUnit"> - <el-select class="input-add" v-model="workForm.noticeTimeUnit" placeholder="请输入时间单位" clearable> - <el-option v-for="item in timeType" :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="12" class="mb20"> - <el-form-item label="任务单元" prop="taskUnitId"> - <el-select class="input-add" v-model="workForm.taskUnitId" placeholder="请输入任务单元" clearable filterable> - <el-option v-for="item in taskUnitList" :key="item.id" :label="item.taskUnitName" :value="item.id"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> - <el-form-item label="首次任务开始时间" prop="firstStartTime"> - <el-date-picker - class="input-add" - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - v-model="workForm.firstStartTime" - placeholder="请选择首次任务开始时间" - clearable - ></el-date-picker> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - - <template #footer> - <span class="dialog-footer"> - <el-button @click="isShowWorkDialog = !isShowWorkDialog" size="default">取 消</el-button> - <el-button type="primary" @click="submitWork" v-throttle size="default">确 实</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { getUserByDepartment } from '/@/assets/methods'; - -interface stateType { - isShowWorkDialog: Boolean; - workForm: { - checkWorkType: number | null; - checkWorkName: string | null; - taskUnitId: number | null; - execUserId: number | null; - checkCycle: number | null; - checkCycleUnit: number | null; - validTime: number | null; - validTimeUnit: number | null; - noticeTime: number | null; - noticeTimeUnit: number | null; - depId: number | null; - firstStartTime: string | null; - }; - title: string; - activeName: string; - checkWorkTypeList: []; - departmentList: []; - taskUnitList: []; - userList: []; - timeType: Array<timeState>; - workFormRules: {}; -} -interface timeState { - id: number; - name: string; -} -import { reactive, toRefs, ref } from 'vue'; -import { workApi } from '/@/api/doublePreventSystem/work'; -import { ElMessage } from 'element-plus'; -export default { - name: 'workDialog', - setup(props: any, context: any) { - const workFormRef = ref(); - const state = reactive<stateType>({ - title: '', - activeName: 'inspectionPoint', - checkWorkTypeList: [], - departmentList: [], - taskUnitList: [], - userList: [], - timeType: [ - { id: 1, name: '分' }, - { id: 2, name: '小时' }, - { id: 3, name: '日' }, - { id: 4, name: '月' }, - { id: 5, name: '年' } - ], - isShowWorkDialog: false, - workForm: { - checkWorkType: null, - checkWorkName: null, - taskUnitId: null, - execUserId: null, - checkCycle: null, - checkCycleUnit: null, - validTime: null, - validTimeUnit: null, - noticeTime: null, - noticeTimeUnit: null, - firstStartTime: null, - depId: null - }, - workFormRules: { - produceDeviceName: [{ required: true, message: '请填写生产装置名称', trigger: 'blur' }], - depId: [{ required: true, message: '请选择部门', trigger: 'change' }], - riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }], - location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }] - } - }); - - //打开模态框 - const openWorkDialog = (type: string, value: object, department: [], checkWorkTypeList: [], taskUnitList: []) => { - state.isShowWorkDialog = true; - state.departmentList = department; - state.taskUnitList = JSON.parse(JSON.stringify(taskUnitList)); - state.checkWorkTypeList = JSON.parse(JSON.stringify(checkWorkTypeList)); - setTimeout(() => { - workFormRef.value.clearValidate(); - }); - if (type === '新增') { - state.title = '新增生产装置'; - state.workForm = { - checkWorkType: null, - checkWorkName: null, - taskUnitId: null, - execUserId: null, - checkCycle: null, - checkCycleUnit: null, - validTime: null, - validTimeUnit: null, - noticeTime: null, - noticeTimeUnit: null, - firstStartTime: null, - depId: null - }; - } else { - state.title = '修改生产装置'; - state.workForm = JSON.parse(JSON.stringify(value)); - } - }; - - //新增修改提交 - const submitWork = async () => { - workFormRef.value.validate(async (valid: Boolean) => { - if (valid) { - if (state.title === '新增生产装置') { - let res = await workApi().addWork(state.workForm); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '生产装置新增成功', - duration: 2000 - }); - state.isShowWorkDialog = false; - context.emit('refreshWork'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - let res = await workApi().modWork(state.workForm); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '生产装置修改成功', - duration: 2000 - }); - state.isShowWorkDialog = false; - context.emit('refreshWork'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - } else { - ElMessage({ - type: 'warning', - message: '请完善基本信息' - }); - } - }); - }; - - const achieveUserList = async () => { - state.workForm.execUserId = null; - const user: unknown = await getUserByDepartment(state.workForm.depId); - state.userList = user as []; - }; - - return { - ...toRefs(state), - workFormRef, - submitWork, - openWorkDialog, - achieveUserList - }; - } -}; -</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; -} -</style> diff --git a/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/record/index.vue b/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/record/index.vue deleted file mode 100644 index 403aab3..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/record/index.vue +++ /dev/null @@ -1,11 +0,0 @@ -<template> - <div>排查记录</div> -</template> - -<script> -export default { - name: 'index' -}; -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/work/components/inspectionTaskDialog.vue b/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/work/components/inspectionTaskDialog.vue deleted file mode 100644 index d90c102..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/work/components/inspectionTaskDialog.vue +++ /dev/null @@ -1,275 +0,0 @@ -<template> - <div class="system-add-menu-container"> - <el-dialog :title="title" v-model="isShowInspectionTaskDialog" append-to-body :close-on-click-modal="false" width="50%"> - <el-divider></el-divider> - <div class="inspectionTask-form"> - <el-form - :model="inspectionTaskForm" - :rules="inspectionTaskFormRules" - ref="productionDeviceFormRef" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - placeholder="请输入巡检班组" - clearable - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - - <div class="inspectionTask-point"> - <el-tabs class="active" v-model="activeName"> - <el-tab-pane label="检查项信息" name="inspectionPoint"> - <div class="filter-container"> - <el-button size="default" type="success" @click="onOpenDialogRef('新增', '')"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增排查任务 - </el-button> - </div> - - <el-table :data="inspectionPointData" border fit highlight-current-row style="width: 100%"> - <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="depName" label="所属部门" show-overflow-tooltip></el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> - <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - - <template #footer> - <span class="dialog-footer"> - <el-button @click="isShowInspectionTaskDialog = !isShowInspectionTaskDialog" size="default">取 消</el-button> - <el-button type="primary" @click="submitProductionDevice" v-throttle size="default">确 实</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -interface stateType { - isShowInspectionTaskDialog: Boolean; - inspectionTaskForm: { - produceDeviceName: string; - depId: number | null; - riskLevel: number | null; - location: string; - }; - title: string; - activeName: string; - departmentList: []; - inspectionPointData: []; - levelList: Array<levelListState>; - inspectionTaskFormRules: {}; -} -interface levelListState {} -import { reactive, toRefs, ref } from 'vue'; -import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; -import { ElMessage } from 'element-plus'; -export default { - name: 'inspectionTaskDialog', - setup(props: any, context: any) { - const productionDeviceFormRef = ref(); - const state = reactive<stateType>({ - title: '', - activeName: 'inspectionPoint', - inspectionPointData: [], - departmentList: [], - isShowInspectionTaskDialog: false, - levelList: [ - { id: 1, name: '低风险' }, - { id: 2, name: '一般风险' }, - { id: 3, name: '较大风险' }, - { id: 4, name: '重大风险' } - ], - inspectionTaskForm: { - produceDeviceName: '', - depId: null, - riskLevel: null, - location: '' - }, - inspectionTaskFormRules: { - produceDeviceName: [{ required: true, message: '请填写生产装置名称', trigger: 'blur' }], - depId: [{ required: true, message: '请选择部门', trigger: 'change' }], - riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }], - location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }] - } - }); - - //打开模态框 - const openProductionDeviceDialog = (type: string, value: object, department: []) => { - state.isShowInspectionTaskDialog = true; - state.departmentList = department; - setTimeout(() => { - productionDeviceFormRef.value.clearValidate(); - }); - if (type === '新增') { - state.title = '新增生产装置'; - state.inspectionTaskForm = { - produceDeviceName: '', - depId: null, - riskLevel: null, - location: '' - }; - } else { - state.title = '修改生产装置'; - state.inspectionTaskForm = JSON.parse(JSON.stringify(value)); - } - }; - - //新增修改提交 - const submitProductionDevice = async () => { - productionDeviceFormRef.value.validate(async (valid: Boolean) => { - if (valid) { - if (state.title === '新增生产装置') { - let res = await productionDeviceApi().addProductionDevice(state.inspectionTaskForm); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '生产装置新增成功', - duration: 2000 - }); - state.isShowInspectionTaskDialog = false; - context.emit('refreshProductionDevice'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - let res = await productionDeviceApi().modProductionDevice(state.productionDeviceForm); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '生产装置修改成功', - duration: 2000 - }); - state.isShowInspectionTaskDialog = false; - context.emit('refreshProductionDevice'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - } else { - ElMessage({ - type: 'warning', - message: '请完善基本信息' - }); - } - }); - }; - - return { - ...toRefs(state), - productionDeviceFormRef, - submitProductionDevice, - openProductionDeviceDialog - }; - } -}; -</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; -} -</style> diff --git a/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/work/index.vue b/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/work/index.vue deleted file mode 100644 index fc0a714..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/checkTaskManage/work/index.vue +++ /dev/null @@ -1,231 +0,0 @@ -<template> - <div class="system-role-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <div class="basic-line"> - <span>风险等级:</span> - <el-select v-model="productionDeviceData.params.riskLevel" clearable filterable class="input-box" placeholder="请选择风险等级"> - <el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id"></el-option> - </el-select> - </div> - <div class="basic-line"> - <span>部门:</span> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-box" - v-model="productionDeviceData.params.depId" - > - </el-cascader> - </div> - <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> - <el-icon> - <ele-Search /> - </el-icon> - 查询 - </el-button> - <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增排查任务 - </el-button> - </div> - <el-table :data="productionDeviceData.data" style="width: 100%"> - <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="depName" label="所属部门" show-overflow-tooltip></el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> - <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column prop="status" label="状态" show-overflow-tooltip> </el-table-column> - <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> - <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> - <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> - <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="productionDeviceData.params.pageIndex" - background - v-model:page-size="productionDeviceData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="productionDeviceData.total" - class="page-position" - > - </el-pagination> - <br /> - <br /> - </el-card> - <inspectionTaskDialog ref="inspectionTaskDialogRef" @refreshProductionDevice="initProductionDeviceTableData" /> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage } from 'element-plus'; -import inspectionTaskDialog from './components/inspectionTaskDialog.vue'; -import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice/index.ts'; -import { departmentApi } from '/@/api/department'; - -// 定义接口来定义对象的类型 -interface TableData { - roleName: string; - roleSign: string; - describe: string; - sort: number; - status: boolean; - createTime: string; -} -interface TableDataState { - productionDeviceData: { - data: Array<TableData>; - total: number; - loading: boolean; - params: { - pageIndex: number; - pageSize: number; - riskLevel: number | null; - status: number; - depId: number | null; - location: string | null; - produceDeviceName: string | null; - }; - }; - departmentList: Array<DepartmentState>; - levelList: Array<levelListState>; -} -interface levelListState {} -interface DepartmentState {} - -export default defineComponent({ - name: 'productionDevice', - components: { inspectionTaskDialog }, - setup() { - const inspectionTaskDialogRef = ref(); - const state = reactive<TableDataState>({ - productionDeviceData: { - data: [], - total: 0, - loading: false, - params: { - pageIndex: 1, - pageSize: 10, - riskLevel: null, - status: 1, - depId: null, - location: null, - produceDeviceName: null - } - }, - departmentList: [], - levelList: [ - { id: 1, name: '低风险' }, - { id: 2, name: '一般风险' }, - { id: 3, name: '较大风险' }, - { id: 4, name: '重大风险' } - ] - }); - // 初始化表格数据 - const initProductionDeviceTableData = async () => { - let res = await productionDeviceApi().getProductionDeviceList(state.productionDeviceData.params); - if (res.data.code === '200') { - state.productionDeviceData.data = res.data.data; - state.productionDeviceData.total = res.data.count; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - const getDepartmentData = async () => { - let res = await departmentApi().getDepartmentList(); - if (res.data.code === '200') { - state.departmentList = res.data.data; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 打开生产装置弹窗 - const onOpenDialogRef = (type: string, value: any) => { - inspectionTaskDialogRef.value.openProductionDeviceDialog(type, value, state.departmentList); - }; - // 删除角色 - const onDelProductionDevice = (row: any) => { - ElMessageBox.confirm(`此操作将永久删除该条生产装置:“${row.produceDeviceName}”,是否继续?`, '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning' - }) - .then(async () => { - let res = await productionDeviceApi().deleteProductionDevice({ id: row.id }); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - duration: 2000, - message: '删除成功' - }); - await initProductionDeviceTableData(); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }) - .catch(() => {}); - }; - - const handleSearch = () => { - initProductionDeviceTableData(); - }; - // 分页改变 - const onHandleSizeChange = (val: number) => { - state.productionDeviceData.params.pageSize = val; - initProductionDeviceTableData(); - }; - // 分页改变 - const onHandleCurrentChange = (val: number) => { - state.productionDeviceData.params.pageIndex = val; - initProductionDeviceTableData(); - }; - // 页面加载时 - onMounted(() => { - initProductionDeviceTableData(); - getDepartmentData(); - }); - - return { - handleSearch, - onOpenDialogRef, - onHandleSizeChange, - onDelProductionDevice, - onHandleCurrentChange, - inspectionTaskDialog, - inspectionTaskDialogRef, - initProductionDeviceTableData, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/hiddenInvestigate/index.vue b/src/views/doublePrevent/hiddenInvestigate/index.vue deleted file mode 100644 index ea0d797..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/index.vue +++ /dev/null @@ -1,9 +0,0 @@ -<template></template> - -<script> -export default { - name: 'index' -}; -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/hiddenInvestigate/record/index.vue b/src/views/doublePrevent/hiddenInvestigate/record/index.vue deleted file mode 100644 index 403aab3..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/record/index.vue +++ /dev/null @@ -1,11 +0,0 @@ -<template> - <div>排查记录</div> -</template> - -<script> -export default { - name: 'index' -}; -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/hiddenInvestigate/work/components/inspectionTaskDialog.vue b/src/views/doublePrevent/hiddenInvestigate/work/components/inspectionTaskDialog.vue deleted file mode 100644 index d90c102..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/work/components/inspectionTaskDialog.vue +++ /dev/null @@ -1,275 +0,0 @@ -<template> - <div class="system-add-menu-container"> - <el-dialog :title="title" v-model="isShowInspectionTaskDialog" append-to-body :close-on-click-modal="false" width="50%"> - <el-divider></el-divider> - <div class="inspectionTask-form"> - <el-form - :model="inspectionTaskForm" - :rules="inspectionTaskFormRules" - ref="productionDeviceFormRef" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - 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="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="inspectionTaskForm.produceDeviceName" - placeholder="请输入巡检班组" - clearable - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> - - <div class="inspectionTask-point"> - <el-tabs class="active" v-model="activeName"> - <el-tab-pane label="检查项信息" name="inspectionPoint"> - <div class="filter-container"> - <el-button size="default" type="success" @click="onOpenDialogRef('新增', '')"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增排查任务 - </el-button> - </div> - - <el-table :data="inspectionPointData" border fit highlight-current-row style="width: 100%"> - <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="depName" label="所属部门" show-overflow-tooltip></el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> - <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - </el-tab-pane> - </el-tabs> - </div> - - <template #footer> - <span class="dialog-footer"> - <el-button @click="isShowInspectionTaskDialog = !isShowInspectionTaskDialog" size="default">取 消</el-button> - <el-button type="primary" @click="submitProductionDevice" v-throttle size="default">确 实</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts"> -interface stateType { - isShowInspectionTaskDialog: Boolean; - inspectionTaskForm: { - produceDeviceName: string; - depId: number | null; - riskLevel: number | null; - location: string; - }; - title: string; - activeName: string; - departmentList: []; - inspectionPointData: []; - levelList: Array<levelListState>; - inspectionTaskFormRules: {}; -} -interface levelListState {} -import { reactive, toRefs, ref } from 'vue'; -import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; -import { ElMessage } from 'element-plus'; -export default { - name: 'inspectionTaskDialog', - setup(props: any, context: any) { - const productionDeviceFormRef = ref(); - const state = reactive<stateType>({ - title: '', - activeName: 'inspectionPoint', - inspectionPointData: [], - departmentList: [], - isShowInspectionTaskDialog: false, - levelList: [ - { id: 1, name: '低风险' }, - { id: 2, name: '一般风险' }, - { id: 3, name: '较大风险' }, - { id: 4, name: '重大风险' } - ], - inspectionTaskForm: { - produceDeviceName: '', - depId: null, - riskLevel: null, - location: '' - }, - inspectionTaskFormRules: { - produceDeviceName: [{ required: true, message: '请填写生产装置名称', trigger: 'blur' }], - depId: [{ required: true, message: '请选择部门', trigger: 'change' }], - riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }], - location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }] - } - }); - - //打开模态框 - const openProductionDeviceDialog = (type: string, value: object, department: []) => { - state.isShowInspectionTaskDialog = true; - state.departmentList = department; - setTimeout(() => { - productionDeviceFormRef.value.clearValidate(); - }); - if (type === '新增') { - state.title = '新增生产装置'; - state.inspectionTaskForm = { - produceDeviceName: '', - depId: null, - riskLevel: null, - location: '' - }; - } else { - state.title = '修改生产装置'; - state.inspectionTaskForm = JSON.parse(JSON.stringify(value)); - } - }; - - //新增修改提交 - const submitProductionDevice = async () => { - productionDeviceFormRef.value.validate(async (valid: Boolean) => { - if (valid) { - if (state.title === '新增生产装置') { - let res = await productionDeviceApi().addProductionDevice(state.inspectionTaskForm); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '生产装置新增成功', - duration: 2000 - }); - state.isShowInspectionTaskDialog = false; - context.emit('refreshProductionDevice'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - let res = await productionDeviceApi().modProductionDevice(state.productionDeviceForm); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '生产装置修改成功', - duration: 2000 - }); - state.isShowInspectionTaskDialog = false; - context.emit('refreshProductionDevice'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } - } else { - ElMessage({ - type: 'warning', - message: '请完善基本信息' - }); - } - }); - }; - - return { - ...toRefs(state), - productionDeviceFormRef, - submitProductionDevice, - openProductionDeviceDialog - }; - } -}; -</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; -} -</style> diff --git a/src/views/doublePrevent/hiddenInvestigate/work/index.vue b/src/views/doublePrevent/hiddenInvestigate/work/index.vue deleted file mode 100644 index fc0a714..0000000 --- a/src/views/doublePrevent/hiddenInvestigate/work/index.vue +++ /dev/null @@ -1,231 +0,0 @@ -<template> - <div class="system-role-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <div class="basic-line"> - <span>风险等级:</span> - <el-select v-model="productionDeviceData.params.riskLevel" clearable filterable class="input-box" placeholder="请选择风险等级"> - <el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id"></el-option> - </el-select> - </div> - <div class="basic-line"> - <span>部门:</span> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-box" - v-model="productionDeviceData.params.depId" - > - </el-cascader> - </div> - <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> - <el-icon> - <ele-Search /> - </el-icon> - 查询 - </el-button> - <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增排查任务 - </el-button> - </div> - <el-table :data="productionDeviceData.data" style="width: 100%"> - <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="depName" label="所属部门" show-overflow-tooltip></el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> - <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column prop="status" label="状态" show-overflow-tooltip> </el-table-column> - <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> - <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> - <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> - <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="productionDeviceData.params.pageIndex" - background - v-model:page-size="productionDeviceData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="productionDeviceData.total" - class="page-position" - > - </el-pagination> - <br /> - <br /> - </el-card> - <inspectionTaskDialog ref="inspectionTaskDialogRef" @refreshProductionDevice="initProductionDeviceTableData" /> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage } from 'element-plus'; -import inspectionTaskDialog from './components/inspectionTaskDialog.vue'; -import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice/index.ts'; -import { departmentApi } from '/@/api/department'; - -// 定义接口来定义对象的类型 -interface TableData { - roleName: string; - roleSign: string; - describe: string; - sort: number; - status: boolean; - createTime: string; -} -interface TableDataState { - productionDeviceData: { - data: Array<TableData>; - total: number; - loading: boolean; - params: { - pageIndex: number; - pageSize: number; - riskLevel: number | null; - status: number; - depId: number | null; - location: string | null; - produceDeviceName: string | null; - }; - }; - departmentList: Array<DepartmentState>; - levelList: Array<levelListState>; -} -interface levelListState {} -interface DepartmentState {} - -export default defineComponent({ - name: 'productionDevice', - components: { inspectionTaskDialog }, - setup() { - const inspectionTaskDialogRef = ref(); - const state = reactive<TableDataState>({ - productionDeviceData: { - data: [], - total: 0, - loading: false, - params: { - pageIndex: 1, - pageSize: 10, - riskLevel: null, - status: 1, - depId: null, - location: null, - produceDeviceName: null - } - }, - departmentList: [], - levelList: [ - { id: 1, name: '低风险' }, - { id: 2, name: '一般风险' }, - { id: 3, name: '较大风险' }, - { id: 4, name: '重大风险' } - ] - }); - // 初始化表格数据 - const initProductionDeviceTableData = async () => { - let res = await productionDeviceApi().getProductionDeviceList(state.productionDeviceData.params); - if (res.data.code === '200') { - state.productionDeviceData.data = res.data.data; - state.productionDeviceData.total = res.data.count; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - const getDepartmentData = async () => { - let res = await departmentApi().getDepartmentList(); - if (res.data.code === '200') { - state.departmentList = res.data.data; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 打开生产装置弹窗 - const onOpenDialogRef = (type: string, value: any) => { - inspectionTaskDialogRef.value.openProductionDeviceDialog(type, value, state.departmentList); - }; - // 删除角色 - const onDelProductionDevice = (row: any) => { - ElMessageBox.confirm(`此操作将永久删除该条生产装置:“${row.produceDeviceName}”,是否继续?`, '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning' - }) - .then(async () => { - let res = await productionDeviceApi().deleteProductionDevice({ id: row.id }); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - duration: 2000, - message: '删除成功' - }); - await initProductionDeviceTableData(); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }) - .catch(() => {}); - }; - - const handleSearch = () => { - initProductionDeviceTableData(); - }; - // 分页改变 - const onHandleSizeChange = (val: number) => { - state.productionDeviceData.params.pageSize = val; - initProductionDeviceTableData(); - }; - // 分页改变 - const onHandleCurrentChange = (val: number) => { - state.productionDeviceData.params.pageIndex = val; - initProductionDeviceTableData(); - }; - // 页面加载时 - onMounted(() => { - initProductionDeviceTableData(); - getDepartmentData(); - }); - - return { - handleSearch, - onOpenDialogRef, - onHandleSizeChange, - onDelProductionDevice, - onHandleCurrentChange, - inspectionTaskDialog, - inspectionTaskDialogRef, - initProductionDeviceTableData, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/hiddenManage/hiddenCheck/components/checkDialog.vue b/src/views/doublePrevent/hiddenManage/hiddenCheck/components/checkDialog.vue deleted file mode 100644 index dc90d5a..0000000 --- a/src/views/doublePrevent/hiddenManage/hiddenCheck/components/checkDialog.vue +++ /dev/null @@ -1,9 +0,0 @@ -<template></template> - -<script> -export default { - name: 'checkDialog' -}; -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue new file mode 100644 index 0000000..3da2391 --- /dev/null +++ b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue @@ -0,0 +1,186 @@ +<template> + <div class="system-add-menu-container"> + <el-dialog :title="title" v-model="isShowRecordDialog" append-to-body :close-on-click-modal="false" width="600px"> + <div class="record-form"> + <el-form :model="recordForm" ref="recordFormRef" size="default" label-width="100px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="检查内容" prop="checkContent"> + <el-input class="input-length" type="textarea" :rows="3" v-model.trim="recordForm.checkContent" placeholder="检查内容"> </el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </el-dialog> + <el-dialog :title="title" v-model="isShowSubmitDialog" width="600px"> + <el-form :model="submitForm" ref="rectifyFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="处理结果" prop="checkResult"> + <el-select class="input-add" v-model="checkResults.checkResult" placeholder="请输入处理结果"> + <el-option v-for="item in resultList" :label="item.name" :key="item.id" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="isShowSubmitDialog = !isShowSubmitDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitRecord" v-throttle size="default">确 实</el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script lang="ts"> +import { getUserByDepartment } from '/@/assets/methods'; + +interface stateType { + isShowRecordDialog: Boolean; + isShowSubmitDialog: Boolean; + recordForm: { + taskCode: string | null; + checkContent: string | null; + checkResult: string | null; + checkTaskId: number | null; + classify1: number | null; + classify2: number | null; + classify3: string | null; + controlMeasureCode: string | null; + controlMeasureId: number | null; + controlType: number | null; + measureDesc: string | null; + }; + title: string; + submitForm: { + execUserId: number | null; + id: number | null; + checkResults: Array<checkResults>; + }; + checkResults: { + id: number | null; + controlMeasureId: number | null; + checkResult: number | null; + }; + resultList: Array<result>; +} +interface result { + id: number; + name: string; +} +interface checkResults { + id: number | null; + controlMeasureId: number | null; + checkResult: number | null; +} +import { reactive, toRefs, ref } from 'vue'; +import { recordApi } from '/@/api/doublePreventSystem/record'; +import { ElMessage } from 'element-plus'; +export default { + name: 'recordDialog', + setup(props: any, context: any) { + const recordFormRef = ref(); + const state = reactive<stateType>({ + title: '查看', + isShowSubmitDialog: false, + isShowRecordDialog: false, + recordForm: { + taskCode: null, + checkContent: null, + checkResult: null, + checkTaskId: null, + classify1: null, + classify2: null, + classify3: null, + controlMeasureCode: null, + controlMeasureId: null, + controlType: null, + measureDesc: null + }, + submitForm: { + id: null, + execUserId: null, + checkResults: [] + }, + checkResults: { + id: null, + controlMeasureId: null, + checkResult: null + }, + resultList: [ + { id: 1, name: '正常' }, + { id: 2, name: '不正常' } + ] + }); + + //打开模态框 + const openRecordDialog = async (type: string, value: object) => { + if (type === '查看') { + state.title = '查看'; + state.isShowRecordDialog = true; + let recordFormValue = JSON.parse(JSON.stringify(value)); + state.recordForm.taskCode = recordFormValue.taskCode; + state.recordForm.checkContent = recordFormValue.checkContent; + } else { + state.title = '提交'; + state.isShowSubmitDialog = true; + state.submitForm.id = JSON.parse(JSON.stringify(value)).checkTaskId; + state.checkResults.id = JSON.parse(JSON.stringify(value)).id; + state.checkResults.controlMeasureId = JSON.parse(JSON.stringify(value)).controlMeasureId; + } + }; + + //新增修改提交 + const submitRecord = async () => { + if (state.checkResults.checkResult !== null) { + if (state.title === '提交') { + state.submitForm.checkResults.push(state.checkResults); + let res = await recordApi().submitRecord(state.submitForm); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + message: '排查记录新增成功', + duration: 2000 + }); + state.isShowRecordDialog = false; + context.emit('refreshRecord'); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + } else { + ElMessage({ + type: 'warning', + message: '请完善基本信息' + }); + } + }; + + return { + ...toRefs(state), + recordFormRef, + submitRecord, + openRecordDialog + }; + } +}; +</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; +} +</style> diff --git a/src/views/doublePrevent/checkTaskManage/record/index.vue b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/index.vue similarity index 80% rename from src/views/doublePrevent/checkTaskManage/record/index.vue rename to src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/index.vue index 2949041..d57e4a4 100644 --- a/src/views/doublePrevent/checkTaskManage/record/index.vue +++ b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/index.vue @@ -29,41 +29,34 @@ </el-button> </div> <el-table :data="recordData.data" style="width: 100%"> - <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="checkRecordName" label="排查名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="checkRecordType" label="排查类型" show-overflow-tooltip> + <el-table-column type="expand"> <template #default="scope"> - {{ parseNumber(scope.row.checkRecordType, '排查类型') }} + <el-table :data="scope.row.checkContent" style="width: 100%"> + <el-table-column label="序号" type="index" width="150" align="center"> </el-table-column> + <el-table-column label="检查内容" prop="checkContent" align="center"> </el-table-column> + <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width"> + <template #default="scope"> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Check" @click="onOpenDialogRef('整改', scope.row)">提交</el-button> + </template> + </el-table-column> + </el-table> </template> </el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> - <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column prop="status" label="状态" show-overflow-tooltip> </el-table-column> + <el-table-column type="index" label="序号" width="60" /> + <el-table-column prop="taskCode" label="排查名称" show-overflow-tooltip></el-table-column> + <el-table-column prop="taskStatus" label="状态" show-overflow-tooltip> + <template #default="scope"> + {{ parseNumber(scope.row.taskStatus, '状态') }} + </template> + </el-table-column> <el-table-column prop="createUserName" label="创建人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelrecord(scope.row)">删除</el-button> - </template> - </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="recordData.params.pageIndex" - background - v-model:page-size="recordData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="recordData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="recordData.params.pageIndex" background v-model:page-size="recordData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="recordData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> @@ -78,6 +71,7 @@ import { recordApi } from '/@/api/doublePreventSystem/record/index.ts'; import { departmentApi } from '/@/api/department'; import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit'; +import { View, Check } from '@element-plus/icons-vue'; // 定义接口来定义对象的类型 interface TableData { @@ -115,7 +109,7 @@ export default defineComponent({ name: 'record', - components: { recordDialog }, + components: { recordDialog, View, Check }, setup() { const recordDialogRef = ref(); const state = reactive<TableDataState>({ @@ -191,7 +185,7 @@ // 打开生产装置弹窗 const onOpenDialogRef = (type: string, value: any) => { - recordDialogRef.value.openRecordDialog(type, value, state.departmentList, state.checkRecordTypeList, state.taskUnitList); + recordDialogRef.value.openRecordDialog(type, value); }; // 删除角色 const onDelRecord = (row: any) => { @@ -219,8 +213,6 @@ .catch(() => {}); }; - const parseNumber = (value: string | number, type: string) => {}; - const handleSearch = () => { initRecordTableData(); }; @@ -234,6 +226,13 @@ state.recordData.params.pageIndex = val; initRecordTableData(); }; + + const parseNumber = (value: string | number, type: string) => { + if (type === '状态') { + return state.taskStatusList.find((item) => item.id === value)?.name; + } + }; + // 页面加载时 onMounted(() => { initRecordTableData(); @@ -242,11 +241,13 @@ }); return { + View, + Check, + parseNumber, handleSearch, onOpenDialogRef, onHandleSizeChange, onDelRecord, - parseNumber, onHandleCurrentChange, recordDialog, recordDialogRef, diff --git a/src/views/doublePrevent/checkTaskManage/record/components/recordDialog.vue b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue similarity index 76% rename from src/views/doublePrevent/checkTaskManage/record/components/recordDialog.vue rename to src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue index dbc1d8d..5cff750 100644 --- a/src/views/doublePrevent/checkTaskManage/record/components/recordDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue @@ -6,9 +6,7 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="排查类型" prop="checkWorkType"> - <el-select class="input-add" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> - <el-option v-for="item in checkWorkTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option - ></el-select> + <el-select class="input-add" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> <el-option v-for="item in checkWorkTypeList" :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="12" class="mb20"> @@ -18,17 +16,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改部门" prop="depId"> - <el-cascader - @change="achieveUserList" - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-add" - v-model="workForm.depId" - > - </el-cascader> + <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="workForm.depId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> @@ -40,13 +28,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="排查周期" prop="checkCycle"> - <el-input - class="input-add" - type="number" - v-model.trim="workForm.checkCycle" - placeholder="请输入排查周期" - clearable - ></el-input> + <el-input class="input-add" type="number" v-model.trim="workForm.checkCycle" placeholder="请输入排查周期" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> @@ -58,13 +40,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="有效时间" prop="validTime"> - <el-input - class="input-add" - type="number" - v-model.trim="workForm.validTime" - placeholder="请输入有效时间" - clearable - ></el-input> + <el-input class="input-add" type="number" v-model.trim="workForm.validTime" placeholder="请输入有效时间" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> @@ -76,13 +52,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="提醒时间" prop="noticeTime"> - <el-input - class="input-add" - type="number" - v-model.trim="workForm.noticeTime" - placeholder="请输入提醒时间" - clearable - ></el-input> + <el-input class="input-add" type="number" v-model.trim="workForm.noticeTime" placeholder="请输入提醒时间" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> @@ -101,14 +71,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="首次任务开始时间" prop="firstStartTime"> - <el-date-picker - class="input-add" - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - v-model="workForm.firstStartTime" - placeholder="请选择首次任务开始时间" - clearable - ></el-date-picker> + <el-date-picker class="input-add" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" v-model="workForm.firstStartTime" placeholder="请选择首次任务开始时间" clearable></el-date-picker> </el-form-item> </el-col> </el-row> @@ -116,7 +79,7 @@ </div> <template #footer> - <span class="dialog-footer"> + <span class="dialog-footer" v-show="disabled"> <el-button @click="isShowWorkDialog = !isShowWorkDialog" size="default">取 消</el-button> <el-button type="primary" @click="submitWork" v-throttle size="default">确 实</el-button> </span> @@ -129,6 +92,7 @@ import { getUserByDepartment } from '/@/assets/methods'; interface stateType { + disabled: Boolean; isShowWorkDialog: Boolean; workForm: { checkWorkType: number | null; @@ -166,12 +130,14 @@ const workFormRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, activeName: 'inspectionPoint', checkWorkTypeList: [], departmentList: [], taskUnitList: [], userList: [], timeType: [ + { id: 1, name: '分' }, { id: 2, name: '小时' }, { id: 3, name: '日' }, { id: 4, name: '月' }, @@ -193,15 +159,23 @@ depId: null }, workFormRules: { - produceDeviceName: [{ required: true, message: '请填写生产装置名称', trigger: 'blur' }], - depId: [{ required: true, message: '请选择部门', trigger: 'change' }], - riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }], - location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }] + checkWorkType: [{ required: true, message: '请填写排查作业类型', trigger: 'change' }], + checkWorkName: [{ required: true, message: '请选择排查作业名称', trigger: 'blur' }], + taskUnitId: [{ required: true, message: '请选择任务单元', trigger: 'change' }], + execUserId: [{ required: true, message: '请选择执行人', trigger: 'change' }], + checkCycle: [{ required: true, message: '请填写排查周期', trigger: 'blur' }], + checkCycleUnit: [{ required: true, message: '请选择时间单位', trigger: 'change' }], + validTime: [{ required: true, message: '请填写有效时间', trigger: 'blur' }], + validTimeUnit: [{ required: true, message: '请选择时间单位', trigger: 'change' }], + noticeTime: [{ required: true, message: '请填写提醒时间', trigger: 'blur' }], + noticeTimeUnit: [{ required: true, message: '请选择时间单位', trigger: 'change' }], + firstStartTime: [{ required: true, message: '请填写首次排查任务开始时间', trigger: 'blur' }], + depId: [{ required: true, message: '请选择部门', trigger: 'change' }] } }); //打开模态框 - const openWorkDialog = (type: string, value: object, department: [], checkWorkTypeList: [], taskUnitList: []) => { + const openWorkDialog = async (type: string, value: object, department: [], checkWorkTypeList: [], taskUnitList: []) => { state.isShowWorkDialog = true; state.departmentList = department; state.taskUnitList = JSON.parse(JSON.stringify(taskUnitList)); @@ -210,7 +184,8 @@ workFormRef.value.clearValidate(); }); if (type === '新增') { - state.title = '新增生产装置'; + state.disabled = true; + state.title = '新增排查任务'; state.workForm = { checkWorkType: null, checkWorkName: null, @@ -225,8 +200,17 @@ firstStartTime: null, depId: null }; + } else if (type === '查看') { + state.disabled = false; + state.title = '查看排查任务'; + state.workForm.depId = JSON.parse(JSON.stringify(value)).depId; + await achieveUserList(); + state.workForm = JSON.parse(JSON.stringify(value)); } else { - state.title = '修改生产装置'; + state.disabled = true; + state.title = '修改排查任务'; + state.workForm.depId = JSON.parse(JSON.stringify(value)).depId; + await achieveUserList(); state.workForm = JSON.parse(JSON.stringify(value)); } }; @@ -235,12 +219,12 @@ const submitWork = async () => { workFormRef.value.validate(async (valid: Boolean) => { if (valid) { - if (state.title === '新增生产装置') { + if (state.title === '新增排查任务') { let res = await workApi().addWork(state.workForm); if (res.data.code === '200') { ElMessage({ type: 'success', - message: '生产装置新增成功', + message: '排查任务新增成功', duration: 2000 }); state.isShowWorkDialog = false; @@ -256,7 +240,7 @@ if (res.data.code === '200') { ElMessage({ type: 'success', - message: '生产装置修改成功', + message: '排查任务修改成功', duration: 2000 }); state.isShowWorkDialog = false; diff --git a/src/views/doublePrevent/checkTaskManage/work/index.vue b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/index.vue similarity index 75% rename from src/views/doublePrevent/checkTaskManage/work/index.vue rename to src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/index.vue index 9b936c8..66e6ebb 100644 --- a/src/views/doublePrevent/checkTaskManage/work/index.vue +++ b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/index.vue @@ -40,34 +40,42 @@ {{ parseNumber(scope.row.checkWorkType, '排查类型') }} </template> </el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> - <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column prop="status" label="状态" show-overflow-tooltip> </el-table-column> + <el-table-column prop="taskUnitName" label="任务单元" show-overflow-tooltip></el-table-column> + <el-table-column prop="execUserName" label="执行人" show-overflow-tooltip></el-table-column> + <el-table-column prop="checkCycle" label="排查周期" show-overflow-tooltip> + <template #default="scope"> + <span> + {{ scope.row.checkCycle }} + </span> + <span> + {{ parseNumber(scope.row.checkWorkType, '排查周期') }} + </span> + </template> + </el-table-column> + <el-table-column prop="validTime" label="排查周期" show-overflow-tooltip> + <template #default="scope"> + <span> + {{ scope.row.validTime }} + </span> + <span> + {{ parseNumber(scope.row.validTimeUnit, '排查周期') }} + </span> + </template> + </el-table-column> <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> + <el-table-column label="操作" width="200" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelWork(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> + <el-button size="small" text type="danger" :icon="Delete" @click="onDelWork(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="workData.params.pageIndex" - background - v-model:page-size="workData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="workData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="workData.params.pageIndex" background v-model:page-size="workData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="workData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> @@ -81,7 +89,7 @@ import workDialog from './components/workDialog.vue'; import { workApi } from '/@/api/doublePreventSystem/work/index.ts'; import { departmentApi } from '/@/api/department'; -import { userApi } from '/@/api/user'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit'; // 定义接口来定义对象的类型 @@ -106,17 +114,25 @@ checkWorkName: string | null; }; }; - taskUnitList: []; + timeType: Array<levelListState>; + taskUnitList: Array<taskUnit>; departmentList: Array<DepartmentState>; checkWorkTypeList: Array<levelListState>; checkWorkStatusList: Array<levelListState>; } -interface levelListState {} +interface levelListState { + id: number; + name: string; +} interface DepartmentState {} +interface taskUnit { + id: number; + taskUnitName: string; +} export default defineComponent({ name: 'work', - components: { workDialog }, + components: { workDialog, Edit, Delete, View }, setup() { const workDialogRef = ref(); const state = reactive<TableDataState>({ @@ -142,6 +158,13 @@ { id: 1, name: '开启' }, { id: 2, name: '关闭' }, { id: 2, name: '过期' } + ], + timeType: [ + { id: 1, name: '分' }, + { id: 2, name: '小时' }, + { id: 3, name: '日' }, + { id: 4, name: '月' }, + { id: 5, name: '年' } ] }); // 初始化表格数据 @@ -213,7 +236,13 @@ .catch(() => {}); }; - const parseNumber = (value: string | number, type: string) => {}; + const parseNumber = (value: string | number, type: string) => { + if (type === '排查类型') { + return state.checkWorkTypeList.find((item) => item.id === value)?.name; + } else if (type === '排查周期') { + return state.timeType.find((item) => item.id == value)?.name; + } + }; const handleSearch = () => { initWorkTableData(); @@ -236,6 +265,9 @@ }); return { + Edit, + Delete, + View, handleSearch, onOpenDialogRef, onHandleSizeChange, diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue new file mode 100644 index 0000000..9e60143 --- /dev/null +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue @@ -0,0 +1,185 @@ +<template> + <div class="system-add-menu-container"> + <el-dialog :title="title" v-model="isShowCheckDialog" width="600px"> + <el-form :model="checkForm" :rules="checkFormRules" ref="checkFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="验收意见" prop="checkInfo"> + <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkForm.checkAcceptDesc" placeholder="请输入验收意见" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="isShowCheckDialog = !isShowCheckDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitCheck" v-throttle size="default">确 实</el-button> + </span> + </template> + </el-dialog> + <el-dialog :title="title" v-model="isShowCheckInfoDialog" width="600px"> + <el-form :model="checkInfoForm" ref="checkFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="验收意见" prop="rectifyDesc"> + <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></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="rectifyType"> + <el-select class="input-add" v-model="checkInfoForm.rectifyType" readonly> + <el-option v-for="item in rectifyTypeList" :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="rectifyDepId"> + <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改责任人" prop="liablePersonId"> + <el-select class="input-add" v-model="checkInfoForm.liablePersonId" clearable filterable readonly> + <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></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="dangerResult"> + <el-input class="input-add" type="number" v-model="checkInfoForm.cost" readonly> </el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + </div> +</template> + +<script lang="ts"> +import { getUserByDepartment } from '/@/assets/methods'; + +interface stateType { + isShowCheckDialog: Boolean; + isShowCheckInfoDialog: Boolean; + checkForm: { + id: number | null; + dangerManagerId: number | null; + checkAcceptDesc: string | null; + }; + departmentList: []; + userList: []; + rectifyTypeList: Array<rectifyType>; + checkInfoForm: { + rectifyDepId: number | null; + liablePersonId: number | null; + }; + title: string; + checkTypeList: Array<checkTypeState>; + checkFormRules: {}; +} +interface checkTypeState { + regionType: string; + id: number; +} + +interface rectifyType { + id: number; + name: string; +} + +import { reactive, toRefs, ref } from 'vue'; +import { ElMessage } from 'element-plus'; +import { hiddenCheckApi } from '/@/api/doublePreventSystem/check'; +export default { + name: 'hiddenCheckDialog', + setup(props: any, context: any) { + const checkFormRef = ref(); + const state = reactive<stateType>({ + title: '', + checkTypeList: [], + rectifyTypeList: [ + { id: 1, name: '即查即改' }, + { id: 2, name: '限期整改' } + ], + departmentList: [], + userList: [], + isShowCheckDialog: false, + isShowCheckInfoDialog: false, + checkForm: { + id: null, + dangerManagerId: null, + checkAcceptDesc: null + }, + checkInfoForm: { + rectifyDepId: null, + liablePersonId: null + }, + checkFormRules: { + checkAcceptDesc: [{ required: true, message: '请填写整改说明', trigger: 'blur' }] + } + }); + + //打开模态框 + const openCheckDialog = async (type: string, value: object, departmentList: []) => { + state.departmentList = departmentList; + if (type === '验收') { + state.title = '验收'; + state.isShowCheckDialog = true; + const checkForm = JSON.parse(JSON.stringify(value)); + state.checkForm.id = checkForm.id; + state.checkForm.dangerManagerId = checkForm.dangerManagerId; + } else { + state.title = '查看'; + state.isShowCheckInfoDialog = true; + state.checkInfoForm.rectifyDepId = JSON.parse(JSON.stringify(value)).rectifyDepId; + await achieveUserList(); + state.checkInfoForm = JSON.parse(JSON.stringify(value)); + } + }; + + //提交整改 + const submitCheck = async () => { + checkFormRef.value.validate(async (valid: Boolean) => { + if (valid) { + let res = await hiddenCheckApi().submitHiddenCheck(state.checkForm); + if (res.data.code === '200') { + ElMessage({ + type: 'success', + message: '整改提交成功', + duration: 2000 + }); + state.isShowCheckDialog = false; + context.emit('refreshCheck'); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } else { + ElMessage({ + type: 'warning', + message: '请完善基本信息' + }); + } + }); + }; + + const achieveUserList = async () => { + state.checkInfoForm.liablePersonId = null; + const user: unknown = await getUserByDepartment(state.checkInfoForm.rectifyDepId); + state.userList = user as []; + }; + + return { + ...toRefs(state), + checkFormRef, + submitCheck, + openCheckDialog + }; + } +}; +</script> + +<style scoped></style> diff --git a/src/views/doublePrevent/hiddenManage/hiddenCheck/index.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue similarity index 69% rename from src/views/doublePrevent/hiddenManage/hiddenCheck/index.vue rename to src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue index d29b15a..e8cda97 100644 --- a/src/views/doublePrevent/hiddenManage/hiddenCheck/index.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue @@ -10,16 +10,7 @@ </div> <div class="basic-line"> <span>整改部门:</span> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-box" - v-model="checkData.params.rectifyDepId" - > - </el-cascader> + <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-box" v-model="checkData.params.rectifyDepId"> </el-cascader> </div> <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> @@ -40,28 +31,23 @@ </el-table-column> <el-table-column prop="liablePerson" label="整改责任人" show-overflow-tooltip min-width="150px"></el-table-column> <el-table-column prop="cost" label="整改资金" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="cost" label="验收状态" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="dangerStatus" label="验收状态" show-overflow-tooltip min-width="150px" align="center"> + <template #default="scope"> + <el-tag :type="scope.row.dangerStatus === 0 ? 'info' : scope.row.dangerStatus === 1 ? 'primary' : scope.row.dangerStatus === 2 ? 'warning' : scope.row.dangerStatus === 4 ? 'danger' : 'success'"> + {{ parseNumber(scope.row.dangerStatus, '隐患整改状态') }} + </el-tag> + </template> + </el-table-column> + <el-table-column prop="checkAcceptPerson" label="验收人" show-overflow-tooltip min-width="150px"></el-table-column> <el-table-column label="操作" width="250" fixed="right" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" :icon="Check" @click="onOpenDialogRef('验收', scope.row)">验收</el-button> - <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Check" v-show="scope.row.dangerStatus === 1" @click="onOpenDialogRef('验收', scope.row)">验收</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="checkData.params.pageIndex" - background - v-model:page-size="checkData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="checkData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="checkData.params.pageIndex" background v-model:page-size="checkData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="checkData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> @@ -73,11 +59,9 @@ import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; import { ElMessageBox, ElMessage } from 'element-plus'; import checkDialog from './components/checkDialog.vue'; -import { Check, Delete } from '@element-plus/icons-vue'; +import { Check, Delete, View } from '@element-plus/icons-vue'; import { departmentApi } from '/@/api/department'; -import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; -import { hiddenReportApi } from '/@/api/doublePreventSystem/report'; -import { hiddenRectifyApi } from '/@/api/doublePreventSystem/rectify'; +import { hiddenCheckApi } from '/@/api/doublePreventSystem/check'; // 定义接口来定义对象的类型 interface TableData { @@ -113,7 +97,7 @@ export default defineComponent({ name: 'check', - components: { checkDialog, Check, Delete }, + components: { checkDialog, Check, Delete, View }, setup() { const checkDialogRef = ref(); const state = reactive<TableDataState>({ @@ -142,9 +126,10 @@ { id: 9, name: '已验收' } ] }); + // 初始化表格数据 const initCheckTableData = async () => { - let res = await hiddenRectifyApi().getHiddenRectifyList(state.checkData.params); + let res = await hiddenCheckApi().getHiddenCheckList(state.checkData.params); if (res.data.code === '200') { state.checkData.data = res.data.data; state.checkData.total = res.data.count; @@ -171,32 +156,7 @@ // 打开弹窗 const onOpenDialogRef = (type: string, value: any) => { - checkDialogRef.value.opencheckDialog(type, value, state.departmentList); - }; - // 删除 - const onDelProductionDevice = (row: any) => { - ElMessageBox.confirm(`此操作将永久删除该巡检点:“${row.code}”,是否继续?`, '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning' - }) - .then(async () => { - let res = await hiddencheckApi().deleteHiddencheck({ id: row.id }); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - duration: 2000, - message: '删除成功' - }); - await initCheckTableData(); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }) - .catch(() => {}); + checkDialogRef.value.openCheckDialog(type, value, state.departmentList); }; const parseNumber = (value: string | number, type: string) => { @@ -229,11 +189,11 @@ return { Check, Delete, + View, parseNumber, handleSearch, onOpenDialogRef, onHandleSizeChange, - onDelProductionDevice, onHandleCurrentChange, checkDialog, checkDialogRef, diff --git a/src/views/doublePrevent/hiddenManage/hiddenRectify/components/rectifyDialog.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue similarity index 60% rename from src/views/doublePrevent/hiddenManage/hiddenRectify/components/rectifyDialog.vue rename to src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue index ee5cbd2..dcd8dd1 100644 --- a/src/views/doublePrevent/hiddenManage/hiddenRectify/components/rectifyDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue @@ -5,27 +5,12 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改说明" prop="rectifyInfo"> - <el-input - class="input-add" - type="textarea" - :rows="2" - v-model.trim="rectifyForm.rectifyInfo" - placeholder="请输入整改说明" - clearable - ></el-input> + <el-input class="input-add" type="textarea" :rows="2" v-model.trim="rectifyForm.rectifyInfo" 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="applyTime"> - <el-date-picker - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - class="input-add" - v-model="rectifyForm.applyTime" - placeholder="请选择整改时间" - clearable - > - </el-date-picker> + <el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="rectifyForm.applyTime" placeholder="请选择整改时间" clearable> </el-date-picker> </el-form-item> </el-col> </el-row> @@ -42,45 +27,71 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="延期说明" prop="timeOutDesc"> - <el-input - class="input-add" - type="textarea" - :rows="2" - v-model.trim="delayForm.timeOutDesc" - placeholder="请输入延期说明" - clearable - ></el-input> + <el-input class="input-add" type="textarea" :rows="2" v-model.trim="delayForm.timeOutDesc" 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="rectifyTime"> - <el-date-picker - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - class="input-add" - v-model="delayForm.rectifyTime" - placeholder="请选择整改期限" - clearable - > - </el-date-picker> + <el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="delayForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker> </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="isShowDelayDialog = !isShowDelayDialog" size="default">取 消</el-button> <el-button type="primary" @click="submitDelay" v-throttle size="default">确 实</el-button> </span> </template> </el-dialog> + <el-dialog :title="title" v-model="isShowCheckInfoDialog" width="600px"> + <el-form :model="checkInfoForm" ref="checkFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改内容说明" prop="rectifyDesc"> + <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></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="rectifyType"> + <el-select class="input-add" v-model="checkInfoForm.rectifyType" readonly> + <el-option v-for="item in rectifyTypeList" :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="rectifyDepId"> + <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改责任人" prop="liablePersonId"> + <el-select class="input-add" v-model="checkInfoForm.liablePersonId" clearable filterable readonly> + <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></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="dangerResult"> + <el-input class="input-add" type="number" v-model="checkInfoForm.cost" readonly> </el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> </div> </template> <script lang="ts"> +import { getUserByDepartment } from '/@/assets/methods'; + interface stateType { + disabled: Boolean; isShowRectifyDialog: Boolean; isShowDelayDialog: Boolean; + isShowCheckInfoDialog: Boolean; rectifyForm: { id: number | null; dangerManagerId: number | null; @@ -94,9 +105,15 @@ timeOutDesc: string | null; }; title: string; + departmentList: []; + userList: []; rectifyTypeList: Array<rectifyTypeState>; rectifyFormRules: {}; delayFormRules: {}; + checkInfoForm: { + rectifyDepId: number | null; + liablePersonId: number | null; + }; } interface rectifyTypeState { regionType: string; @@ -112,7 +129,15 @@ const rectifyFormRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, rectifyTypeList: [], + departmentList: [], + userList: [], + isShowCheckInfoDialog: false, + checkInfoForm: { + rectifyDepId: null, + liablePersonId: null + }, isShowDelayDialog: false, isShowRectifyDialog: false, rectifyForm: { @@ -138,16 +163,25 @@ }); //打开模态框 - const openRectifyDialog = (type: string, value: object) => { + const openRectifyDialog = async (type: string, value: object, departmentList: []) => { + state.departmentList = departmentList; if (type === '延期') { state.title = '延期'; + state.disabled = true; state.isShowDelayDialog = true; const delayForm = JSON.parse(JSON.stringify(value)); state.delayForm.id = delayForm.id; state.delayForm.dangerManagerId = delayForm.dangerManagerId; state.delayForm.timeOutDesc = null; state.delayForm.rectifyTime = null; + } else if (type === '查看') { + state.title = '查看'; + state.isShowCheckInfoDialog = true; + state.checkInfoForm.rectifyDepId = JSON.parse(JSON.stringify(value)).rectifyDepId; + await achieveUserList(); + state.checkInfoForm = JSON.parse(JSON.stringify(value)); } else { + state.disabled = true; state.title = '整改'; state.isShowRectifyDialog = true; const rectifyForm = JSON.parse(JSON.stringify(value)); @@ -214,10 +248,17 @@ }); }; + const achieveUserList = async () => { + state.checkInfoForm.liablePersonId = null; + const user: unknown = await getUserByDepartment(state.checkInfoForm.rectifyDepId); + state.userList = user as []; + }; + return { ...toRefs(state), rectifyFormRef, submitDelay, + achieveUserList, submitRectify, openRectifyDialog }; @@ -225,8 +266,4 @@ }; </script> -<style scoped> -.input-length { - width: 85%; -} -</style> +<style scoped></style> diff --git a/src/views/doublePrevent/hiddenManage/hiddenRectify/index.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue similarity index 93% rename from src/views/doublePrevent/hiddenManage/hiddenRectify/index.vue rename to src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue index f687ea3..b027e0d 100644 --- a/src/views/doublePrevent/hiddenManage/hiddenRectify/index.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue @@ -37,7 +37,7 @@ </el-table-column> <el-table-column prop="liablePerson" label="整改责任人" show-overflow-tooltip min-width="150px"></el-table-column> <el-table-column prop="cost" label="整改资金" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="dangerStatus" label="隐患整改状态" show-overflow-tooltip min-width="150px"> + <el-table-column prop="dangerStatus" label="隐患整改状态" show-overflow-tooltip min-width="150px" align="center"> <template #default="scope"> <el-tag :type="scope.row.dangerStatus === 0 ? 'info' : scope.row.dangerStatus === 1 ? 'primary' : scope.row.dangerStatus === 2 ? 'warning' : scope.row.dangerStatus === 4 ? 'danger' : 'success'"> {{ parseNumber(scope.row.dangerStatus, '隐患整改状态') }} @@ -50,8 +50,9 @@ <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip min-width="200px"></el-table-column> <el-table-column label="操作" width="250" fixed="right" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" :icon="Check" v-show="scope.row.dangerStatus === 0" @click="onOpenDialogRef('整改', scope.row)">整改</el-button> - <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('延期', scope.row)">延期</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Check" v-show="scope.row.dangerStatus === 0 || scope.row.dangerStatus === 2" @click="onOpenDialogRef('整改', scope.row)">整改</el-button> + <el-button size="small" text type="primary" :icon="Edit" v-show="scope.row.dangerStatus === 0 || scope.row.dangerStatus === 2" @click="onOpenDialogRef('延期', scope.row)">延期</el-button> <el-button size="small" text type="danger" :icon="Delete" @click="onDelHiddenRectify(scope.row)">删除</el-button> </template> </el-table-column> @@ -69,7 +70,7 @@ import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; import { ElMessageBox, ElMessage } from 'element-plus'; import rectifyDialog from './components/rectifyDialog.vue'; -import { Edit, Delete, Check } from '@element-plus/icons-vue'; +import { Edit, Delete, Check, View } from '@element-plus/icons-vue'; import { hiddenRectifyApi } from '/@/api/doublePreventSystem/rectify'; import { departmentApi } from '/@/api/department'; import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; @@ -108,7 +109,7 @@ export default defineComponent({ name: 'rectify', - components: { rectifyDialog, Edit, Delete }, + components: { rectifyDialog, Edit, Delete, View }, setup() { const rectifyDialogRef = ref(); const state = reactive<TableDataState>({ @@ -167,7 +168,7 @@ // 打开弹窗 const onOpenDialogRef = (type: string, value: any) => { - rectifyDialogRef.value.openRectifyDialog(type, value); + rectifyDialogRef.value.openRectifyDialog(type, value, state.departmentList); }; // 删除 const onDelHiddenRectify = (row: any) => { @@ -224,6 +225,7 @@ return { Edit, + View, Check, Delete, parseNumber, diff --git a/src/views/doublePrevent/hiddenManage/hiddenReport/components/reportDialog.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue similarity index 73% rename from src/views/doublePrevent/hiddenManage/hiddenReport/components/reportDialog.vue rename to src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue index f675a08..b2a509c 100644 --- a/src/views/doublePrevent/hiddenManage/hiddenReport/components/reportDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue @@ -7,72 +7,30 @@ <el-row :gutter="25"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患描述" prop="dangerDesc"> - <el-input - class="input-add" - v-model.trim="reportForm.dangerDesc" - placeholder="请输入隐患情况描述" - clearable - ></el-input> + <el-input class="input-add" v-model.trim="reportForm.dangerDesc" 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="dangerCode"> - <el-input - class="input-add" - v-model.trim="reportForm.dangerCode" - placeholder="请输入隐患名称" - clearable - ></el-input> + <el-input class="input-add" v-model.trim="reportForm.dangerCode" 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="depId"> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-add" - v-model="reportForm.depId" - > - </el-cascader> + <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.depId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="生产装置" prop="produceDeviceId"> - <el-select - class="input-add" - v-model="reportForm.produceDeviceId" - placeholder="请输入生产装置" - clearable - filterable - @change="changeUnit" - > - <el-option - v-for="item in allProduceDeviceData" - :key="item.id" - :label="item.produceDeviceName" - :value="item.id" - ></el-option> + <el-select class="input-add" v-model="reportForm.produceDeviceId" placeholder="请输入生产装置" clearable filterable @change="changeUnit"> + <el-option v-for="item in allProduceDeviceData" :key="item.id" :label="item.produceDeviceName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="风险分析单元" prop="riskUnitId"> - <el-select - class="input-add" - v-model.trim="reportForm.riskUnitId" - placeholder="请输入风险分析单元" - clearable - filterable - > - <el-option - v-for="item in safetyRiskUnitData" - :key="item.id" - :label="item.riskUnitName" - :value="item.id" - ></el-option> + <el-select class="input-add" v-model.trim="reportForm.riskUnitId" placeholder="请输入风险分析单元" clearable filterable> + <el-option v-for="item in safetyRiskUnitData" :key="item.id" :label="item.riskUnitName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> @@ -100,27 +58,14 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患可能后果" prop="dangerResult"> - <el-select - class="input-add" - v-model="reportForm.dangerResult" - placeholder="请选择隐患可能后果" - clearable - filterable - > + <el-select class="input-add" v-model="reportForm.dangerResult" placeholder="请选择隐患可能后果" clearable filterable> <el-option v-for="item in dangerResultList" :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="12"> <el-form-item label="隐患产生原因" prop="dangerReason"> - <el-input - class="input-add" - type="textarea" - :rows="2" - style="padding-bottom: 10px" - v-model.trim="reportForm.dangerReason" - placeholder="请输入隐患产生原因" - ></el-input> + <el-input class="input-add" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.dangerReason" placeholder="请输入隐患产生原因"></el-input> </el-form-item> </el-col> </el-row> @@ -135,51 +80,23 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改类型" prop="rectifyType"> <el-select class="input-add" v-model="reportForm.rectifyType" placeholder="请选择整改类型" clearable filterable> - <el-option - v-for="item in rectifyTypeList" - :key="item.id" - :label="item.name" - :value="item.id" - ></el-option> </el-select - ></el-form-item> + <el-option v-for="item in rectifyTypeList" :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="12" class="mb20"> <el-form-item label="整改期限" prop="rectifyTime"> - <el-date-picker - type="datetime" - value-format="YYYY-MM-DD HH:mm:ss" - class="input-add" - v-model="reportForm.rectifyTime" - placeholder="请选择整改期限" - clearable - > - </el-date-picker> + <el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="reportForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改部门" prop="rectifyDepId"> - <el-cascader - @change="achieveUserList" - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-add" - v-model="reportForm.rectifyDepId" - > - </el-cascader> + <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.rectifyDepId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改责任人" prop="liablePersonId"> - <el-select - class="input-add" - v-model="reportForm.liablePersonId" - placeholder="请选择整改责任人" - clearable - filterable - > + <el-select class="input-add" v-model="reportForm.liablePersonId" placeholder="请选择整改责任人" clearable filterable> <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></el-option> </el-select> </el-form-item> @@ -192,14 +109,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> <el-form-item label="整改措施" prop="rectifyDesc"> - <el-input - class="input-add" - type="textarea" - :rows="2" - style="padding-bottom: 10px" - v-model.trim="reportForm.rectifyDesc" - placeholder="请输入整改措施" - ></el-input> + <el-input class="input-add" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.rectifyDesc" placeholder="请输入整改措施"></el-input> </el-form-item> </el-col> </el-row> @@ -207,7 +117,7 @@ </el-tabs> </el-form> <template #footer> - <span class="dialog-footer"> + <span class="dialog-footer" v-show="disabled"> <el-button @click="isShowReportDialog = !isShowReportDialog" size="default">取 消</el-button> <el-button type="primary" @click="submitReport" v-throttle size="default">确 实</el-button> </span> @@ -364,7 +274,7 @@ reportFormRef.value.clearValidate(); }); if (type === '新增') { - state.disabled = false; + state.disabled = true; state.title = '新增隐患'; state.reportForm = { dangerDesc: null, @@ -384,6 +294,12 @@ cost: null, rectifyDesc: null }; + } else if (type === '查看') { + state.title = '修改隐患'; + state.disabled = false; + state.reportForm.rectifyDepId = JSON.parse(JSON.stringify(value)).rectifyDepId; + achieveUserList(); + state.reportForm = JSON.parse(JSON.stringify(value)); } else { state.title = '修改隐患'; state.disabled = true; diff --git a/src/views/doublePrevent/hiddenManage/hiddenReport/index.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue similarity index 96% rename from src/views/doublePrevent/hiddenManage/hiddenReport/index.vue rename to src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue index 6508e0e..bdc7842 100644 --- a/src/views/doublePrevent/hiddenManage/hiddenReport/index.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue @@ -50,7 +50,7 @@ {{ parseNumber(scope.row.dangerSource, '隐患来源') }} </template> </el-table-column> - <el-table-column prop="dangerLevel" label="隐患等级" show-overflow-tooltip min-width="150px"> + <el-table-column prop="dangerLevel" label="隐患等级" show-overflow-tooltip min-width="150px" align="center"> <template #default="scope"> <el-tag :type="scope.row.dangerLevel === 1 ? 'warning' : 'danger'"> {{ parseNumber(scope.row.dangerLevel, '隐患等级') }} @@ -63,7 +63,7 @@ </template> </el-table-column> <el-table-column prop="dangerReason" label="隐患产生原因分析" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="dangerResult" label="隐患可能导致后果" show-overflow-tooltip min-width="150px"> + <el-table-column prop="dangerResult" label="隐患可能导致后果" show-overflow-tooltip min-width="150px" align="center"> <template #default="scope"> <el-tag :type="scope.row.dangerResult === 1 ? 'success' : scope.row.dangerResult === 2 ? 'info' : scope.row.dangerResult === 3 ? 'warning' : 'danger'"> {{ parseNumber(scope.row.dangerResult, '隐患可能导致后果') }}</el-tag> </template> @@ -74,6 +74,7 @@ <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip min-width="200px"></el-table-column> <el-table-column label="操作" width="250" fixed="right" align="center"> <template #default="scope"> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button> </template> @@ -92,7 +93,7 @@ import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; import { ElMessageBox, ElMessage } from 'element-plus'; import reportDialog from './components/reportDialog.vue'; -import { Edit, Delete } from '@element-plus/icons-vue'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; import { hiddenReportApi } from '/@/api/doublePreventSystem/report'; import { departmentApi } from '/@/api/department'; import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; @@ -138,7 +139,7 @@ export default defineComponent({ name: 'report', - components: { reportDialog, Edit, Delete }, + components: { reportDialog, Edit, Delete, View }, setup() { const reportDialogRef = ref(); const state = reactive<TableDataState>({ @@ -318,6 +319,7 @@ return { Edit, + View, Delete, parseNumber, handleSearch, diff --git a/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue b/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue index 86937df..ac23357 100644 --- a/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue +++ b/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue @@ -1,33 +1,18 @@ <template> <div class="system-add-menu-container"> <el-dialog :title="title" v-model="isRiskControlMeasureDialog" width="600px"> - <el-form - :model="riskControlMeasureForm" - :rules="riskControlMeasureFormRules" - ref="riskControlMeasureFormRef" - size="default" - label-width="160px" - > + <el-form :model="riskControlMeasureForm" :rules="riskControlMeasureFormRules" ref="riskControlMeasureFormRef" size="default" label-width="160px"> <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="风险事件名称" prop="riskEventId"> <el-select class="input-length" v-model="riskControlMeasureForm.riskEventId" placeholder="请选择风险事件" clearable> - <el-option - v-for="item in allSafetyRiskEventData" - :key="item.id" - :label="item.riskEventName" - :value="item.id" - ></el-option> + <el-option v-for="item in allSafetyRiskEventData" :key="item.id" :label="item.riskEventName" :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="controlMeasureCode"> - <el-input - class="input-length" - v-model.trim="riskControlMeasureForm.controlMeasureCode" - placeholder="请输入风险措施编码" - ></el-input> + <el-input class="input-length" v-model.trim="riskControlMeasureForm.controlMeasureCode" placeholder="请输入风险措施编码"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> @@ -39,26 +24,12 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控内容" prop="checkContent"> - <el-input - class="input-length" - type="textarea" - :rows="3" - v-model.trim="riskControlMeasureForm.checkContent" - placeholder="请输入管控内容" - clearable - > - </el-input> + <el-input class="input-length" type="textarea" :rows="3" v-model.trim="riskControlMeasureForm.checkContent" 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="管控措施分类1" prop="classify1"> - <el-select - class="input-length" - v-model.trim="riskControlMeasureForm.classify1" - @change="changeClassifyTwoList" - placeholder="请选择管控方式" - clearable - > + <el-select class="input-length" v-model.trim="riskControlMeasureForm.classify1" @change="changeClassifyTwoList" placeholder="请选择管控方式" clearable> <el-option v-for="item in classifyOneList" :key="item.id" :label="item.riskMeasureName" :value="item.id"></el-option> </el-select> </el-form-item> @@ -72,27 +43,18 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控措施分类3" prop="classify3"> - <el-input class="input-length" v-model.trim="riskControlMeasureForm.classify3" placeholder="请选择管控方式" clearable> - </el-input> + <el-input class="input-length" v-model.trim="riskControlMeasureForm.classify3" 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="measureDesc"> - <el-input - class="input-length" - type="textarea" - :rows="3" - v-model.trim="riskControlMeasureForm.measureDesc" - placeholder="请输入措施说明" - clearable - > - </el-input> + <el-input class="input-length" type="textarea" :rows="3" v-model.trim="riskControlMeasureForm.measureDesc" placeholder="请输入措施说明" clearable> </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="isRiskControlMeasureDialog = !isRiskControlMeasureDialog" size="default">取 消</el-button> <el-button type="primary" @click="submitRiskControlMeasureDialog" v-throttle size="default">确 实</el-button> </span> @@ -104,6 +66,7 @@ <script lang="ts"> interface stateType { isRiskControlMeasureDialog: Boolean; + disabled: Boolean; riskControlMeasureForm: { riskEventId: number | null; controlMeasureCode: string | null; @@ -137,6 +100,7 @@ const riskControlMeasureFormRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, controlTypeList: [ { id: 1, name: '自动化监控' }, { id: 2, name: '隐患排查' } @@ -176,6 +140,7 @@ riskControlMeasureFormRef.value.clearValidate(); }); if (type === '新增') { + state.disabled = true; state.title = '新增风险管控措施'; state.riskControlMeasureForm = { riskEventId: null, @@ -187,7 +152,12 @@ classify3: null, measureDesc: null }; + } else if (type === '查看') { + state.disabled = false; + state.title = '修改风险管控措施'; + state.riskControlMeasureForm = JSON.parse(JSON.stringify(value)); } else { + state.disabled = true; state.title = '修改风险管控措施'; state.riskControlMeasureForm = JSON.parse(JSON.stringify(value)); } diff --git a/src/views/doublePrevent/riskLevel/action/index.vue b/src/views/doublePrevent/riskLevel/action/index.vue index 21cba15..79efcfe 100644 --- a/src/views/doublePrevent/riskLevel/action/index.vue +++ b/src/views/doublePrevent/riskLevel/action/index.vue @@ -57,27 +57,16 @@ </el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> + <el-table-column label="操作" width="200" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelRiskControlMeasure(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> + <el-button size="small" text type="danger" :icon="Delete" @click="onDelRiskControlMeasure(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="page-position" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="riskControlMeasureData.params.pageIndex" - background - v-model:page-size="riskControlMeasureData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="riskControlMeasureData.total" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="page-position" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="riskControlMeasureData.params.pageIndex" background v-model:page-size="riskControlMeasureData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="riskControlMeasureData.total"> </el-pagination> <br /> <br /> </el-card> @@ -91,6 +80,7 @@ import riskControlMeasureDialog from './components/riskControlMeasureDialog.vue'; import { riskControlMeasureApi } from '/@/api/doublePreventSystem/riskControlMeasure/index.ts'; import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; // 定义接口来定义对象的类型 interface TableData { @@ -162,7 +152,7 @@ export default { name: 'riskControlMeasure', - components: { riskControlMeasureDialog }, + components: { riskControlMeasureDialog, Edit, Delete, View }, setup() { const riskControlMeasureDialogRef = ref(); const state = reactive<TableDataState>({ @@ -204,18 +194,7 @@ const dateFormat = (fmt: any, date: any) => { date = new Date(date); - fmt = - date.getFullYear() + - '-' + - (date.getMonth() + 1) + - '-' + - date.getDate() + - ' ' + - date.getHours().toString() + - ':' + - (date.getMinutes().toString() === '0' ? '00' : date.getMinutes().toString()) + - ':' + - (date.getSeconds().toString() === '0' ? '00' : date.getMinutes().toString()); + fmt = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours().toString() + ':' + (date.getMinutes().toString() === '0' ? '00' : date.getMinutes().toString()) + ':' + (date.getSeconds().toString() === '0' ? '00' : date.getMinutes().toString()); return fmt; }; @@ -248,13 +227,7 @@ // 打开生产装置弹窗 const onOpenDialogRef = (type: string, value: any) => { - riskControlMeasureDialogRef.value.openSafetyRiskEventDialog( - type, - value, - state.allSafetyRiskEventData, - state.classifyOneList, - state.classifyTwoList - ); + riskControlMeasureDialogRef.value.openSafetyRiskEventDialog(type, value, state.allSafetyRiskEventData, state.classifyOneList, state.classifyTwoList); }; // 删除角色 @@ -317,6 +290,9 @@ }); return { + Edit, + Delete, + View, dateFormat, handleSearch, parseNumber, diff --git a/src/views/doublePrevent/riskLevel/check/components/selectMeasureControlDialog.vue b/src/views/doublePrevent/riskLevel/check/components/selectMeasureControlDialog.vue deleted file mode 100644 index df01f4a..0000000 --- a/src/views/doublePrevent/riskLevel/check/components/selectMeasureControlDialog.vue +++ /dev/null @@ -1,219 +0,0 @@ -<template> - <div class="system-role-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <div class="basic-line"> - <span>管控方式:</span> - <el-select class="input-box" v-model="riskControlMeasureData.params.controlType" placeholder="管控方式" clearable> - <el-option v-for="item in controlTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> - </el-select> - </div> - <div class="basic-line"> - <span>安全风险事件:</span> - <el-select class="input-box" v-model="riskControlMeasureData.params.riskEventId" placeholder="安全风险事件" clearable> - <el-option v-for="item in allSafetyRiskEventData" :key="item.id" :label="item.riskEventName" :value="item.id"></el-option> - </el-select> - </div> - <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> - <el-icon> - <ele-Search /> - </el-icon> - 查询 - </el-button> - </div> - <el-table - @selection-change="handleSelectionChange" - ref="table" - :row-key="getRowKey" - :data="riskControlMeasureData.data" - style="width: 100%" - > - <el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column> - <el-table-column prop="riskEventName" label="安全风险事件名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="controlMeasureCode" label="风控措施编码" show-overflow-tooltip></el-table-column> - <el-table-column prop="controlType" label="管控方式" show-overflow-tooltip> - <template #default="scope"> - {{ parseNumber(scope.row.controlType, '管控方式') }} - </template> - </el-table-column> - <el-table-column prop="checkContent" label="管控内容" show-overflow-tooltip></el-table-column> - <el-table-column prop="classify1" label="管控措施分类1" show-overflow-tooltip> - <template #default="scope"> - {{ parseNumber(scope.row.classify1, '管控措施分类1') }} - </template> - </el-table-column> - <el-table-column prop="classify2" label="管控措施分类2" show-overflow-tooltip> - <template #default="scope"> - {{ parseNumber(scope.row.classify2, '管控措施分类2') }} - </template> - </el-table-column> - <el-table-column prop="classify3" label="管控措施分类3" show-overflow-tooltip></el-table-column> - <el-table-column prop="measureDesc" label="措施说明" show-overflow-tooltip></el-table-column>> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button type="text" @click="giveValue(scope.row)">选择 </el-button> - </template> - </el-table-column> - </el-table> - </el-card> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, onMounted, ref } from 'vue'; -import { ElMessageBox, ElMessage } from 'element-plus'; -import { riskControlMeasureApi } from '/@/api/doublePreventSystem/riskControlMeasure/index.ts'; -import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent'; - -// 定义接口来定义对象的类型 -interface TableData { - roleName: string; - roleSign: string; - describe: string; - sort: number; - status: boolean; - createTime: string; -} -interface TableDataState { - isShowSelectMeasureControlDialog: boolean; - riskControlMeasureIdList: Array<riskControlMeasure>; - riskControlMeasureData: { - data: Array<TableData>; - total: number; - loading: boolean; - params: { - pageIndex: number; - pageSize: number; - controlType: number | null; - riskEventId: number | null; - }; - }; - controlTypeList: Array<controlTypeType>; - classifyOneList: Array<classifyOneType>; - classifyTwoList: Array<classifyOneType>; -} -interface controlTypeType { - id: number; - name: string; -} -interface classifyOneType { - id: number; - riskMeasureName: string; -} - -interface riskControlMeasure {} -export default { - name: 'selectMeasureControlDialog', - components: {}, - setup(props: any, context: any) { - const riskControlMeasureDialogRef = ref(); - const state = reactive<TableDataState>({ - isShowSelectMeasureControlDialog: false, - riskControlMeasureIdList: [], - riskControlMeasureData: { - data: [], - total: 0, - loading: false, - params: { - pageIndex: 1, - pageSize: 10, - controlType: null, - riskEventId: null - } - }, - controlTypeList: [ - { id: 1, name: '自动化监控' }, - { id: 2, name: '隐患排查' } - ], - classifyOneList: [], - classifyTwoList: [] - }); - - // 初始化表格数据 - const initRiskControlMeasureData = async () => { - let res = await riskControlMeasureApi().getAllRiskControlMeasureList(); - if (res.data.code === '200') { - state.riskControlMeasureData.data = res.data.data; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - //获取管控措施分类 - const getClassify = async () => { - let res = await riskControlMeasureApi().getClassifyData(); - if (res.data.code === '200') { - state.classifyOneList = res.data.data.filter((item: any) => item.parentId === null); - state.classifyTwoList = res.data.data.filter((item: any) => item.parentId !== null); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - const parseNumber = (value: string | number, type: string) => { - if (type === '管控方式') { - return state.controlTypeList.find((item) => item.id === value)?.name; - } else if (type === '管控措施分类1') { - return state.classifyOneList.find((item) => item.id === value)?.riskMeasureName; - } else { - return state.classifyTwoList.find((item) => item.id === value)?.riskMeasureName; - } - }; - - const handleSearch = () => { - initRiskControlMeasureData(); - }; - - // 分页改变 - const onHandleSizeChange = (val: number) => { - state.riskControlMeasureData.params.pageSize = val; - initRiskControlMeasureData(); - }; - - // 分页改变 - const onHandleCurrentChange = (val: number) => { - state.riskControlMeasureData.params.pageIndex = val; - initRiskControlMeasureData(); - }; - - const handleSelectionChange = (val: []) => { - state.riskControlMeasureIdList = val; - }; - - const getRowKey = (value: { id: number }) => { - return value.id; - }; - - const giveValue = () => { - context.emit('receiveRiskControlId', state.riskControlMeasureIdList); - }; - - // 页面加载时 - onMounted(() => { - initRiskControlMeasureData(); - getClassify(); - }); - - return { - handleSearch, - parseNumber, - getRowKey, - giveValue, - handleSelectionChange, - onHandleSizeChange, - onHandleCurrentChange, - riskControlMeasureDialogRef, - initRiskControlMeasureData, - ...toRefs(state) - }; - } -}; -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/riskLevel/checkUnit/components/checkUnitDialog.vue b/src/views/doublePrevent/riskLevel/checkUnit/components/checkUnitDialog.vue deleted file mode 100644 index 42a7cb2..0000000 --- a/src/views/doublePrevent/riskLevel/checkUnit/components/checkUnitDialog.vue +++ /dev/null @@ -1,227 +0,0 @@ -<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-length" - 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-length" - v-model.trim="checkUnitForm.note" - placeholder="请输入任务单元说明" - clearable - ></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" 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 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"> - <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 '/@/views/doublePrevent/riskLevel/checkUnit/components/selectMeasureControlDialog.vue'; -import { reactive, toRefs, ref } from 'vue'; -import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit'; -import { ElMessage } from 'element-plus'; -interface stateType { - isShowCheckUnitDialog: 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: '', - 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, department: []) => { - state.isShowCheckUnitDialog = true; - setTimeout(() => { - checkUnitFormRef.value.clearValidate(); - }); - if (type === '新增') { - state.title = '新增隐患排查单元'; - state.checkUnitForm = { - taskUnitName: null, - note: null, - measureList: [] - }; - } else { - state.title = '修改隐患排查单元'; - state.checkUnitForm = JSON.parse(JSON.stringify(value)); - } - }; - - 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; -} -</style> diff --git a/src/views/doublePrevent/riskLevel/checkUnit/index.vue b/src/views/doublePrevent/riskLevel/checkUnit/index.vue deleted file mode 100644 index c73e048..0000000 --- a/src/views/doublePrevent/riskLevel/checkUnit/index.vue +++ /dev/null @@ -1,195 +0,0 @@ -<template> - <div class="system-role-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <div class="basic-line"> - <span>风险等级:</span> - <el-select v-model="checkUnitData.params.riskLevel" clearable filterable class="input-box" placeholder="请选择风险等级"> - <el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id"></el-option> - </el-select> - </div> - <div class="basic-line"> - <span>部门:</span> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-box" - v-model="checkUnitData.params.depId" - > - </el-cascader> - </div> - <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> - <el-icon> - <ele-Search /> - </el-icon> - 查询 - </el-button> - <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增排查任务 - </el-button> - </div> - <el-table :data="checkUnitData.data" style="width: 100%"> - <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="taskUnitName" label="任务单元名称" show-overflow-tooltip></el-table-column> - <el-table-column prop="note" label="任务单元说明" show-overflow-tooltip></el-table-column> - <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> - <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> - <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> - <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelcheckUnit(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="checkUnitData.params.pageIndex" - background - v-model:page-size="checkUnitData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="checkUnitData.total" - class="page-position" - > - </el-pagination> - <br /> - <br /> - </el-card> - <checkUnitDialog ref="checkUnitDialogRef" @refreshCheckUnit="initCheckUnitTableData" /> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; -import { ElMessageBox, ElMessage } from 'element-plus'; -import checkUnitDialog from './components/checkUnitDialog.vue'; -import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit/index.ts'; - -// 定义接口来定义对象的类型 -interface TableData { - roleName: string; - roleSign: string; - describe: string; - sort: number; - status: boolean; - createTime: string; -} -interface TableDataState { - checkUnitData: { - data: Array<TableData>; - total: number; - loading: boolean; - params: { - pageIndex: number; - pageSize: number; - taskUnitId: number | null; - }; - }; -} - -export default defineComponent({ - name: 'checkUnit', - components: { checkUnitDialog }, - setup() { - const checkUnitDialogRef = ref(); - const state = reactive<TableDataState>({ - checkUnitData: { - data: [], - total: 0, - loading: false, - params: { - pageIndex: 1, - pageSize: 10, - taskUnitId: null - } - } - }); - // 初始化表格数据 - const initCheckUnitTableData = async () => { - let res = await checkUnitApi().getCheckUnitList(state.checkUnitData.params); - if (res.data.code === '200') { - state.checkUnitData.data = res.data.data; - state.checkUnitData.total = res.data.count; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 打开生产装置弹窗 - const onOpenDialogRef = (type: string, value: any) => { - checkUnitDialogRef.value.openCheckUnitDialog(type, value, state.departmentList); - }; - // 删除角色 - const onDelCheckUnit = (row: any) => { - ElMessageBox.confirm(`此操作将永久删除该条生产装置:“${row.produceDeviceName}”,是否继续?`, '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning' - }) - .then(async () => { - let res = await checkUnitApi().deleteCheckUnit({ id: row.id }); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - duration: 2000, - message: '删除成功' - }); - await initCheckUnitTableData(); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }) - .catch(() => {}); - }; - - const handleSearch = () => { - initCheckUnitTableData(); - }; - // 分页改变 - const onHandleSizeChange = (val: number) => { - state.checkUnitData.params.pageSize = val; - initCheckUnitTableData(); - }; - // 分页改变 - const onHandleCurrentChange = (val: number) => { - state.checkUnitData.params.pageIndex = val; - initCheckUnitTableData(); - }; - // 页面加载时 - onMounted(() => { - initCheckUnitTableData(); - }); - - return { - handleSearch, - onOpenDialogRef, - onHandleSizeChange, - onDelCheckUnit, - onHandleCurrentChange, - checkUnitDialog, - checkUnitDialogRef, - initCheckUnitTableData, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped></style> diff --git a/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue b/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue index 6b9616e..c64cc93 100644 --- a/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue +++ b/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue @@ -1,67 +1,35 @@ <template> <div class="system-add-menu-container"> - <el-dialog :title="title" v-model="isShowProductionDeviceDialog" width="600px"> - <el-form - :model="productionDeviceForm" - :rules="productionDeviceFormRules" - ref="productionDeviceFormRef" - size="default" - label-width="120px" - > + <el-dialog :title="title" v-model="isShowProductionDeviceDialog" width="600px" :close-on-click-modal="false"> + <el-form :model="productionDeviceForm" :rules="productionDeviceFormRules" ref="productionDeviceFormRef" size="default" label-width="120px"> <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="生产装置名称" prop="produceDeviceName"> - <el-input - class="input-length" - v-model.trim="productionDeviceForm.produceDeviceName" - placeholder="请输入生产装置名称" - clearable - ></el-input> + <el-input class="input-length" v-model.trim="productionDeviceForm.produceDeviceName" 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="depId"> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - style="width: 85%" - v-model="productionDeviceForm.depId" - > - </el-cascader> + <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable style="width: 85%" v-model="productionDeviceForm.depId"> </el-cascader> <!-- <el-select class="input-length" v-model="productionDeviceForm.depName" placeholder="请选择所属部门" clearable filterable></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" - v-model="productionDeviceForm.riskLevel" - placeholder="请选择风险等级" - clearable - filterable - > + <el-select class="input-length" v-model="productionDeviceForm.riskLevel" placeholder="请选择风险等级" clearable filterable> <el-option v-for="item in levelList" :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="location"> - <el-input - class="input-length" - v-model.trim="productionDeviceForm.location" - type="textarea" - placeholder="请输入区域位置" - maxlength="150" - ></el-input> + <el-input class="input-length" v-model.trim="productionDeviceForm.location" type="textarea" placeholder="请输入区域位置" maxlength="150"></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="isShowProductionDeviceDialog = !isShowProductionDeviceDialog" size="default">取 消</el-button> <el-button type="primary" @click="submitProductionDevice" v-throttle size="default">确 实</el-button> </span> @@ -73,6 +41,7 @@ <script lang="ts"> interface stateType { isShowProductionDeviceDialog: Boolean; + disabled: Boolean; productionDeviceForm: { produceDeviceName: string; depId: number | null; @@ -94,6 +63,7 @@ const productionDeviceFormRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, departmentList: [], isShowProductionDeviceDialog: false, levelList: [ @@ -124,6 +94,7 @@ productionDeviceFormRef.value.clearValidate(); }); if (type === '新增') { + state.disabled = true; state.title = '新增生产装置'; state.productionDeviceForm = { produceDeviceName: '', @@ -131,7 +102,12 @@ riskLevel: null, location: '' }; + } else if (type === '查看') { + state.disabled = false; + state.title = '查看生产装置'; + state.productionDeviceForm = JSON.parse(JSON.stringify(value)); } else { + state.disabled = true; state.title = '修改生产装置'; state.productionDeviceForm = JSON.parse(JSON.stringify(value)); } diff --git a/src/views/doublePrevent/riskLevel/device/index.vue b/src/views/doublePrevent/riskLevel/device/index.vue index 8a7bdfe..2bdd69e 100644 --- a/src/views/doublePrevent/riskLevel/device/index.vue +++ b/src/views/doublePrevent/riskLevel/device/index.vue @@ -10,16 +10,7 @@ </div> <div class="basic-line"> <span>部门:</span> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-box" - v-model="productionDeviceData.params.depId" - > - </el-cascader> + <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-box" v-model="productionDeviceData.params.depId"> </el-cascader> </div> <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> <el-icon> @@ -38,34 +29,35 @@ <el-table-column type="index" label="序号" width="60" /> <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> <el-table-column prop="depName" label="所属部门" show-overflow-tooltip></el-table-column> - <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> + <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip> + <template #default="scope"> + <el-tag :type="scope.row.riskLevel === 1 ? 'success' : scope.row.riskLevel === 2 ? 'info' : scope.row.riskLevel === 3 ? 'warning' : 'danger'"> + {{ parseNumber(scope.row.riskLevel, '风险等级') }} + </el-tag> + </template> + </el-table-column> <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> - <el-table-column prop="status" label="状态" show-overflow-tooltip> </el-table-column> + <el-table-column prop="status" label="状态" show-overflow-tooltip> + <template #default="scope"> + <el-tag :type="scope.row.status === 1 ? 'primary' : 'warning'"> + {{ parseNumber(scope.row.status, '状态') }} + </el-tag> + </template> + </el-table-column> <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> + <el-table-column label="操作" width="200" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> + <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="productionDeviceData.params.pageIndex" - background - v-model:page-size="productionDeviceData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="productionDeviceData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="productionDeviceData.params.pageIndex" background v-model:page-size="productionDeviceData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="productionDeviceData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> @@ -79,6 +71,7 @@ import productionDeviceDialog from './components/productionDeviceDialog.vue'; import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice/index.ts'; import { departmentApi } from '/@/api/department'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; // 定义接口来定义对象的类型 interface TableData { @@ -105,14 +98,18 @@ }; }; departmentList: Array<DepartmentState>; + stateList: Array<levelListState>; levelList: Array<levelListState>; } -interface levelListState {} +interface levelListState { + id: number; + name: string; +} interface DepartmentState {} export default { name: 'productionDevice', - components: { productionDeviceDialog }, + components: { productionDeviceDialog, Edit, Delete, View }, setup() { const productionDeviceDialogRef = ref(); const state = reactive<TableDataState>({ @@ -136,6 +133,10 @@ { id: 2, name: '一般风险' }, { id: 3, name: '较大风险' }, { id: 4, name: '重大风险' } + ], + stateList: [ + { id: 1, name: '使用中' }, + { id: 2, name: '已弃用' } ] }); // 初始化表格数据 @@ -213,7 +214,19 @@ getDepartmentData(); }); + const parseNumber = (value: string | number, type: string) => { + if (type === '风险等级') { + return state.levelList.find((item) => item.id === value)?.name; + } else if (type === '状态') { + return state.stateList.find((item) => item.id === value)?.name; + } + }; + return { + Edit, + Delete, + View, + parseNumber, handleSearch, onOpenDialogRef, onHandleSizeChange, diff --git a/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue b/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue index fa2dee1..8b46755 100644 --- a/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue +++ b/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue @@ -1,40 +1,24 @@ <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-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-length" v-model.trim="safetyRiskEventForm.riskEventName" placeholder="请输入生产装置名称" clearable></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> </span> @@ -46,6 +30,7 @@ <script lang="ts"> interface stateType { isSafetyRiskEventDialog: Boolean; + disabled: Boolean; safetyRiskEventForm: { riskEventName: string | null; riskUnitId: number | null; @@ -64,6 +49,7 @@ const safetyRiskAnalyseUnitFormRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, departmentList: [], allSafetyRiskEventData: [], isSafetyRiskEventDialog: false, @@ -78,20 +64,25 @@ }); //打开模态框 - 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.title = '新增风险事件'; state.safetyRiskEventForm = { riskEventName: null, riskUnitId: null }; + } else if (type === '查看') { + state.disabled = false; + state.title = '查看风险事件'; + state.safetyRiskEventForm = JSON.parse(JSON.stringify(value)); } else { + state.disabled = true; state.title = '修改风险事件'; state.safetyRiskEventForm = JSON.parse(JSON.stringify(value)); } diff --git a/src/views/doublePrevent/riskLevel/event/index.vue b/src/views/doublePrevent/riskLevel/event/index.vue index b60187c..9f442c0 100644 --- a/src/views/doublePrevent/riskLevel/event/index.vue +++ b/src/views/doublePrevent/riskLevel/event/index.vue @@ -31,27 +31,16 @@ <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> + <el-table-column label="操作" width="200" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelSafetyRiskEvent(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> + <el-button size="small" text type="danger" :icon="Delete" @click="onDelSafetyRiskEvent(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="page-position" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="safetyRiskEventData.params.pageIndex" - background - v-model:page-size="safetyRiskEventData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="safetyRiskEventData.total" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="page-position" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="safetyRiskEventData.params.pageIndex" background v-model:page-size="safetyRiskEventData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="safetyRiskEventData.total"> </el-pagination> <br /> <br /> </el-card> @@ -66,6 +55,7 @@ import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent/index.ts'; import { departmentApi } from '/@/api/department'; import { safetyRiskAnalyseUnitApi } from '/@/api/doublePreventSystem/safetyRiskAnalyseUnit'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; // 定义接口来定义对象的类型 interface TableData { @@ -93,7 +83,7 @@ export default { name: 'productionDevice', - components: { safetyRiskEventDialog }, + components: { safetyRiskEventDialog, Edit, Delete, View }, setup() { const safetyRiskEventDialogRef = ref(); const state = reactive<TableDataState>({ @@ -127,7 +117,7 @@ const getAllSafetyRiskEventData = async () => { let res = await safetyRiskAnalyseUnitApi().getAllSafetyRiskAnalyseUnitList(); if (res.data.code === '200') { - state.allSafetyRiskEventData = JSON.parse(JSON.stringify(res.data.data)); + state.allSafetyRiskEventData = res.data.data; } else { ElMessage({ type: 'warning', @@ -190,6 +180,9 @@ }); return { + Edit, + Delete, + View, handleSearch, onOpenDialogRef, onHandleSizeChange, diff --git a/src/views/doublePrevent/riskLevel/map/components/rectifyDialog.vue b/src/views/doublePrevent/riskLevel/map/components/rectifyDialog.vue index 8bc9c69..8d06ee0 100644 --- a/src/views/doublePrevent/riskLevel/map/components/rectifyDialog.vue +++ b/src/views/doublePrevent/riskLevel/map/components/rectifyDialog.vue @@ -7,62 +7,25 @@ <el-row :gutter="25"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患描述" prop="dangerDesc"> - <el-input - class="input-add" - v-model.trim="reportForm.dangerDesc" - placeholder="请输入隐患情况描述" - clearable - ></el-input> + <el-input class="input-add" v-model.trim="reportForm.dangerDesc" 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="depId"> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-add" - v-model="reportForm.depId" - > - </el-cascader> + <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.depId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="生产装置" prop="produceDeviceId"> - <el-select - class="input-add" - v-model="reportForm.produceDeviceId" - placeholder="请输入生产装置" - clearable - filterable - @change="changeUnit" - > - <el-option - v-for="item in allProduceDeviceData" - :key="item.id" - :label="item.produceDeviceName" - :value="item.id" - ></el-option> + <el-select class="input-add" v-model="reportForm.produceDeviceId" placeholder="请输入生产装置" clearable filterable @change="changeUnit"> + <el-option v-for="item in allProduceDeviceData" :key="item.id" :label="item.produceDeviceName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="风险分析单元" prop="riskUnitId"> - <el-select - class="input-add" - v-model.trim="reportForm.riskUnitId" - placeholder="请输入风险分析单元" - clearable - filterable - > - <el-option - v-for="item in safetyRiskUnitData" - :key="item.id" - :label="item.riskUnitName" - :value="item.id" - ></el-option> + <el-select class="input-add" v-model.trim="reportForm.riskUnitId" placeholder="请输入风险分析单元" clearable filterable> + <el-option v-for="item in safetyRiskUnitData" :key="item.id" :label="item.riskUnitName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> @@ -89,27 +52,14 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患可能后果" prop="dangerResult"> - <el-select - class="input-add" - v-model="reportForm.dangerResult" - placeholder="请选择隐患可能后果" - clearable - filterable - > + <el-select class="input-add" v-model="reportForm.dangerResult" placeholder="请选择隐患可能后果" clearable filterable> <el-option v-for="item in dangerResultList" :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="12"> <el-form-item label="隐患产生原因" prop="dangerReason"> - <el-input - class="input-add" - type="textarea" - :rows="2" - style="padding-bottom: 10px" - v-model.trim="reportForm.dangerReason" - placeholder="请输入隐患产生原因" - ></el-input> + <el-input class="input-add" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.dangerReason" placeholder="请输入隐患产生原因"></el-input> </el-form-item> </el-col> </el-row> @@ -123,23 +73,11 @@ <el-row> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改类型" prop="dangerResult"> - <el-select class="input-add" v-model="reportForm.dangerResult" placeholder="请选择整改类型" clearable filterable> - <el-option - v-for="item in RFIDList" - :key="item.id" - :label="item.rfidName" - :value="item.id" - ></el-option> </el-select + <el-select class="input-add" v-model="reportForm.dangerResult" placeholder="请选择整改类型" clearable filterable> <el-option v-for="item in RFIDList" :key="item.id" :label="item.rfidName" :value="item.id"></el-option> </el-select ></el-form-item> </el-col ><el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改责任人" prop="dangerResult"> - <el-select - class="input-add" - v-model="reportForm.dangerResult" - placeholder="请选择整改责任人" - clearable - filterable - > + <el-select class="input-add" v-model="reportForm.dangerResult" placeholder="请选择整改责任人" clearable filterable> <el-option v-for="item in RFIDList" :key="item.id" :label="item.rfidName" :value="item.id"></el-option> </el-select> </el-form-item> @@ -158,14 +96,7 @@ </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> <el-form-item label="整改内容" prop="rectifyDesc"> - <el-input - class="input-add" - type="textarea" - :rows="2" - style="padding-bottom: 10px" - v-model.trim="reportForm.rectifyDesc" - placeholder="请输入整改内容" - ></el-input> + <el-input class="input-add" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.rectifyDesc" placeholder="请输入整改内容"></el-input> </el-form-item> </el-col> </el-row> @@ -374,7 +305,6 @@ }; const changeUnit = () => { - debugger; state.reportForm.riskUnitId = null; state.safetyRiskUnitData = state.allSafetyRiskUnitData.filter((item) => item.produceDeviceId === state.reportForm.produceDeviceId); }; diff --git a/src/views/doublePrevent/riskLevel/check/components/checkUnitDialog.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue similarity index 89% rename from src/views/doublePrevent/riskLevel/check/components/checkUnitDialog.vue rename to src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue index 42a7cb2..99671b4 100644 --- a/src/views/doublePrevent/riskLevel/check/components/checkUnitDialog.vue +++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue @@ -7,22 +7,12 @@ <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-length" - v-model.trim="checkUnitForm.taskUnitName" - placeholder="请输入任务单元名称" - clearable - ></el-input> + <el-input class="input-length" 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-length" - v-model.trim="checkUnitForm.note" - placeholder="请输入任务单元说明" - clearable - ></el-input> + <el-input class="input-length" v-model.trim="checkUnitForm.note" placeholder="请输入任务单元说明" clearable></el-input> </el-form-item> </el-col> </el-row> @@ -55,28 +45,26 @@ </div> <template #footer> - <span class="dialog-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> + <select-measure-control-dialog ref="SelectMeasureControlDialogRef" @receiveRiskControlId="receiveRiskControlId"></select-measure-control-dialog> </el-dialog> </div> </template> <script lang="ts"> -import SelectMeasureControlDialog from '/@/views/doublePrevent/riskLevel/checkUnit/components/selectMeasureControlDialog.vue'; +import SelectMeasureControlDialog from '/@/views/doublePrevent/riskLevel/riskCheckUnit/components/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; isShowSelectMeasureControlDialog: Boolean; checkUnitForm: { taskUnitName: string | null; @@ -98,6 +86,7 @@ const riskControlMeasureDialogRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, activeName: 'checkUnit', measureData: [], checkUnitData: [], @@ -121,13 +110,19 @@ checkUnitFormRef.value.clearValidate(); }); if (type === '新增') { + state.disabled = true; state.title = '新增隐患排查单元'; state.checkUnitForm = { taskUnitName: null, note: null, measureList: [] }; + } else if (type === '查看') { + state.disabled = false; + state.title = '查看隐患排查单元'; + state.checkUnitForm = JSON.parse(JSON.stringify(value)); } else { + state.disabled = true; state.title = '修改隐患排查单元'; state.checkUnitForm = JSON.parse(JSON.stringify(value)); } diff --git a/src/views/doublePrevent/riskLevel/checkUnit/components/selectMeasureControlDialog.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue similarity index 100% rename from src/views/doublePrevent/riskLevel/checkUnit/components/selectMeasureControlDialog.vue rename to src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue diff --git a/src/views/doublePrevent/riskLevel/check/index.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue similarity index 83% rename from src/views/doublePrevent/riskLevel/check/index.vue rename to src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue index c73e048..3e8ed4d 100644 --- a/src/views/doublePrevent/riskLevel/check/index.vue +++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue @@ -10,16 +10,7 @@ </div> <div class="basic-line"> <span>部门:</span> - <el-cascader - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - class="input-box" - v-model="checkUnitData.params.depId" - > - </el-cascader> + <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-box" v-model="checkUnitData.params.depId"> </el-cascader> </div> <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> <el-icon> @@ -42,27 +33,16 @@ <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> + <el-table-column label="操作" width="200" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelcheckUnit(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> + <el-button size="small" text type="danger" :icon="Delete" @click="onDelcheckUnit(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="checkUnitData.params.pageIndex" - background - v-model:page-size="checkUnitData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="checkUnitData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="checkUnitData.params.pageIndex" background v-model:page-size="checkUnitData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="checkUnitData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> @@ -75,6 +55,7 @@ import { ElMessageBox, ElMessage } from 'element-plus'; import checkUnitDialog from './components/checkUnitDialog.vue'; import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit/index.ts'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; // 定义接口来定义对象的类型 interface TableData { @@ -99,8 +80,8 @@ } export default defineComponent({ - name: 'checkUnit', - components: { checkUnitDialog }, + name: 'index', + components: { checkUnitDialog, Edit, Delete, View }, setup() { const checkUnitDialogRef = ref(); const state = reactive<TableDataState>({ @@ -178,6 +159,9 @@ }); return { + Edit, + Delete, + View, handleSearch, onOpenDialogRef, onHandleSizeChange, diff --git a/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue b/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue index fed0700..c7cdeb2 100644 --- a/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue +++ b/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue @@ -1,73 +1,33 @@ <template> <div class="system-add-menu-container"> - <el-dialog :title="title" v-model="isSafetyRiskAnalyseUnitDialog" width="600px"> - <el-form - :model="safetyRiskAnalyseUnitForm" - :rules="safetyRiskAnalyseUnitFormRules" - ref="safetyRiskAnalyseUnitFormRef" - size="default" - label-width="180px" - > + <el-dialog :title="title" v-model="isSafetyRiskAnalyseUnitDialog" width="600px" :close-on-click-modal="false"> + <el-form :model="safetyRiskAnalyseUnitForm" :rules="safetyRiskAnalyseUnitFormRules" 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="riskCode"> - <el-input - class="input-length" - v-model.trim="safetyRiskAnalyseUnitForm.riskCode" - placeholder="请输入安全风险分析对象编码" - ></el-input> + <el-input class="input-length" v-model.trim="safetyRiskAnalyseUnitForm.riskCode" 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="riskUnitName"> - <el-input - class="input-length" - v-model.trim="safetyRiskAnalyseUnitForm.riskUnitName" - placeholder="请输入安全风险分析单元名称" - ></el-input> + <el-input class="input-length" v-model.trim="safetyRiskAnalyseUnitForm.riskUnitName" 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="produceDeviceId"> - <el-select - class="input-length" - v-model="safetyRiskAnalyseUnitForm.produceDeviceId" - placeholder="请输入生产装置名称" - clearable - > - <el-option - v-for="item in allProduceDeviceData" - :key="item.id" - :label="item.produceDeviceName" - :value="item.id" - ></el-option> + <el-select class="input-length" v-model="safetyRiskAnalyseUnitForm.produceDeviceId" placeholder="请输入生产装置名称" clearable> + <el-option v-for="item in allProduceDeviceData" :key="item.id" :label="item.produceDeviceName" :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="liableDepId"> - <el-cascader - @change="achieveUserList" - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="请选择部门" - clearable - filterable - style="width: 85%" - v-model="safetyRiskAnalyseUnitForm.liableDepId" - > - </el-cascader> + <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable style="width: 85%" v-model="safetyRiskAnalyseUnitForm.liableDepId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="责任人" prop="liablePersonId"> - <el-select - class="input-length" - v-model="safetyRiskAnalyseUnitForm.liablePersonId" - placeholder="请选择责任人" - clearable - filterable - > + <el-select class="input-length" v-model="safetyRiskAnalyseUnitForm.liablePersonId" placeholder="请选择责任人" clearable filterable> <el-option v-for="item in userList" :key="item.uid" :label="item.realName" :value="item.uid"></el-option> </el-select> </el-form-item> @@ -75,7 +35,7 @@ </el-row> </el-form> <template #footer> - <span class="dialog-footer"> + <span class="dialog-footer" v-show="disabled"> <el-button @click="isSafetyRiskAnalyseUnitDialog = !isSafetyRiskAnalyseUnitDialog" size="default">取 消</el-button> <el-button type="primary" @click="submitSafetyRiskAnalyseUnitDialog" v-throttle size="default">确 实</el-button> </span> @@ -87,6 +47,7 @@ <script lang="ts"> interface stateType { isSafetyRiskAnalyseUnitDialog: Boolean; + disabled: Boolean; safetyRiskAnalyseUnitForm: { riskCode: string | null; riskUnitName: string | null; @@ -111,6 +72,7 @@ const safetyRiskAnalyseUnitFormRef = ref(); const state = reactive<stateType>({ title: '', + disabled: false, userList: [], departmentList: [], allProduceDeviceData: [], @@ -141,6 +103,7 @@ safetyRiskAnalyseUnitFormRef.value.clearValidate(); }); if (type === '新增') { + state.disabled = true; state.title = '新增风险分析单元'; state.safetyRiskAnalyseUnitForm = { riskCode: null, @@ -149,7 +112,12 @@ liableDepId: null, produceDeviceId: null }; + } else if (type === '查看') { + state.disabled = false; + state.title = '查看风险分析单元'; + state.safetyRiskAnalyseUnitForm = JSON.parse(JSON.stringify(value)); } else { + state.disabled = true; state.title = '修改风险分析单元'; state.safetyRiskAnalyseUnitForm = JSON.parse(JSON.stringify(value)); } diff --git a/src/views/doublePrevent/riskLevel/unit/index.vue b/src/views/doublePrevent/riskLevel/unit/index.vue index d2dde4b..4c2b168 100644 --- a/src/views/doublePrevent/riskLevel/unit/index.vue +++ b/src/views/doublePrevent/riskLevel/unit/index.vue @@ -4,17 +4,7 @@ <div class="system-user-search mb15"> <div class="basic-line"> <span>责任部门:</span> - <el-cascader - @change="achieveUserList" - :options="departmentList" - :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" - placeholder="责任部门" - clearable - filterable - class="input-box" - v-model="safetyRiskAnalyseUnitData.params.liableDepId" - > - </el-cascader> + <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="责任部门" clearable filterable class="input-box" v-model="safetyRiskAnalyseUnitData.params.liableDepId"> </el-cascader> </div> <div class="basic-line"> <span>责任人:</span> @@ -24,8 +14,7 @@ </div> <div class="basic-line"> <span>单元名称:</span> - <el-input v-model="safetyRiskAnalyseUnitData.params.riskUnitName" clearable filterable class="input-box" placeholder="单元名称"> - </el-input> + <el-input v-model="safetyRiskAnalyseUnitData.params.riskUnitName" clearable filterable class="input-box" placeholder="单元名称"> </el-input> </div> <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch"> <el-icon> @@ -51,27 +40,16 @@ <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> - <el-table-column label="操作" width="150"> + <el-table-column label="操作" width="200" align="center"> <template #default="scope"> - <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> - <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> + <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> + <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button> + <el-button size="small" text type="danger" :icon="Delete" @click="onDelRiskUnit(scope.row)">删除</el-button> </template> </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="page-position" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="safetyRiskAnalyseUnitData.params.pageIndex" - background - v-model:page-size="safetyRiskAnalyseUnitData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="safetyRiskAnalyseUnitData.total" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="page-position" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="safetyRiskAnalyseUnitData.params.pageIndex" background v-model:page-size="safetyRiskAnalyseUnitData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="safetyRiskAnalyseUnitData.total"> </el-pagination> <br /> <br /> </el-card> @@ -87,6 +65,7 @@ import { departmentApi } from '/@/api/department'; import { userApi } from '/@/api/user'; import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; +import { Edit, Delete, View } from '@element-plus/icons-vue'; // 定义接口来定义对象的类型 interface TableData { @@ -120,7 +99,7 @@ export default { name: 'productionDevice', - components: { safetyRiskAnalyseUnitDialog }, + components: { safetyRiskAnalyseUnitDialog, Edit, Delete, View }, setup() { const safetyRiskAnalyseUnitDialogRef = ref(); const state = reactive<TableDataState>({ @@ -205,7 +184,7 @@ }; // 删除角色 - const onDelProductionDevice = (row: any) => { + const onDelRiskUnit = (row: any) => { ElMessageBox.confirm(`此操作将永久删除该条安全风险分析单元:“${row.riskUnitName}”,是否继续?`, '提示', { confirmButtonText: '确认', cancelButtonText: '取消', @@ -254,11 +233,14 @@ }); return { + Edit, + Delete, + View, handleSearch, achieveUserList, onOpenDialogRef, onHandleSizeChange, - onDelProductionDevice, + onDelRiskUnit, onHandleCurrentChange, safetyRiskAnalyseUnitDialog, safetyRiskAnalyseUnitDialogRef, -- Gitblit v1.9.2