From ec743754d4eec74005f64ed537989b5ba6af4e79 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 20 三月 2023 10:14:08 +0800 Subject: [PATCH] 添加检测结果界面 --- src/views/system/depart/components/DepartRuleTab.vue | 213 +++++++++++++++++++++++++--------------------------- 1 files changed, 102 insertions(+), 111 deletions(-) diff --git a/src/views/system/depart/components/DepartRuleTab.vue b/src/views/system/depart/components/DepartRuleTab.vue index f8025e9..d66ca3f 100644 --- a/src/views/system/depart/components/DepartRuleTab.vue +++ b/src/views/system/depart/components/DepartRuleTab.vue @@ -1,20 +1,9 @@ <template> <a-spin :spinning="loading"> <template v-if="treeData.length > 0"> - <BasicTree - ref="basicTree" - class="depart-rule-tree" - checkable - :treeData="treeData" - :checkedKeys="checkedKeys" - :selectedKeys="selectedKeys" - :expandedKeys="expandedKeys" - :checkStrictly="checkStrictly" - style="height: 500px; overflow: auto" - @check="onCheck" - @expand="onExpand" - @select="onSelect" - > + <BasicTree ref="basicTree" class="depart-rule-tree" checkable :treeData="treeData" :checkedKeys="checkedKeys" + :selectedKeys="selectedKeys" :expandedKeys="expandedKeys" :checkStrictly="checkStrictly" + style="height: 500px; overflow: auto" @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" /> @@ -28,6 +17,8 @@ <a-dropdown :trigger="['click']" placement="top"> <template #overlay> <a-menu> + <a-menu-item key="1" @click="toggleCheckStrictly(false)">鐖跺瓙鍏宠仈</a-menu-item> + <a-menu-item key="2" @click="toggleCheckStrictly(true)">鍙栨秷鍏宠仈</a-menu-item> <a-menu-item key="3" @click="toggleCheckALL(true)">鍏ㄩ儴鍕鹃��</a-menu-item> <a-menu-item key="4" @click="toggleCheckALL(false)">鍙栨秷鍏ㄩ��</a-menu-item> <a-menu-item key="5" @click="toggleExpandAll(true)">灞曞紑鎵�鏈�</a-menu-item> @@ -47,123 +38,123 @@ </template> <script lang="ts" setup> - import { watch, computed, inject, ref, nextTick } from 'vue'; - import { useDrawer } from '/@/components/Drawer'; - import { BasicTree } from '/@/components/Tree/index'; - import DepartDataRuleDrawer from './DepartDataRuleDrawer.vue'; - import { queryRoleTreeList, queryDepartPermission, saveDepartPermission } from '../depart.api'; +import { computed, inject, nextTick, ref, watch } from 'vue' +import { queryDepartPermission, queryRoleTreeList, saveDepartPermission } from '../depart.api' +import DepartDataRuleDrawer from './DepartDataRuleDrawer.vue' +import { useDrawer } from '/@/components/Drawer' +import { BasicTree } from '/@/components/Tree/index' - const props = defineProps({ - data: { type: Object, default: () => ({}) }, - }); - // 褰撳墠閫変腑鐨勯儴闂↖D锛屽彲鑳戒細涓虹┖锛屼唬琛ㄦ湭閫夋嫨閮ㄩ棬 - const departId = computed(() => props.data?.id); +const props = defineProps({ + data: { type: Object, default: () => ({}) }, +}) +// 褰撳墠閫変腑鐨勯儴闂↖D锛屽彲鑳戒細涓虹┖锛屼唬琛ㄦ湭閫夋嫨閮ㄩ棬 +const departId = computed(() => props.data?.id) - const prefixCls = inject('prefixCls'); - const basicTree = ref(); - const loading = ref<boolean>(false); - const treeData = ref<any[]>([]); - const expandedKeys = ref<Array<any>>([]); - const selectedKeys = ref<Array<any>>([]); - const checkedKeys = ref<Array<any>>([]); - const lastCheckedKeys = ref<Array<any>>([]); - const checkStrictly = ref(true); +const prefixCls = inject('prefixCls') +const basicTree = ref() +const loading = ref<boolean>(false) +const treeData = ref<any[]>([]) +const expandedKeys = ref<Array<any>>([]) +const selectedKeys = ref<Array<any>>([]) +const checkedKeys = ref<Array<any>>([]) +const lastCheckedKeys = ref<Array<any>>([]) +const checkStrictly = ref(true) - // 娉ㄥ唽鏁版嵁瑙勫垯鎺堟潈寮圭獥鎶藉眽 - const [registerDataRuleDrawer, dataRuleDrawer] = useDrawer(); +// 娉ㄥ唽鏁版嵁瑙勫垯鎺堟潈寮圭獥鎶藉眽 +const [registerDataRuleDrawer, dataRuleDrawer] = useDrawer() - // onCreated - loadData(); - watch(departId, () => loadDepartPermission(), { immediate: true }); +// onCreated +loadData() +watch(departId, () => loadDepartPermission(), { immediate: true }) - async function loadData() { +async function loadData() { + try { + loading.value = true + let { treeList } = await queryRoleTreeList() + treeData.value = treeList + await nextTick() + toggleExpandAll(true) + } finally { + loading.value = false + } +} + +async function loadDepartPermission() { + if (departId.value) { try { - loading.value = true; - let { treeList } = await queryRoleTreeList(); - treeData.value = treeList; - await nextTick(); - toggleExpandAll(true); + loading.value = true + let keys = await queryDepartPermission({ departId: departId.value }) + checkedKeys.value = keys + lastCheckedKeys.value = [...keys] } finally { - loading.value = false; + loading.value = false } } +} - async function loadDepartPermission() { - if (departId.value) { - try { - loading.value = true; - let keys = await queryDepartPermission({ departId: departId.value }); - checkedKeys.value = keys; - lastCheckedKeys.value = [...keys]; - } finally { - loading.value = false; - } - } +async function onSubmit() { + try { + loading.value = true + await saveDepartPermission({ + departId: departId.value, + permissionIds: checkedKeys.value.join(','), + lastpermissionIds: lastCheckedKeys.value.join(','), + }) + await loadData() + await loadDepartPermission() + } finally { + loading.value = false } +} - async function onSubmit() { - try { - loading.value = true; - await saveDepartPermission({ - departId: departId.value, - permissionIds: checkedKeys.value.join(','), - lastpermissionIds: lastCheckedKeys.value.join(','), - }); - await loadData(); - await loadDepartPermission(); - } finally { - loading.value = false; - } +// tree鍕鹃�夊閫夋浜嬩欢 +function onCheck(event) { + if (!Array.isArray(event)) { + checkedKeys.value = event.checked + } else { + checkedKeys.value = event } +} - // tree鍕鹃�夊閫夋浜嬩欢 - function onCheck(event) { - if (!Array.isArray(event)) { - 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, { departId, functionId }) } + selectedKeys.value = [] +} - // tree閫変腑浜嬩欢 - function onSelect($selectedKeys, { selectedNodes }) { - if (selectedNodes[0]?.ruleFlag) { - let functionId = $selectedKeys[0]; - dataRuleDrawer.openDrawer(true, { departId, functionId }); - } - selectedKeys.value = []; - } +// 鍒囨崲鐖跺瓙鍏宠仈 +async function toggleCheckStrictly(flag) { + checkStrictly.value = flag + await nextTick() + checkedKeys.value = basicTree.value.getCheckedKeys() +} - // 鍒囨崲鐖跺瓙鍏宠仈 - async function toggleCheckStrictly(flag) { - checkStrictly.value = flag; - await nextTick(); - checkedKeys.value = basicTree.value.getCheckedKeys(); - } +// 鍒囨崲灞曞紑鏀惰捣 +async function toggleExpandAll(flag) { + basicTree.value.expandAll(flag) + await nextTick() + expandedKeys.value = basicTree.value.getExpandedKeys() +} - // 鍒囨崲灞曞紑鏀惰捣 - async function toggleExpandAll(flag) { - basicTree.value.expandAll(flag); - await nextTick(); - expandedKeys.value = basicTree.value.getExpandedKeys(); - } - - // 鍒囨崲鍏ㄩ�� - async function toggleCheckALL(flag) { - basicTree.value.checkAll(flag); - await nextTick(); - checkedKeys.value = basicTree.value.getCheckedKeys(); - } +// 鍒囨崲鍏ㄩ�� +async function toggleCheckALL(flag) { + basicTree.value.checkAll(flag) + await nextTick() + checkedKeys.value = basicTree.value.getCheckedKeys() +} </script> <style lang="less" scoped> - // 銆怴UEN-188銆戣В鍐虫粴鍔ㄦ潯涓嶇伒鏁忕殑闂 - .depart-rule-tree :deep(.scrollbar__bar) { - pointer-events: none; - } +// 銆怴UEN-188銆戣В鍐虫粴鍔ㄦ潯涓嶇伒鏁忕殑闂 +.depart-rule-tree :deep(.scrollbar__bar) { + pointer-events: none; +} </style> -- Gitblit v1.9.3