feature: 动态生成菜单栏

This commit is contained in:
zhengxinonly
2023-10-02 00:57:20 +08:00
parent 69a4955ce2
commit 20b611ac29
3 changed files with 42 additions and 14 deletions
+28 -1
View File
@@ -1,3 +1,6 @@
from collections import OrderedDict
from copy import deepcopy
from flask import Blueprint, make_response, redirect, request
from flask_jwt_extended import (
create_access_token,
@@ -10,7 +13,7 @@ from flask_jwt_extended import (
)
from pear_admin.extensions import db
from pear_admin.orms import UserORM
from pear_admin.orms import RightsORM, UserORM
passport_api = Blueprint("passport", __name__)
@@ -46,3 +49,27 @@ def logout():
unset_access_cookies(response)
unset_refresh_cookies(response)
return response
@passport_api.get("/menu")
@jwt_required()
def menus_api():
rights_orm_list = RightsORM.query.filter(RightsORM.type != "auth").all()
rights_list = [rights_orm.menu_json() for rights_orm in rights_orm_list]
rights_list.sort(key=lambda x: (x["pid"], x["id"]), reverse=True)
menu_dict_list = OrderedDict()
for menu_dict in rights_list:
if menu_dict["id"] in menu_dict_list.keys(): # 如果当前节点已经存在与字典中
# 当前节点添加子节点
menu_dict["children"] = deepcopy(menu_dict_list[menu_dict["id"]])
menu_dict["children"].sort(key=lambda item: item["sort"])
# 删除子节点
del menu_dict_list[menu_dict["id"]]
if menu_dict["pid"] not in menu_dict_list:
menu_dict_list[menu_dict["pid"]] = [menu_dict]
else:
menu_dict_list[menu_dict["pid"]].append(menu_dict)
return sorted(menu_dict_list.get(0), key=lambda item: item["sort"])
+3 -3
View File
@@ -4,13 +4,13 @@
"image": "/static/admin/images/logo.png"
},
"menu": {
"data": "/static/admin/data/menu.json",
"data": "/api/v1/menu",
"method": "GET",
"accordion": true,
"collapse": false,
"control": false,
"controlWidth": 500,
"select": "10",
"select": "126",
"async": true
},
"tab": {
@@ -20,7 +20,7 @@
"preload": true,
"max": "30",
"index": {
"id": "10",
"id": "126",
"href": "view/analysis/index.html",
"title": "首页"
}
+11 -10
View File
@@ -1,27 +1,28 @@
id,name,code,type,url,icon,status,sort,open_type,pid
100,系统管理,ums:rights,menu,,layui-iconlayui-icon-set-fill,,2,,0
101,权限管理,ums:rights:list,path,/rights,,,1,,100
100,系统管理,ums:rights,menu,,layui-icon layui-icon-set-fill,,2,,0
101,权限管理,ums:rights:list,path,/views/rights,layui-icon layui-icon-console,,1,,100
102,新增权限,ums:rights:create,auth,,,,0,,101
103,修改权限,ums:rights:update,auth,,,,0,,101
104,获取权限,ums:rights:read,auth,,,,0,,101
105,删除权限,ums:rights:delete,auth,,,,0,,101
106,角色管理,ums:role,path,/role,,,2,,100
106,角色管理,ums:role,path,/views/role,layui-icon layui-icon-console,,2,,100
107,新增角色,ums:role:create,auth,,,,0,,106
109,修改角色,ums:role:update,auth,,,,0,,106
108,查询角色,ums:role:read,auth,,,,0,,106
110,删除角色,ums:role:delete,auth,,,,0,,106
111,部门管理,ums:department,path,/department,,,3,,100
111,部门管理,ums:department,path,/views/department,layui-icon layui-icon-console,,3,,100
112,新建部门,ums:department:create,auth,,,,0,,111
113,修改部门,ums:department:update,auth,,,,0,,111
114,删除部门,ums:department:delete,auth,,,,0,,111
115,查询部门,ums:department:read,auth,,,,0,,111
116,员工管理,ums:user,path,/user,,,4,,100
116,员工管理,ums:user,path,/views/user,layui-icon layui-icon-console,,4,,100
117,新增员工,ums:user:create,auth,,,,0,,116
118,修改员工,ums:user:update,auth,,,,0,,116
119,查询员工,ums:user:read,auth,,,,0,,116
120,查询员工,ums:user:read,auth,,,,0,,116
121,数据图表,,menu,,layui-iconlayui-icon-chart,,3,,0
122,折线图,,path,/echarts/line,layui-iconlayui-icon-face-smile,,0,,121
123,柱状图,,path,/echarts/column,layui-iconlayui-icon-face-smile,,0,,121
124,工作空间,,menu,,layui-iconlayui-icon-console,,1,,0
125,控制后,,path,/person,layui-iconlayui-icon-console,,0,,124
121,数据图表,,menu,,layui-icon layui-icon-chart,,3,,0
122,折线图,,path,/views/echarts/line,layui-icon layui-icon-face-smile,,0,,121
123,柱状图,,path,/views/echarts/column,layui-iconlayui-icon-face-smile,,0,,121
124,工作空间,,menu,,layui-icon layui-icon-console,,1,,0
125,工作,,path,/view/console/index.html,layui-icon layui-icon-console,,2,_component,124
126,首页,,path,/view/analysis/index.html,layui-icon layui-icon-console,,1,_component,124
1 id name code type url icon status sort open_type pid
2 100 系统管理 ums:rights menu layui-iconlayui-icon-set-fill layui-icon layui-icon-set-fill 2 0
3 101 权限管理 ums:rights:list path /rights /views/rights layui-icon layui-icon-console 1 100
4 102 新增权限 ums:rights:create auth 0 101
5 103 修改权限 ums:rights:update auth 0 101
6 104 获取权限 ums:rights:read auth 0 101
7 105 删除权限 ums:rights:delete auth 0 101
8 106 角色管理 ums:role path /role /views/role layui-icon layui-icon-console 2 100
9 107 新增角色 ums:role:create auth 0 106
10 109 修改角色 ums:role:update auth 0 106
11 108 查询角色 ums:role:read auth 0 106
12 110 删除角色 ums:role:delete auth 0 106
13 111 部门管理 ums:department path /department /views/department layui-icon layui-icon-console 3 100
14 112 新建部门 ums:department:create auth 0 111
15 113 修改部门 ums:department:update auth 0 111
16 114 删除部门 ums:department:delete auth 0 111
17 115 查询部门 ums:department:read auth 0 111
18 116 员工管理 ums:user path /user /views/user layui-icon layui-icon-console 4 100
19 117 新增员工 ums:user:create auth 0 116
20 118 修改员工 ums:user:update auth 0 116
21 119 查询员工 ums:user:read auth 0 116
22 120 查询员工 ums:user:read auth 0 116
23 121 数据图表 menu layui-iconlayui-icon-chart layui-icon layui-icon-chart 3 0
24 122 折线图 path /echarts/line /views/echarts/line layui-iconlayui-icon-face-smile layui-icon layui-icon-face-smile 0 121
25 123 柱状图 path /echarts/column /views/echarts/column layui-iconlayui-icon-face-smile 0 121
26 124 工作空间 menu layui-iconlayui-icon-console layui-icon layui-icon-console 1 0
27 125 控制后台 工作台 path /person /view/console/index.html layui-iconlayui-icon-console layui-icon layui-icon-console 0 2 _component 124
28 126 首页 path /view/analysis/index.html layui-icon layui-icon-console 1 _component 124