# sub-investigator-codebase-invest-s171 — KHKK UI mirror PE (fable-real LỆNH-A) > ENGINE-ĐẮT single top-model deep-pass. PROPOSE-ONLY. Mọi khẳng-định kèm `file:line`. > Đường-dẫn tương-đối gốc `fe-admin/src/` trừ khi ghi rõ khác. fe-user SHA256-identical (lead đã đo 4/4). ## §0. Hai đính-chính vào Ground-truth của lead (đọc TRƯỚC §1) **Đ-1 — Panel 1 của PE KHÔNG phải `PeListPanel`.** Lead ghi "PE panel 1/2/3 = `PeListPanel` · `PeDetailTabs` · `PeWorkflowPanel`". Đo lại: `PurchaseEvaluationsListPage.tsx` **không import** `PeListPanel`; panel 1 được viết **INLINE** trong chính file đó (`:399-639`). `PeListPanel` chỉ có **một** call-site duy nhất: `pages/pe/PurchaseEvaluationWorkspacePage.tsx:84` (màn workspace 2-panel, `grid-cols-[260px_1fr]` `:80`). ⇒ Hệ quả cho §5: **không có component list dùng-lại được** để KHKK nhặt. Muốn "giống" panel 1 thì phải TÁCH nó ra trước, hoặc chép khuôn. **Đ-2 — Đã tồn tại một bản mirror PE 3-panel KHÁC, mới hơn: GĐ3 (Hợp đồng).** `pages/contracts/ContractsListPage.tsx:125` = `grid flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[340px_1fr_360px]`, header `:106-123` sao y PE, Panel 2 = `ContractDetailContent`, Panel 3 = `WorkflowHistoryPanel` (`components/contracts/`), và Panel 3 khi **chưa chọn** thì render `PipelineTreePanel currentStage={3}` (`:249`). ⇒ Đây là **tiền-lệ trong nhà, cùng chuỗi giai-đoạn, làm ở S168**. KHKK là giai-đoạn NẰM GIỮA GĐ1 (PE, 3-panel) và GĐ3 (HĐ, 3-panel) mà lại là trang-giấy-cuộn ⇒ nó là **mắt xích lệch duy nhất** của cả 4 giai-đoạn. Đây là lập-luận mạnh nhất ủng-hộ đề-bài owner, và nó **không nằm trong ảnh** — owner nhìn thấy triệu-chứng, cái này là nguyên-nhân. --- ## §1. Bản-đồ 3 panel PE (mẫu) ### 1.0 Khung trang (container) | Hạng-mục | Sự-thật | `file:line` | |---|---|---| | Root | `
` — trang CHIẾM TRỌN viewport, KHÔNG scroll body | `pages/pe/PurchaseEvaluationsListPage.tsx:381` | | Header | 1 dòng `
`: icon `ClipboardCheck` + `h1` tiêu-đề động + badge đếm `rounded-full bg-slate-100` | `:382-390` | | Tiêu-đề động | `headerTitle` đổi theo `deletedView`/`typeFilter`/`pendingMe` | `:289-293` | | Grid | `grid flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[400px_1fr_360px]` | `:397` | | URL-param lái toàn màn | `type` · `pendingMe` · `deleted` · `q` · `phase` · `awId` · `id` · `expand` | `:38-50` | | 2 query nuôi 3 panel | `list` (`['pe-list',{…}]`) + `detail` (`['pe-detail', selectedId]`, `enabled: !!selectedId`) | `:74-117` | 🔴 PE là **một trang duy nhất**; không có route detail riêng cho desktop. `PurchaseEvaluationDetailPage` (`:782-807`) chỉ là fallback fullpage **mobile** `/purchase-evaluations/:id`, và vẫn dựng đúng 2 component đó xếp dọc. ### 1.1 Panel 1 — LIST (trái, `400px`) `