กำลังเตรียมข้อมูลระบบ...
{{ lang === 'TH' ? 'หน้าแรก / ภาพรวมระบบ' : 'Home / Overview' }}
{{ lang === 'TH' ? 'ยินดีต้อนรับเข้าสู่ระบบจัดการข้อมูลทีม กรุณาตรวจสอบสถานะและข้อมูลที่ขาดหายด้านล่าง' : 'Welcome to the Team Portal. Please check your status and missing information below.' }}
{{ lang === 'TH' ? 'สรุปรายการที่ลงประกวด' : 'Registered Entries Summary' }}
{{ lang === 'TH' ? 'ข้อมูลพื้นฐานของวง' : 'Basic Info' }}
{{ lang === 'TH' ? 'สมบูรณ์' : 'Complete' }}
{{ lang === 'TH' ? 'ขาดข้อมูล' : 'Missing' }}
{{ lang === 'TH' ? 'รายการประกวด' : 'Competition Details' }}
{{ zone }}
{{ status.title }}
{{ status.message }}
{{ t.subTeamsDesc }}
{{ lang === 'TH' ? 'โปรดตรวจสอบความถูกต้อง!' : 'Please Verify Spelling!' }}
{{ lang === 'TH' ? 'รายชื่อนี้จะนำไปจัดทำเกียรติบัตร โปรดตรวจสอบตัวสะกด คำนำหน้า ชื่อ และนามสกุล ให้ถูกต้อง 100%' : 'This list will be used for certificates. Please carefully check the spelling of all titles and names.' }}
{{ lang === 'TH' ? 'สิ้นสุดการประกวด' : 'Competition Finished' }} {{ zone }}
{{ lang === 'TH' ? 'ส่งรายชื่อเพื่อทำเกียรติบัตร' : 'Finalize Roster for Certificates' }} {{ zone }}
{{ lang === 'TH' ? getZoneFinalizeStatus(zone).msgTh : getZoneFinalizeStatus(zone).msgEn }}
1
{{ lang === 'TH' ? 'เพิ่มรายชื่อสมาชิกทั้งหมด' : 'Add All Members' }}
{{ lang === 'TH' ? 'ใส่รายชื่อทุกคนในทีมให้ครบก่อน (รวมผู้เข้าประกวด และผู้บริหาร/ทีมงาน)' : 'Add all participants and executives/staffs here first.' }}
{{ lang === 'TH' ? 'เพิ่มรายชื่อสมาชิกทั้งหมด' : 'Add All Members' }}
{{ lang === 'TH' ? 'ใส่รายชื่อทุกคนในทีมให้ครบก่อน (รวมผู้เข้าประกวด และผู้บริหาร/ทีมงาน)' : 'Add all participants and executives/staffs here first.' }}
{{ isEditingMember ? (lang === 'TH' ? 'แก้ไขรายชื่อ' : 'Edit Member') : t.btnAddMember }}
| # | {{ lang === 'TH' ? 'ชื่อ-นามสกุล (ไทย)' : 'Thai Name' }} | {{ lang === 'TH' ? 'ชื่อ (อังกฤษ)' : 'Eng Name' }} | {{ lang === 'TH' ? 'เพศ' : 'Sex' }} | {{ lang === 'TH' ? 'สัญชาติ' : 'Nation' }} | {{ lang === 'TH' ? 'เลขบัตร/Passport' : 'ID/Passport' }} | {{ lang === 'TH' ? 'หมวดหมู่/ตำแหน่ง' : 'Type/Position' }} | {{ lang === 'TH' ? 'จัดการ' : 'Actions' }} |
|---|---|---|---|---|---|---|---|
| {{ lang === 'TH' ? 'กำลังโหลด...' : 'Loading...' }} | |||||||
| {{ lang === 'TH' ? 'ยังไม่มีรายชื่อ' : 'No members found' }} | |||||||
| {{ idx + 1 }} |
{{ member.title !== 'OTHER' && member.title ? member.title.trim() : (member.customTitle || '').trim() }}{{ /^[A-Za-z\.\s]+$/.test(member.title !== 'OTHER' && member.title ? member.title : (member.customTitle || '')) ? ' ' : '' }}{{ member.firstName ? (member.firstName.trim() + ' ' + (member.lastName || '').trim()) : (member.nameThai || '').trim() }}
{{ lang === 'TH' ? 'ชื่อซ้ำ (หลายตำแหน่ง)' : 'Duplicate Name' }}
{{ lang === 'TH' ? 'ขาด:' : 'Missing:' }} {{ getMissingFields(member).join(', ') }}
{{ lang === 'TH' ? 'ข้อมูลครบ' : 'Complete' }}
{{ part.category }}({{ part.eventZone }})
{{ lang === 'TH' ? 'ทุกรายการประกวด' : 'All Entries' }}
|
{{ member.nameEng || '-' }} |
{{ member.gender === 'ชาย' ? (lang === 'TH' ? 'ชาย' : 'Male') : (member.gender === 'หญิง' ? (lang === 'TH' ? 'หญิง' : 'Female') : member.gender) }} | {{ String(member.nation).toLowerCase() === 'thai' ? (lang === 'TH' ? 'ไทย' : 'Thai') : (member.customNation || 'Other') }} | {{ member.idCard || '-' }} | {{ lang === 'TH' ? 'ผู้เข้าประกวด' : 'Participant' }}{{ member.partRole || '-' }} {{ lang === 'TH' ? 'ผู้บริหาร/ทีมงาน' : 'Executive/Staff' }}{{ member.staffRole || '-' }} |
Locked
|
2
{{ lang === 'TH' ? 'จัดตัวผู้เล่นลงการประกวด' : 'Assign to Categories' }}
{{ lang === 'TH' ? 'ติ๊กถูกเฉพาะ "ผู้เข้าประกวด" เพื่อเลือกลงแต่ละรายการ (ผู้บริหาร/ทีมงาน จะได้รับเกียรติบัตรทุกประเภท)' : 'Check boxes to assign participants. (Executives/Staffs will receive certificates for all entries).' }}
{{ lang === 'TH' ? 'จัดตัวผู้เล่นลงการประกวด' : 'Assign to Categories' }}
{{ lang === 'TH' ? 'ติ๊กถูกเฉพาะ "ผู้เข้าประกวด" เพื่อเลือกลงแต่ละรายการ (ผู้บริหาร/ทีมงาน จะได้รับเกียรติบัตรทุกประเภท)' : 'Check boxes to assign participants. (Executives/Staffs will receive certificates for all entries).' }}
{{ lang === 'TH' ? 'ยังไม่มีรายการประกวด' : 'No entries added yet.' }}
{{ lang === 'TH' ? 'กรุณาไปเพิ่มรายการประกวดที่แท็บ "รายละเอียดการประกวด" ก่อน' : 'Please add entries in the Entries tab first.' }}
สรุปข้อมูลรุ่นที่ลงประกวด
รายการที่แข่งจบแล้ว (Past Entries)
ตารางจัดตัวผู้เข้าประกวด
| {{ lang === 'TH' ? 'รายชื่อผู้เข้าประกวด' : 'Participant Name' }} | {{ lang === 'TH' ? 'เพศ' : 'Sex' }} | {{ lang === 'TH' ? 'ตำแหน่ง' : 'Position' }} |
{{ part.eventZone }}
{{ part.category || 'Entry ' + (pIdx+1) }}
{{ lang === 'TH' ? 'เลือกแล้ว:' : 'Selected:' }} {{ part.assignedMembers ? part.assignedMembers.length : 0 }}
Locked
|
Finished {{ part.category || 'Entry ' + (pIdx+1) }} Locked
|
|---|---|---|---|---|
| {{ lang === 'TH' ? 'ยังไม่มีรายชื่อ กรุณากลับไปเพิ่มรายชื่อใน Step 1' : 'No members. Please add in Step 1.' }} | ||||
|
{{ idx + 1 }}.
{{ (member.title !== 'OTHER' && member.title ? member.title.trim() : (member.customTitle || '').trim()) }}{{ /^[A-Za-z\.\s]+$/.test(member.title !== 'OTHER' && member.title ? member.title : (member.customTitle || '')) && (member.title || member.customTitle) ? ' ' : '' }}{{ member.firstName ? ((member.firstName || '').replace(/\s+/g, ' ').trim() + (member.lastName ? ' ' + (member.lastName || '').replace(/\s+/g, ' ').trim() : '')) : ((member.nameEng || member.nameThai || '').replace(/\s+/g, ' ').trim()) }}
|
{{ member.gender }} | {{ member.partRole || '-' }} |
|
|
{{ t.logoGuide }}
- {{ t.logoGuide1 }}
- {{ t.logoGuide2 }}
- {{ t.logoGuide3 }}
- ระบบจะให้ตัดกรอบ (Crop) อัตราส่วน 1:1 ก่อนอัปโหลด
รอตรวจสอบสลิป ชำระเงินเรียบร้อย ไม่มีค่าใช้จ่าย {{ t.unpaid }}
รอตรวจสอบสลิป ชำระเงินเรียบร้อย ไม่มีค่าใช้จ่าย {{ t.unpaid }}
{{ t.noEntries }}
{{ t.announcer }}
{{ t.announcerDesc }}
{{ lang === 'TH' ? 'กำลังตรวจสอบและเตรียมข้อมูลสคริปต์...' : 'Preparing Script Data...' }}
{{ lang === 'TH' ? 'ระบบยังไม่เปิดให้กรอกข้อมูลในขณะนี้' : 'Script submission is currently closed.' }}
{{ lang === 'TH' ? 'กรุณารอประกาศจากทีมงาน' : 'Please wait for announcements.' }}
เปิดโหมดกรอกข้อมูลภายหลังไว้
ระบบปลดล็อกความจำเป็นชั่วคราวให้แล้ว คุณสามารถกดปุ่ม "บันทึกข้อมูล (Save)" ด้านล่างสุดได้ทันที
{{ lang === 'TH' ? 'ไม่ต้องกรอกข้อมูลสคริปต์พิธีกร' : 'No MC Script Required' }}
{{ lang === 'TH' ? 'โซนนี้ปิดรับข้อมูลแล้ว หรือรายการนี้ไม่จำเป็นต้องใช้สคริปต์' : 'MC script is not required or has been closed for this category/zone.' }}
{{ t.loadingSchedule }}
{{ t.bookingClosed }}
{{ t.waitAdminAnnouncement }}
{{ t.notEligible }}
{{ t.notEligibleDesc }}
{{ t.allowedOnly }}
- {{ lang === 'TH' ? 'ระบบการจองเป็นแบบ เลือกก่อนมีสิทธิ์ก่อน (First-come, first-served)' : 'Booking is First-come, first-served.' }}
- {{ lang === 'TH' ? 'สงวนสิทธิ์ 1 ทีม (แยกทีมตามประเภทการประกวด) จองได้ 1 ครั้ง ต่อ 1 กลุ่มงาน' : 'Only one reservation per team (separate teams according to competition category) is allowed per group.' }}
- {{ lang === 'TH' ? 'สงวนสิทธิ์ 1 ทีม จองได้ 1 ครั้ง ต่อ 1 วัน เท่านั้น' : 'Only one reservation per team per day is allowed.' }}
- {{ lang === 'TH' ? 'กรณีที่ทีมไม่มาซ้อมตามตาราง ให้ปล่อยสนามว่างไว้ ทีมอื่นไม่สามารถสวมสิทธิ์แทนได้' : 'No-shows keep the slot empty for fairness. No substitutions allowed.' }}
- {{ lang === 'TH' ? 'โปรดเตรียมความพร้อมก่อนเวลา 30 นาที (เวลาซ้อมรวมการจัดเตรียมอุปกรณ์แล้ว)' : 'Please prepare 30 mins early. Slot duration includes setup time.' }}
- {{ lang === 'TH' ? 'ต้องฝึกซ้อมตามประเภทที่ลงทะเบียนไว้ ในกรณีที่ได้รับสิทธิ์ลงมากกว่า 1 ประเภท ต้องซ้อมตามช่วงเวลาและประเภทที่ระบุไว้ในตารางเท่านั้น' : 'Teams must practice according to their registered categories. In cases where a team is eligible for more than one category, they must strictly adhere to the specific time slots and categories designated in the schedule.' }}
- {{ lang === 'TH' ? 'กรุณาบริหารจัดการเวลาฝึกซ้อมด้วยตนเอง และออกจากสนามทันทีเมื่อหมดเวลา เพื่อรักษาสิทธิ์ของทีมอื่น โดยจะไม่มีเจ้าหน้าที่คอยแจ้งเตือนในพื้นที่' : 'Teams are responsible for managing their own rehearsal time. Please vacate the field immediately once your session ends to respect the schedules of other teams. There will be no staff on-site to monitor the time.' }}
{{ t.bookedList }}
{{ formatDateToThai(b.date) }} | {{ t.timeLabel }} {{ b.timeSlot }}
{{ t.bookMoreSlots }}
{{ t.yourQueue }}
{{ lang === 'TH' ? '(ยังสามารถกดจองได้จากตารางด้านบน)' : '(You can still book from the grid above)' }}
{{ t.allBooked }}