260324:1439 Refactor RFA :correct ci-deploy #03
This commit is contained in:
@@ -1,22 +1,25 @@
|
||||
# 🖼️ UI/UX Wireframes & Screen Inventory — LCBP3-DMS v1.8.0
|
||||
# 🖼️ UI/UX Wireframes & Screen Inventory — LCBP3-DMS v1.8.1
|
||||
|
||||
---
|
||||
|
||||
title: 'UI/UX Screen Inventory, Navigation Map, and Wireframes'
|
||||
version: 1.0.0
|
||||
status: DRAFT
|
||||
version: 1.8.1
|
||||
status: updated
|
||||
owner: Nattanin Peancharoen (Product Owner)
|
||||
last_updated: 2026-03-11
|
||||
last_updated: 2026-03-24
|
||||
related:
|
||||
|
||||
- specs/01-Requirements/01-02-business-rules/01-02-03-ui-ux-rules.md
|
||||
- specs/01-Requirements/01-04-user-stories.md
|
||||
- specs/01-Requirements/01-05-acceptance-criteria.md
|
||||
- specs/01-Requirements/01-06-edge-cases-and-rules.md
|
||||
- specs/06-Decision-Records/ADR-012-ui-components.md
|
||||
- specs/06-Decision-Records/ADR-019-hybrid-identifier-strategy.md
|
||||
|
||||
---
|
||||
|
||||
> [!NOTE]
|
||||
> Wireframes ในเอกสารนี้เป็น **Low-fidelity ASCII/Text Wireframes** เพื่อสื่อสาร Layout และ Component Hierarchy
|
||||
> Wireframes ในเอกสารนี้เป็น **Low-fidelity ASCII/Text Wireframes** เพื่อสื่อสาร Layout และ Component Hierarchy
|
||||
> สำหรับ High-fidelity Design ให้ใช้ Figma หรือ Shadcn/UI Components ตาม ADR-012
|
||||
|
||||
---
|
||||
@@ -36,27 +39,29 @@ related:
|
||||
│
|
||||
├── /correspondences → รายการ Correspondence
|
||||
│ ├── /correspondences/new → สร้างใหม่
|
||||
│ └── /correspondences/:id → รายละเอียด + Workflow
|
||||
│ └── /correspondences/:uuid → รายละเอียด + Workflow
|
||||
│
|
||||
├── /rfas → รายการ RFA
|
||||
│ ├── /rfas/new → สร้างใหม่
|
||||
│ └── /rfas/:id → รายละเอียด + Workflow
|
||||
│ ├── /rfas/:uuid → รายละเอียด + Workflow
|
||||
│ ├── /rfas/:uuid/edit → แก้ไข Draft RFA (ใหม่!)
|
||||
│ └── /rfas/search → ค้นหาและกรอง RFA (ใหม่!)
|
||||
│
|
||||
├── /transmittals → รายการ Transmittal
|
||||
│ ├── /transmittals/new → สร้างใหม่ (รวม RFAs)
|
||||
│ └── /transmittals/:id → รายละเอียด
|
||||
│ └── /transmittals/:uuid → รายละเอียด
|
||||
│
|
||||
├── /drawings → Drawing Management
|
||||
│ ├── /drawings/contract → Contract Drawings
|
||||
│ │ ├── /drawings/contract/new → Upload ใหม่
|
||||
│ │ └── /drawings/contract/:id → รายละเอียด
|
||||
│ │ └── /drawings/contract/:uuid → รายละเอียด
|
||||
│ └── /drawings/shop → Shop Drawings
|
||||
│ ├── /drawings/shop/new → Upload ใหม่
|
||||
│ └── /drawings/shop/:id → รายละเอียด + RFA History
|
||||
│ └── /drawings/shop/:uuid → รายละเอียด + RFA History
|
||||
│
|
||||
├── /circulations → Circulation Sheets (Internal)
|
||||
│ ├── /circulations/new → สร้างใหม่
|
||||
│ └── /circulations/:id → รายละเอียด + Assignees
|
||||
│ └── /circulations/:uuid → รายละเอียด + Assignees
|
||||
│
|
||||
├── /search → Full-text Search
|
||||
│
|
||||
@@ -122,13 +127,16 @@ Mobile: Sidebar → Collapsible Hamburger Drawer (ตาม UI-Rule 5.11)
|
||||
| SCR-003 | `/dashboard` | Dashboard | ทุก Role | 🔴 Must |
|
||||
| SCR-004 | `/correspondences` | Correspondence List | Doc Control | 🔴 Must |
|
||||
| SCR-005 | `/correspondences/new` | Create Correspondence | Doc Control | 🔴 Must |
|
||||
| SCR-006 | `/correspondences/:id` | Correspondence Detail + Workflow | ทุก Role | 🔴 Must |
|
||||
| SCR-006 | `/correspondences/:uuid` | Correspondence Detail + Workflow | ทุก Role | 🔴 Must |
|
||||
| SCR-007 | `/rfas` | RFA List | Doc Control | 🔴 Must |
|
||||
| SCR-008 | `/rfas/new` | Create RFA | Doc Control | 🔴 Must |
|
||||
| SCR-009 | `/rfas/:id` | RFA Detail + Workflow | ทุก Role | 🔴 Must |
|
||||
| SCR-009 | `/rfas/:uuid` | RFA Detail + Workflow | ทุก Role | 🔴 Must |
|
||||
| SCR-008b | `/rfas/:uuid/edit` | Edit Draft RFA | Doc Control | 🔴 Must |
|
||||
| SCR-008c | — (action modal) | Cancel Draft RFA | Doc Control | 🔴 Must |
|
||||
| SCR-008d | `/rfas/search` | RFA Search & Filter | Doc Control | 🔴 Must |
|
||||
| SCR-010 | `/transmittals` | Transmittal List | Doc Control | 🟠 Should |
|
||||
| SCR-011 | `/transmittals/new` | Create Transmittal | Doc Control | 🟠 Should |
|
||||
| SCR-012 | `/transmittals/:id` | Transmittal Detail | ทุก Role | 🟠 Should |
|
||||
| SCR-012 | `/transmittals/:uuid` | Transmittal Detail | ทุก Role | 🟠 Should |
|
||||
| SCR-013 | `/drawings/contract` | Contract Drawing List | Doc Control | 🟠 Should |
|
||||
| SCR-014 | `/drawings/shop` | Shop Drawing List | Doc Control | 🟠 Should |
|
||||
| SCR-015 | `/drawings/shop/:id` | Shop Drawing Detail | ทุก Role | 🟠 Should |
|
||||
@@ -144,7 +152,7 @@ Mobile: Sidebar → Collapsible Hamburger Drawer (ตาม UI-Rule 5.11)
|
||||
| SCR-025 | `/admin/doc-numbering` | Document Number Config | Superadmin | 🟠 Should |
|
||||
| SCR-026 | `/admin/audit-logs` | Audit Log Viewer | Org Admin+ | 🟠 Should |
|
||||
|
||||
**รวม:** 26 หน้า (9 Must / 13 Should / 1 Could)
|
||||
**รวม:** 29 หน้า (12 Must / 14 Should / 1 Could)
|
||||
|
||||
---
|
||||
|
||||
@@ -404,6 +412,122 @@ Workflow Step Popup (คลิก Step ที่ผ่านแล้ว):
|
||||
|
||||
---
|
||||
|
||||
### SCR-008b: Edit Draft RFA
|
||||
|
||||
```
|
||||
┌─ แก้ไข RFA (Draft) ───────────────────────────────────────────────┐
|
||||
│ LCBP3-RFA-STR-0042 | สถานะ: 🟡 DRAFT | แก้ไขล่าสุด: 13:28:45 │
|
||||
│ │
|
||||
│ ⚠️ สามารถแก้ไขได้เฉพาะในสถานะ Draft เท่านั้น │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ Subject* │ │
|
||||
│ │ [ขออนุมัติแก้ไขแบบ Shop Drawing ส่วน Foundation...] │ │
|
||||
│ │ │ │
|
||||
│ │ Body/Description* │ │
|
||||
│ │ [เนื่องจากมีการเปลี่ยนแปลงรายละเอียด Connection Plate...] │ │
|
||||
│ │ │ │
|
||||
│ │ Remarks │ │
|
||||
│ │ [_____________________________________________] │ │
|
||||
│ │ │ │
|
||||
│ │ 📋 RFA Details (JSON Schema v1) — ไม่สามารถแก้ไขได้ │ │
|
||||
│ │ Drawing Count: 1 | Discipline: Structural | Due: 20 มี.ค. │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ 📎 Shop Drawing (ไม่สามารถเปลี่ยนได้): │
|
||||
│ ☑️ CD-STR-001-Foundation-RevA.pdf (2.3MB) ✅ Scan OK │
|
||||
│ │
|
||||
│ [บันทึก Draft] [Submit →] [ยกเลิก] │
|
||||
└─────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Validation:
|
||||
- ถ้าสถานะ ≠ DRAFT → Redirect ไปหน้า detail พร้อม error toast
|
||||
- Shop Drawing Revision ไม่สามารถเปลี่ยน (EC-RFA-001)
|
||||
- Auto-save ทุก 2 วินาที
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### SCR-008c: Cancel Draft RFA (Modal)
|
||||
|
||||
```
|
||||
┌─ ยกเลิก RFA (Draft) ───────────────────────────────────────────────┐
|
||||
│ LCBP3-RFA-STR-0042 | สถานะ: 🟡 DRAFT │
|
||||
│ │
|
||||
│ ⚠️ การยกเลิกจะทำให้ Shop Drawing Revision นี้สามารถสร้าง RFA ใหม่ได้ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ เหตุผลการยกเลิก* │ │
|
||||
│ │ [_____________________________________________] │ │
|
||||
│ │ │ │
|
||||
│ │ เลือกเหตุผล: │ │
|
||||
│ │ ○ ข้อมูลไม่ครบถ้วย │ │
|
||||
│ │ ○ แก้ไขข้อมูลผิดพลาดหลายครั้ง │ │
|
||||
│ │ ○ ไม่ต้องการส่งออกแล้ว │ │
|
||||
│ │ ○ อื่นๆ (ระบุ) │ │
|
||||
│ │ │ │
|
||||
│ │ [คำอธิบายเพิ่มเติม...] │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ 🔔 ผู้ที่เกี่ยวข้องจะได้รับแจ้งเตือน: │
|
||||
│ - Document Control ที่สร้าง RFA (Email + In-App) │
|
||||
│ - Admin ขององค์กร (ถ้ามีการตั้งค่า) │
|
||||
│ │
|
||||
│ [← กลับ] [✅ ยืนยันการยกเลิก] │
|
||||
└─────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Post-cancel Flow:
|
||||
- RFA status → CANCELLED
|
||||
- Shop Drawing Revision.available → true
|
||||
- Audit Log: CANCELLED + reason + user + timestamp
|
||||
- Redirect ไปหน้า RFA List พร้อม success toast
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### SCR-008d: RFA Search & Filter
|
||||
|
||||
```
|
||||
┌─ ค้นหาและกรอง RFA ───────────────────────────────────────────────────┐
|
||||
│ 🔍 [ค้นหา RFA...] [ค้นหา] [ตั้งค่ากรอง] │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 📁 Project: [LCBP3 ▼] │ │
|
||||
│ │ 📊 Status: [ทั้งหมด ▼] 🟡DRAFT 🔵SUBMITTED 🔄FAP ✅APPROVED ❌REJECTED │ │
|
||||
│ │ 📅 Revision: [ทั้งหมด ▼] CURRENT OLD ALL │ │
|
||||
│ │ 🏢 Originator: [ทั้งหมด ▼] [สค.] [กทท.] [ผรม.] [คคง.] │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ พบ 15 รายการ (แสดงตามสิทธิ์ของคุณ) │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ ☐ │ เลขที่ │ Subject | สถานะ | วันที่ │ │ │
|
||||
│ ├──┼─────────────┼──────────────────────┼────────┼──────────┤ │
|
||||
│ │ ☐ │ RFA-STR-0042 │ Foundation Plan Rev.A│ 🟡DRAFT │ 10 มี.ค. │[✏️]│ │
|
||||
│ │ ☐ │ RFA-STR-0043 │ Column Detail Rev.B │ 🔵SUBMIT│ 12 มี.ค. │[👁️]│ │
|
||||
│ │ ☐ │ RFA-STR-0041 │ Beam Design Rev.A │ ✅APPROV│ 08 มี.ค. │[👁️]│ │
|
||||
│ │ ☐ │ RFA-STR-0040 │ Slab Detail Rev.A | ❌REJECT│ 05 มี.ค. │[✏️]│ │
|
||||
│ └────────┴─────────────┴──────────────────────┴────────┴──────────┘ │
|
||||
│ │
|
||||
│ [< 1 2 >] แสดง 10/15 [ส่งออก Excel] │
|
||||
│ │
|
||||
│ ⚠️ หมายเหตุ RBAC: │
|
||||
│ - DRAFT → เห็นเฉพาะ originator organization │
|
||||
│ - สถานะอื่น → เห็นตาม project/contract scope │
|
||||
└─────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Advanced Filters (Collapsible):
|
||||
┌─ กรองขั้นสูง ───────────────────────────────────────────────────┐
|
||||
│ 📅 วันที่สร้าง: [____] ถึง [____] │
|
||||
│ 👤 ผู้สร้าง: [ค้นหา...] │
|
||||
│ 📝 มีคำว่า: [ค้นหา...] │
|
||||
│ 🏷️ Tags: [foundation] [column] [beam] │
|
||||
│ [ค้นหา] [ล้าง] │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### SCR-009: RFA Detail + Workflow
|
||||
|
||||
```
|
||||
@@ -548,8 +672,9 @@ User Edit Drawer (Slide in from right):
|
||||
/* Status Colors */
|
||||
--status-draft: hsl(48, 96%, 53%); /* Yellow */
|
||||
--status-submitted: hsl(217, 91%, 60%); /* Blue */
|
||||
--status-review: hsl(24, 95%, 53%); /* Orange */
|
||||
--status-fap: hsl(24, 95%, 53%); /* Orange */
|
||||
--status-approved: hsl(142, 71%, 45%); /* Green */
|
||||
--status-approved-wc: hsl(142, 71%, 35%); /* Green Dark */
|
||||
--status-rejected: hsl(0, 84%, 60%); /* Red */
|
||||
--status-cancelled: hsl(215, 14%, 55%); /* Gray */
|
||||
--status-overdue: hsl(0, 84%, 60%); /* Red (same as rejected) */
|
||||
@@ -579,6 +704,8 @@ font-family: 'Inter', 'Noto Sans Thai', sans-serif;
|
||||
| Component | Default | Hover | Active | Disabled | Error |
|
||||
| -------------- | ---------------- | ---------------- | ------------------- | --------------- | -------------- |
|
||||
| Button Primary | bg-primary | bg-primary-hover | scale-95 | opacity-50 | — |
|
||||
| Button Secondary| bg-surface | bg-muted | scale-95 | opacity-50 | — |
|
||||
| Button Danger | bg-red-500 | bg-red-600 | scale-95 | opacity-50 | — |
|
||||
| Input | border-gray-300 | border-primary | border-primary ring | border-gray-200 | border-red-500 |
|
||||
| Table Row | bg-surface | bg-muted | — | opacity-60 | bg-red-50 |
|
||||
| Badge | per status color | — | — | — | — |
|
||||
@@ -630,8 +757,9 @@ User พิมพ์ใน Form → debounce 2 วินาที → บัน
|
||||
|
||||
## 📝 Document Control
|
||||
|
||||
- **Version:** 1.0.0 | **Status:** DRAFT
|
||||
- **Created:** 2026-03-11 | **Owner:** Nattanin Peancharoen
|
||||
- **Version:** 1.8.1 | **Status:** updated
|
||||
- **Created:** 2026-03-11 | **Updated:** 2026-03-24 | **Owner:** Nattanin Peancharoen
|
||||
- **Changes:** Added SCR-008b~008d (Edit/Cancel/Search RFA), Updated routes to use UUID (ADR-019), Added new status colors and button variants, Sync with US-012a~012c and AC-RFA-007~009
|
||||
- **Next Step:** สร้าง High-fidelity Mockup ใน Figma ตามโครงสร้างนี้
|
||||
- **Figma Link:** [TBD — สร้างใน Figma Community หรือ Self-hosted Penpot]
|
||||
- **Classification:** Internal Use Only
|
||||
|
||||
Reference in New Issue
Block a user