wal: flush 20260730T0911

This commit is contained in:
pqhuy1987
2026-07-30 09:11:32 +07:00
parent 2554845b7f
commit 2ac5fe67dc
4 changed files with 100 additions and 12 deletions

View File

@ -0,0 +1,24 @@
# run: 2026-07-30-S162-cay-4-folder-gd
goal: Lệnh anh 30-07 sáng (mid-turn, kèm screenshot khoanh đỏ dải 4 GĐ → cây): "Tạo folder: Duyệt NCC / Kế hoạch Hợp đồng. / Duyệt Hợp đồng / Hợp đồng cứng." AskUser chốt 2 quyết: (1) folder đặt DƯỚI TỪNG GÓI THẦU · (2) áp CẢ các trang GĐ khác.
## Spec contract (lead-defined literal)
- Nhãn folder VERBATIM anh gõ: "Duyệt NCC" · "Kế hoạch Hợp đồng" · "Duyệt Hợp đồng" · "Hợp đồng cứng" (folder GĐ2 ≠ nhãn strip "Kế hoạch ký kết HĐ" — CỐ Ý, lời-mới-nhất-thắng; KHÔNG đổi strip/menu).
- Vị trí: trong cây `yearGroups → projects → workItems` của [PurchaseEvaluationsListPage.tsx](../../../fe-user/src/pages/pe/PurchaseEvaluationsListPage.tsx) (dựng nhóm tại `:210-255`, key gói = `(projectId, workItemId ?? '__no_workitem__')` `:228`) — chèn cấp folder GĐ giữa WorkItemGroup và items.
- Nội dung folder: GĐ1 = PE phiếu (render leaf CŨ, chỉ re-parent) · GĐ2 = KHKK match `khkk.purchaseEvaluationId ∈ PE-ids của gói` (KhkkListItemDto `khkk.ts:106+`, leaf = maKeHoach + phase chip, click → `/khkk/:id`) · GĐ3 = HĐ qua `pe.contractId` (purchaseEvaluation.ts list DTO, click → `/contracts/:id`) · GĐ4 = HĐ đó với `hasSealedCopy === true` (contracts.ts:100, click → `/hard-copies`).
- Đếm count per folder; folder rỗng = muted + chip "SẮP" (tái dùng token màu dải strip ARC-2); folder GĐ của TRANG hiện tại mặc định expanded, 3 folder kia collapsed.
- Search/filter đang active ⇒ chỉ hiện folder có nội dung khớp (không 4 folder rỗng × mọi gói); không filter ⇒ đủ 4.
- Permission 2 tầng (bài S118 #82): usePermission key Khkk/Ct trước khi fetch — không quyền ⇒ folder khoá + SẮP, KHÔNG call API; fetch lỗi ⇒ "—", không vỡ cây.
- Trang áp dụng đợt-1: PE list (GĐ1) + [KhkkListPage.tsx](../../../fe-user/src/pages/khkk/KhkkListPage.tsx) (GĐ2, bảng giữ bên phải, cây panel trái) + [HardCopiesPage.tsx](../../../fe-user/src/pages/contracts/HardCopiesPage.tsx) (GĐ4) — fe-user; fe-admin mirror CHỈ khi trang twin cùng khuôn (HardCopies ×2 SHA-pair W7). Trang GĐ3 (cụm HĐ 7-loại 6-leaf) = đợt-2 sau khi anh xem prod.
- CẤM: sửa BE · menu/seeder (#84) · strip/labels hiện hữu · default export · logic duyệt phiếu.
## taskList snapshot
- T1 designer: component chung PipelineStageFolders + gắn 3 trang fe-user (+admin twin) + build gate
- T2 reviewer: adversarial diff vs contract trên
- T3 cicd-monitor: post-push verify (background)
## Stages
- [ ] T1 designer → sub-frontend-designer-0.md
- [ ] T2 reviewer → sub-reviewer-1.md
- [ ] T3 ship + cicd → ship-synthesis.md