45 lines
2.0 KiB
Python
45 lines
2.0 KiB
Python
|
|
"""
|
|||
|
|
菜单模型
|
|||
|
|
"""
|
|||
|
|
from sqlalchemy import Column, BigInteger, String, Integer, DateTime, SmallInteger
|
|||
|
|
from sqlalchemy.sql import func
|
|||
|
|
from app.core.database import Base
|
|||
|
|
|
|||
|
|
|
|||
|
|
class SystemMenu(Base):
|
|||
|
|
"""系统菜单表模型"""
|
|||
|
|
|
|||
|
|
__tablename__ = "system_menus"
|
|||
|
|
|
|||
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True, comment="菜单ID")
|
|||
|
|
parent_id = Column(BigInteger, default=0, comment="父菜单ID(0表示根菜单)")
|
|||
|
|
menu_name = Column(String(50), nullable=False, comment="菜单名称")
|
|||
|
|
menu_code = Column(String(50), nullable=False, unique=True, index=True, comment="菜单编码")
|
|||
|
|
menu_type = Column(SmallInteger, nullable=False, comment="菜单类型:1-目录 2-菜单 3-按钮/权限点")
|
|||
|
|
path = Column(String(255), comment="路由路径")
|
|||
|
|
component = Column(String(255), comment="组件路径")
|
|||
|
|
icon = Column(String(100), comment="图标")
|
|||
|
|
sort_order = Column(Integer, default=0, comment="排序号")
|
|||
|
|
visible = Column(SmallInteger, default=1, comment="是否可见:0-隐藏 1-显示")
|
|||
|
|
status = Column(SmallInteger, default=1, index=True, comment="状态:0-禁用 1-启用")
|
|||
|
|
permission = Column(String(100), comment="权限字符串")
|
|||
|
|
created_at = Column(DateTime, server_default=func.now(), comment="创建时间")
|
|||
|
|
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间")
|
|||
|
|
|
|||
|
|
def __repr__(self):
|
|||
|
|
return f"<SystemMenu(id={self.id}, menu_name='{self.menu_name}')>"
|
|||
|
|
|
|||
|
|
|
|||
|
|
class RoleMenu(Base):
|
|||
|
|
"""角色菜单授权表模型"""
|
|||
|
|
|
|||
|
|
__tablename__ = "role_menus"
|
|||
|
|
|
|||
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True, comment="关联ID")
|
|||
|
|
role_id = Column(BigInteger, nullable=False, index=True, comment="角色ID")
|
|||
|
|
menu_id = Column(BigInteger, nullable=False, index=True, comment="菜单ID")
|
|||
|
|
created_at = Column(DateTime, server_default=func.now(), comment="创建时间")
|
|||
|
|
|
|||
|
|
def __repr__(self):
|
|||
|
|
return f"<RoleMenu(role_id={self.role_id}, menu_id={self.menu_id})>"
|