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
})