From 3bd0ac27a231a1a2b5b7ae2f44501fea69c4ab1f Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 27 三月 2023 11:00:27 +0800 Subject: [PATCH] 优化 --- src/views/system/departUser/components/DepartRoleAuthDrawer.vue | 234 +++++++++++++++++++++++++++------------------------------- 1 files changed, 110 insertions(+), 124 deletions(-) diff --git a/src/views/system/departUser/components/DepartRoleAuthDrawer.vue b/src/views/system/departUser/components/DepartRoleAuthDrawer.vue index e8d5d90..9bdb3ea 100644 --- a/src/views/system/departUser/components/DepartRoleAuthDrawer.vue +++ b/src/views/system/departUser/components/DepartRoleAuthDrawer.vue @@ -1,31 +1,17 @@ <template> - <BasicDrawer - title="閮ㄩ棬瑙掕壊鏉冮檺閰嶇疆" - :width="650" - :loading="loading" - showFooter - okText="淇濆瓨骞跺叧闂�" - @ok="onSubmit(true)" - @close="onClose" - @register="registerDrawer" - > + <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" - > + <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" /> @@ -44,115 +30,115 @@ </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 { BasicTree } from '/@/components/Tree/index'; +import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer'; +import { useMessage } from '/@/hooks/web/useMessage'; - import DepartRoleDataRuleDrawer from './DepartRoleDataRuleDrawer.vue'; - import { queryTreeListForDeptRole, queryDeptRolePermission, saveDeptRolePermission } from '../depart.user.api'; +import DepartRoleDataRuleDrawer from './DepartRoleDataRuleDrawer.vue'; +import { queryTreeListForDeptRole, queryDeptRolePermission, saveDeptRolePermission } from '../depart.user.api'; - 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(); } - } - - // 閲嶇疆椤甸潰 - function reset() { - treeData.value = []; - expandedKeys.value = []; - checkedKeys.value = []; - lastCheckedKeys.value = []; + } finally { loading.value = false; } +} - // tree鍕鹃�夊閫夋浜嬩欢 - function onCheck(event) { - if (checkStrictly.value) { - checkedKeys.value = event.checked; - } else { - checkedKeys.value = event; +// 閲嶇疆椤甸潰 +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 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 = []; +} + +function doClose() { + reset(); + closeDrawer(); +} + +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(); } } - - // 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 = []; - } - - function doClose() { - reset(); - closeDrawer(); - } - - 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(); - } - } - } +} </script> -- Gitblit v1.9.3