From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 04 三月 2025 08:39:55 +0800 Subject: [PATCH] 修改作业等级名称 --- src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 219 insertions(+), 0 deletions(-) diff --git a/src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue new file mode 100644 index 0000000..df01f4a --- /dev/null +++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/selectMeasureControlDialog.vue @@ -0,0 +1,219 @@ +<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> -- Gitblit v1.9.2