From a71658eda62c2a0a8a322872c3ab66261245bdae Mon Sep 17 00:00:00 2001 From: xuyonghao <898441624@qq.com> Date: 星期一, 23 十二月 2024 16:06:57 +0800 Subject: [PATCH] 获取用户菜单权限按照seq值降序排序 --- app/models/resource_model.py | 49 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 43 insertions(+), 6 deletions(-) diff --git a/app/models/resource_model.py b/app/models/resource_model.py index 61e1bc9..34f6be1 100644 --- a/app/models/resource_model.py +++ b/app/models/resource_model.py @@ -5,6 +5,7 @@ from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey from sqlalchemy.orm import relationship, backref +from app.config.const import RESOURCE_STATUS_DELETE from app.models.base_model import Base class ResourceModel(Base): @@ -25,7 +26,7 @@ resource_id = Column(String(36), ForeignKey('resource.id')) parent = relationship('ResourceModel', remote_side=[id], backref='resources', uselist=False) children = relationship('ResourceModel') - status = Column(String(10)) + status = Column(String(10), default="1") hidden = Column(Integer, default=0) def get_id(self): return str(self.ID) @@ -56,7 +57,9 @@ 'menuId': self.id, 'menuName': self.name, 'menuType': self.resource_type_id, - 'children': [res.to_tree_select_json() for res in self.children] + 'parentId': self.get_pid(), + 'parentName': self.get_pName(), + 'children': [res.to_tree_select_json() for res in self.children if res if res.status != RESOURCE_STATUS_DELETE] } def to_router_json(self): @@ -86,6 +89,34 @@ router['component'] = 'Layout' return router + + + def to_router_dict(self): + router = { + 'id': self.id, + 'name': self.path.capitalize() if self.path else '', + # 'name': self.name, + 'path': self.path, + 'hidden': bool(self.hidden), + 'redirect': 'noRedirect', + 'component': self.url, + 'alwaysShow': True, + 'perms': self.perms, + 'resourceType': self.get_type_json(), + 'seq': self.seq, + 'meta': { + 'title': self.name, + 'icon': self.icon, + 'noCache': False, + 'link': '' + }, + 'parentId': self.get_pid(), + } + + if not router['component']: + router['component'] = 'Layout' + return router + def to_menu_json(self): return { @@ -133,8 +164,8 @@ def to_json(self): return { 'id': self.id, - 'createdatetime': self.created_at, - 'updatedatetime': self.updated_at, + # 'createdatetime': self.created_at, + # 'updatedatetime': self.updated_at, 'name': self.name, 'description': self.description } @@ -151,7 +182,13 @@ perms: Optional[str] = "" menuType: Optional[str] = "" description: Optional[str] = "" + icon: Optional[str] = "" parentId: str status: str - roles: list - groups: Optional[list] = [] \ No newline at end of file + # roles: list + # groups: Optional[list] = [] + + +class MenuStatus(BaseModel): + menuId: str + status: str \ No newline at end of file -- Gitblit v1.8.0