Skip to content

部门管理

使用说明

主界面

用户与部门是一对多关系

image-20250620162531742

编辑界面

  • 上级部门:建议只有一个顶级部门
  • 负责人、联系电话和邮箱:选填,目前没有关联其它业务功能。

image-20250620162739120

后端实现

目录

代码目录:mysite\myapp_system\dept

模型

部门模型SystemDept继承了BaseModel

  • parent_id外键指向了父节点。默认删除策略为models.PROTECT,即删除当前节点时,如果有子节点,则不允许删除。
python
class SystemDept(BaseModel):
    id = models.BigAutoField(primary_key=True, db_comment="部门id", help_text="部门id")
    name = models.CharField(
        max_length=30, default="", db_comment="部门名称", help_text="部门名称"
    )
    parent_id = models.ForeignKey(
        "self",
        on_delete=models.PROTECT,  # 删除父时,若有子,则不允许删除
        null=True,
        blank=True,
        db_constraint=False,
        db_column="parent_id",
        db_comment="父部门id",
        help_text="父部门id",
        related_name="children",  # 反向关联名称,用于从父访问子
    )
    # ...

前端实现

目录

代码目录:src\views\system\dept

sh
dept
|-- DeptForm.vue # 编辑界面
`-- index.vue # 主界面