feat(web): listings page — ticker-style DataTable với toggle card view

Tạo mới trang /listings dạng bảng ticker-style theo spec TEC-3034.

- DataTable compact (row 36px, sticky header, alternating rows)
- Cột: #, Mã (GG-xxx), Quận, Loại, Giá, Δ30d, DT m², KL/Views
- Sortable theo Giá, Δ30d, DT m², KL/Views
- Filter inline: Loại giao dịch, Loại BĐS, Quận, Khoảng giá
- Toggle view: Table (default) ↔ Card grid (legacy component cũ)
- Pagination restyle compact, giữ nguyên API params
- Click row → navigate to detail page
- Dùng DataTable + PriceDelta từ @/components/design-system

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-21 01:31:22 +07:00
parent 310ff7bb3e
commit 9bb4c42f84
21 changed files with 1623 additions and 223 deletions

View File

@@ -29,7 +29,7 @@
"typecheck": "turbo run typecheck",
"format": "prettier --write .",
"format:check": "prettier --check .",
"dep-cruise": "depcruise src/ apps/ --config .dependency-cruiser.cjs",
"dep-cruise": "depcruise apps/ libs/ --config .dependency-cruiser.cjs",
"db:generate": "prisma generate --config prisma/prisma.config.ts",
"db:migrate:dev": "prisma migrate dev --config prisma/prisma.config.ts",
"db:migrate:deploy": "prisma migrate deploy --config prisma/prisma.config.ts",