refactor: ♻️ 授权页面重构

重构授权页面
This commit is contained in:
猿小天
2023-06-06 20:52:25 +08:00
parent f7b94e496c
commit e962ca6559
2 changed files with 12 additions and 8 deletions

View File

@@ -27,7 +27,8 @@ import iconfont from '/@/assets/iconfont/iconfont.json'; //引入json文件
import '/@/assets/iconfont/iconfont.css'; //引入css import '/@/assets/iconfont/iconfont.css'; //引入css
// 自动注册插件 // 自动注册插件
import { scanAndInstallPlugins } from '/@/views/plugins/index'; import { scanAndInstallPlugins } from '/@/views/plugins/index';
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'
let forIconfont = analyzingIconForIconfont(iconfont); //解析class let forIconfont = analyzingIconForIconfont(iconfont); //解析class
iconList.addIcon(forIconfont.list); // 添加iconfont dvadmin3的icon iconList.addIcon(forIconfont.list); // 添加iconfont dvadmin3的icon
iconList.addIcon(elementPlus); // 添加element plus的图标 iconList.addIcon(elementPlus); // 添加element plus的图标
@@ -47,6 +48,8 @@ pinia.use(piniaPersist);
directive(app); directive(app);
other.elSvg(app); other.elSvg(app);
app.use(VXETable)
app.use(permission); app.use(permission);
app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).use(fastCrud).mount('#app'); app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).use(fastCrud).mount('#app');

View File

@@ -22,6 +22,7 @@
:row-config="{keyField: 'menu_id'}" :row-config="{keyField: 'menu_id'}"
:tree-config="{transform: true, rowField: 'menu_id', parentField: 'parent'}" :tree-config="{transform: true, rowField: 'menu_id', parentField: 'parent'}"
:checkbox-config="{labelField: 'menu_id', checkRowKeys: multipleTableData,checkStrictly:true}" :checkbox-config="{labelField: 'menu_id', checkRowKeys: multipleTableData,checkStrictly:true}"
@toggle-row-expand="menuNodeClick"
:data="menuData"> :data="menuData">
<vxe-column type="checkbox" title="ID" width="200" tree-node></vxe-column> <vxe-column type="checkbox" title="ID" width="200" tree-node></vxe-column>
<vxe-column field="name" title="目录/菜单" ></vxe-column> <vxe-column field="name" title="目录/菜单" ></vxe-column>
@@ -106,7 +107,7 @@ import * as api from './api.ts'
import type {FormRules, FormInstance} from 'element-plus' import type {FormRules, FormInstance} from 'element-plus'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import XEUtils from 'xe-utils' import XEUtils from 'xe-utils'
import { VXETable, VxeTableInstance } from 'vxe-table' import { VXETable, VxeTableInstance,VxeTableEvents } from 'vxe-table'
interface tableRow { interface tableRow {
menu_id: number menu_id: number
@@ -169,16 +170,16 @@ let isBtnPermissionShow = ref(false)
let buttonOptions = ref<[]>() let buttonOptions = ref<[]>()
let editedMenuInfo = ref() let editedMenuInfo = ref()
//菜单节点点击事件 //菜单节点点击事件
const menuNodeClick = (node: any) => { const menuNodeClick: VxeTableEvents.ToggleRowExpand<tableRow> = ({ expanded, row}) => {
isBtnPermissionShow.value = !node.is_catalog // isBtnPermissionShow.value = !node.is_catalog
if (!node.is_catalog) { if (!row.is_catalog) {
buttonOptions.value = [] buttonOptions.value = []
editedMenuInfo.value = node editedMenuInfo.value = row
api.GetMenuButton({menu: node.menu_id}).then((res: any) => { api.GetMenuButton({menu: row.menu_id}).then((res: any) => {
const {data} = res const {data} = res
buttonOptions.value = data 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 const {data} = res
buttonPermissionData.value = data buttonPermissionData.value = data
}) })