[CLAUDE] FE-User: Plan AA Chunk B - WorkflowMatrixViewPage read-only matrix view + types extend
NEW files:
- pages/pe/WorkflowMatrixViewPage.tsx ~215 LOC
- useQuery GET /approval-workflows-v2?applicableType=N&isUserSelectable=true
- PageHeader "Luồng duyệt — {label}" + Network icon
- Loading/Error/Empty state 3 variant rõ
- WorkflowCard per ghim version: header (code/version + badge "Đang dùng" emerald + "Được ghim" amber Pin icon)
- Table 10 cột read-only: Bước rowSpan | Cấp | NV duyệt + 7 Allow* flag (✓/—)
- FlagCell helper component TS indexed-access type union 7 keys
- Mirror admin Designer ApprovalWorkflowsV2Page layout (drop edit mutations)
- types/approvalWorkflowV2.ts ~55 LOC
- 5 type subset: AwLevelDto + AwStepDto + AwDefinitionDto + AwTypeSummaryDto + AwAdminOverviewDto
- Field name khớp BE record positional param (history not versions)
MODIFIED:
- App.tsx +import + Route /purchase-evaluations/workflow-matrix trước /workspace
Why:
- Chunk A BE đã wire endpoint với filter param + menu seed Pe_DuyetNcc_WfView
cho user xem matrix workflow admin Designer ghim trước khi tạo phiếu.
Verify:
- npm run build fe-user PASS clean 0 TS err, 1907 modules, 2.61s
- Reviewer cumulative A+B PASS 0 critical/major/minor
Pending Chunk C: Docs session log + STATUS + HANDOFF + 4 agent MEMORY drift.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -12,6 +12,7 @@ import { MyContractsPage } from '@/pages/contracts/MyContractsPage'
|
||||
import { PurchaseEvaluationsListPage, PurchaseEvaluationDetailPage } from '@/pages/pe/PurchaseEvaluationsListPage'
|
||||
import { PurchaseEvaluationCreatePage } from '@/pages/pe/PurchaseEvaluationCreatePage'
|
||||
import { PurchaseEvaluationWorkspacePage } from '@/pages/pe/PurchaseEvaluationWorkspacePage'
|
||||
import { WorkflowMatrixViewPage } from '@/pages/pe/WorkflowMatrixViewPage'
|
||||
import { BudgetsListPage, BudgetDetailPage } from '@/pages/budgets/BudgetsListPage'
|
||||
import { BudgetCreatePage } from '@/pages/budgets/BudgetCreatePage'
|
||||
|
||||
@ -34,6 +35,7 @@ function App() {
|
||||
<Route path="/contracts/:id" element={<ContractDetailPage />} />
|
||||
<Route path="/my-contracts" element={<MyContractsPage />} />
|
||||
<Route path="/purchase-evaluations" element={<PurchaseEvaluationsListPage />} />
|
||||
<Route path="/purchase-evaluations/workflow-matrix" element={<WorkflowMatrixViewPage />} />
|
||||
<Route path="/purchase-evaluations/workspace" element={<PurchaseEvaluationWorkspacePage />} />
|
||||
<Route path="/purchase-evaluations/new" element={<PurchaseEvaluationCreatePage />} />
|
||||
<Route path="/purchase-evaluations/:id" element={<PurchaseEvaluationDetailPage />} />
|
||||
|
||||
Reference in New Issue
Block a user