Skip to content

Commit 0350621

Browse files
committed
chore(dice-admin):update framework
1 parent 109c2ce commit 0350621

File tree

5 files changed

+37
-27
lines changed

5 files changed

+37
-27
lines changed

dice-admin/src/components/Form/src/hooks/useLabelWidth.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Ref } from 'vue';
22
import { computed, unref } from 'vue';
33
import type { FormProps, FormSchemaInner as FormSchema } from '../types/form';
4-
import { isNumber } from '@/utils/is';
4+
import { isDef, isNumber } from '@/utils/is';
55

66
export function useItemLabelWidth(schemaItemRef: Ref<FormSchema>, propsRef: Ref<FormProps>) {
77
return computed(() => {
@@ -23,11 +23,11 @@ export function useItemLabelWidth(schemaItemRef: Ref<FormSchema>, propsRef: Ref<
2323
};
2424
return { labelCol, wrapperCol };
2525
}
26-
let width = labelWidth || globalLabelWidth;
26+
let width = labelWidth ?? globalLabelWidth;
2727
const col = { ...globalLabelCol, ...labelCol };
2828
const wrapCol = { ...globWrapperCol, ...wrapperCol };
2929

30-
if (width) {
30+
if (isDef(width)) {
3131
width = isNumber(width) ? `${width}px` : width;
3232
}
3333

dice-admin/src/router/helper/menuHelper.ts

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { AppRouteModule } from '@/router/types';
2-
import type { MenuModule, Menu, AppRouteRecordRaw } from '@/router/types';
2+
import type { Menu, AppRouteRecordRaw } from '@/router/types';
33
import { findPath, treeMap } from '@/utils/helper/treeHelper';
44
import { cloneDeep } from 'lodash-es';
55
import { isHttpUrl } from '@/utils/is';
@@ -30,13 +30,12 @@ function joinParentPath(menus: Menu[], parentPath = '') {
3030
}
3131
}
3232
}
33-
34-
// Parsing the menu module
35-
export function transformMenuModule(menuModule: MenuModule): Menu {
36-
const menuList = [menuModule];
37-
38-
joinParentPath(menuList);
39-
return menuList[0];
33+
// 菜单路径处理
34+
export function transformMenuModules(routeModList: Menu[]) {
35+
const cloneMenuModules = cloneDeep(routeModList);
36+
// 路径处理
37+
joinParentPath(cloneMenuModules);
38+
return cloneMenuModules;
4039
}
4140

4241
// 将路由转换成菜单

dice-admin/src/router/menus/index.ts

+3-14
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { RouteRecordNormalized } from 'vue-router';
33

44
import { useAppStoreWithOut } from '@/store/modules/app';
55
import { usePermissionStore } from '@/store/modules/permission';
6-
import { transformMenuModule, getAllParentPath } from '@/router/helper/menuHelper';
6+
import { getAllParentPath } from '@/router/helper/menuHelper';
77
import { filter } from '@/utils/helper/treeHelper';
88
import { isHttpUrl } from '@/utils/is';
99
import { router } from '@/router';
@@ -12,7 +12,7 @@ import { pathToRegexp } from 'path-to-regexp';
1212

1313
const modules = import.meta.glob('../routes/modules/**/*.ts', { eager: true });
1414

15-
const menuModules: MenuModule[] = [];
15+
export const menuModules: MenuModule[] = [];
1616

1717
Object.keys(modules).forEach((key) => {
1818
const mod = (modules as Recordable)[key].default || {};
@@ -40,17 +40,6 @@ const isRoleMode = () => {
4040
return getPermissionMode() === PermissionModeEnum.ROLE;
4141
};
4242

43-
const staticMenus: Menu[] = [];
44-
(() => {
45-
menuModules.sort((a, b) => {
46-
return (a.orderNo || 0) - (b.orderNo || 0);
47-
});
48-
49-
for (const menu of menuModules) {
50-
staticMenus.push(transformMenuModule(menu));
51-
}
52-
})();
53-
5443
async function getAsyncMenus() {
5544
const permissionStore = usePermissionStore();
5645
//递归过滤所有隐藏的菜单
@@ -69,7 +58,7 @@ async function getAsyncMenus() {
6958
if (isRouteMappingMode()) {
7059
return menuFilter(permissionStore.getFrontMenuList);
7160
}
72-
return staticMenus;
61+
return permissionStore.getStaticMenuList;
7362
}
7463

7564
export const getMenus = async (): Promise<Menu[]> => {

dice-admin/src/store/modules/app.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { Persistent } from '@/utils/cache/persistent';
1616
import { darkMode } from '@/settings/designSetting';
1717
import { resetRouter } from '@/router';
1818
import { deepMerge } from '@/utils';
19+
import setting from '@/settings/projectSetting';
1920

2021
interface AppState {
2122
darkMode?: ThemeEnum;
@@ -40,7 +41,12 @@ export const useAppStore = defineStore({
4041
return state.pageLoading;
4142
},
4243
getDarkMode(state): 'light' | 'dark' | string {
43-
return state.darkMode || localStorage.getItem(APP_DARK_MODE_KEY) || darkMode;
44+
return (
45+
state.darkMode ||
46+
localStorage.getItem(APP_DARK_MODE_KEY) ||
47+
setting.menuSetting.theme ||
48+
darkMode
49+
);
4450
},
4551

4652
getBeforeMiniInfo(state): BeforeMiniState {

dice-admin/src/store/modules/permission.ts

+17-1
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import { useUserStore } from './user';
77
import { useAppStoreWithOut } from './app';
88
import { toRaw } from 'vue';
99
import { transformObjToRoute, flatMultiLevelRoutes } from '@/router/helper/routeHelper';
10-
import { transformRouteToMenu } from '@/router/helper/menuHelper';
10+
import { transformRouteToMenu, transformMenuModules } from '@/router/helper/menuHelper';
1111

1212
import projectSetting from '@/settings/projectSetting';
1313

1414
import { PermissionModeEnum } from '@/enums/appEnum';
1515

1616
import { asyncRoutes } from '@/router/routes';
17+
import { menuModules } from '@/router/menus';
1718
import { ERROR_LOG_ROUTE, PAGE_NOT_FOUND_ROUTE } from '@/router/routes/basic';
1819

1920
import { filter } from '@/utils/helper/treeHelper';
@@ -39,6 +40,7 @@ interface PermissionState {
3940
backMenuList: Menu[];
4041
// 菜单列表
4142
frontMenuList: Menu[];
43+
staticMenuList: Menu[];
4244
}
4345

4446
export const usePermissionStore = defineStore({
@@ -58,6 +60,7 @@ export const usePermissionStore = defineStore({
5860
// menu List
5961
// 菜单列表
6062
frontMenuList: [],
63+
staticMenuList: [],
6164
}),
6265
getters: {
6366
getPermCodeList(state): string[] | number[] {
@@ -69,6 +72,9 @@ export const usePermissionStore = defineStore({
6972
getFrontMenuList(state): Menu[] {
7073
return state.frontMenuList;
7174
},
75+
getStaticMenuList(state): Menu[] {
76+
return state.staticMenuList;
77+
},
7278
getLastBuildMenuTime(state): number {
7379
return state.lastBuildMenuTime;
7480
},
@@ -90,6 +96,10 @@ export const usePermissionStore = defineStore({
9096
this.frontMenuList = list;
9197
},
9298

99+
setStaticMenuList(list: Menu[]) {
100+
this.staticMenuList = list;
101+
},
102+
93103
setLastBuildMenuTime() {
94104
this.lastBuildMenuTime = new Date().getTime();
95105
},
@@ -171,6 +181,12 @@ export const usePermissionStore = defineStore({
171181
switch (permissionMode) {
172182
// 角色权限
173183
case PermissionModeEnum.ROLE:
184+
const staticMenuList = transformMenuModules(menuModules);
185+
staticMenuList.sort((a, b) => {
186+
return (a.orderNo || 0) - (b.orderNo || 0);
187+
});
188+
// 设置菜单列表
189+
this.setStaticMenuList(staticMenuList);
174190
// 对非一级路由进行过滤
175191
routes = filter(asyncRoutes, routeFilter);
176192
// 对一级路由根据角色权限过滤

0 commit comments

Comments
 (0)