On this page
อ้างอิงหน้าจอผู้ดูแลระบบ
ภาพทั้งหมดเป็น synthetic data ที่ไม่มีข้อมูลลูกค้าจริง และผูกกับ source SHA ใน coverage ledger
แก้ไข License
- เส้นทาง:
/admin/licenses/synthetic-license-001/edit - Source:
app/pages/admin/licenses/[licenseId]/edit.vue - ใช้สำหรับ: จัดการ license ระดับ platform
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.errors.terminated | ไม่สามารถดำเนินการบน terminated license ได้ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.errors.fetchFailed | โหลดข้อมูลลิขสิทธิ์ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.deploymentType.standalone | Standalone | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.deploymentType.cluster | Cluster | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.deliveryMode.softwareOnly | Software Only | รูปแบบส่งมอบ: Software Only ติดตั้งบนโครงสร้างลูกค้า ส่วน Appliance ผูกกับเครื่องที่จัดส่งและเงื่อนไข on-premise |
license.deliveryMode.appliance | Appliance | รูปแบบส่งมอบ: Software Only ติดตั้งบนโครงสร้างลูกค้า ส่วน Appliance ผูกกับเครื่องที่จัดส่งและเงื่อนไข on-premise |
license.supportPlan.none | None | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextBusinessDay | 5x8 Next Business Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextDay | 5x8 Next Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.24x7_4h | 24x7 4h Response | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
global.required | กรุณากรอกข้อมูล | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
global.validationError | ข้อมูลไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.editTitle | แก้ไข License | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
license.errors.updateFailed | แก้ไข license ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.loading | กำลังตรวจสอบการเข้าสู่ระบบ... | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
license.columns.licenseId | รหัสลิขสิทธิ์ | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
license.form.customerAccountId | Customer Account ID | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
license.form.customerAccountName | ชื่อลูกค้า | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
license.sections.record | License Record | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.form.deploymentType | Deployment Type | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.form.deliveryMode | Delivery Mode | รูปแบบส่งมอบ: Software Only ติดตั้งบนโครงสร้างลูกค้า ส่วน Appliance ผูกกับเครื่องที่จัดส่งและเงื่อนไข on-premise |
license.form.maxNodes | Max Nodes | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxNodesHint | ถูก normalize เป็น 1 อัตโนมัติเมื่อ Standalone | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxDevices | จำนวนอุปกรณ์สูงสุด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.quotaUnlimitedHint | -1 หรือ 0 = ไม่จำกัด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxCustomers | จำนวนบัญชีลูกค้าสูงสุด (ORG) | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
รายละเอียด License
- เส้นทาง:
/admin/licenses/synthetic-license-001 - Source:
app/pages/admin/licenses/[licenseId]/index.vue - ใช้สำหรับ: จัดการ license ระดับ platform
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
license.artifact.copied | คัดลอกแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.artifact.issueSuccess | ออก License สำเร็จ — กำลังดาวน์โหลด | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.artifact.issueFailed | ออก License ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.artifact.reissueSuccess | ออก License ใหม่สำเร็จ — กำลังดาวน์โหลด | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.artifact.noArtifactToDownload | ไม่พบ Artifact ที่จะดาวน์โหลด | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
license.errors.fetchFailed | โหลดข้อมูลลิขสิทธิ์ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.errors.actionFailed | ดำเนินการไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.supportPlan.none | None | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextBusinessDay | 5x8 Next Business Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextDay | 5x8 Next Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.24x7_4h | 24x7 4h Response | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
global.validationError | ข้อมูลไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.renew.newEndDate | วันหมดอายุใหม่ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.renew.success | ต่ออายุ Maintenance สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.errors.renewFailed | ต่ออายุไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.platform.unlimited | ไม่จำกัด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.detailTitle | รายละเอียด License | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
license.actions.edit | แก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
license.actions.renew | ต่ออายุ Maintenance | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
license.actions.suspend | Suspend | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.actions.activate | Activate | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
license.actions.terminate | Terminate | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
global.loading | กำลังตรวจสอบการเข้าสู่ระบบ... | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
global.retry | ลองใหม่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.banners.terminated | License นี้ถูก Terminate แล้ว — ไม่สามารถแก้ไขหรือดำเนินการใดได้ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.banners.suspended | License นี้ถูก Suspend — Feature ทั้งหมดถูกปิดชั่วคราว | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
สร้าง License ใหม่
- เส้นทาง:
/admin/licenses/create - Source:
app/pages/admin/licenses/create.vue - ใช้สำหรับ: จัดการ license ระดับ platform
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
license.deploymentType.standalone | Standalone | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.deploymentType.cluster | Cluster | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.deliveryMode.softwareOnly | Software Only | รูปแบบส่งมอบ: Software Only ติดตั้งบนโครงสร้างลูกค้า ส่วน Appliance ผูกกับเครื่องที่จัดส่งและเงื่อนไข on-premise |
license.deliveryMode.appliance | Appliance | รูปแบบส่งมอบ: Software Only ติดตั้งบนโครงสร้างลูกค้า ส่วน Appliance ผูกกับเครื่องที่จัดส่งและเงื่อนไข on-premise |
license.supportPlan.none | None | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextBusinessDay | 5x8 Next Business Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextDay | 5x8 Next Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.24x7_4h | 24x7 4h Response | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
global.required | กรุณากรอกข้อมูล | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
license.form.maintenanceEndDate | วันหมด Maintenance | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
global.validationError | ข้อมูลไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.errors.createFailed | สร้าง license ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.createTitle | สร้าง License ใหม่ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
license.form.customerAccountId | Customer Account ID | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
license.form.customerIdPlaceholder | กรอก Customer Account ID | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
license.form.customerIdTodo | TODO Phase 2: เปลี่ยนเป็น async select เมื่อมี customer lookup API | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.form.customerAccountName | ชื่อลูกค้า | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
license.sections.record | License Record | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.form.deploymentType | Deployment Type | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.form.deliveryMode | Delivery Mode | รูปแบบส่งมอบ: Software Only ติดตั้งบนโครงสร้างลูกค้า ส่วน Appliance ผูกกับเครื่องที่จัดส่งและเงื่อนไข on-premise |
license.form.maxNodes | Max Nodes | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxNodesHint | ถูก normalize เป็น 1 อัตโนมัติเมื่อ Standalone | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxDevices | จำนวนอุปกรณ์สูงสุด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.quotaUnlimitedHint | -1 หรือ 0 = ไม่จำกัด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxCustomers | จำนวนบัญชีลูกค้าสูงสุด (ORG) | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.maxOrganizations | จำนวน Organization สูงสุดต่อลูกค้า | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
รายการ Enterprise License
- เส้นทาง:
/admin/licenses - Source:
app/pages/admin/licenses/index.vue - ใช้สำหรับ: จัดการ license ระดับ platform
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
license.errors.fetchFailed | โหลดข้อมูลลิขสิทธิ์ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.status.active | ใช้งานอยู่ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.status.suspended | ระงับการใช้งาน | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.status.terminated | สิ้นสุดการใช้งาน | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.columns.customer | ลูกค้า | หัวคอลัมน์ของตาราง ใช้เทียบค่าระหว่างรายการ; กดแถวเพื่อดูรายละเอียดเมื่อค่าถูกตัดทอน |
license.columns.status | สถานะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.columns.maintenance | การบำรุงรักษา | หัวคอลัมน์ของตาราง ใช้เทียบค่าระหว่างรายการ; กดแถวเพื่อดูรายละเอียดเมื่อค่าถูกตัดทอน |
license.columns.deploymentType | รูปแบบการติดตั้ง | รูปแบบติดตั้ง: Standalone ใช้โหนดเดียว ส่วน Cluster กระจายหลายโหนด; ต้องตรงกับสถาปัตยกรรมที่ส่งมอบจริง |
license.columns.supportPlan | แพ็กเกจซัพพอร์ต | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.columns.maEndDate | วันหมดบำรุงรักษา | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
license.supportPlan.none | None | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextBusinessDay | 5x8 Next Business Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.5x8_nextDay | 5x8 Next Day | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
license.supportPlan.24x7_4h | 24x7 4h Response | ระดับบริการสนับสนุนและเวลาตอบสนองตามสัญญา; เลือกให้ตรงเอกสารการขาย/บำรุงรักษา |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.errors.actionFailed | ดำเนินการไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.listTitle | รายการ Enterprise License | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
license.actions.create | สร้าง License | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
license.form.customerAccountId | Customer Account ID | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
global.all | ทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.reset | รีเซต | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.actions.suspend | Suspend | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.actions.activate | Activate | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
license.actions.terminate | Terminate | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
license.columns.licenseId | รหัสลิขสิทธิ์ | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
license.columns.maxNodes | จำนวน Node สูงสุด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.form.siteName | Site Name | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
สร้างฟอร์มแล้ว
- เส้นทาง:
/assetForms - Source:
app/pages/assetForms/index.vue - ใช้สำหรับ: สร้าง/แก้ไขโครงสร้าง Floor Plan และแบบฟอร์ม
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
assetForms.genericError | การทำงานล้มเหลว | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
assetForms.createdTitle | สร้างฟอร์มแล้ว | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
assetForms.deleteConfirm | ลบฟอร์ม "{name}"? การลบย้อนกลับไม่ได้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
assetForms.deletedTitle | ลบฟอร์มแล้ว | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
assetForms.hasRecords | ลบไม่ได้ — ยังมี record อยู่ในฟอร์มนี้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
assetForms.navTitle | แบบฟอร์มสินทรัพย์ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
assetMap.title | แผนที่สินทรัพย์ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
assetForms.newForm | สร้างฟอร์ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
assetForms.searchPlaceholder | ค้นหาฟอร์ม… | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
global.loading | กำลังตรวจสอบการเข้าสู่ระบบ... | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
assetForms.empty | ยังไม่มีฟอร์ม — สร้างฟอร์มแรกของคุณ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
assetForms.recordCount | {n} รายการ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
assetForms.hasStatus | มีฟิลด์สถานะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
assetForms.createTitle | สร้างฟอร์ม Asset ใหม่ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
assetForms.fieldName | ชื่อฟอร์ม | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
assetForms.namePlaceholder | เช่น Airfield Lamp | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
assetForms.fieldDescription | คำอธิบาย | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
assetForms.fields | ฟิลด์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
assetForms.addField | เพิ่มฟิลด์ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
assetForms.fkey | key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
assetForms.ftype | ชนิด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
assetForms.flabel | ป้ายชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
assetForms.required | จำเป็น | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
assetForms.isStatus | ฟิลด์สถานะ (ขับสีบนแผนที่) | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
assetForms.options | ตัวเลือก (บรรทัดละ value:label) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
assetForms.schemaInvalid | รูปแบบฟอร์มไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.cancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
โหมดวางกล้อง
- เส้นทาง:
/floorPlans/synthetic-id-001/edit - Source:
app/pages/floorPlans/[id]/edit.vue - ใช้สำหรับ: สร้าง/แก้ไขโครงสร้าง Floor Plan และแบบฟอร์ม
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
floorPlans.editor.statusOnline | ออนไลน์ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
floorPlans.editor.statusOffline | ออฟไลน์ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
floorPlans.editor.statusSuspect | น่าสงสัย | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
floorPlans.editor.statusUnknown | ไม่ทราบสถานะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
floorPlans.editor.placementModeTitle | โหมดวางกล้อง | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.editor.placementModeDesc | คลิกบนแผนผังเพื่อวาง "{name}" | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.noSuggestions | ไม่มีคำแนะนำ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.noSuggestionsDesc | ไม่พบกล้องที่ยังไม่ได้วางและมีความสัมพันธ์กับกล้องที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.bulkPlacedTitle | วางกล้องแล้ว {n} ตัว | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.editor.bulkPlacedNone | ไม่มีกล้องถูกวาง | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.bulkPlacedError | ล้มเหลว {n} ตัว — ลองลากวางใหม่ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
floorPlans.editor.bulkPlacedSuccess | ลากมาร์กเกอร์เพื่อปรับตำแหน่งได้ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
floorPlans.editor.cameraPlaced | วางกล้องแล้ว | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.confirmRemove | ลบตำแหน่งของ "{name}" ออกจากแผนผังใช่หรือไม่? | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.placementRemoved | ลบตำแหน่งกล้องแล้ว | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.cameraUnavailable | กล้องไม่พร้อมใช้งาน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.cameraUnavailableDesc | กล้องนี้ไม่อยู่ในองค์กรอีกต่อไป | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.streamNotAvailableDot | สตรีมไม่พร้อมใช้งาน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.failedStartStream | เริ่มสตรีมไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
floorPlans.editor.streamPlaybackFailed | เล่นสตรีมไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
floorPlans.editor.metersAway | {m} ม. | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.sameSite | ไซต์เดียวกัน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.sameZone | โซนเดียวกัน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.affinityMatch | ความสัมพันธ์ใกล้เคียง | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.navTitleFallback | แผนผังอาคาร | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.editor.placementCount | {n} จุด | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
floorPlans.editor.placingCamera | กำลังวาง "{name}" | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
floorPlans.editor.sidebarShow | แสดงแถบด้านข้าง | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
คำนวณมาตราส่วนแล้ว
- เส้นทาง:
/floorPlans/new - Source:
app/pages/floorPlans/new.vue - ใช้สำหรับ: สร้าง/แก้ไขโครงสร้าง Floor Plan และแบบฟอร์ม
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
floorPlans.location.pickOrClear | เลือกตำแหน่งบนแผนที่ หรือล้างทั้งสองช่อง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.location.rangeError | ค่า Lat/Lng อยู่นอกช่วงที่กำหนด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
floorPlans.image.tooLarge | ไฟล์ขนาด {size} MB — สูงสุด 15 MB | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.image.onlyPngJpg | รองรับเฉพาะ PNG หรือ JPG เท่านั้น | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.image.minSize | รูปภาพต้องมีขนาดอย่างน้อย {min}×{min} พิกเซล (ได้ {w}×{h}) | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.image.readFail | ไม่สามารถอ่านรูปภาพได้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.scale.wide | กว้าง {m} ม. | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.scale.long | ยาว {m} ม. | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.scale.calculatedTitle | คำนวณมาตราส่วนแล้ว | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.scale.calculatedBuilding | {dims} → {scale} ม./พิกเซล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.scale.calculatedRef | {m} ม. ÷ {px} พิกเซล = {scale} ม./พิกเซล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.location.geoUnsupported | เบราว์เซอร์ไม่รองรับการระบุตำแหน่ง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.location.geoReadFail | ไม่สามารถอ่านตำแหน่งได้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.mapError | แผนที่โหลดไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
floorPlans.upload.uploadedTitle | อัปโหลดแผนผังแล้ว | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.upload.title | อัปโหลดแผนผังอาคาร | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.upload.subtitle | อัปโหลดแปลนอาคาร 2 มิติ กำหนดมาตราส่วนตามจริง และปักหมุดบนแผนที่ได้ (ไม่บังคับ) | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
floorPlans.upload.back | ย้อนกลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.upload.submit | อัปโหลด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.upload.noPermission | คุณต้องมีสิทธิ์จัดการองค์กรจึงจะอัปโหลดแผนผังได้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.image.label | รูปภาพ (PNG หรือ JPG) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
floorPlans.image.hint | อย่างน้อย 256×256 พิกเซล, ไม่เกิน 15 MB | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.basic.name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
floorPlans.basic.nameHint | ไม่ซ้ำกันภายในองค์กร (สูงสุด 120 ตัวอักษร) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
floorPlans.basic.namePlaceholder | เช่น อาคารหลัก — ชั้น 2 | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
floorPlans.basic.buildingName | ชื่ออาคาร | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
floorPlans.basic.buildingPlaceholder | เช่น อาคารสำนักงานใหญ่ A | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
floorPlans.basic.floorLabel | ป้ายชั้น | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ตำแหน่งที่ตั้ง
- เส้นทาง:
/kcontrol/edit/synthetic-id-001 - Source:
app/pages/kcontrol/edit/[id].vue - ใช้สำหรับ: workflow สร้าง/แก้ไขข้อมูลปฏิบัติการ
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
kcontrol2.form.titleEdit | แก้ไขแบบฟอร์ม | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
kcontrol2.form.editing | โหมดแก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
kcontrol2.form.basicInfo | ข้อมูลพื้นฐาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.save | บันทึก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
kcontrol2.form.name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
kcontrol2.form.name2 | เช่น K-Control หน้าอาคาร A | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
kcontrol2.form.brand | ยี่ห้อ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.brand2 | เช่น Vendor-XYZ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.district2 | เขต/อำเภอ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.district3 | เช่น ดินแดง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.title | ตำแหน่งที่ตั้ง | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
kcontrol2.form.lat | ละติจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.lat2 | เช่น 13.7563 | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.long | ลองจิจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.long2 | เช่น 100.5018 | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.location.currentLocationTitle | ใช้ตำแหน่งปัจจุบัน | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.location.currentLocationAria | คลิกเพื่อกำหนดละติจูด/ลองจิจูดเป็นตำแหน่งปัจจุบันของคุณ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.map.goSettings | ไปที่ตั้งค่าแผนที่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.latlong | คลิกบนแผนที่เพื่อเลือกตำแหน่ง ระบบจะใส่ค่า Lat/Long ให้อัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.orientation2 | การกำหนดค่าเซิร์ฟเวอร์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
kcontrol2.form.title2 | ช่องเวลา (IN_1 - IN_4) & ดีไล (มิลลิลิตรวินาที) | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
kcontrol2.form.required | ช่องที่มี * จำเป็นต้องกรอก | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
global.back | กลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
synthetic id 001
- เส้นทาง:
/kwatch/edit/synthetic-id-001 - Source:
app/pages/kwatch/edit/[id].vue - ใช้สำหรับ: workflow สร้าง/แก้ไขข้อมูลปฏิบัติการ
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
| — | ไม่พบ label แบบ static ใน source | หน้านี้สร้างข้อความจากข้อมูลหรือ component ย่อย ให้ยึดภาพและ workflow ที่แสดง |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ผู้ใช้ระบบ
- เส้นทาง:
/police/add - Source:
app/pages/police/add/index.vue - ใช้สำหรับ: workflow สร้าง/แก้ไขข้อมูลปฏิบัติการ
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
police.table.id_card | บัตรประจำตัวประชาชน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.passport_house_reg | หนังสือเดินทาง/ทะเบียนบ้าน/อื่นๆ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.title | ผู้ใช้ระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
police.table.enter_person_info | เพิ่มข้อมูลบุคคล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
police.table.fill_info_note | กรุณากรอกข้อมูลให้ครบถ้วน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.person_type_order | ประเภทบุคคล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.general_public | บุคคลทั่วไป 32 ประเภท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.select | เลือก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.criminals | บุคคลอาชญากรรม 23 ประเภท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.alart_desc | ข้อมูลอ้างอิงเพิ่มเติม (หมายเลขหมายจับ/การเฝ้าระวัง) | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
police.table.alert_type | ประเภทการเฝ้าระวัง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.id_card_info | ข้อมูลบุคคล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
police.table.document_type | ประเภทเอกสาร | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.id_card_number | หมายเลขประจำตัวประชาชน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.house_reg_passport | หมายเลขหนังสือเดินทาง / ทะเบียนบ้าน / อื่นๆ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.prefix_title | คำนำหน้า | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
police.table.select_prefix | เลือกคำนำหน้า | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.first_name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.enter_first_name | กรอกชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.last_name | นามสกุล | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.enter_last_name | กรอกนามสกุล | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.nickname_alias | ชื่อเล่น/ฉายา | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.enter_nickname | กรอกชื่อเล่น (ถ้ามี) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.date_of_birth | วัน/เดือน/ปี เกิด | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
police.table.age | อายุ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.age_auto_calc | อายุจะถูกคำนวณอัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.gender | เพศ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.select_gender | เลือกเพศ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
synthetic id 001
- เส้นทาง:
/police/delete/synthetic-id-001 - Source:
app/pages/police/delete/[id].vue - ใช้สำหรับ: workflow สร้าง/แก้ไขข้อมูลปฏิบัติการ
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เปิดหน้าจากเมนูหรือเส้นทางที่ระบุ และยืนยันบริบทจากชื่อหน้า
- ตรวจข้อความแนะนำ สถานะ และค่าที่ระบบแสดงก่อนเริ่มทำงาน
- ใช้คำสั่งตามตารางด้านล่างและหลีกเลี่ยงการกดซ้ำระหว่าง loading
- อ่าน confirmation/error ที่ระบบตอบกลับ และแก้เฉพาะค่าที่ถูกระบุ
- กลับหน้าก่อนหน้าหรือ refresh เพื่อยืนยันผลจาก backend
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
watchman2.delete | ลบข้อมูล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ผู้ใช้ระบบ
- เส้นทาง:
/police/edit/synthetic-id-001 - Source:
app/pages/police/edit/[id].vue - ใช้สำหรับ: workflow สร้าง/แก้ไขข้อมูลปฏิบัติการ
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
police.table.id_card | บัตรประจำตัวประชาชน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.passport_house_reg | หนังสือเดินทาง/ทะเบียนบ้าน/อื่นๆ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.title | ผู้ใช้ระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
police.table.enter_person_info | เพิ่มข้อมูลบุคคล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
police.table.fill_info_note | กรุณากรอกข้อมูลให้ครบถ้วน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.person_type_order | ประเภทบุคคล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.general_public | บุคคลทั่วไป 32 ประเภท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.select | เลือก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.criminals | บุคคลอาชญากรรม 23 ประเภท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.alart_desc | ข้อมูลอ้างอิงเพิ่มเติม (หมายเลขหมายจับ/การเฝ้าระวัง) | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
police.table.alert_type | ประเภทการเฝ้าระวัง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.id_card_info | ข้อมูลบุคคล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
police.table.document_type | ประเภทเอกสาร | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.id_card_number | หมายเลขประจำตัวประชาชน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.house_reg_passport | หมายเลขหนังสือเดินทาง / ทะเบียนบ้าน / อื่นๆ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.prefix_title | คำนำหน้า | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
police.table.select_prefix | เลือกคำนำหน้า | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.first_name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.enter_first_name | กรอกชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.last_name | นามสกุล | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.enter_last_name | กรอกนามสกุล | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.nickname_alias | ชื่อเล่น/ฉายา | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.enter_nickname | กรอกชื่อเล่น (ถ้ามี) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
police.table.date_of_birth | วัน/เดือน/ปี เกิด | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
police.table.age | อายุ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.age_auto_calc | อายุจะถูกคำนวณอัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.gender | เพศ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.select_gender | เลือกเพศ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ลิขสิทธิ์และแพ็กเกจของระบบ
- เส้นทาง:
/settings/admin/platform-license - Source:
app/pages/settings/admin/platform-license/index.vue - ใช้สำหรับ: ตั้งค่าระบบ/องค์กร
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
license.errors.fetchFailed | โหลดข้อมูลลิขสิทธิ์ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.platform.unlimited | ไม่จำกัด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.platform.fileInvalid | ไฟล์ไม่ถูกต้อง — ต้องเป็น JSON ที่มี field artifact | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.platform.noFileSelected | กรุณาเลือกไฟล์ก่อน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.validateSuccess | ไฟล์ลิขสิทธิ์ถูกต้อง | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.platform.validateFailed | ไฟล์ลิขสิทธิ์ไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.platform.activateIdempotent | ไฟล์ลิขสิทธิ์เดิมยังใช้งานอยู่ — ไม่มีการเปลี่ยนแปลง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.activateSuccess | เปิดใช้งานลิขสิทธิ์สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
license.platform.subscriptionRepairPartial | มี org บางตัวที่ต้องให้ ops ตามแก้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.subscriptionRepairSkipped | ข้าม subscription repair | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.subscriptionRepairUpgraded | upgrade {n} org | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.subscriptionRepairDowngraded | downgrade {n} org | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.subscriptionRepairUnknown | อัปเดตจาก plan ที่ไม่รู้จัก {n} org | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.subscriptionRepairChanged | Org subscriptions ถูกอัปเดต | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.activateFailed | เปิดใช้งานลิขสิทธิ์ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
license.platform.title | ลิขสิทธิ์และแพ็กเกจของระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
global.loading | กำลังตรวจสอบการเข้าสู่ระบบ... | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
global.retry | ลองใหม่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.subscriptionSection | การสมัครใช้งานและแพ็กเกจ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.noLicense | ยังไม่มีลิขสิทธิ์ที่เปิดใช้งานบนระบบนี้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.licenseMode | ชนิดลิขสิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.maxCustomers | จำนวนบัญชีลูกค้าสูงสุด (ORG) | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.platform.maxLicensedUsers | จำนวนผู้ใช้ที่มีสิทธิ์สูงสุด (USER) | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.platform.maxOrganizations | จำนวน Organization สูงสุดต่อลูกค้า | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.platform.maxDevices | จำนวนอุปกรณ์สูงสุด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.platform.unlimitedHint | -1 หรือ 0 = ไม่จำกัด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
license.platform.selfServiceSection | การตั้งค่าบริการตนเอง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
license.platform.selfServiceOrgCreation | ผู้ใช้สร้างองค์กรเองได้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ศูนย์กลางแผนที่ทั้งระบบ
- เส้นทาง:
/settings - Source:
app/pages/settings/index.vue - ใช้สำหรับ: ตั้งค่าระบบ/องค์กร
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.location.notSupported | เบราว์เซอร์ของคุณไม่รองรับการระบุตำแหน่ง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.location.located | ระบุตำแหน่งปัจจุบันแล้ว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.location.permissionDenied | ผู้ใช้ไม่อนุญาตให้เข้าถึงตำแหน่ง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.location.positionUnavailable | ไม่สามารถระบุตำแหน่งได้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.location.unknownError | เกิดข้อผิดพลาดในการระบุตำแหน่ง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.saveSuccess | บันทึกการตั้งค่าระบบสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.saveError | ข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.globalMapTitle | ศูนย์กลางแผนที่ทั้งระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
settings.globalMapDescription | กำหนดตำแหน่งพิกัดกลางและระดับการซูมเริ่มต้นสำหรับทั้งระบบ | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
settings.saveSystemSettings | บันทึกการตั้งค่าระบบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.searchPlace | ค้นหาสถานที่ | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
settings.searchPlaceholder | กรอกชื่อสถานที่หรือที่อยู่... | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
settings.latitude | ละติจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.longitude | ลองจิจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.zoom | ระดับซูม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.loadingMap | กำลังโหลดแผนที่… | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
systemDevices.location.currentLocationTitle | ใช้ตำแหน่งปัจจุบัน | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.location.currentLocationAria | คลิกเพื่อกำหนดละติจูด/ลองจิจูดเป็นตำแหน่งปัจจุบันของคุณ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.helper.latlongOsm | คลิกบนแผนที่ OpenStreetMap เพื่อเลือกตำแหน่ง ระบบจะใส่ค่า Lat/Long ให้อัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.helper.latlong | คลิกบนแผนที่เพื่อเลือกตำแหน่ง ระบบจะใส่ค่า Lat/Long ให้อัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ตั้งค่าผู้ให้บริการแผนที่
- เส้นทาง:
/settings/map - Source:
app/pages/settings/map.vue - ใช้สำหรับ: ตั้งค่าระบบ/องค์กร
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
settings.mapProvider.openstreetDesc | ใช้งานฟรี ไม่ต้องใช้ API key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.googleDesc | ต้องใช้ API key จาก Google Cloud | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.offlineLabel | แผนที่ออฟไลน์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.mapProvider.offlineDesc | ใช้ tile server ภายในองค์กร ทำงานได้แม้ไม่มีอินเทอร์เน็ต | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.saveSuccess | บันทึกการตั้งค่าระบบสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.mapProvider.saveSuccessDesc | อัปเดตการตั้งค่าผู้ให้บริการแผนที่แล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.saveError | ข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.mapProvider.saveErrorDesc | ไม่สามารถบันทึกการตั้งค่าผู้ให้บริการแผนที่ได้ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.mapProvider.title | ตั้งค่าผู้ให้บริการแผนที่ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
settings.mapProvider.description | เลือกผู้ให้บริการแผนที่เริ่มต้นสำหรับทั้งระบบ | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
settings.mapProvider.save | บันทึกการตั้งค่า | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.mapProvider.providerLabel | ผู้ให้บริการแผนที่ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.mapProvider.apiKeyHint | จำเป็นต้องมีเพื่อให้ Google Maps ทำงานได้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.apiKeySet | ตั้ง API Key แล้ว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.apiKeyNotSet | ยังไม่ได้ตั้ง API Key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.apiKeyPlaceholder | กรอก Google Maps API Key... | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.cancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.changeApiKey | เปลี่ยน API Key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.setApiKey | ตั้ง API Key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.offlineStyleTitle | Style URL (self-hosted) | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
settings.mapProvider.offlineStyleHint | ที่อยู่ style.json ของ tile server บนเครือข่ายภายใน | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
settings.mapProvider.offlineCountryLabel | ประเทศ / ชุดแผนที่ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.mapProvider.offlineResolvedHint | ระบบจะตั้ง Style URL ให้อัตโนมัติจากประเทศที่เลือก | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
settings.mapProvider.offlineCountryPlaceholder | เลือกประเทศ... | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.offlineCountryLoadError | ดึงรายการประเทศไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.mapProvider.retry | ลองใหม่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.offlineNoCountries | ยังไม่พบชุดแผนที่บน tile server | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.mapProvider.offlineStyleLight | Style URL (สว่าง / default) | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
Branding ของแพลตฟอร์ม
- เส้นทาง:
/settings/platform - Source:
app/pages/settings/platform.vue - ใช้สำหรับ: ตั้งค่าระบบ/องค์กร
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
settings.platformBranding.themeLight | สว่าง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.themeDark | เข้ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.themeAuto | ตามระบบ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.errors.invalidName | ชื่อต้องมีความยาว 1–64 ตัวอักษร | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.platformBranding.errors.invalidColor | สีต้องเป็น HEX 6 หลัก เช่น #2563eb | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.platformBranding.errors.invalidFooter | ข้อความ Footer ต้องไม่เกิน 200 ตัวอักษร | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.platformBranding.errors.invalid_description | รายละเอียดต้องไม่เกิน 300 ตัวอักษร | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.saveError | ข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.platformBranding.errors.generic | เกิดข้อผิดพลาด กรุณาลองใหม่ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.platformBranding.noChanges | ยังไม่มีการเปลี่ยนแปลงให้บันทึก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.saveSuccess | บันทึกการตั้งค่าระบบสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.platformBranding.saveSuccessDesc | อัปเดต Branding เรียบร้อย | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.platformBranding.uploadSuccess | อัปโหลดเรียบร้อย | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.platformBranding.deleteSuccess | ลบเรียบร้อย | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.platformBranding.title | Branding ของแพลตฟอร์ม | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
settings.platformBranding.description | ปรับชื่อแพลตฟอร์ม โลโก้ สี และค่าเริ่มต้นที่สมาชิกในองค์กรนี้จะเห็น | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
settings.platformBranding.save | บันทึก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.platformBranding.readOnlyTitle | เฉพาะผู้ดูแล | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
settings.platformBranding.readOnlyDesc | เฉพาะเจ้าขององค์กรหรือผู้ดูแลเท่านั้นที่แก้ Branding ได้ คุณยังสามารถดูค่าปัจจุบันได้ตามปกติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.nameTh | ชื่อแพลตฟอร์ม (ไทย) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.platformBranding.nameEn | ชื่อแพลตฟอร์ม (อังกฤษ) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.platformBranding.footerTh | ข้อความ Footer (ไทย) | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.footerHelp | ข้อความลิขสิทธิ์ / footer ที่แสดงบนหน้าสาธารณะ เว้นว่างเพื่อใช้ค่าเริ่มต้นของระบบ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
landing.footerCopyright | © 2567 Point IT Consulting Co., Ltd. สงวนลิขสิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.footerEn | ข้อความ Footer (อังกฤษ) | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.platformBranding.descriptionTh | รายละเอียดแพลตฟอร์ม (ไทย) | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
settings.platformBranding.descriptionPlaceholder | อธิบายแพลตฟอร์มสั้น ๆ เพื่อแสดงบนหน้าแรก (เว้นว่างเพื่อใช้ข้อความเริ่มต้น) | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
settings.platformBranding.descriptionEn | รายละเอียดแพลตฟอร์ม (อังกฤษ) | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ตั้งค่า Stream Session
- เส้นทาง:
/settings/stream - Source:
app/pages/settings/stream.vue - ใช้สำหรับ: ตั้งค่าระบบ/องค์กร
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
settings.saveSuccess | บันทึกการตั้งค่าระบบสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
settings.stream.savedEnabled | เปิดใช้งาน Stream Timeout — ตัดสตรีมหลัง {seconds} วินาที | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.stream.savedDisabled | ปิดใช้งาน Stream Timeout — ไม่ตัดสตรีมอัตโนมัติ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.saveError | ข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.stream.saveErrorDesc | ไม่สามารถบันทึกการตั้งค่า Stream ได้ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
settings.stream.title | ตั้งค่า Stream Session | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
settings.stream.description | กำหนดเวลาตัด Live Stream อัตโนมัติเมื่อดูกล้องผ่านแผนที่ | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
settings.stream.save | บันทึกการตั้งค่า | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
settings.stream.enableLabel | เปิดใช้งาน Stream Timeout | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.stream.enableHint | เมื่อเปิดใช้งาน ระบบจะตัด Live Stream อัตโนมัติตามเวลาที่กำหนด | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
settings.stream.timeoutLabel | ระยะเวลา Timeout | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
settings.stream.customSeconds | กำหนดเอง (วินาที) | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.stream.seconds | วินาที | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.stream.howItWorks | การทำงาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.stream.howItWorksDesc | เมื่อผู้ใช้กดดูกล้องบนแผนที่ ระบบจะตัด Live Stream อัตโนมัติหลังจากดูไป {duration} | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
settings.stream.cameraClusterDefaultLabel | จัดกลุ่มกล้องบนแผนที่ /live เป็นค่าเริ่มต้น | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
settings.stream.cameraClusterDefaultHint | ผู้ชมแต่ละคนยังสลับการจัดกลุ่มบนแผนที่เองได้ นี่คือค่าเริ่มต้นเท่านั้น | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
การตั้งค่าระบบ
- เส้นทาง:
/settings/system - Source:
app/pages/settings/system.vue - ใช้สำหรับ: ตั้งค่าระบบ/องค์กร
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
settings.systemSetting.title | การตั้งค่าระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
settings.systemSetting.description | การตั้งค่าระดับระบบโดยรวม | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
settings.systemSetting.comingSoon | อยู่ระหว่างการพัฒนา | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
อัปเกรดแผนสำเร็จ!
- เส้นทาง:
/subscription - Source:
app/pages/subscription.vue - ใช้สำหรับ: แผนและสถานะ subscription
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เปิดหน้าจากเมนูหรือเส้นทางที่ระบุ และยืนยันบริบทจากชื่อหน้า
- ตรวจข้อความแนะนำ สถานะ และค่าที่ระบบแสดงก่อนเริ่มทำงาน
- ใช้คำสั่งตามตารางด้านล่างและหลีกเลี่ยงการกดซ้ำระหว่าง loading
- อ่าน confirmation/error ที่ระบบตอบกลับ และแก้เฉพาะค่าที่ถูกระบุ
- กลับหน้าก่อนหน้าหรือ refresh เพื่อยืนยันผลจาก backend
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
subscription.billingCycle.monthly | รายเดือน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.billingCycle.yearly | รายปี | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.upgradeFailed | เปลี่ยนแผนไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
subscription.unlimited | ไม่จำกัด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
subscription.billing.upgradeSuccessTitle | อัปเกรดแผนสำเร็จ! | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
subscription.billing.upgradeSuccessSubtitle | กำลังโหลดข้อมูลแผนใหม่... | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
subscription.title | แผนการใช้งาน | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
subscription.viewAllPlans | ดูแผนทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.loading | กำลังตรวจสอบการเข้าสู่ระบบ... | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
subscription.notAvailable | ข้อมูลแผนยังไม่พร้อมใช้งาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.upgradeSuccess | กำลังดำเนินการชำระเงิน | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
subscription.billing.verifyFailed | ชำระเงินสำเร็จ แต่ยืนยัน session ไม่ได้ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
subscription.billing.paymentCancelled | ยกเลิกการชำระเงิน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.statusExpiredAlert | แผนการใช้งานหมดอายุแล้ว กรุณาต่ออายุหรือเปลี่ยนแผน | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
subscription.selfServiceDisabledAlert | การสร้าง Organization ด้วยตนเองถูกปิดใช้งาน กรุณาติดต่อทีมงาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.sectionPlan | แผนของคุณ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.upgradePlan | อัปเกรดแผน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.plan | แผน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.status | สถานะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
subscription.maxOrganizations | สร้าง Organization ได้สูงสุด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
subscription.selfServiceEnabled | สร้าง Organization ด้วยตนเอง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.billing.title | การชำระเงิน | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
subscription.billing.keepSubscription | เก็บ Subscription ไว้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.billing.cancelSubscription | ยกเลิก Subscription | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
subscription.billing.billingCycleLabel | วงรอบการชำระเงิน | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
subscription.billing.cancelsOn | หมดอายุวันที่ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
subscription.billing.renewsOn | ต่ออายุวันที่ | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
subscription.billing.daysUnit | วัน | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ฟอร์มบันทึกกล้อง
- เส้นทาง:
/systemDevices/cameras/add - Source:
app/pages/systemDevices/cameras/add/index.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.form.title | ฟอร์มบันทึกกล้อง | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.form.new | รายการใหม่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.form.basicInfo | ข้อมูลพื้นฐาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.placeholder.name | เช่น กล้องหน้าอาคาร A | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.table.url | URL | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.placeholder.url | เช่น example, rtsp://... หรือ http://... | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.table.brandcam | ยี่ห้อ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.placeholder.brand | เช่น Hikvision, Dahua | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.district | เขต | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.placeholder.district | เช่น ดินแดง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.description | รายละเอียดเพิ่มเติม | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.placeholder.description | รายละเอียดอื่นๆ เช่น จุดติดตั้ง, เบอร์ติดต่อแอดมิน ... | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
systemDevices.table.offlineDescription | รายละเอียดตอนกล้องออฟไลน์ | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
systemDevices.placeholder.offlineDescription | เช่น ทดสอบ, ขัดข้องจากไฟดับ, ปรับปรุงสายสัญญาณสื่อสาร ... | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
systemDevices.location.title | ตำแหน่งที่ตั้ง | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.table.lat | ละติจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.placeholder.lat | เช่น 13.7534 | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.long | ลองจิจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.placeholder.long | เช่น 100.5018 | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.location.currentLocationTitle | ใช้ตำแหน่งปัจจุบัน | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.location.currentLocationAria | คลิกเพื่อกำหนดละติจูด/ลองจิจูดเป็นตำแหน่งปัจจุบันของคุณ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.map.goSettings | ไปที่ตั้งค่าแผนที่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.helper.latlongOsm | คลิกบนแผนที่ OpenStreetMap เพื่อเลือกตำแหน่ง ระบบจะใส่ค่า Lat/Long ให้อัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.helper.latlong | คลิกบนแผนที่เพื่อเลือกตำแหน่ง ระบบจะใส่ค่า Lat/Long ให้อัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.form.orientation | มุมกล้อง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ai events
- เส้นทาง:
/systemDevices/cameras/ai-events - Source:
app/pages/systemDevices/cameras/ai-events.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization, ช่วงเวลา และพื้นที่/กลุ่มอุปกรณ์ที่ต้องการติดตาม
- ตั้งตัวกรองก่อนอ่านตัวเลข เพื่อให้ทุก card, chart และตารางอยู่ในขอบเขตเดียวกัน
- ตรวจ timestamp/สถานะล่าสุดก่อนสรุปว่าอุปกรณ์หรือเหตุการณ์ยัง active
- เปิดรายละเอียดจากจุดบนแผนที่ card หรือแถวตารางเพื่อดูข้อมูลต้นทาง
- หากข้อมูลไม่ขยับ ให้ refresh แล้วตรวจ network/resource permission ก่อนแจ้งเหตุขัดข้อง
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.aiAnalyze.col.at | เวลา | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
systemDevices.aiAnalyze.col.camera | กล้อง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.col.prompt | Prompt | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.col.verdict | ผลตรวจ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.col.similarity | ความใกล้เคียง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.col.caption | คำบรรยาย | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.events | เหตุการณ์ AI | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.noAccess | คุณไม่มีสิทธิ์ดูเหตุการณ์ AI | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.filterCamIdPlaceholder | กรองด้วยรหัสกล้อง | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
systemDevices.aiAnalyze.filterFrom | ตั้งแต่ | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
systemDevices.aiAnalyze.filterTo | ถึง | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
common.search | ค้นหา... | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
common.refresh | รีเฟรช | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.aiAnalyze.noEvents | ยังไม่มีเหตุการณ์จาก AI | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
synthetic id 001
- เส้นทาง:
/systemDevices/cameras/delete/synthetic-id-001 - Source:
app/pages/systemDevices/cameras/delete/[id].vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เปิดหน้าจากเมนูหรือเส้นทางที่ระบุ และยืนยันบริบทจากชื่อหน้า
- ตรวจข้อความแนะนำ สถานะ และค่าที่ระบบแสดงก่อนเริ่มทำงาน
- ใช้คำสั่งตามตารางด้านล่างและหลีกเลี่ยงการกดซ้ำระหว่าง loading
- อ่าน confirmation/error ที่ระบบตอบกลับ และแก้เฉพาะค่าที่ถูกระบุ
- กลับหน้าก่อนหน้าหรือ refresh เพื่อยืนยันผลจาก backend
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
common.cancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.brandcam | ยี่ห้อ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.district | เขต | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.lat | ละติจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.long | ลองจิจูด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.state | สภาวะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemDevices.status.active | เปิดใช้งาน | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemDevices.status.inactive | ปิดใช้งาน | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
แก้ไขกล้อง
- เส้นทาง:
/systemDevices/cameras/edit/synthetic-id-001 - Source:
app/pages/systemDevices/cameras/edit/[id].vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.editDeviceTitle | แก้ไขกล้อง | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.gwManaged.status.synced | ซิงก์สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.gwManaged.status.pending | กำลังซิงก์ | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
systemDevices.gwManaged.status.failed | ซิงก์ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.gwManaged.status.deferred | หยุดซิงก์ชั่วคราว | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemDevices.gwManaged.status.localOnly | บันทึกในระบบ IOC Platform เท่านั้น | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.gwManaged.copied | คัดลอกแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.gwManaged.copyFailed | คัดลอกไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.validation.name | กรุณากรอกชื่อกล้อง | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
systemDevices.validation.latNumber | Lat ต้องเป็นตัวเลข | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
systemDevices.validation.longNumber | Long ต้องเป็นตัวเลข | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
systemDevices.validation.url | กรุณากรอก URL ของกล้อง | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
systemDevices.form.title | ฟอร์มบันทึกกล้อง | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.form.edit | แก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.gwManaged.title | ข้อมูลจากระบบ Gateway | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.gwManaged.hint | กล้องนี้ซิงก์มาจาก gateway-api — ข้อมูลด้านล่างเป็นค่าอ้างอิงข้ามระบบ (read-only) | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.gwManaged.syncStatus | สถานะซิงก์ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
global.copy | คัดลอก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.form.basicInfo | ข้อมูลพื้นฐาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.placeholder.name | เช่น กล้องหน้าอาคาร A | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.table.url | URL | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.placeholder.url | เช่น example, rtsp://... หรือ http://... | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.gwManaged.urlHint | URL จะมาจาก gateway-api อัตโนมัติ — ปล่อยว่างได้สำหรับกล้อง AIBOX / edgeAI | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.table.brandcam | ยี่ห้อ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.placeholder.brand | เช่น Hikvision, Dahua | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
เลือกได้สูงสุด 50 รายการ
- เส้นทาง:
/systemDevices/cameras - Source:
app/pages/systemDevices/cameras/index.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.card.cameraInfo | ข้อมูลกล้อง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.bulk.capTitle | เลือกได้สูงสุด 50 รายการ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.toggle.enableCamera | เปิดใช้งานกล้อง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.toggle.disableCamera | ปิดใช้งานกล้อง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.toggle.mockWaiting | Mock - รอ API | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.toggle.setPublic | ตั้งเป็น Public | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.toggle.setPrivate | ตั้งเป็น Private | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.bulk.succeeded | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.bulk.skipped | ข้าม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.bulk.failed | ล้มเหลว | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.bulk.syncDone | สั่ง Sync เสร็จ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.bulk.maintOnDone | แจ้งซ่อมบำรุงเสร็จ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.bulk.maintOffDone | ยกเลิกซ่อมบำรุงเสร็จ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.bulk.deleteDone | ลบกล้องเสร็จ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.bulk.deleteFailed | ลบไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.detail.loadError | โหลดรายการกล้องไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.table.name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.table.brandcam | ยี่ห้อ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.table.district | เขต | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.actions.exportExcelFull | ส่งออก Excel | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.export.failed | ส่งออกข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.export.tooLarge | ข้อมูลมากเกินไป (มากกว่า 10,000 กล้อง) | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.import.inProgress | กำลังนำเข้าข้อมูล กรุณารอสักครู่ | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
systemDevices.import.parseError | ไฟล์อ่านไม่ได้หรือรูปแบบไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.import.missingHeader | ไม่พบคอลัมน์ที่จำเป็น (name, lat, long) | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.actions.add | เพิ่มกล้อง | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.status.total | รวม | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemDevices.status.online | ออนไลน์ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
add
- เส้นทาง:
/systemDevices/edge/add - Source:
app/pages/systemDevices/edge/add/index.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.edge.addNew | เพิ่มอุปกรณ์ Edge | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.edge.urlPlaceholder | เช่น https://example.com | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.fillRequired | กรุณากรอกข้อมูลที่จำเป็นให้ครบถ้วน | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.addSuccess | เพิ่มอุปกรณ์ Edge เรียบร้อยแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.addError | เพิ่มอุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.back | กลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.addDescription | กำหนดค่าอุปกรณ์ Edge node ใหม่ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.edge.selectType | เลือกประเภทอุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.typeInfo | ข้อมูลอุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.connectionSettings | การตั้งค่าการเชื่อมต่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.name | ชื่ออุปกรณ์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.namePlaceholder | กรอกชื่ออุปกรณ์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.username | ชื่อผู้ใช้ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.usernamePlaceholder | กรอกชื่อผู้ใช้ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.password | รหัสผ่าน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.passwordPlaceholder | กรอกรหัสผ่าน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.url | URL | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.edge.ataSettings | การตั้งค่า ATA API | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.apiKey | API Key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.apiKeyPlaceholder | กรอก API Key | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.apiSecret | API Secret | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.apiSecretPlaceholder | กรอก API Secret | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.nxSyncSettings | ซิงค์อัตโนมัติตามรอบเวลา | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
systemDevices.edge.syncEnabled | เปิดซิงค์อัตโนมัติ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.syncEnabledDescription | ซิงค์รายการกล้องจากอุปกรณ์นี้ให้อัตโนมัติตามรอบเวลา | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
systemDevices.edge.syncIntervalSec | รอบเวลาซิงค์ (วินาที) | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
synthetic id 001
- เส้นทาง:
/systemDevices/edge/edit/synthetic-id-001 - Source:
app/pages/systemDevices/edge/edit/[id].vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- ยืนยัน Active Organization และชื่อรายการ/อุปกรณ์เป้าหมายให้ถูกต้อง
- กรอกช่องบังคับก่อน แล้วจึงตั้งค่าขั้นสูงตามตารางด้านล่าง
- ตรวจค่า ID, endpoint, quota, วันเวลา และสถานะอีกครั้งก่อนบันทึก
- กดบันทึกเพียงครั้งเดียวและรอข้อความสำเร็จหรือ validation error
- กลับหน้ารายการหรือ refresh เพื่อยืนยันว่าค่าจาก backend ตรงกับที่ตั้งไว้
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.edge.edit | แก้ไขอุปกรณ์ Edge | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.notFound | ไม่พบอุปกรณ์ Edge | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.fetchError | โหลดข้อมูลอุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.fillRequired | กรุณากรอกข้อมูลที่จำเป็นให้ครบถ้วน | กติกาตรวจข้อมูล: ช่องบังคับต้องมีค่าและรูปแบบต้องถูกต้องก่อนส่งให้ backend |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.updateSuccess | อัพเดทอุปกรณ์ Edge เรียบร้อยแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.updateError | อัพเดทอุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.nxSyncCounts | ซิงค์สำเร็จ: พบกล้อง {channels} ตัว เพิ่มใหม่ {inserted} ตัว อัปเดต {updated} ตัว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.syncSuccess | ซิงค์อุปกรณ์ Edge ทั้งหมดเรียบร้อยแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.syncError | ซิงค์อุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.nxLoginFailed | NX ปฏิเสธบัญชีที่บันทึกไว้ — กรุณาตรวจสอบชื่อผู้ใช้/รหัสผ่าน/URL ของอุปกรณ์ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.nxFetchFailed | ดึงรายการกล้องจาก NX ไม่สำเร็จ — กรุณาลองใหม่อีกครั้ง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.invalidId | รหัสอุปกรณ์ไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.back | กลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.loading | กำลังตรวจสอบการเข้าสู่ระบบ... | สถานะกำลังโหลดหรือประมวลผล; รอให้สถานะสิ้นสุดก่อนเปลี่ยนหน้า/กดคำสั่งเดิมซ้ำ |
systemDevices.edge.deviceInfo | ข้อมูลอุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.username | ชื่อผู้ใช้ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.updateSettings | อัพเดทการตั้งค่า | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
systemDevices.edge.name | ชื่ออุปกรณ์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.namePlaceholder | กรอกชื่ออุปกรณ์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.usernamePlaceholder | กรอกชื่อผู้ใช้ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.password | รหัสผ่าน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.passwordHint | เว้นว่างเพื่อใช้รหัสผ่านเดิม | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.passwordPlaceholder | กรอกรหัสผ่าน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
systemDevices.edge.url | URL | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.edge.urlPlaceholder | เช่น https://example.com | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.ataSettings | การตั้งค่า ATA API | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
อุปกรณ์ Edge Node
- เส้นทาง:
/systemDevices/edge - Source:
app/pages/systemDevices/edge/index.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.edge.title | อุปกรณ์ Edge Node | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.edge.fetchError | โหลดข้อมูลอุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.confirmDelete | คุณแน่ใจหรือไม่ว่าต้องการลบอุปกรณ์ Edge นี้? | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.deleteSuccess | ลบอุปกรณ์ Edge เรียบร้อยแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.deleteError | ลบอุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.nxSyncCounts | ซิงค์สำเร็จ: พบกล้อง {channels} ตัว เพิ่มใหม่ {inserted} ตัว อัปเดต {updated} ตัว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.syncSuccess | ซิงค์อุปกรณ์ Edge ทั้งหมดเรียบร้อยแล้ว | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.edge.syncError | ซิงค์อุปกรณ์ Edge ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.nxLoginFailed | NX ปฏิเสธบัญชีที่บันทึกไว้ — กรุณาตรวจสอบชื่อผู้ใช้/รหัสผ่าน/URL ของอุปกรณ์ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.nxFetchFailed | ดึงรายการกล้องจาก NX ไม่สำเร็จ — กรุณาลองใหม่อีกครั้ง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.notFound | ไม่พบอุปกรณ์ Edge | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.invalidId | รหัสอุปกรณ์ไม่ถูกต้อง | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.edge.type | ประเภท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.edge.name | ชื่ออุปกรณ์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.username | ชื่อผู้ใช้ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.edge.url | URL | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
systemDevices.edge.createdAt | วันที่สร้าง | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
systemDevices.table.actions | ดำเนินการ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.actions.sync | ซิงค์กล้อง | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.actions.edit | แก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.actions.delete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.edge.addNew | เพิ่มอุปกรณ์ Edge | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.actions.exportExcel | ส่งออก Excel | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.edge.total | อุปกรณ์ทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.filter.all | ทั้งหมด | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
systemDevices.filter.select | เลือก | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ลบกลุ่ม
- เส้นทาง:
/systemDevices/groups - Source:
app/pages/systemDevices/groups.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
navSetting.devices.groupCameras | จัดกลุ่มอุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
toast.groups.delete.success | ลบกลุ่มสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
toast.groups.delete.error | ลบกลุ่มไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
toast.fetchTree.error | โหลดโครงสร้างกลุ่มไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
toast.loadError | โหลดข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.groups.tree | โครงสร้างกลุ่ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.expandAll | ขยายทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.collapseAll | ย่อทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.selectGroupHint | เลือกกลุ่มก่อน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.cannotDeleteHasChildren | ลบไม่ได้ (มีกลุ่มย่อย) | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.groups.deleteThisGroup | ลบกลุ่มนี้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.search | พิมพ์คำค้นหา… | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
systemUsers.groups.subgroups | กลุ่มย่อย | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.devices | อุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.createSub.btn | เพิ่มกลุ่มย่อย | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.devicesInGroup | อุปกรณ์ในกลุ่ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.addDevices | เพิ่มอุปกรณ์ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.back | กลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.deviceName | ชื่ออุปกรณ์ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.brand | ยี่ห้อ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.noData | ไม่มีข้อมูล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.alreadyInGroup | อยู่ในกลุ่มแล้ว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.removeSelected | ลบที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.addSelected | เพิ่มที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.groups.selectHintDesc | คลิกที่ folder ด้านซ้ายเพื่อจัดการอุปกรณ์ในกลุ่ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.confirmDeleteTitle | ลบกลุ่ม | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemUsers.groups.confirmDeleteDesc | คุณแน่ใจหรือไม่ว่าจะลบกลุ่มนี้? การกระทำนี้ไม่สามารถย้อนกลับได้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.delete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
KConnect Edge Node
- เส้นทาง:
/systemDevices/kconnect - Source:
app/pages/systemDevices/kconnect/index.vue - ใช้สำหรับ: จัดการกล้อง Edge Resource Group และ KConnect
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemDevices.kconnect.title | KConnect Edge Node | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.kconnect.actions.approveSuccess | อนุมัติ edge node สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.kconnect.actions.approveError | อนุมัติ edge node ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.kconnect.actions.confirmDisable | ปิดใช้งาน KConnect edge node นี้หรือไม่? node จะหยุดรับคำสั่งจนกว่าจะได้รับการอนุมัติใหม่ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.kconnect.actions.disableSuccess | ปิดใช้งาน edge node สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemDevices.kconnect.actions.disableError | ปิดใช้งาน edge node ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.kconnect.online | ออนไลน์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.offline | ออฟไลน์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.table.name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.kconnect.table.nodeId | Node ID | รหัสอ้างอิงของรายการ ใช้เชื่อมกับ URL/API และการตรวจสอบย้อนหลัง; ไม่ควรแก้หรือเดาจากชื่อแสดงผล |
systemDevices.kconnect.table.workspace | Workspace | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.table.status | สถานะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemDevices.kconnect.table.connection | การเชื่อมต่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemDevices.kconnect.table.codecs | Codecs | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.table.maxStreams | จำนวนสตรีมสูงสุด | เพดานการใช้งานที่ระบบอนุญาต; ตรวจหน่วยและค่า unlimited ของหน้านี้ก่อนบันทึก เพราะมีผลต่อการรับข้อมูล/สร้าง resource |
systemDevices.kconnect.table.agentVersion | เวอร์ชัน Agent | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.table.os | OS | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.table.createdAt | สร้างเมื่อ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.table.actions | ดำเนินการ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.actions.approve | อนุมัติ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.kconnect.actions.disable | ปิดใช้งาน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.kconnect.download.button | ดาวน์โหลด KConnect Agent | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.kconnect.subtitle | รายการ edge node ของ KConnect ในองค์กรนี้ — อนุมัติ ปิดใช้งาน หรือดาวน์โหลดตัวติดตั้ง agent | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemDevices.kconnect.noOrg | กรุณาเลือกองค์กรก่อน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemDevices.kconnect.loadError | โหลดรายการ edge node ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemDevices.searchPlaceholder | ค้นหากล้อง… | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
Event Integration
- เส้นทาง:
/systemUsers/organizations - Source:
app/pages/systemUsers/organizations/index.vue - ใช้สำหรับ: จัดการองค์กร หน่วยงาน ผู้ใช้ และ resource catalog
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
toast.loadError | โหลดข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.edit | แก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.buttomDelete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
organizations | องค์กร | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.create | สร้างใหม่ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
search | ค้นหา | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
members | สมาชิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
addMembers | เพิ่มสมาชิก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
eventIntegration.title | Event Integration | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
back | กลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
organizationRole | Organization Role | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.noData | ไม่มีข้อมูล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
selected | เลือกแล้ว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
items | รายการ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
removeSelected | ลบที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
addSelected | เพิ่มที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.organizations.confirmDeleteTitle | ลบองค์กร | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemUsers.organizations.confirmDeleteDesc | คุณแน่ใจหรือไม่ว่าต้องการลบองค์กรนี้? การดำเนินการนี้ไม่สามารถย้อนกลับได้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.buttonCancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ยืนยันการเพิกถอน
- เส้นทาง:
/systemUsers/permissions/api - Source:
app/pages/systemUsers/permissions/api.vue - ใช้สำหรับ: จัดการ menu/API/resource permission
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization และเปิดแท็บ Menu, API หรือ Resource ให้ตรงกับสิทธิ์ที่จะจัดการ
- ค้นหา Profile เดิมก่อนสร้างใหม่ เพื่อลดสิทธิ์ซ้อนจากหลาย Profile
- กำหนด OU/member mode และ include/exclude ตามหลัก least privilege
- เลือก menu หรือ resource/relation แล้วตรวจ Preview ผลสุทธิ
- บันทึก จากนั้นทดสอบด้วยบัญชี member จริงทั้ง sidebar, direct URL, list และ stream
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
integrationToken.name | ชื่อ | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.clientId | Client ID | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.scopes | Scopes | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.createdAt | สร้างเมื่อ | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.lastUsed | ใช้งานล่าสุด | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.fetchError | โหลดรายการ Integration ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
integrationToken.revokeError | เพิกถอน Integration ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
integrationToken.revokeSuccess | เพิกถอน Integration สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
integrationToken.rotateSuccess | เปลี่ยน Secret สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
integrationToken.rotateError | เปลี่ยน Secret ไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
integrationToken.neverUsed | ยังไม่เคยใช้งาน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
global.localeCode | th-TH | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
nav.permissions.main | สิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
nav.permissions.integrations | API Integrations | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
integrationToken.description | จัดการ OAuth2 Client Credentials สำหรับเชื่อมต่อระบบภายนอก | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.createBtn | สร้าง Integration | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.noTokens | ยังไม่มี Integration | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.noTokensDesc | สร้าง Integration เพื่อเชื่อมต่อระบบภายนอกผ่าน OAuth2 | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.statusActive | Active | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.statusRevoked | Revoked | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.rotateBtn | เปลี่ยน Secret | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.revokeBtn | เพิกถอน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.totalCount | ทั้งหมด {count} รายการ | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.revokeConfirmTitle | ยืนยันการเพิกถอน | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.revokeConfirmDesc | การดำเนินการนี้จะลบ Keycloak client และเพิกถอนการเข้าถึงถาวร ไม่สามารถย้อนกลับได้ | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
global.buttonCancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
integrationToken.rotateConfirmTitle | เปลี่ยน Client Secret | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
integrationToken.rotateConfirmDesc | Secret ปัจจุบันจะถูกยกเลิก ระบบจะสร้าง secret ใหม่และแสดงเพียงครั้งเดียว | ข้อมูลความปลอดภัยหรือการลงนาม; จำกัดผู้เห็น ห้ามคัดลอกลง ticket/chat และเปลี่ยนเมื่อสงสัยว่ารั่วไหล |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
สรุปการเลือก
- เส้นทาง:
/systemUsers/permissions/menu - Source:
app/pages/systemUsers/permissions/menu.vue - ใช้สำหรับ: จัดการ menu/API/resource permission
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization และเปิดแท็บ Menu, API หรือ Resource ให้ตรงกับสิทธิ์ที่จะจัดการ
- ค้นหา Profile เดิมก่อนสร้างใหม่ เพื่อลดสิทธิ์ซ้อนจากหลาย Profile
- กำหนด OU/member mode และ include/exclude ตามหลัก least privilege
- เลือก menu หรือ resource/relation แล้วตรวจ Preview ผลสุทธิ
- บันทึก จากนั้นทดสอบด้วยบัญชี member จริงทั้ง sidebar, direct URL, list และ stream
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
toast.loadError | โหลดข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
toast.fetchTree.error | โหลดโครงสร้างกลุ่มไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.edit | แก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
permissions.disableProfile | ปิดใช้งาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.enableProfile | เปิดใช้งาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.buttomDelete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
permissionDenied | ไม่มีสิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissionDeniedDescription | คุณไม่มีสิทธิ์ในการดำเนินการนี้ | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
updateError | เกิดข้อผิดพลาดในการอัปเดต | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
deleteSuccess | ลบสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
deleteError | เกิดข้อผิดพลาดในการลบ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
updateSuccess | อัปเดตสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
nav.permissions.main | สิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.profiles | โปรไฟล์สิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.create | สร้างใหม่ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.search | พิมพ์คำค้นหา… | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
permissions.scopeOrganization | ทั้งองค์กร | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.scopeOrgUnit | หน่วยงาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.selectProfile | เลือกโปรไฟล์ทางซ้าย | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.buttonCancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.buttonSave | บันทึกข้อมูล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
permissions.summary.heading | สรุปการเลือก | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
permissions.summary.wholeOu | OU ทั้งหมด: | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.summary.narrowedOu | OU ระบุเจาะจง: | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.summary.totalAccess | เข้าถึงได้จริง (รวมหน่วยงานแม่): | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.summary.peopleUnit | คน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.summary.directLabel | เลือกตรง | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
permissions.summary.inheritedLabel | สืบทอดจากหน่วยงานแม่ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
resource
- เส้นทาง:
/systemUsers/permissions/resource - Source:
app/pages/systemUsers/permissions/resource.vue - ใช้สำหรับ: จัดการ menu/API/resource permission
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization และเปิดแท็บ Menu, API หรือ Resource ให้ตรงกับสิทธิ์ที่จะจัดการ
- ค้นหา Profile เดิมก่อนสร้างใหม่ เพื่อลดสิทธิ์ซ้อนจากหลาย Profile
- กำหนด OU/member mode และ include/exclude ตามหลัก least privilege
- เลือก menu หรือ resource/relation แล้วตรวจ Preview ผลสุทธิ
- บันทึก จากนั้นทดสอบด้วยบัญชี member จริงทั้ง sidebar, direct URL, list และ stream
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
nav.permissions.main | สิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.profiles | โปรไฟล์สิทธิ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.create | สร้างใหม่ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.search | พิมพ์คำค้นหา… | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
permissions.selectProfile | เลือกโปรไฟล์ทางซ้าย | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.buttonCancel | ยกเลิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.buttonSave | บันทึกข้อมูล | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
permissions.advanced | ขั้นสูง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
permissions.tabOuMembers | หน่วยงาน/สมาชิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
selectDevice | เลือกอุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
ksearch.chats.confirmDelete | ลบแชท | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
ksearch.chats.deleteDescription | คุณแน่ใจหรือไม่ว่าต้องการลบแชทนี้? การดำเนินการนี้ไม่สามารถย้อนกลับได้ | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
global.buttomDelete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
synthetic id 001
- เส้นทาง:
/systemUsers/permissions/resource/synthetic-id-001 - Source:
app/pages/systemUsers/permissions/resource/[id].vue - ใช้สำหรับ: จัดการ menu/API/resource permission
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization และเปิดแท็บ Menu, API หรือ Resource ให้ตรงกับสิทธิ์ที่จะจัดการ
- ค้นหา Profile เดิมก่อนสร้างใหม่ เพื่อลดสิทธิ์ซ้อนจากหลาย Profile
- กำหนด OU/member mode และ include/exclude ตามหลัก least privilege
- เลือก menu หรือ resource/relation แล้วตรวจ Preview ผลสุทธิ
- บันทึก จากนั้นทดสอบด้วยบัญชี member จริงทั้ง sidebar, direct URL, list และ stream
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
| — | ไม่พบ label แบบ static ใน source | หน้านี้สร้างข้อความจากข้อมูลหรือ component ย่อย ให้ยึดภาพและ workflow ที่แสดง |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
Resource Groups (admin)
- เส้นทาง:
/systemUsers/resources - Source:
app/pages/systemUsers/resources/index.vue - ใช้สำหรับ: จัดการองค์กร หน่วยงาน ผู้ใช้ และ resource catalog
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
toast.loadError | โหลดข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
resources.admin.deleteSuccess | ลบกลุ่มสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
resources.admin.deleteHasDescendants | ลบไม่ได้ — กลุ่มนี้มีกลุ่มลูก {n} กลุ่ม กรุณาย้ายหรือลบกลุ่มลูกก่อน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.delete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
resources.admin.orphanSortByName | ชื่อ | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
resources.admin.colDirect | กล้องตรง | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.colSubtree | กล้องรวม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.colChildren | กลุ่มลูก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.colProfileUsage | Profile ที่ใช้ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.profileActive | ใช้งานอยู่ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
resources.admin.profileDraft | Draft | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.colIcon | ไอคอน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.iconConfigured | มี | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.iconInherited | สืบทอด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.iconNone | ไม่มี | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.orphanColUpdated | อัปเดตล่าสุด | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
resources.admin.pageTitle | Resource Groups (admin) | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
resources.admin.pageIntro | หน้า admin: ดูสถิติรวม + จัดการ orphan/delete. สำหรับ tree CRUD ใช้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
resources.admin.pageIntroLink | จัดกลุ่มอุปกรณ์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.deleteRulesHint | ลบกลุ่มได้เฉพาะกลุ่มที่ไม่มี child (move/delete child ก่อน) — กล้องที่อยู่ในกลุ่ม จะกลายเป็น orphan | ตำแหน่งบริการหรืออุปกรณ์ปลายทาง; ต้องเข้าถึงได้จากระบบและใช้ protocol/port ให้ตรงกับบริการ |
resources.admin.fallbackBanner | โหมดสำรอง — backend ยังไม่รองรับ A3 ฟีเจอร์ลบ/orphan/รายงานถูกปิดชั่วคราว | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
resources.admin.cardTotal | รวมกลุ่ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.cardRoot | ระดับบน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.cardRootSub | ไม่มีกลุ่มแม่ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.cardInGroups | กล้องในกลุ่ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.cardInGroupsSub | ผูกกับ group แล้ว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.cardOrphan | กล้อง orphan | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
resources.admin.cardOrphanSub | คลิกดูรายการ → | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
unit
- เส้นทาง:
/systemUsers/unit - Source:
app/pages/systemUsers/unit.vue - ใช้สำหรับ: จัดการองค์กร หน่วยงาน ผู้ใช้ และ resource catalog
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
manageUnitGroup | จัดการหน่วยงาน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
toast.fetchTree.error | โหลดโครงสร้างกลุ่มไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
toast.groups.delete.success | ลบกลุ่มสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
toast.groups.delete.error | ลบกลุ่มไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
toast.loadError | โหลดข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.groups.tree | โครงสร้างกลุ่ม | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.expandAll | ขยายทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.collapseAll | ย่อทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.selectGroupHint | เลือกกลุ่มก่อน | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.groups.cannotDeleteHasChildren | ลบไม่ได้ (มีกลุ่มย่อย) | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.groups.deleteThisGroup | ลบกลุ่มนี้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.search | พิมพ์คำค้นหา… | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
systemUsers.groups.subgroups | กลุ่มย่อย | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
members | สมาชิก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.addChild | สร้างกลุ่มย่อย | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
addMembers | เพิ่มสมาชิก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
search | ค้นหา | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
back | กลับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
name | ชื่อ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
ouRole | บทบาท OU | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
orgRole | บทบาท Org | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.noData | ไม่มีข้อมูล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
selected | เลือกแล้ว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
items | รายการ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
removeSelected | ลบที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
addSelected | เพิ่มที่เลือก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
เพิ่มข้อมูลผู้ใช้งานระบบ
- เส้นทาง:
/systemUsers/users/synthetic-id-001 - Source:
app/pages/systemUsers/users/[id].vue - ใช้สำหรับ: จัดการองค์กร หน่วยงาน ผู้ใช้ และ resource catalog
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
systemUsers.user.addTitle | เพิ่มข้อมูลผู้ใช้งานระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemUsers.user.editTitle | แก้ไขข้อมูลผู้ใช้งานระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
toast.loadError | โหลดข้อมูลไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.org.actionUnknownReason | ไม่ทราบสาเหตุ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.org.actionAdd | เพิ่ม | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.org.actionRemove | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.org.actionRoleChange | เปลี่ยนบทบาท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.toast.partialSave | บันทึกบางส่วน | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.org.failureCount | รายการล้มเหลว | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemUsers.messages.created | ✅ ผู้ใช้ถูกสร้างเรียบร้อยแล้ว | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.messages.updated | ✅ ผู้ใช้ถูกแก้ไขเรียบร้อยแล้ว | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
systemUsers.messages.createdFailed | ❌ ไม่สามารถสร้างผู้ใช้ได้ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.messages.updatedFailed | ❌ ไม่สามารถแก้ไขผู้ใช้ได้ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.user.description | กรุณากรอกข้อมูลให้ครบถ้วน | ข้อความอธิบายสำหรับผู้ดูแลและ audit context; ระบุเหตุผลที่ตรวจสอบย้อนหลังได้และไม่ใส่ข้อมูลลับ |
systemUsers.user.profileImage | รูปภาพโปรไฟล์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.selected_photo | ภาพที่เลือก | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.change_photo | เปลี่ยนรูป | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
police.table.select_photo | เลือกรูปภาพ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.user.status | สถานะผู้ใช้ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemUsers.user.fullName | ชื่อจริง - สกุลจริง | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemUsers.user.telephone | เบอร์โทรศัพท์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.user.email | อีเมล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.user.role | บทบาท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.user.organization | องค์กร | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.org.pendingChangesCount | {count} การเปลี่ยนแปลงรอบันทึก | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.org.roleChanged | รอเปลี่ยนบทบาท | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่
ผู้ใช้ระบบ
- เส้นทาง:
/systemUsers/users - Source:
app/pages/systemUsers/users/index.vue - ใช้สำหรับ: จัดการองค์กร หน่วยงาน ผู้ใช้ และ resource catalog
- สิทธิ์ก่อนเข้า: ต้อง login, เลือก Active Organization และมีสิทธิ์ผู้ดูแล/menu ที่เกี่ยวข้อง

