From b222b2923e4759a86ccae30a85d6653a4b4046f8 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期二, 05 七月 2022 19:08:10 +0800 Subject: [PATCH] 风险模块 --- src/views/doublePreventSystem/riskLevelManage/safetyRiskAnalyseUnit/index.vue | 283 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 278 insertions(+), 5 deletions(-) diff --git a/src/views/doublePreventSystem/riskLevelManage/safetyRiskAnalyseUnit/index.vue b/src/views/doublePreventSystem/riskLevelManage/safetyRiskAnalyseUnit/index.vue index f665f5a..bf995c2 100644 --- a/src/views/doublePreventSystem/riskLevelManage/safetyRiskAnalyseUnit/index.vue +++ b/src/views/doublePreventSystem/riskLevelManage/safetyRiskAnalyseUnit/index.vue @@ -1,13 +1,286 @@ <template> - <div>2</div> + <div class="system-role-container"> + <el-card shadow="hover"> + <div class="system-user-search mb15"> + <div class="basic-search"> + <span>责任部门:</span> + <el-cascader + @change="achiveUserList" + :options="departmentList" + :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" + placeholder="责任部门" + clearable + filterable + v-model="safetyRiskAnalyseUnitData.params.liableDep" + class="unit-input" + > + </el-cascader> + </div> + <div class="basic-search"> + <span>责任人:</span> + <el-select v-model="safetyRiskAnalyseUnitData.params.liablePerson" clearable filterable class="unit-input" placeholder="责任人"> + <el-option + v-for="item in userList" + :key="item.uid" + :label="item.realName" + :value="item.uid" + ></el-option> + </el-select> + </div> + <div class="basic-search"> + <span>单元名称:</span> + <el-input v-model="safetyRiskAnalyseUnitData.params.riskUnitName" clearable filterable class="unit-input" placeholder="单元名称"> + </el-input> + </div> + <el-button size="default" type="primary" class="ml10" @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="safetyRiskAnalyseUnitData.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="riskUnitName" label="安全风险分析单元名称" width="180" show-overflow-tooltip></el-table-column> + <el-table-column prop="riskCode" label="安全风险分析对象编码" width="180" show-overflow-tooltip></el-table-column> + <el-table-column prop="liableDep" label="责任部门" show-overflow-tooltip></el-table-column> + <el-table-column prop="liablePerson" label="责任人" show-overflow-tooltip></el-table-column> + <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> + <el-table-column prop="gtmCreate" label="创建时间" show-overflow-tooltip></el-table-column> + <el-table-column prop="lastEditByUserName" label="最后修改人" show-overflow-tooltip></el-table-column> + <el-table-column prop="gtmCreate" 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-pagination + @size-change="onHandleSizeChange" + @current-change="onHandleCurrentChange" + class="mt15" + :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-card> + <safetyRiskAnalyseUnitDialog ref="safetyRiskAnalyseUnitDialogRef" @refreshSafetyRiskAnalyseUnit ="initSafetyRiskAnalyseUnitData"/> + </div> </template> -<script> - export default { - name: "index" +<script lang="ts"> + import { toRefs, reactive, onMounted, ref } from 'vue'; + import { ElMessageBox, ElMessage } from 'element-plus'; + import safetyRiskAnalyseUnitDialog from './components/safetyRiskAnalyseUnitDialog.vue'; + import { safetyRiskAnalyseUnitApi } from "/@/api/doublePreventSystem/safetyRiskAnalyseUnit/index.ts"; + import { departmentApi } from '/@/api/department'; + import { userApi } from '/@/api/user'; + import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; + + // 定义接口来定义对象的类型 + interface TableData { + roleName: string; + roleSign: string; + describe: string; + sort: number; + status: boolean; + createTime: string; } + interface TableDataState { + safetyRiskAnalyseUnitData: { + data: Array<TableData>; + total: number; + loading: boolean; + params: { + pageIndex: number; + pageSize: number; + riskUnitName: string | null; + liableDepId: number | null; + liablePersonId: number | null; + }; + }; + userList:Array<UserState>; + departmentList:Array<DepartmentState>; + allProduceDeviceData:Array<produceDeviceState>; + } + interface produceDeviceState { + + } + interface DepartmentState { + + } + interface UserState { + + } + + export default ({ + name: 'productionDevice', + components: { safetyRiskAnalyseUnitDialog }, + setup() { + const safetyRiskAnalyseUnitDialogRef = ref(); + const state = reactive<TableDataState>({ + safetyRiskAnalyseUnitData: { + data: [], + total: 0, + loading: false, + params: { + pageIndex: 1, + pageSize: 10, + riskUnitName: null, + liableDepId: null, + liablePersonId: null, + }, + }, + userList: [], + departmentList: [], + allProduceDeviceData: [], + }); + // 初始化表格数据 + const initSafetyRiskAnalyseUnitData = async () => { + let res = await safetyRiskAnalyseUnitApi().getSafetyRiskAnalyseUnitList(state.safetyRiskAnalyseUnitData.params) + if(res.data.code === '200'){ + state.safetyRiskAnalyseUnitData.data = res.data.data + state.safetyRiskAnalyseUnitData.total = res.data.count; + }else{ + ElMessage({ + type:'warning', + message:res.data.msg + }); + } + }; + + const achiveUserList = () => { + state.safetyRiskAnalyseUnitData.params.liablePersonId = null; + state.userList = []; + getUserData(); + }; + + //获取生产装置列表 + const getAllProduceDeviceData = async () => { + let res = await productionDeviceApi().getAllProductionDeviceList(); + if(res.data.code === '200'){ + state.allProduceDeviceData = res.data.data; + }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 getUserData = async () => { + let res = await userApi().getUserLByDepartment(state.safetyRiskAnalyseUnitData.params.liableDepId); + if(res.data.code === '200'){ + state.userList = res.data.data; + }else{ + ElMessage({ + type:'warning', + message:res.data.msg + }); + } + } + + // 打开生产装置弹窗 + const onOpenDialogRef = (type: string, value: any) => { + safetyRiskAnalyseUnitDialogRef.value.openSafetyRiskAnalyseUnitDialog(type, value, state.departmentList, state.allProduceDeviceData); + }; + + // 删除角色 + const onDelProductionDevice = (row: any) => { + ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.riskUnitName}”,是否继续?`, '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning', + }).then(async () => { + let res = await safetyRiskAnalyseUnitApi().deleteSafetyRiskAnalyseUnit({id:row.id}); + if(res.data.code ==='200'){ + ElMessage({ + type:'success', + duration:2000, + message:'删除成功' + }); + await initSafetyRiskAnalyseUnitData(); + }else{ + ElMessage({ + type:'warning', + message:res.data.msg + }); + } + }).catch(() => {}); + }; + + const handleSearch = () => { + initSafetyRiskAnalyseUnitData(); + } + + // 分页改变 + const onHandleSizeChange = (val: number) => { + state.safetyRiskAnalyseUnitData.params.pageSize = val; + initSafetyRiskAnalyseUnitData(); + }; + + // 分页改变 + const onHandleCurrentChange = (val: number) => { + state.safetyRiskAnalyseUnitData.params.pageIndex = val; + initSafetyRiskAnalyseUnitData(); + }; + + // 页面加载时 + onMounted(() => { + initSafetyRiskAnalyseUnitData(); + getAllProduceDeviceData(); + getDepartmentData(); + }); + + return { + handleSearch, + achiveUserList, + onOpenDialogRef, + onHandleSizeChange, + onDelProductionDevice, + onHandleCurrentChange, + safetyRiskAnalyseUnitDialog, + safetyRiskAnalyseUnitDialogRef, + initSafetyRiskAnalyseUnitData, + ...toRefs(state), + }; + }, + }); </script> <style scoped> - +.basic-search{ + display:inline-block; + padding-left: 10px; +} +.unit-input{ + width:200px +} </style> -- Gitblit v1.9.2