# sub-implementer-frontend-1 — W2 KHKK FE 3 page x 2 app (S161)

> Lane: FE-only. KHONG cham src/Backend (chi Read entity de suy DTO shape). KHONG commit.
> Ghi TUNG MUC ngay sau khi lam xong muc do (chong #53).

## MUC 0 — Recon (DONE)

Khuon nguon doc that (khong doan):
- `fe-user/src/pages/office/ProposalsListPage.tsx` 252 dong / `ProposalCreatePage.tsx` 245 / `ProposalDetailPage.tsx` 386 / `fe-user/src/types/proposal.ts` 95.
  SHA256 = IDENTICAL voi fe-admin counterpart cho ca 4 file (do bang `sha256sum`):
  - Create `fb852a8df3191aa8696468ee6c762c21710f662db146ab678933c57a7373464b`
  - Detail `a550a5da29729d0d44981627bf8a6934255ac02c80477545f8c4eff393e83f81`
  - List   `780060dc1c4a9f08387e7ad35737846e38aff92191ad9fe2a7e8f2fa303f5af6`
  - types  `95607052ff1138f21d266d7fe66d45bab180c97270030f939be1ffcb681fdeda`
- Entity BE W1 (`src/Backend/SolutionErp.Domain/ContractSigningPlans/*.cs`, 8 file) = nguon shape cho types:
  `ContractSigningPlan` (MaKeHoach, PurchaseEvaluationId, ProjectId, DepartmentId, DrafterUserId, Phase,
  ApprovalWorkflowId, CurrentWorkflowStepIndex, CurrentApprovalLevelOrder, SlaDeadline, HoSoLink, GhiChu)
  · `Line` (SupplierId, PeReferenceAmount, ProposedAmount, ApprovedAmount?, ContractId?, Note?)
  · `DossierItem` (Kind 1/2/99, SupplierId?, Name, Status 1..4, TvgsName?, TvgsResultAt?, Note?)
  · `Attachment` (FileName, StoragePath, FileSize, ContentType, Purpose 1/2/99, Note?, DossierItemId?)
  · `Phase` enum 1/2/3/98/99.
- BE lane CHUA land file Application/Controller luc toi recon (`ls src/Backend/SolutionErp.Application/ContractSigningPlans/` = chi co `Services/` cua W1)
  => types FE viet theo ENTITY (dung luat de bai: "uu tien shape ENTITY").
- Layout staticMap truoc khi sua: fe-user `Layout.tsx:59-62,79-80` (6 leaf Khkk_* -> /coming-soon),
  fe-admin `Layout.tsx:34-39` (6 leaf -> /coming-soon).
- `Khkk_*` KHONG ton tai trong `fe-{user,admin}/src/lib/menuKeys.ts` (grep 0 hit) => phai them (place 3).
- Pe_WfView hien tai: fe-user `Layout.tsx:159` -> `/purchase-evaluations/workflow-matrix?type=N`
  (page `fe-user/src/pages/pe/WorkflowMatrixViewPage.tsx`, whitelist type `1|2|3` o `:60`).
  fe-admin CO Y KHONG co Pe_WfView (`Layout.tsx:125-129` lead chot 2026-07-27 — khong co matrix page ben admin).
- fe-admin Designer da mo type-10: `ApprovalWorkflowsV2Page.tsx:147` `TYPE_INT_CONTRACT_SIGNING_PLAN = 10`,
  `:162` `ContractSigningPlan: 10` (deep-link), route `fe-admin/src/App.tsx:76` `/system/approval-workflows-v2/:typeCode`.
- Upload multipart khuon: `fe-user/src/components/pe/PeDetailTabs.tsx:3323-3331` (FormData + header multipart)
  + download blob `:3352-3360`.

## MUC 1 — 4 file MOI ben fe-user (DONE, viet truoc roi cp sang fe-admin)

- `fe-user/src/types/khkk.ts` — enum-as-const 4 bo (Phase 1/2/3/98/99 · DossierItemKind 1/2/99 ·
  DossierItemStatus 1..4 · AttachmentPurpose 1/2/99) + badge full-class-literal (Pattern 14) +
  DTO (List/Line/DossierItem/Attachment/LevelOpinion/Detail) + input (Create/UpdateDraft/UpsertDossier)
  + `KhkkPeCandidateDto` (CO Y la TAP CON cua `PurchaseEvaluationListItemDto` BE tra — field thua bo qua runtime)
  + `PagedResult<T>`. Header file KHAI HOP DONG FE<->BE 12 endpoint (de BE lane doi chieu 1 cho).
- `fe-user/src/pages/khkk/KhkkListPage.tsx` — 6 KpiCard loc phase + o tim + bang 7 cot + phan trang;
  `?filter=` map ten-phase -> int (`FILTER_TO_PHASE`), `?view=deleted` -> endpoint rieng
  `/contract-signing-plans/deleted` (mirror PE S155) + an nut tao + row khong click.
  🔴 Chip loc chi doi STATE (khong ghi URL) => menu khong sang nham (bug UAT S155).
- `fe-user/src/pages/khkk/KhkkCreatePage.tsx` — picker PE nguon (list nut chon, hien maPhieu +
  tenGoiThau + du an/hang muc + chip winner names) + dropdown workflow `applicableType=10` loc
  `isUserSelectable` (khuon ProposalCreatePage:59-69, endpoint tra `{types:[{applicableType,history}]}`
  KHONG phai flat array) + GhiChu; POST -> navigate `/khkk/{id}`. FE KHONG gui lines (BE sinh tu winner).
- `fe-user/src/pages/khkk/KhkkDetailPage.tsx` — 4 section: Thong tin (sua GhiChu/HoSoLink khi
  DangSoanThao|TraLai) · bang Lines per-NCC READ-ONLY (PeReferenceAmount/Proposed/Approved formatVnd —
  W2 khong co endpoint sua line nen KHONG bia) · bang DossierItems chip 4 muc + upsert/delete dialog
  (chi mo khi draft) · Attachments upload multi/download blob/delete (mo MOI phase).
  🔴 KHONG panel trinh/duyet + KHONG banner cap duyet = W3.
