mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-23 05:10:57 +00:00
This commit removes the deprecated frontend/web-old directory, updates various project configuration files including tsconfig, vite config, environment variables, and backend data models. It also fixes several API paths, adds tenant awareness to multiple models, and makes minor UI adjustments.
59 lines
2.2 KiB
Python
59 lines
2.2 KiB
Python
from typing import TYPE_CHECKING
|
|
|
|
from sqlalchemy import ForeignKey, Integer, String, UniqueConstraint
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
|
from app.common.enums import PermissionFilterStrategy
|
|
from app.core.base_model import ModelMixin, TenantMixin
|
|
|
|
if TYPE_CHECKING:
|
|
from app.api.v1.module_system.role.model import RoleModel
|
|
from app.api.v1.module_system.user.model import UserModel
|
|
|
|
|
|
class DeptModel(ModelMixin, TenantMixin):
|
|
"""
|
|
部门模型
|
|
"""
|
|
|
|
__tablename__: str = "sys_dept"
|
|
__table_args__ = (UniqueConstraint("tenant_id", "code"), {"comment": "部门表"})
|
|
__loader_options__: list[str] = []
|
|
__permission_strategy__: PermissionFilterStrategy = PermissionFilterStrategy.DEPT_BASED
|
|
|
|
name: Mapped[str] = mapped_column(String(64), nullable=False, comment="部门名称")
|
|
order: Mapped[int] = mapped_column(Integer, nullable=False, default=999, comment="显示排序")
|
|
code: Mapped[str] = mapped_column(
|
|
String(16), nullable=False, comment="部门编码"
|
|
)
|
|
leader: Mapped[str | None] = mapped_column(String(32), default=None, comment="部门负责人")
|
|
phone: Mapped[str | None] = mapped_column(String(11), default=None, comment="手机")
|
|
email: Mapped[str | None] = mapped_column(String(64), default=None, comment="邮箱")
|
|
|
|
# 树形结构字段
|
|
parent_id: Mapped[int | None] = mapped_column(
|
|
Integer,
|
|
ForeignKey("sys_dept.id", ondelete="SET NULL", onupdate="CASCADE"),
|
|
default=None,
|
|
index=True,
|
|
comment="父级部门ID",
|
|
)
|
|
# 关联关系
|
|
parent: Mapped["DeptModel | None"] = relationship(
|
|
back_populates="children",
|
|
remote_side="DeptModel.id",
|
|
foreign_keys=[parent_id],
|
|
uselist=False,
|
|
)
|
|
children: Mapped[list["DeptModel"]] = relationship(
|
|
back_populates="parent", foreign_keys=[parent_id], lazy="selectin"
|
|
)
|
|
roles: Mapped[list["RoleModel"]] = relationship(
|
|
secondary="sys_role_depts", back_populates="depts", lazy="selectin"
|
|
)
|
|
users: Mapped[list["UserModel"]] = relationship(
|
|
back_populates="dept",
|
|
foreign_keys="UserModel.dept_id",
|
|
lazy="selectin",
|
|
)
|