1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
| import request from "@/utils/request";
| // 菜单基础URL
| const MENU_BASE_URL = "/api/v1/menus";
|
| const MenuAPI = {
| /**
| * 获取当前用户的路由列表
| * <p/>
| * 无需传入角色,后端解析token获取角色自行判断是否拥有路由的权限
| *
| * @returns 路由列表
| */
| getRoutes() {
| return request<RouteVO[]>({
| url: `${MENU_BASE_URL}/routes`,
| method: "GET",
| });
| },
|
| /**
| * 获取菜单下拉数据源
| *
| * @returns 菜单下拉数据源
| */
| getOptions(onlyParent?: boolean) {
| return request<OptionType[]>({
| url: `${MENU_BASE_URL}/options`,
| method: "GET",
| data: { onlyParent: onlyParent },
| });
| },
| };
|
| export default MenuAPI;
|
| /** RouteVO,路由对象 */
| export interface RouteVO {
| /** 子路由列表 */
| children: RouteVO[];
| /** 组件路径 */
| component?: string;
| /** 路由属性 */
| meta?: Meta;
| /** 路由名称 */
| name?: string;
| /** 路由路径 */
| path?: string;
| /** 跳转链接 */
| redirect?: string;
| }
|
| /** Meta,路由属性 */
| export interface Meta {
| /** 【目录】只有一个子路由是否始终显示 */
| alwaysShow?: boolean;
| /** 是否隐藏(true-是 false-否) */
| hidden?: boolean;
| /** ICON */
| icon?: string;
| /** 【菜单】是否开启页面缓存 */
| keepAlive?: boolean;
| /** 路由title */
| title?: string;
| }
|
| /**
| * 组件数据源
| */
| interface OptionType {
| /** 值 */
| value: string | number;
| /** 文本 */
| label: string;
| /** 子列表 */
| children?: OptionType[];
| }
|
|