พัฒนาWidgets
ตัวเลือกข้อมูล
ให้ผู้ใช้เลือกระเบียนจากตารางหรือจากข้อมูล lookup ของฟอร์ม ผลลัพธ์กลับมาเป็นข้อความ select พร้อมระเบียนที่เลือก
widget data-picker ให้ผู้ใช้ค้นหา กรอง และเลือกระเบียนหนึ่งระเบียนหรือหลายระเบียน แล้วส่งระเบียนที่เลือกกลับไปที่หน้าของคุณ
URL และพารามิเตอร์
widget อยู่ที่ <site>/widgets/data-picker พารามิเตอร์ที่ใช้ร่วมกันอยู่ใน Widgets
| พารามิเตอร์ | ความหมาย | จำเป็น |
|---|---|---|
item_id | _id ของตารางหรือฟอร์มที่เป็นแหล่งข้อมูล | ใช่ |
data_lookup_field | ชื่อฟิลด์ใน item_id ที่ชี้ไปยังข้อมูล lookup ถ้าใส่ widget แสดงข้อมูล lookup นั้น (คอลัมน์ code และ description) แทนระเบียนของ item_id | ไม่ |
value_field, text_field | ชื่อฟิลด์สองฟิลด์ของตาราง ใส่ทั้งคู่ widget แสดงคอลัมน์ text_field อย่างเดียว และส่งกลับเฉพาะสองฟิลด์นี้ ใส่แค่ตัวเดียวไม่มีผล | ไม่ |
single_select | true เลือกได้ระเบียนเดียว ค่าเริ่มต้นคือ false | ไม่ |
disabled_rows | ค่าที่เลือกไม่ได้ คั่นด้วยจุลภาค เทียบกับ value_field ถ้าใช้ value_field เทียบกับ code ถ้าใช้ data_lookup_field ไม่เช่นนั้นเทียบกับ _id | ไม่ |
ข้อความ
| action | ทิศทาง | payload |
|---|---|---|
select | widget ถึงหน้าของคุณ | { items } อาร์เรย์ของระเบียนที่เลือก แต่ละระเบียนเป็นอ็อบเจกต์ของฟิลด์ ถ้าเลือกระเบียนเดียวก็ยังเป็นอาร์เรย์ |
cancel | widget ถึงหน้าของคุณ | ไม่มี ผู้ใช้ปิดโดยไม่เลือก |
widget นี้ไม่ส่ง ready และไม่อ่าน post-widget-parameters ใส่ทุกค่าใน URL widget ส่ง error และ close-with-error ตาม Widgets
ตัวอย่าง
embedParams คือพารามิเตอร์ร่วมจาก Widgets
const params = new URLSearchParams({
...embedParams,
item_id: tableId,
single_select: 'true',
})
frame.src = `${site}/widgets/data-picker?${params}`
addEventListener('message', (e) => {
if (e.origin !== site || e.data.messageToken !== messageToken) return
if (e.data.action === 'select') useRecords(e.data.payload.items)
})