# Prompt: Employee Directory UX/UI Redesign ## Objective ปรับปรุงหน้า **Employee Directory (รายชื่อพนักงานทั้งหมด)** ให้ใช้งานได้ดีขึ้นสำหรับระบบ Training Management System (TMS) เป้าหมายคือ - ลดพื้นที่ว่างด้านบน - แสดงข้อมูลได้มากขึ้นโดยไม่ต้อง Scroll - จัดลำดับข้อมูลใหม่ให้อ่านง่าย - ปรับ Data Table ให้เป็น Enterprise UX - ยังคงใช้ Design System ปัจจุบัน (shadcn/ui + TailwindCSS) - ห้ามเปลี่ยน Business Logic - ห้ามเปลี่ยน API - ห้ามเปลี่ยน Permission - ห้ามแก้ไข Workflow --- # Requirements ## 1. Header ปรับ Header ใหม่ Desktop ``` Dashboard / Employee Directory รายชื่อพนักงานทั้งหมด เรียกดูข้อมูลพนักงานและข้อมูลชั่วโมงการอบรมรายบุคคล [+ สร้างรายชื่อพนักงาน] [Import รายชื่อพนักงาน] ``` ### Requirements - ลด Vertical Space - ปุ่มอยู่ด้านขวา - Responsive - Mobile ให้ปุ่มลงบรรทัดใหม่ --- ## 2. Search & Filter Toolbar เปลี่ยน Toolbar ใหม่ Desktop ``` [ Search................................ ] [ บริษัท ▼ ] [ ฝ่าย ▼ ] [ สถานะ ▼ ] [ รีเซ็ตตัวกรอง ] ``` ### Search Placeholder ``` ค้นหารหัสพนักงาน ชื่อพนักงาน... ``` Search Width Desktop ``` ประมาณ 420-520px ``` ### Filter แสดงในแถวเดียว ประกอบด้วย - Company - Department - Status ถ้ามี Filter อื่นอยู่แล้ว ให้คงไว้ ### Reset Filter เพิ่มปุ่ม ``` รีเซ็ตตัวกรอง ``` ใช้ Button Ghost --- ## 3. Remove View Button ตรวจสอบ ``` View ``` ด้านขวาของ Table ### กรณี ไม่มีการสลับ - Card View - Compact View - List View ให้ลบออก ### หากเป็น Column Visibility ให้เปลี่ยนข้อความเป็น ``` แสดงคอลัมน์ ``` --- ## 4. Summary Section เพิ่ม Summary Cards อยู่ระหว่าง Toolbar กับ Data Table Layout Desktop ``` ┌────────────┐ │ พนักงานทั้งหมด │ │ 1,254 คน │ └────────────┘ ┌────────────┐ │ อนุมัติแล้ว │ │ 950 รายการ │ └────────────┘ ┌────────────┐ │ รอตรวจสอบ │ │ 48 รายการ │ └────────────┘ ┌────────────┐ │ ชั่วโมงรวม │ │ 28,560 ชม. │ └────────────┘ ``` Requirements - ใช้ Card ขนาดเล็ก - Border ตาม Design System - ไม่มี Shadow หนัก - Responsive Mobile 2 Columns --- ## 5. Data Table Header ปัจจุบัน Header มี 2 ชั้น ``` ชั่วโมงการอบรม อนุมัติแล้ว รอตรวจสอบ ไม่อนุมัติ รวม ``` ให้ปรับเหลือ ``` รหัสพนักงาน ชื่อพนักงาน อนุมัติแล้ว รอตรวจสอบ ไม่อนุมัติ รวมชั่วโมง จัดการ ``` ไม่ต้องมี Header ซ้อน --- ## 6. Column Order กำหนดลำดับใหม่ ``` รหัสพนักงาน ชื่อพนักงาน อนุมัติแล้ว รอตรวจสอบ ไม่อนุมัติ รวมชั่วโมง จัดการ ``` --- ## 7. Employee Information ภายใน Column ชื่อพนักงาน แสดง ``` สมชาย ใจดี somchai@example.com ``` Email ใช้ ``` text-xs text-muted-foreground ``` ### Data Consistency ห้ามบาง Row แสดง Company บาง Row แสดง Email ต้องเป็นรูปแบบเดียวกันทั้งระบบ --- ## 8. Numeric Columns Column - Approved - Pending - Rejected - Total ใช้ ``` tabular-nums text-right ``` ### Total Column ให้เด่นกว่า Column อื่น เช่น ``` font-semibold ``` --- ## 9. Action Column ปุ่ม ``` ⋮ ``` เพิ่มพื้นที่ ประมาณ ``` 56-64px ``` เพื่อให้กดง่าย --- ## 10. Table Row Hover เพิ่ม Hover ``` hover:bg-muted/30 ``` ไม่เปลี่ยนสีแรง --- ## 11. Sticky Header หาก Data Table รองรับ ให้เปิด Sticky Header เพื่อให้ Scroll แล้ว Header ไม่หาย --- ## 12. Responsive Desktop แสดง Table เต็ม Mobile ใช้ ``` overflow-x-auto ``` Table ``` min-width ``` เพื่อไม่ให้ข้อมูลพัง --- ## 13. Pagination ปรับ Footer จาก ``` ทั้งหมด 1,254 รายการ จำนวนต่อหน้า หน้า 1 จาก 126 ``` เป็น ``` 1,254 รายการ 10 ต่อหน้า 1 / 126 ``` หาก Design System รองรับ --- ## 14. Spacing ลด Margin ระหว่าง Header Toolbar Summary Table ให้ข้อมูลอยู่เหนือ Fold มากขึ้น --- ## 15. Accessibility ตรวจสอบ - Button - Search - Select - Action Menu ให้มี aria-label ครบถ้วน --- ## 16. Performance ห้าม - Fetch ใหม่โดยไม่จำเป็น - Render ใหม่ทั้ง Table - ทำให้ Pagination ช้าลง --- ## 17. Business Logic ห้ามแก้ไข - API - Query - Mutation - Validation - Permission - Role - Authorization - Pagination Logic - Search Logic - Filter Logic ให้ปรับเฉพาะ UX/UI --- # UI Style Guide ใช้ Design System เดิมทั้งหมด - shadcn/ui - TailwindCSS - Card - Button - Badge - Input - Select - DropdownMenu สี ใช้ Theme เดิม ห้าม Hardcode สี Spacing ใช้ Tailwind Spacing เดิมของระบบ Typography ใช้ Typography เดิม --- # Files ตรวจสอบและแก้ไขเฉพาะไฟล์ที่เกี่ยวข้อง เช่น - Employee Directory Page - Employee Table - Toolbar - Header - Summary Card - Pagination - Columns หากสามารถแยก Component ได้ ให้แยก Component เช่น ``` EmployeeDirectoryHeader EmployeeDirectoryToolbar EmployeeDirectorySummary EmployeeDirectoryTable ``` --- # Testing ตรวจสอบ - Desktop - Tablet - Mobile ตรวจสอบ - Search - Filter - Pagination - Sorting - Action Menu ว่ายังทำงานได้เหมือนเดิม --- # Deliverables เมื่อดำเนินการเสร็จ สร้างเอกสาร ``` docs/employee-directory-ui-improvement-report.md ``` ประกอบด้วย ## 1. Files Changed ระบุไฟล์ทั้งหมด --- ## 2. UI Changes อธิบาย ก่อน หลัง --- ## 3. Responsive Result Desktop Tablet Mobile --- ## 4. Accessibility สิ่งที่ปรับปรุง --- ## 5. Performance มีผลกระทบหรือไม่ --- ## 6. Screens Reviewed ระบุหน้าที่ตรวจสอบ --- ## 7. Remaining Improvements รายการที่แนะนำในอนาคต เช่น - Sticky First Column - Column Visibility - Export CSV - Saved Filters - KPI Dashboard - Skeleton Loading - Empty State - Bulk Actions --- # Success Criteria ถือว่างานเสร็จเมื่อ - Header ใหม่ใช้งานได้ - Toolbar ใหม่ใช้งานได้ - Summary Cards แสดงผลถูกต้อง - Data Table อ่านง่ายขึ้น - Responsive สมบูรณ์ - ไม่มี Regression - TypeScript ไม่มี Error - ESLint ผ่าน - Build ผ่าน - Report ถูกสร้างเรียบร้อย