Unify effective roles via post-role bindings, remove dedicated OA role UI, and update OA assignee resolution plus related SQL/docs. Co-authored-by: Cursor <cursoragent@cursor.com>
1.6 KiB
OA 审批应用复制 Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 在审批管理页支持一键复制审批应用(含表单/流程草稿),名称为原名+「复制」。
Architecture: 后端 POST /apps/{id}/copy 原子复制 oa_app + 一份草稿版本;前端「更多」菜单调用并刷新列表。
Tech Stack: FastAPI + SQLAlchemy;Vue 3 + Element Plus
Spec: docs/superpowers/specs/2026-07-31-oa-app-copy-design.md
Task 1: 后端 copy_app CRUD + API
Files:
-
Modify:
backend/app/crud/oa_approval.py -
Modify:
backend/app/api/oa_approval.py -
Step 1: 在
oa_approval.pyCRUD 增加copy_app:查源 app → 选草稿或最新发布 →create_app等价新建(名称加「复制」并截断)→ 用源 JSON 写入 draft 版本(覆盖 create 时空草稿)。 -
Step 2: 增加路由
POST /apps/{app_id}/copy,返回_app_to_dict(..., has_draft=True)。
Task 2: 前端 API + 菜单
Files:
-
Modify:
web-admin/src/api/oaApproval.ts -
Modify:
web-admin/src/views/oa-approval/apps/index.vue -
Step 1: 增加
fetchCopyOaApp -
Step 2: 「更多」增加「复制」;
handleCopy调用后loadData
Task 3: 验证
- 手工:复制有草稿 / 仅已发布 / 空应用;名称与未发布状态正确
- 更新 graph:
./scripts/update-graph.sh all(或 backend + frontend)