From e962ca65595874459b02e8337ee397c67817d05e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Tue, 6 Jun 2023 20:52:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构授权页面 --- web/src/main.ts | 5 ++++- .../views/system/role/components/permission.vue | 15 ++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/web/src/main.ts b/web/src/main.ts index e68fc94..e20e8d1 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -27,7 +27,8 @@ import iconfont from '/@/assets/iconfont/iconfont.json'; //引入json文件 import '/@/assets/iconfont/iconfont.css'; //引入css // 自动注册插件 import { scanAndInstallPlugins } from '/@/views/plugins/index'; - +import VXETable from 'vxe-table' +import 'vxe-table/lib/style.css' let forIconfont = analyzingIconForIconfont(iconfont); //解析class iconList.addIcon(forIconfont.list); // 添加iconfont dvadmin3的icon iconList.addIcon(elementPlus); // 添加element plus的图标 @@ -47,6 +48,8 @@ pinia.use(piniaPersist); directive(app); other.elSvg(app); + +app.use(VXETable) app.use(permission); app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).use(fastCrud).mount('#app'); diff --git a/web/src/views/system/role/components/permission.vue b/web/src/views/system/role/components/permission.vue index 7ebc9de..5fc590e 100644 --- a/web/src/views/system/role/components/permission.vue +++ b/web/src/views/system/role/components/permission.vue @@ -22,6 +22,7 @@ :row-config="{keyField: 'menu_id'}" :tree-config="{transform: true, rowField: 'menu_id', parentField: 'parent'}" :checkbox-config="{labelField: 'menu_id', checkRowKeys: multipleTableData,checkStrictly:true}" + @toggle-row-expand="menuNodeClick" :data="menuData"> @@ -106,7 +107,7 @@ import * as api from './api.ts' import type {FormRules, FormInstance} from 'element-plus' import {ElMessage} from 'element-plus' import XEUtils from 'xe-utils' -import { VXETable, VxeTableInstance } from 'vxe-table' +import { VXETable, VxeTableInstance,VxeTableEvents } from 'vxe-table' interface tableRow { menu_id: number @@ -169,16 +170,16 @@ let isBtnPermissionShow = ref(false) let buttonOptions = ref<[]>() let editedMenuInfo = ref() //菜单节点点击事件 -const menuNodeClick = (node: any) => { - isBtnPermissionShow.value = !node.is_catalog - if (!node.is_catalog) { +const menuNodeClick: VxeTableEvents.ToggleRowExpand = ({ expanded, row}) => { + // isBtnPermissionShow.value = !node.is_catalog + if (!row.is_catalog) { buttonOptions.value = [] - editedMenuInfo.value = node - api.GetMenuButton({menu: node.menu_id}).then((res: any) => { + editedMenuInfo.value = row + api.GetMenuButton({menu: row.menu_id}).then((res: any) => { const {data} = res buttonOptions.value = data }) - api.getObj({menu: node.menu_id, role: editedRoleInfo.value.id}).then((res: any) => { + api.getObj({menu: row.menu_id, role: editedRoleInfo.value.id}).then((res: any) => { const {data} = res buttonPermissionData.value = data })