เมนูหลักสำหรับการปฏิบัติงาน
หน้านี้อธิบายเมนูที่ driver เห็นจริงจาก src/config/menu.config.ts และพฤติกรรมหน้าแรกจาก src/views/home/index.tsx
เมนูที่มีจริงในระบบ
| เมนู | route | permission |
|---|---|---|
| หน้าแรก | /home | driver-dashboard:view |
| บันทึกการเติมน้ำมัน/ชาร์จไฟฟ้า | /fuel-record | driver-refuel-record:view |
| สมุดประจำรถ | /vehicle-log-book | driver-vehicle-record:view |
| บันทึกงาน Standby | /standby-work | driver-standby-record:view |
| รายได้ของฉัน | /income | driver-my-income:view |
หลักการแสดงเมนู
- เมนูทุกตัวถูกประกาศไว้ใน
menu.config.ts - ก่อนแสดงผลจริง ระบบจะกรองเมนูผ่าน
filterMenuByPermission - ถ้าบัญชีของคนขับไม่มี permission ของเมนูนั้น เมนูจะไม่แสดงใน sidebar
หน้าแรกของ driver ทำอะไรบ้าง
หน้า /home รวมข้อมูล 2 ส่วนหลัก
1. ข้อมูลโปรไฟล์ของคนขับ
ดึงจาก DriverContext ซึ่งเรียก /auth/me
ค่าที่หน้าใช้จริง:
fullNamevehicles[0].ownershipvehicles[0].vehicleType.namevehicles[0].vehicleCodephonevehicles[0].workArea.nameprofileImage
2. รายการเที่ยวรถของวันที่เลือก
ดึงจาก useTripRecord(selectedDate) ซึ่งเรียก GET /driver/trip-record
หน้าจอจะส่งวันที่จาก PeriodFilter ไปเป็น selectedDate
Logic สถานะเที่ยวรถในหน้าแรก
หน้า home ไม่ได้ใช้สถานะจาก backend ตรง ๆ อย่างเดียว แต่ map สถานะการ์ดใน UI เพิ่มจากเงื่อนไขดังนี้
| เงื่อนไข | สถานะที่แสดง |
|---|---|
isDraft === false | COMPLETED |
isDraft === true และเวลารอบรถผ่านไปแล้ว | PENDING |
isDraft === true และยังไม่ถึงเวลารอบรถ | SCHEDULED |
การคำนวณนี้ใช้:
tripRecord.datetripRecord.routeRound.time- เวลา current จาก
dayjs()
ลำดับการใช้งานที่แนะนำ
- เปิด
หน้าแรกเพื่อตรวจดูงานของวัน - เปิดรายละเอียดเที่ยวรถจากการ์ดงานที่ได้รับ
- ถ้ามี refuel หรือชาร์จไฟ ให้เข้า
บันทึกการเติมน้ำมัน/ชาร์จไฟฟ้า - ปิดวันด้วย
สมุดประจำรถ - ถ้ามีงานนอกตาราง ให้บันทึกผ่าน
บันทึกงาน Standby - ตรวจยอดที่
รายได้ของฉัน
การเข้าใช้งานระบบ
driver เข้าระบบผ่านหน้า login ที่ route / หรือ /login
- login page ใช้
GuestGuard - route หลักทั้งหมดใช้
AuthGuard - หลัง login สำเร็จ ระบบจะตรวจ
userType - ถ้าไม่ใช่
COMPANY_DRIVERหรือPARTNER_DRIVERระบบจะไม่ให้เข้าต่อ
การออกจากระบบ
- มีปุ่ม
ออกจากระบบอยู่ส่วนล่างของ sidebar - ถูก render ผ่าน
FooterMenuList
อ้างอิงโค้ด
atp30-tos-driver/src/config/menu.config.tsatp30-tos-driver/src/utils/filterMenuByPermission.tsatp30-tos-driver/src/routes/LoginRoutes.tsxatp30-tos-driver/src/routes/MainRoutes.tsxatp30-tos-driver/src/views/home/index.tsxatp30-tos-driver/src/contexts/DriverContext.tsxatp30-tos-driver/src/layout/MainLayout/MenuList/FooterMenuList.tsx