# Headway Design — component chung Nguồn chuẩn UI dùng chung nhiều service (Hiring, Pricing, …). Public browse: https://design.headway.com.vn (edge → `/srv/headway_design` :5574). ## Không đưa vào đây - Màn/view nghiệp vụ (CandidatesView, PricingSeaportMaster, CreditTerm…) - Token/brand riêng service (chỉ để file `*-example.css` tham khảo) ## Components (`components/`) | File | Nguồn gốc | Ghi chú | |------|-----------|---------| | HwAppShell.vue | Pricing | Shell props: navItems, menus, module… | | HwNavPill.vue | Pricing | | | HwMegaMenu.vue | Pricing | | | HwIcon.vue | Pricing | | | HwMistListChrome.vue | Pricing | Breadcrumb + H1 + toolbar | | HwDataTable.vue | Pricing | Bảng Port Master / mist list | | HwTablePagination.vue | Pricing | | | HwFilterSelect.vue | Pricing | | | HwRowMenu.vue | Pricing | | | HwDateField.vue | Pricing | | | HwLoader.vue | Hiring | | | HwPageTools.vue | Hiring | | | HwTopNav.vue | Hiring | Topnav kiểu Hiring (legacy) | | ConfirmDialog.vue | Hiring | Modal xác nhận | ## Variants - `variants/hiring/HwDataTable.vue` — bảng Hiring cũ (khác Pricing) - `components/HwDateField.hiring.vue` — date Hiring ## CSS / JS / lib - `css/hw-*.css` từ Hiring chrome + `hw-appshell.css` / `hw-pm-table.css` / `hw-mist-table.css` từ Pricing - `js/hw-scrollbar.js`, `lib/hw-ui-data.js`, `composables/useHwPagination.js` ## Static | File | Ghi chú | |------|---------| | `static/404.html` | Trang 404 chung Headway (logo + DM Sans). Chữ: *Không tìm thấy trang* / *Đường dẫn này không có trên Headway.* Nút về `/`. | Rải tay vào service (không qua `design-bootstrap`): copy `static/404.html` → `public/404.html` (hoặc nginx public), rồi gắn `sendFile` / `error_page 404` / Apache `ErrorDocument`. Consumer hiện tại (trừ CRM v1): Hiring, Tools, Pricing, Test, Sale, CS, Admin, Accounting, Meet, User, Auth (+ edge login catch-all). ## Cách dùng 1. Sửa tại `/srv/headway_design` (stack `headway_design`) — không mirror máy control. 2. Rải vào service: `bin/hwctl code design-bootstrap --dest /srv//src --brand '…'`. 3. Build/restart service đó. 4. Kiểm tra kit: `bin/hwctl code design-sync`. 5. Đổi 404 chung → sửa `static/404.html` → copy lại các `public/404.html` consumer → restart/reload nếu cần. Service chỉ truyền props/brand; không hardcode tên service trong kit.