From beca65f4d01ca07c358102a35b949c2a4f277afe Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 24 五月 2023 10:36:27 +0800 Subject: [PATCH] 增加车间监控界面 --- src/views/system/departUser/components/DepartRoleAuthDrawer.vue | 266 ++++++++++++++++++++++++++++------------------------- 1 files changed, 140 insertions(+), 126 deletions(-) diff --git a/src/views/system/departUser/components/DepartRoleAuthDrawer.vue b/src/views/system/departUser/components/DepartRoleAuthDrawer.vue index 9bdb3ea..10989df 100644 --- a/src/views/system/departUser/components/DepartRoleAuthDrawer.vue +++ b/src/views/system/departUser/components/DepartRoleAuthDrawer.vue @@ -1,144 +1,158 @@ <template> - <BasicDrawer title="閮ㄩ棬瑙掕壊鏉冮檺閰嶇疆" - :width="650" - :loading="loading" - showFooter - okText="淇濆瓨骞跺叧闂�" - @ok="onSubmit(true)" - @close="onClose" @register="registerDrawer"> - <div> - <a-spin :spinning="loading"> - <template v-if="treeData.length > 0"> - <BasicTree title="鎵�鎷ユ湁鐨勯儴闂ㄦ潈闄�" toolbar checkable :treeData="treeData" :checkedKeys="checkedKeys" - :selectedKeys="selectedKeys" :expandedKeys="expandedKeys" :checkStrictly="checkStrictly" - :clickRowToExpand="false" @check="onCheck" @expand="onExpand" @select="onSelect"> - <template #title="{ slotTitle, ruleFlag }"> - <span>{{ slotTitle }}</span> - <Icon v-if="ruleFlag" icon="ant-design:align-left-outlined" style="margin-left: 5px; color: red" /> - </template> - </BasicTree> - </template> - <a-empty v-else description="鏃犲彲閰嶇疆閮ㄩ棬鏉冮檺" /> - </a-spin> - </div> + <BasicDrawer + title="閮ㄩ棬瑙掕壊鏉冮檺閰嶇疆" + :width="650" + :loading="loading" + showFooter + okText="淇濆瓨骞跺叧闂�" + @ok="onSubmit(true)" + @close="onClose" + @register="registerDrawer" + > + <div> + <a-spin :spinning="loading"> + <template v-if="treeData.length > 0"> + <BasicTree + title="鎵�鎷ユ湁鐨勯儴闂ㄦ潈闄�" + toolbar + checkable + :treeData="treeData" + :checkedKeys="checkedKeys" + :selectedKeys="selectedKeys" + :expandedKeys="expandedKeys" + :checkStrictly="checkStrictly" + :clickRowToExpand="false" + @check="onCheck" + @expand="onExpand" + @select="onSelect" + > + <template #title="{ slotTitle, ruleFlag }"> + <span>{{ slotTitle }}</span> + <Icon v-if="ruleFlag" icon="ant-design:align-left-outlined" style="margin-left: 5px; color: red" /> + </template> + </BasicTree> + </template> + <a-empty v-else description="鏃犲彲閰嶇疆閮ㄩ棬鏉冮檺" /> + </a-spin> + </div> - <template #centerFooter> - <a-button type="primary" :loading="loading" ghost @click="onSubmit(false)">浠呬繚瀛�</a-button> - </template> - </BasicDrawer> - <DepartRoleDataRuleDrawer @register="registerDataRuleDrawer" /> + <template #centerFooter> + <a-button type="primary" :loading="loading" ghost @click="onSubmit(false)">浠呬繚瀛�</a-button> + </template> + </BasicDrawer> + <DepartRoleDataRuleDrawer @register="registerDataRuleDrawer" /> </template> <script lang="ts" setup> -import { ref } from 'vue'; + import { ref } from 'vue' -import { BasicTree } from '/@/components/Tree/index'; -import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer'; -import { useMessage } from '/@/hooks/web/useMessage'; + import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer' + import { BasicTree } from '/@/components/Tree/index' + import { useMessage } from '/@/hooks/web/useMessage' -import DepartRoleDataRuleDrawer from './DepartRoleDataRuleDrawer.vue'; -import { queryTreeListForDeptRole, queryDeptRolePermission, saveDeptRolePermission } from '../depart.user.api'; + import { queryDeptRolePermission, queryTreeListForDeptRole, saveDeptRolePermission } from '../depart.user.api' + import DepartRoleDataRuleDrawer from './DepartRoleDataRuleDrawer.vue' -defineEmits(['register']); -const { createMessage } = useMessage(); -const loading = ref(false); -const departId = ref(''); -const roleId = ref(''); -const treeData = ref<Array<any>>([]); -const checkedKeys = ref<Array<any>>([]); -const lastCheckedKeys = ref<Array<any>>([]); -const expandedKeys = ref<Array<any>>([]); -const selectedKeys = ref<Array<any>>([]); -const allTreeKeys = ref<Array<any>>([]); -const checkStrictly = ref(true); + defineEmits(['register']) + const { createMessage } = useMessage() + const loading = ref(false) + const departId = ref('') + const roleId = ref('') + const treeData = ref<Array<any>>([]) + const checkedKeys = ref<Array<any>>([]) + const lastCheckedKeys = ref<Array<any>>([]) + const expandedKeys = ref<Array<any>>([]) + const selectedKeys = ref<Array<any>>([]) + const allTreeKeys = ref<Array<any>>([]) + const checkStrictly = ref(true) -// 娉ㄥ唽鎶藉眽缁勪欢 -const [registerDrawer, { closeDrawer }] = useDrawerInner((data) => { - roleId.value = data.record.id; - departId.value = data.record.departId; - loadData(); -}); -// 娉ㄥ唽鏁版嵁瑙勫垯鎺堟潈寮圭獥鎶藉眽 -const [registerDataRuleDrawer, dataRuleDrawer] = useDrawer(); + // 娉ㄥ唽鎶藉眽缁勪欢 + const [registerDrawer, { closeDrawer }] = useDrawerInner((data) => { + roleId.value = data.record.id + departId.value = data.record.departId + loadData() + }) + // 娉ㄥ唽鏁版嵁瑙勫垯鎺堟潈寮圭獥鎶藉眽 + const [registerDataRuleDrawer, dataRuleDrawer] = useDrawer() -async function loadData() { - try { - loading.value = true; - // 鐢ㄦ埛瑙掕壊鎺堟潈鍔熻兘锛屾煡璇㈣彍鍗曟潈闄愭爲 - const { ids, treeList } = await queryTreeListForDeptRole({ departId: departId.value }); - if (ids.length > 0) { - allTreeKeys.value = ids; - expandedKeys.value = ids; - treeData.value = treeList; - // 鏌ヨ瑙掕壊鎺堟潈 - checkedKeys.value = await queryDeptRolePermission({ roleId: roleId.value }); - lastCheckedKeys.value = [checkedKeys.value]; - } else { - reset(); - } - } finally { - loading.value = false; - } -} + async function loadData() { + try { + loading.value = true + // 鐢ㄦ埛瑙掕壊鎺堟潈鍔熻兘锛屾煡璇㈣彍鍗曟潈闄愭爲 + const { ids, treeList } = await queryTreeListForDeptRole({ departId: departId.value }) + if (ids.length > 0) { + allTreeKeys.value = ids + expandedKeys.value = ids + treeData.value = treeList + // 鏌ヨ瑙掕壊鎺堟潈 + checkedKeys.value = await queryDeptRolePermission({ roleId: roleId.value }) + lastCheckedKeys.value = [checkedKeys.value] + } else { + reset() + } + } finally { + loading.value = false + } + } -// 閲嶇疆椤甸潰 -function reset() { - treeData.value = []; - expandedKeys.value = []; - checkedKeys.value = []; - lastCheckedKeys.value = []; - loading.value = false; -} + // 閲嶇疆椤甸潰 + function reset() { + treeData.value = [] + expandedKeys.value = [] + checkedKeys.value = [] + lastCheckedKeys.value = [] + loading.value = false + } -// tree鍕鹃�夊閫夋浜嬩欢 -function onCheck(event) { - if (checkStrictly.value) { - checkedKeys.value = event.checked; - } else { - checkedKeys.value = event; - } -} + // tree鍕鹃�夊閫夋浜嬩欢 + function onCheck(event) { + if (checkStrictly.value) { + checkedKeys.value = event.checked + } else { + checkedKeys.value = event + } + } -// tree灞曞紑浜嬩欢 -function onExpand($expandedKeys) { - expandedKeys.value = $expandedKeys; -} + // tree灞曞紑浜嬩欢 + function onExpand($expandedKeys) { + expandedKeys.value = $expandedKeys + } -// tree閫変腑浜嬩欢 -function onSelect($selectedKeys, { selectedNodes }) { - if (selectedNodes[0]?.ruleFlag) { - let functionId = $selectedKeys[0]; - dataRuleDrawer.openDrawer(true, { roleId, departId, functionId }); - } - selectedKeys.value = []; -} + // tree閫変腑浜嬩欢 + function onSelect($selectedKeys, { selectedNodes }) { + if (selectedNodes[0]?.ruleFlag) { + let functionId = $selectedKeys[0] + dataRuleDrawer.openDrawer(true, { roleId, departId, functionId }) + } + selectedKeys.value = [] + } -function doClose() { - reset(); - closeDrawer(); -} + function doClose() { + reset() + closeDrawer() + } -function onClose() { - reset(); -} + function onClose() { + reset() + } -async function onSubmit(exit) { - try { - loading.value = true; - let params = { - roleId: roleId.value, - permissionIds: checkedKeys.value.join(','), - lastpermissionIds: lastCheckedKeys.value.join(','), - }; - await saveDeptRolePermission(params); - if (exit) { - doClose(); - } - } finally { - loading.value = false; - if (!exit) { - loadData(); - } - } -} + async function onSubmit(exit) { + try { + loading.value = true + let params = { + roleId: roleId.value, + permissionIds: checkedKeys.value.join(','), + lastpermissionIds: lastCheckedKeys.value.join(','), + } + await saveDeptRolePermission(params) + if (exit) { + doClose() + } + } finally { + loading.value = false + if (!exit) { + loadData() + } + } + } </script> -- Gitblit v1.9.3