后端已有 GET /roles、GET/PATCH /roles/{code}/permissions(只读 + 权限整集替换)。补齐角色 CRUD,前端加 RoleManagementPage。
新建一个迁移:
Task: lc4skd9fgyl1nlli0pypmx5h
tao.chen commented:
实现完成。所有验收项通过:
验证结果:
uv run --package backend pytest backend/tests -q
pnpm typecheck
pnpm build
改动汇总:
migrations/versions/j4k5l6m7n8o9_add_system_role_view_permission.py
backend/src/backend/api/platform.py
platform/{__init__,_deps,employees,roles,workspaces}.py
from backend.api.platform import router
RoleManagementPage.tsx
RoleEditDialog.tsx
PermissionEditDialog.tsx
PermissionCheckboxList.tsx
/system/roles
未做: docker-compose 后端启服务的端到端联调(本机无 docker),以及真机 UI 交互验证。
No dependencies set.
The note is not visible to the blocked user.
目标
后端已有 GET /roles、GET/PATCH /roles/{code}/permissions(只读 + 权限整集替换)。补齐角色 CRUD,前端加 RoleManagementPage。
后端 (backend/src/backend/api/platform.py)
schemas/platform.py 加 RoleCreate / RoleUpdate(BaseModel extra=forbid)
迁移 (migrations/versions/)
新建一个迁移:
前端
约束
验收
Task: lc4skd9fgyl1nlli0pypmx5h
tao.chen commented:
验证结果:
uv run --package backend pytest backend/tests -q→ 136 passed, 1 warning (warning 是历史 datetime.utcnow() deprecation,与本任务无关)pnpm typecheck+pnpm build→ 全绿改动汇总:
migrations/versions/j4k5l6m7n8o9_add_system_role_view_permission.py— admin 角色新增 system:role:view 权限码backend/src/backend/api/platform.py(1596 行) → 包结构platform/{__init__,_deps,employees,roles,workspaces}.py,每个文件 ≤ 500 行;shim 保持from backend.api.platform import router向后兼容;20 个 endpoint 字节码级一致RoleManagementPage.tsx(282 行) +RoleEditDialog.tsx(263) +PermissionEditDialog.tsx(128) +PermissionCheckboxList.tsx(83),全部用 lucide-react + shadcn Button/system/roles+ 角色管理 sidebar 条目 (gate: system:role:view)未做: docker-compose 后端启服务的端到端联调(本机无 docker),以及真机 UI 交互验证。