Types + pages + components cho module Duyệt NCC ở cả 2 FE (copy-share). Pages: - PurchaseEvaluationsListPage: 3-panel lg:grid-cols-[340px_1fr_360px] * Panel 1: list filter theo type/phase/search + pendingMe inbox mode * Panel 2: PeDetailTabs (Thông tin/NCC/Hạng mục/Duyệt/Lịch sử) * Panel 3: PeWorkflowPanel với timeline + nextPhase buttons * Mobile fallback fullpage /purchase-evaluations/:id - PurchaseEvaluationCreatePage: form create/edit header (Type / Tên gói thầu / Dự án / Địa điểm / Mô tả / PaymentTerms JSON). Suppliers+Details+Quotes thêm sau khi save ở Detail tabs. Components: - PeDetailTabs: 5 tab + dialogs (AddSupplier/EditSupplier/DetailDialog/ QuoteDialog) + matrix N NCC × M hạng mục clickable cells + select winner - PeWorkflowPanel: policy timeline từ BE workflow.activePhases + transition confirmation dialog với comment Routes (cả 2 app): - /purchase-evaluations (+ ?type=1|2&pendingMe=1&id=...) - /purchase-evaluations/new (+ ?type / ?id để edit) - /purchase-evaluations/:id (mobile fullpage) Menu resolver: - Pe_<Code>_List → /purchase-evaluations?type=N - Pe_<Code>_Create → /purchase-evaluations/new?type=N - Pe_<Code>_Pending → /purchase-evaluations?type=N&pendingMe=1 - PeWf_<Code> (fe-admin only) → /system/pe-workflows/<code> Skip MVP: PE Workflow admin designer UI, PE Attachments. TS build pass cả 2 app.
21 lines
584 B
TypeScript
21 lines
584 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',
|
|
} as const
|
|
|
|
export type MenuKey = typeof MenuKeys[keyof typeof MenuKeys]
|
|
export type CrudAction = 'Read' | 'Create' | 'Update' | 'Delete'
|