Page mới `/system/approval-workflows-v2/:typeCode` mirror Designer cũ
nhưng theo schema Mig 22:
Bước (Phòng) > N Cấp (mỗi cấp = 1 NV cụ thể qua Select duy nhất)
Files:
- fe-admin/src/pages/system/ApprovalWorkflowsV2Page.tsx (new — 480 LOC)
- Overview cards (Active version + History list per ApplicableType)
- DefinitionCard read-only render Bước → Cấp với approver name + email
- Designer dialog: Mã/Tên/Mô tả + reorder Step/Level (chevron up/down)
+ Add/Remove Step + Add/Remove Level + Select Phòng + Select NV duyệt
- Validate: mỗi Step phải có ≥1 Level, mỗi Level phải có approverUserId
- Auto-assign code QT-DN-V2-001 / QT-DN-PA-V2-001 / QT-HD-V2-001
- fe-admin/src/lib/menuKeys.ts (+2 const sync với BE MenuKeys)
- fe-admin/src/components/Layout.tsx (resolver: ApprovalWorkflowsV2 root +
AwV2_<TypeCode> leaf → /system/approval-workflows-v2/<code>)
- fe-admin/src/App.tsx (import + 2 route)
Verify: npm build fe-admin OK, 1924 modules transformed, 0 TS error.
Next: Chunk D — STATUS + HANDOFF + CLAUDE.md update + final commit.
24 lines
730 B
TypeScript
24 lines
730 B
TypeScript
// Đồng bộ tay với BE SolutionErp.Domain.Identity.MenuKeys
|
|
export const MenuKeys = {
|
|
Dashboard: 'Dashboard',
|
|
Master: 'Master',
|
|
Suppliers: 'Suppliers',
|
|
Projects: 'Projects',
|
|
Departments: 'Departments',
|
|
Contracts: 'Contracts',
|
|
Forms: 'Forms',
|
|
Reports: 'Reports',
|
|
System: 'System',
|
|
Users: 'Users',
|
|
Roles: 'Roles',
|
|
Permissions: 'Permissions',
|
|
PurchaseEvaluations: 'PurchaseEvaluations',
|
|
PeWorkflows: 'PeWorkflows',
|
|
// Quy trình duyệt MỚI (Mig 22 — Session 17, 2026-05-08)
|
|
ApprovalWorkflowsV2: 'ApprovalWorkflowsV2',
|
|
AwV2_DuyetNcc: 'AwV2_DuyetNcc',
|
|
} as const
|
|
|
|
export type MenuKey = typeof MenuKeys[keyof typeof MenuKeys]
|
|
export type CrudAction = 'Read' | 'Create' | 'Update' | 'Delete'
|