สมอง SML

คลังความรู้ / หน้าจอ Next.js

#frontend#hub#nextjs#overview

ภาพรวม Frontend ของ SML Ai Account (Frontend overview)

หน้าเว็บของ SML Ai Account เป็น Next.js 16 (App Router) + React 19 + Tailwind 4 build แบบ standalone; โค้ดจอบัญชีทั้งหมดอยู่ที่ frontend/account/ และใช้ตัวประกอบร่วม (layout / ui) จาก frontend/shared/. โน้ตนี้เป็นสารบัญ: บอกโครง route, วิธีที่หน้าจอเรียก backend และลิงก์ไปโน้ตรายหัวข้อทั้ง 19 เรื่อง (ขอบเขต: ไม่รวมโมดูล pos/wms/tms/procure/market/etax/crm ฯลฯ).

ทำงานอย่างไร

เทคโนโลยี

  • next ^16.3.1, react 19.2.1, react-dom 19.2.1, tailwindcss ^4, typescript ^5 (package.json:16-17,30-31); output: "standalone" (next.config.ts:4).
  • Next 16 ใช้ src/proxy.ts แทน middleware (proxy.ts:27).
  • alias ใน tsconfig.json (@/account/* บรรทัด 23, @/shared/* 36, @/components/* 44-46): @/account/* → account/*; @/components/* ชี้ account/* (เช่น @/components/admin/screens/X = account/admin/screens/X), @/components/layout/* → shared/layout/*, @/components/ui/* → shared/ui/* (รายละเอียดใน โครงหน้าเว็บและการนำทาง (App shell & routing)).

โครง route (frontend/src/app/)

Route ไฟล์ หน้าที่
/ page.tsx:8-12 redirect ไป /home (ส่ง ?open= ต่อให้ถ้ามี)
/login login/ เข้าสู่ระบบ → หน้าเข้าสู่ระบบและเลือกฐานข้อมูล (Login & select database)
/select-database select-database/ เลือกฐานข้อมูลหลัง login → หน้าเข้าสู่ระบบและเลือกฐานข้อมูล (Login & select database)
/home (app)/home/page.tsx พื้นที่ทำงานแบบหลายแท็บ (จอบัญชีทั้งหมดเปิดเป็นแท็บ) → พื้นที่ทำงานแบบแท็บ MDI และสิทธิ์จอ (TabWorkspace)
/admin/* (admin)/admin/* โซนผู้ดูแลระบบส่วนกลาง (mode==="admin" หรือผู้ชมสาธิต) → หน้าจอผู้ดูแลระบบส่วนกลาง (Admin Console)
/api/process, /api/query, /api/auth, /api/admin, /api/help api/*/route.ts ตัวส่งต่อไป Go backend → เส้นทาง API ฝั่ง Next.js ที่ส่งต่อไป Go backend (API proxy routes)

(ในโฟลเดอร์ src/app/ ยังมีโมดูลอื่น เช่น pos, wms, crm, ai ฯลฯ ซึ่งอยู่นอกขอบเขตโน้ตชุดนี้ จึงไม่ได้อ่าน)

หน้าจอเรียก backend อย่างไร (สองทาง)

  1. /api/query/* — เบราว์เซอร์ประกอบ SQL เอง (escape ด้วย escapeSql) แล้วส่งผ่าน query-client.ts; ใช้กับข้อมูลหลักและค้นหา → ตัวเรียก API และตัวประกอบ SQL ฝั่งเบราว์เซอร์ (api-client, query-client, sml-query-builder).
  2. /api/process/<กลุ่ม>/<action> — route ตรวจ whitelist แล้ว proxyToService("/api/v1/process/..."); ใช้กับงานที่มีกติกาธุรกิจ (บันทึกเอกสาร, รายงาน, ปิดงวด, ตรวจสต๊อก ฯลฯ) → เส้นทาง API ฝั่ง Next.js ที่ส่งต่อไป Go backend (API proxy routes), จอประมวลผลระบบและ POS (System Process Workbench & POS Setup).

สารบัญโน้ต frontend (19 เรื่อง)

กลุ่ม โน้ต เนื้อหา
โครงและความปลอดภัย โครงหน้าเว็บและการนำทาง (App shell & routing) route, proxy.ts, layout, keep-alive workspace, help/i18n
หน้าเข้าสู่ระบบและเลือกฐานข้อมูล (Login & select database) หน้า login / เลือกฐานข้อมูล
เซสชันและการยืนยันตัวตนฝั่ง frontend (Auth session & tokens) cookie เซสชัน, JWT, refresh
เส้นทาง API ฝั่ง Next.js ที่ส่งต่อไป Go backend (API proxy routes) route /api/* และ whitelist
ตัวเรียก API และตัวประกอบ SQL ฝั่งเบราว์เซอร์ (api-client, query-client, sml-query-builder) api-client, query-client, ตัวประกอบ SQL
ตัวเลข เงิน ภาษี และปี พ.ศ. ฝั่ง frontend (numeric.ts) ตัวเลข เงิน ภาษี ปี พ.ศ.
เมนูและพื้นที่ทำงาน ทะเบียนหน้าจอและโครงเมนู (Screen registry & smlMenu) screenRegistry, smlMenu
พื้นที่ทำงานแบบแท็บ MDI และสิทธิ์จอ (TabWorkspace) TabWorkspace, สิทธิ์จอ
ข้อมูลหลัก รายการจอข้อมูลหลักแบบตารางเดียว (IC_MASTER_CONFIGS) จอ master ตารางเดียว (IC_MASTER_CONFIGS)
จอข้อมูลหลักมาตรฐานและจอ master-detail (StandardMasterScreen / MasterDetailScreen) StandardMasterScreen, master-detail
ส่วนประกอบจอ ตารางรายการและหน้าต่างค้นหา (SmlDataList, SmlLookupModal, SmlLookupInput) SmlDataList, lookup
เครื่องฟอร์มแบบ schema (SchemaForm, FieldDef, useRecordForm) และจอตั้งค่าระบบ SchemaForm, จอตั้งค่า
เอกสารธุรกรรม จอเอกสารธุรกรรมแบบเดียวกันทุกจอ (UniversalTransScreen) UniversalTransScreen
รายการเมนูเอกสาร จัดซื้อ ขาย สินค้าคงคลัง (transMenuMap หมวด 1-3) เมนูซื้อ ขาย สต๊อก (หมวด 1-3)
รายการเมนูเอกสาร เจ้าหนี้ ลูกหนี้ เงินสด ธนาคาร เช็ค สมุดรายวัน (transMenuMap หมวด 4-6) เมนูเจ้าหนี้ ลูกหนี้ เงินสด ธนาคาร เช็ค สมุดรายวัน (หมวด 4-6)
รายงานและพิมพ์ จอรายงานกลาง (Universal Report Screen) UniversalReportScreen
พิมพ์รายงาน แบบฟอร์มเอกสาร และตัวออกแบบ (Report Print & Designers) พิมพ์รายงาน/เอกสาร, ตัวออกแบบ
ประมวลผลและ POS จอประมวลผลระบบและ POS (System Process Workbench & POS Setup) SystemProcessWorkbenchScreen, ตั้งค่า POS
ผู้ดูแลระบบ หน้าจอผู้ดูแลระบบส่วนกลาง (Admin Console) หน้า /admin/* และ /api/admin/*

ที่มาในโค้ด

  • frontend/package.json:16-17,30-31 — เวอร์ชัน Next / React / Tailwind / TypeScript.
  • frontend/next.config.ts:4 — output: "standalone".
  • frontend/src/proxy.ts:27 — ด่านแรกก่อนเข้าทุกหน้า (รายละเอียดใน โครงหน้าเว็บและการนำทาง (App shell & routing)).
  • frontend/src/app/page.tsx:8-12 — / redirect /home.
  • frontend/src/app/(app)/home/page.tsx:14 — หน้าเดียวของแอปบัญชี.
  • frontend/src/app/(admin)/layout.tsx:18-21 — ด่านเข้าโซน admin.
  • frontend/tsconfig.json:23,36,44-46 — path alias.

ดูเพิ่ม

สมอง SML — หน้าแรก (Map of Content) · ภาพรวม Backend Go ของ SML Ai Account (Backend overview) · ภาพรวมระบบบัญชี SML AI Account (Accounting Overview) · ภาพรวมกลุ่ม process ของ Backend (Process overview) · สารบัญมาตรฐานและกฎเหล็กของ SML Ai Account (Standards Overview)