feature: 动态生成菜单栏
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
from collections import OrderedDict
|
||||||
|
from copy import deepcopy
|
||||||
|
|
||||||
from flask import Blueprint, make_response, redirect, request
|
from flask import Blueprint, make_response, redirect, request
|
||||||
from flask_jwt_extended import (
|
from flask_jwt_extended import (
|
||||||
create_access_token,
|
create_access_token,
|
||||||
@@ -10,7 +13,7 @@ from flask_jwt_extended import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from pear_admin.extensions import db
|
from pear_admin.extensions import db
|
||||||
from pear_admin.orms import UserORM
|
from pear_admin.orms import RightsORM, UserORM
|
||||||
|
|
||||||
passport_api = Blueprint("passport", __name__)
|
passport_api = Blueprint("passport", __name__)
|
||||||
|
|
||||||
@@ -46,3 +49,27 @@ def logout():
|
|||||||
unset_access_cookies(response)
|
unset_access_cookies(response)
|
||||||
unset_refresh_cookies(response)
|
unset_refresh_cookies(response)
|
||||||
return 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"])
|
||||||
|
|||||||
@@ -4,13 +4,13 @@
|
|||||||
"image": "/static/admin/images/logo.png"
|
"image": "/static/admin/images/logo.png"
|
||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"data": "/static/admin/data/menu.json",
|
"data": "/api/v1/menu",
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
"accordion": true,
|
"accordion": true,
|
||||||
"collapse": false,
|
"collapse": false,
|
||||||
"control": false,
|
"control": false,
|
||||||
"controlWidth": 500,
|
"controlWidth": 500,
|
||||||
"select": "10",
|
"select": "126",
|
||||||
"async": true
|
"async": true
|
||||||
},
|
},
|
||||||
"tab": {
|
"tab": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"preload": true,
|
"preload": true,
|
||||||
"max": "30",
|
"max": "30",
|
||||||
"index": {
|
"index": {
|
||||||
"id": "10",
|
"id": "126",
|
||||||
"href": "view/analysis/index.html",
|
"href": "view/analysis/index.html",
|
||||||
"title": "首页"
|
"title": "首页"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,28 @@
|
|||||||
id,name,code,type,url,icon,status,sort,open_type,pid
|
id,name,code,type,url,icon,status,sort,open_type,pid
|
||||||
100,系统管理,ums:rights,menu,,layui-icon layui-icon-set-fill,,2,,0
|
100,系统管理,ums:rights,menu,,layui-icon layui-icon-set-fill,,2,,0
|
||||||
101,权限管理,ums:rights:list,path,/rights,,,1,,100
|
101,权限管理,ums:rights:list,path,/views/rights,layui-icon layui-icon-console,,1,,100
|
||||||
102,新增权限,ums:rights:create,auth,,,,0,,101
|
102,新增权限,ums:rights:create,auth,,,,0,,101
|
||||||
103,修改权限,ums:rights:update,auth,,,,0,,101
|
103,修改权限,ums:rights:update,auth,,,,0,,101
|
||||||
104,获取权限,ums:rights:read,auth,,,,0,,101
|
104,获取权限,ums:rights:read,auth,,,,0,,101
|
||||||
105,删除权限,ums:rights:delete,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
|
107,新增角色,ums:role:create,auth,,,,0,,106
|
||||||
109,修改角色,ums:role:update,auth,,,,0,,106
|
109,修改角色,ums:role:update,auth,,,,0,,106
|
||||||
108,查询角色,ums:role:read,auth,,,,0,,106
|
108,查询角色,ums:role:read,auth,,,,0,,106
|
||||||
110,删除角色,ums:role:delete,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
|
112,新建部门,ums:department:create,auth,,,,0,,111
|
||||||
113,修改部门,ums:department:update,auth,,,,0,,111
|
113,修改部门,ums:department:update,auth,,,,0,,111
|
||||||
114,删除部门,ums:department:delete,auth,,,,0,,111
|
114,删除部门,ums:department:delete,auth,,,,0,,111
|
||||||
115,查询部门,ums:department:read,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
|
117,新增员工,ums:user:create,auth,,,,0,,116
|
||||||
118,修改员工,ums:user:update,auth,,,,0,,116
|
118,修改员工,ums:user:update,auth,,,,0,,116
|
||||||
119,查询员工,ums:user:read,auth,,,,0,,116
|
119,查询员工,ums:user:read,auth,,,,0,,116
|
||||||
120,查询员工,ums:user:read,auth,,,,0,,116
|
120,查询员工,ums:user:read,auth,,,,0,,116
|
||||||
121,数据图表,,menu,,layui-icon layui-icon-chart,,3,,0
|
121,数据图表,,menu,,layui-icon layui-icon-chart,,3,,0
|
||||||
122,折线图,,path,/echarts/line,layui-iconlayui-icon-face-smile,,0,,121
|
122,折线图,,path,/views/echarts/line,layui-icon layui-icon-face-smile,,0,,121
|
||||||
123,柱状图,,path,/echarts/column,layui-iconlayui-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
|
124,工作空间,,menu,,layui-icon layui-icon-console,,1,,0
|
||||||
125,控制后台,,path,/person,layui-iconlayui-icon-console,,0,,124
|
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
|
||||||
|
Reference in New Issue
Block a user