pqhuy1987 5a89dd2188 [CLAUDE] FE-Admin: PE InfoTab inline edit Section 1 + PeListPanel pencil edit hover
User feedback 2026-05-07: muốn thêm nút edit kế bên row trong Panel 1, click →
Panel 2 sáng nội dung Section 1 lên cho user sửa header inline (KHÔNG cần đi
"Sửa header" page). Cũng muốn create new interface gần giống detail view
sectioned (defer cho chunk sau, hoặc keep PeHeaderForm nếu user OK).

Implementation:
  ~ PeDetailTabs.tsx
    - InfoTab thêm prop `readOnly` + `autoEdit` (trigger edit mode tự động khi
      mount nếu URL ?editHeader=1)
    - canEdit = !readOnly && isDraft (DangSoanThao):
      → display mode: hiển thị FormRow + button "✎ Sửa" góc trên phải Section 1
      → editing mode (click Sửa hoặc autoEdit): card border brand-200 + 4 input
        (Tên * / Dự án disabled / Địa điểm / Mô tả / Payment) + nút Lưu/Hủy
    - Save: PUT /pe/:id full payload (current ev values + new editable fields).
      onSuccess: invalidate ['pe-detail', 'pe-list'] + setEditing(false)
    - PeDetailTabs prop `autoEditHeader` mới — pass-through xuống InfoTab
  ~ PeListPanel.tsx
    - Thêm prop `onEditClick?: (id) => void`
    - Pencil icon (lucide) absolute right-2 top-2 trong mỗi <li>, opacity-0
      group-hover:opacity-100 — chỉ hiện khi user hover row + onEditClick set
    - Click → trigger onEditClick(id) callback (different from row click)
  ~ PurchaseEvaluationWorkspacePage.tsx
    - Đọc URL ?editHeader=1 → pass autoEditHeader xuống PeDetailTabs
    - PeListPanel onEditClick → setParams({ id, mode: null, editHeader: '1' })
    - onSelect (click row thường) → editHeader: null (clear flag)
    - onBack → clear editHeader

Verify: npm run build fe-admin pass · 0 TS error.

Pending: workspace "new" mode wrap PeHeaderForm trong sectioned layout giống
detail view (defer — user có thể chấp nhận PeHeaderForm hiện tại nếu OK).

Next: Chunk 2 fe-user mirror.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 14:55:49 +07:00

SOLUTION_ERP

Hệ thống quản lý Hợp đồng Nhà cung cấp / Thầu phụ / Tổ đội cho Công ty TNHH Xây dựng Solutions.

📘 AI context: CLAUDE.md (pointer) → docs/CLAUDE.md (full)

Quick start (dev)

Yêu cầu: .NET 10 SDK, Node 20+, SQL Server (local hoặc qua Docker).

# 1. DB — chạy SQL Server qua Docker (nếu chưa có local)
docker compose up -d

# 2. Backend — migration + run Api (port 5443)
dotnet ef database update --project src/Backend/SolutionErp.Infrastructure --startup-project src/Backend/SolutionErp.Api
dotnet run --project src/Backend/SolutionErp.Api

# 3. Frontend admin (port 8082) — terminal mới
cd fe-admin
npm install
npm run dev

# 4. Frontend user (port 8080) — terminal mới
cd fe-user
npm install
npm run dev

Admin mặc định (sẽ seed sau Phase 1): admin@solutionerp.local / Admin@123456

Architecture

fe-admin (:8082)          fe-user (:8080)
       │                        │
       └────── /api proxy ──────┘
                  ▼
         SolutionErp.Api (:5443)
                  │
   ┌──────────────┼──────────────┐
   ▼              ▼              ▼
 Application   Domain      Infrastructure ── SQL Server

Tech stack

  • Backend: .NET 10 + Clean Architecture + CQRS (MediatR) + FluentValidation + AutoMapper + EF Core + ASP.NET Identity + JWT
  • Frontend: React 18 + Vite + TypeScript + Tailwind + shadcn/ui + TanStack Query
  • DB: SQL Server 2022
  • Deploy: Windows Server + IIS

Roadmap

Phase Tuần Focus
0 Draft T1 Scaffold, parse FORM + QUY_TRINH
1 Alpha Core T2-4 Auth, Permission, CRUD master
2 Form Engine T5-6 Render template docx/xlsx
3 Workflow T7-9 State machine 9 phase
4 Report + Polish T10-11 Dashboard + Excel export
5 Production T12-13 CI/CD IIS, UAT, go-live

Chi tiết ở docs/changelog/migration-todos.md.

License

Proprietary — Công ty TNHH Xây dựng Solutions.

Description
H? th?ng qu?n l� H?p d?ng NCC/Th?u ph?/T? d?i � .NET 10 Clean Arch + 2 React FE
Readme 8.6 MiB
Languages
C# 55%
TypeScript 42.7%
PowerShell 1.3%
JavaScript 0.3%
CSS 0.3%
Other 0.3%