27 lines
4.7 KiB
Markdown
27 lines
4.7 KiB
Markdown
# 团队职能数据库化与素材库后台入口
|
||
|
||
团队列表读取 `OrganizationUnit` 中唯一的品牌中心节点的有效直接下级部门,包括暂无人员或职责配置的部门。部门 ID 绑定 `TeamFunctionConfig`,名称不进入职责配置;HR 同步改名后仍读取同一配置。直属下级部门范围以 parentId 为准,不按前端部门名数组筛选。
|
||
|
||
负责人存 `PerformanceSurveyEmployeeProfile.id`,显示名和当前任职路径从花名册读取。HR 镜像没有明确的部门负责人字段,因此只接受超级管理员从本部门及下级在职候选人员中明确选择,不以职级、姓名、直属主管名自动判定。离职或调出后标记关联失效;重新保存时拒绝无效人员。未开通素材库账号的花名册人员同样可以作为负责人。
|
||
|
||
职责描述与分组条目存配置表;HR 同步不修改它们。读取不创建配置、不自动初始化。新增部门显示空态,停止同步的部门不再显示,但其配置和修改记录保留。普通品牌中心成员只能读取;维护资格通过数据库 `isSuperAdmin` 检查,候选人员列表只返回给维护者。保存使用串行化事务、版本校验、前后快照审计;审计失败时职责修改回滚。不会授予负责人任何素材权限。
|
||
|
||
前端保留紧凑工作面,点击编辑后内联维护负责人、说明和职责分组。失败及冲突不丢弃草稿;取消重新读取;部门切换及导航离开在存在修改时确认。接口 `/api/organization/team-functions`,迁移 `20261008_team_function_configs`。
|
||
|
||
原四套确认的职责图内容保留于 `data/team-function-initial-content.json`,只供一次性导入,页面及接口不导入它。使用 `scripts/seed-team-function-config.ts` 为一个明确部门 ID 导入一套模板;人员必须显式提供档案 ID,可选择暂不设置。默认只展示计划,`--apply` 才写入;已有配置拒绝覆盖。示例:
|
||
|
||
```powershell
|
||
npx tsx scripts/seed-team-function-config.ts --department-id <部门ID> --template "品牌创意A部" --actor-user-id <超级管理员ID> --lead-profile-id <人员档案ID>
|
||
# 核对输出中的当前部门、人员和内容后,用完全相同的参数加 --apply。
|
||
```
|
||
|
||
发布步骤:先备份并恢复到隔离数据库验证,再通过安全迁移器应用迁移(连同此前未发布的权限部门身份迁移),使用迁移审计回执部署应用。迁移器镜像带有只供人工调用的导入脚本;用 `--entrypoint /app/node_modules/.bin/tsx` 调用,默认只读,明确 `--apply` 后写入。读取当前组织和候选人员,人工核对旧职责图对应的实际部门 ID、负责人 ID 后逐个导入。组织改名、合并或职责调整不能通过相似名称猜测映射,未确认的配置留空。
|
||
|
||
本次发布前线上核实品牌中心有 5 个有效直属部门;品牌创意 A、B 与综合支持部的旧内容和负责人能唯一对应。用户已明确确认旧空间设计部职责迁入当前空间视觉部,负责人档案希文当前属于该部门。新增品牌设计部暂无已确认职责内容,保持待配置,由超级管理员维护。
|
||
|
||
素材库后台一直保留 `/admin`,线上实际检查到数据统计、素材管理、分类管理、部门权限配置、超级管理员及公网流量。找不到的原因是原素材库账户菜单把入口叫“治理与设置”,品牌中心账户菜单又缺少链接。本轮将素材库菜单名称明确为“素材库后台”,并在品牌中心账户菜单添加同名 `/admin` 入口,仅 ADMIN、SYSTEM_ADMIN、DEPT_ADMIN 显示,沿用后台本身的访问和数据范围控制。
|
||
|
||
验证证据:7 个相关套件、27 项测试通过;Prisma Client 与 schema 一致;类型检查、修改文件 lint 通过。使用独立本地 PostgreSQL 15 应用真实迁移,验证外键、部门和人员改名、离职、版本冲突、审计回滚、停用部门,以及导入脚本默认不写、显式导入、不覆盖已有配置。浏览器预览的团队职能直接调用真实服务访问此独立数据库,实际保存负责人后刷新保留,并恢复原样例设置;桌面、390px 手机、768px 平板无页面横向溢出或控制台错误,均只有一个 main/h1。账户菜单后台入口已实际显示;线上后台读取为只读检查。
|
||
|
||
本地预览 `http://localhost:3113/workspaces/organization/team-functions`,样例数据库容器 `gongxiangp2-team-functions-qa-20261008`,端口仅绑定 `127.0.0.1:55438`,保留供本地预览使用。其余预览页面仍使用模拟 API。截图位于 `tmp/permission-groups-qa/team-functions-db-*.png` 和 `material-admin-entry-desktop.png`。当前没有提交 Git 或部署,也没有写入生产业务数据。
|