新增房表生成前端页面

This commit is contained in:
andy
2026-07-18 12:58:01 +07:00
parent d3a52e7605
commit 0715e8334f
16 changed files with 1694 additions and 5 deletions

View File

@@ -27,6 +27,7 @@ export default {
orders: 'Order list',
taskQueue: 'Task queue',
manualInvoice: 'Manual invoice',
roomingList: 'Rooming list',
sourceMessages: 'Source messages',
systemStatus: 'System status',
orderDetail: 'Order detail',
@@ -347,6 +348,60 @@ export default {
chargePositive: 'Quantity, rate, and nights must be greater than 0.',
},
},
roomingList: {
eyebrow: 'Reservation tool',
title: 'Generate Rooming List Excel',
subtitle: 'Upload the travel group list, enter rooming defaults, and download the generated hotel import workbook.',
currentHotel: 'Current hotel',
sourceSection: 'Source list and required fields',
targetSection: 'Target Excel defaults',
sourceFile: 'Source Excel file',
sourceFileHint: 'Supports .xls / .xlsx. The frontend does not read or log guest list content.',
noFile: 'Choose a .xls / .xlsx file',
peoplePerRoom: 'People per room',
arrival: 'Arrival',
departure: 'Departure',
roomType: 'Room type',
roomTypePlaceholder: 'e.g. DLX / TWN',
titleColumn: 'Title',
rateCode: 'Rate Code',
adults: 'Adults',
children: 'Children',
paymentType: 'Payment Type',
vip: 'VIP',
nationality: 'Nationality',
email: 'Email',
idType: 'ID Type',
idNumber: 'ID Number',
generate: 'Generate and download Excel',
generating: 'Generating',
validationTitle: 'Please fix the form',
resultSuccess: 'Generation result',
resultDownloaded: 'Excel has been generated and the browser download was triggered.',
downloadedFile: 'Downloaded file',
fieldErrors: {
fileRequired: 'Choose a source Excel file.',
fileType: 'Only .xls / .xlsx files are supported.',
positiveInteger: 'People per room must be greater than 0.',
nonNegativeInteger: 'Must be 0 or a positive integer.',
arrivalRequired: 'Enter arrival date.',
departureRequired: 'Enter departure date.',
dateFormat: 'Date format must be yyyy-MM-dd.',
departureAfterArrival: 'Departure must be later than arrival.',
roomTypeRequired: 'Enter room type.',
invalidEmail: 'Invalid email.',
},
errors: {
FRONTEND_VALIDATION: 'Form validation failed. Check required fields.',
ROOMING_LIST_VALIDATION_FAILED: 'Rooming List field validation failed. Please check the form.',
ROOMING_LIST_SOURCE_FILE_INVALID: 'The source list is invalid. Check the Excel headers and file format.',
FRONTEND_PERMISSION_DENIED: 'Your account does not have Rooming List generation permission.',
HOTEL_ACCESS_DENIED: 'Your account cannot access the selected hotel.',
AUTH_TOKEN_REQUIRED: 'Please sign in before generating a Rooming List.',
AUTH_SESSION_INVALID: 'Your session has expired. Please sign in again.',
UNKNOWN: 'Rooming List generation failed. Please retry later.',
},
},
order: {
summary: 'Order summary',
taskQueue: 'Order task queue',