- เมนูหลักและขอบเขตโมดูล
- ชื่อหน้าและบริบทที่กำลังใช้งาน
- คำสั่งหลัก ตัวกรอง หรือปุ่มเพิ่มข้อมูล
- พื้นที่ข้อมูล ฟอร์ม ตาราง แผนที่ หรือ empty state
- การแจ้งเตือน ภาษา ธีม และเมนูบัญชี
วิธีใช้งาน
- เลือก Active Organization แล้วตรวจว่าตารางแสดงขอบเขตที่ต้องการ
- ใช้ค้นหา/ตัวกรอง/เรียงลำดับเพื่อลดรายการก่อนเลือกเป้าหมาย
- อ่านสถานะและคอลัมน์สำคัญ แล้วกดแถวหรือปุ่มรายละเอียด
- ใช้คำสั่งเพิ่ม/แก้ไข/ลบเฉพาะเมื่อชื่อและ ID ของเป้าหมายตรงกัน
- ล้างตัวกรองและ refresh หลังทำรายการเพื่อยืนยันผลและจำนวนรายการ
ค่าหรือคำสั่งที่พบใน source
| Key | ข้อความที่ผู้ใช้เห็น | ความหมาย/การใช้งาน |
|---|---|---|
global.success | สำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemUsers.org.inviteSuccess | เพิ่มเข้าองค์กรสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
global.error | เกิดข้อผิดพลาด | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.org.inviteFailed | เพิ่มเข้าองค์กรไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.org.removeSuccess | ลบออกจากองค์กรสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
systemUsers.org.removeFailed | ลบออกจากองค์กรไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
userDeleteSuccess | ลบผู้ใช้ระบบสำเร็จ | ข้อความยืนยันว่าระบบรับคำสั่งแล้ว; refresh หรือกลับไปหน้ารายการเพื่อตรวจผลที่บันทึกจริง |
userDeleteError | ลบผู้ใช้ระบบไม่สำเร็จ | ข้อความผิดพลาด: อ่านสาเหตุ แก้ค่าหรือสิทธิ์ที่ระบุ แล้วลองใหม่โดยไม่กดซ้ำระหว่างที่ระบบกำลังประมวลผล |
systemUsers.status.active | เปิดใช้งาน | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
systemUsers.status.inactive | ปิดใช้งาน | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
global.edit | แก้ไข | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
global.buttomDelete | ลบ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.table.order | ลำดับ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.table.username | ชื่อผู้ใช้ | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemUsers.table.fullname | ชื่อ-นามสกุล | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
systemUsers.table.email | อีเมล | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.table.status | สถานะ | สถานะ lifecycle ของรายการ; ใช้ตัดสินว่ารายการพร้อมใช้งาน ถูกพัก หรือสิ้นสุด และตรวจผลกระทบก่อนเปลี่ยนสถานะ |
platformRole | Platform Role | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.table.createdAt | วันที่สร้าง | วันหรือช่วงเวลาที่ใช้กรอง/กำหนดอายุรายการ; ตรวจ timezone และให้วันสิ้นสุดไม่ก่อนวันเริ่มต้น |
global.actions | การดำเนินการ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.title | ผู้ใช้ระบบ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
systemUsers.addUser | เพิ่มผู้ใช้ | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemUsers.summary.total | ผู้ใช้ทั้งหมด | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.searchPlaceholder | ค้นหาผู้ใช้... | เครื่องมือจำกัดหรือจัดลำดับผลลัพธ์บนหน้าปัจจุบัน; ล้างตัวกรองเมื่อสงสัยว่าข้อมูลหาย |
systemDevices.actions.exportExcel | ส่งออก Excel | คำสั่งเปลี่ยนหรือส่งออกข้อมูล; ตรวจรายการเป้าหมายและอ่าน confirmation ก่อนยืนยัน โดยเฉพาะคำสั่งที่ย้อนกลับไม่ได้ |
systemDevices.pagination.perPageLabel | รายการต่อหน้า | ชื่อที่ใช้แสดงและค้นหารายการ; ตั้งให้สื่อความหมายและไม่ซ้ำกับรายการในขอบเขตเดียวกัน |
global.display | แสดงคอลัมน์ | ข้อความหรือค่าที่หน้าใช้แสดงบริบทของรายการ; ตรวจค่าจากข้อมูลจริงและข้อความช่วยบนหน้าก่อนดำเนินการ |
systemUsers.detail.title | รายละเอียดผู้ใช้ | ชื่อหน้า/ส่วน ใช้ยืนยันว่ากำลังทำงานในโมดูลและบริบทที่ถูกต้องก่อนสั่งงาน |
สถานะผิดปกติ
- Loading: รอให้ skeleton/spinner หายก่อนกดซ้ำ
- Empty: ไม่ได้แปลว่าไม่มีข้อมูลทั้งระบบ; อาจถูกกรองหรือไม่มี resource grant
- 403/เมนูหาย: ติดต่อ Org Admin เพื่อตรวจ menu และ resource permission แยกกัน
- บันทึกไม่สำเร็จ: อ่าน validation message, รักษาค่าที่กรอกไว้ และตรวจ active organization ก่อนลองใหม่