1027 lines
39 KiB
TypeScript
1027 lines
39 KiB
TypeScript
export default {
|
||
app: {
|
||
name: 'Hotel OMS',
|
||
theme: '主题',
|
||
language: '语言',
|
||
navigationAria: '预订订单导航',
|
||
healthUp: '后端已连接',
|
||
healthDown: '后端未连接',
|
||
healthChecking: '检查中',
|
||
},
|
||
auth: {
|
||
loginTitle: '登录系统',
|
||
loginSubtitle: '使用系统账号进入 TH Hotel 预订处理工作台。',
|
||
username: '用户名',
|
||
password: '密码',
|
||
loginSubmit: '登录',
|
||
loggingIn: '登录中',
|
||
loginFailed: '用户名或密码错误。',
|
||
logout: '退出登录',
|
||
currentUser: '当前用户',
|
||
currentHotel: '当前酒店',
|
||
unauthorizedTitle: '没有访问权限',
|
||
unauthorizedMessage: '当前账号没有访问这个页面或操作的权限,请联系管理员调整角色权限。',
|
||
backHome: '返回可访问页面',
|
||
},
|
||
nav: {
|
||
orders: '订单列表',
|
||
taskQueue: '预订事项',
|
||
manualInvoice: '手工开票',
|
||
roomingList: '房表生成',
|
||
sourceMessages: '消息来源',
|
||
systemStatus: '系统状态',
|
||
orderDetail: '订单总览',
|
||
taskDetail: '订单事项办理',
|
||
sourceMessageConversation: '邮件会话',
|
||
sourceNotificationDetail: '来源通知详情',
|
||
debugEml: 'Debug EML',
|
||
systemSettings: '系统设置',
|
||
systemUsers: '用户管理',
|
||
systemRoles: '角色权限',
|
||
systemMenus: '菜单管理',
|
||
systemHotels: '酒店管理',
|
||
systemReservationCatalogs: '预订目录',
|
||
systemAudits: '管理审计',
|
||
},
|
||
common: {
|
||
loading: '加载中',
|
||
noData: '暂无数据',
|
||
endpointPending: '接口待接入',
|
||
endpointMissing: '接口待补',
|
||
all: '全部',
|
||
unknownStatus: '未知状态',
|
||
unknownTaskType: '未知任务类型',
|
||
unknownTaskSubtype: '未知任务细分',
|
||
unknownReadonlyReason: '暂不可处理',
|
||
unknownActorType: '未知操作者',
|
||
unknownAuditAction: '未知操作',
|
||
unknownOperation: '未知操作',
|
||
previousPage: '上一页',
|
||
nextPage: '下一页',
|
||
pageStatus: '第 {current} / {total} 页',
|
||
pageSize: '每页',
|
||
refresh: '刷新',
|
||
saving: '保存中',
|
||
cancel: '取消',
|
||
},
|
||
notFound: {
|
||
title: '页面不可用',
|
||
message: '当前菜单或链接对应的前端页面尚未接入。',
|
||
backHome: '返回可访问页面',
|
||
},
|
||
systemAdmin: {
|
||
title: '系统设置',
|
||
subtitle: '维护用户、角色权限、菜单和酒店资料',
|
||
navigationAria: '系统设置导航',
|
||
common: {
|
||
keyword: '关键词',
|
||
viewDetail: '查看详情',
|
||
selectRow: '选择一行查看详情',
|
||
create: '新增',
|
||
save: '保存',
|
||
edit: '编辑',
|
||
yes: '是',
|
||
no: '否',
|
||
},
|
||
status: {
|
||
ACTIVE: '启用',
|
||
DISABLED: '禁用',
|
||
},
|
||
users: {
|
||
title: '用户筛选',
|
||
tableTitle: '用户数据',
|
||
detailTitle: '用户详情',
|
||
createTitle: '新增用户',
|
||
totalSuffix: '个用户',
|
||
keywordPlaceholder: '用户名 / 展示名 / 邮箱',
|
||
userStatus: '用户状态',
|
||
username: '用户名',
|
||
initialPassword: '初始密码',
|
||
displayName: '展示名称',
|
||
email: '邮箱',
|
||
phone: '手机号',
|
||
roles: '角色',
|
||
hotels: '授权酒店',
|
||
defaultHotel: '默认酒店',
|
||
saveRoles: '保存角色',
|
||
saveHotels: '保存酒店授权',
|
||
resetPassword: '重置密码',
|
||
temporaryPassword: '临时密码:',
|
||
created: '用户已创建',
|
||
columns: {
|
||
user: '用户',
|
||
status: '状态',
|
||
roles: '角色',
|
||
defaultHotel: '默认酒店',
|
||
},
|
||
},
|
||
roles: {
|
||
title: '角色筛选',
|
||
tableTitle: '角色数据',
|
||
detailTitle: '角色详情',
|
||
createTitle: '新增自定义角色',
|
||
totalSuffix: '个角色',
|
||
keywordPlaceholder: '角色代码 / 角色名称',
|
||
roleStatus: '角色状态',
|
||
roleCode: '角色代码',
|
||
roleName: '角色名称',
|
||
builtinReadonly: '内置角色由系统启动矩阵维护,不能在页面修改。',
|
||
savePermissions: '保存权限',
|
||
columns: {
|
||
role: '角色',
|
||
status: '状态',
|
||
builtin: '内置',
|
||
permissions: '权限',
|
||
users: '用户数',
|
||
},
|
||
},
|
||
menus: {
|
||
title: '菜单筛选',
|
||
managementTitle: '菜单管理',
|
||
managementHint: '维护侧边栏菜单的父子层级、排序、可见性和权限入口。',
|
||
createTitle: '新增菜单',
|
||
editTitle: '编辑菜单',
|
||
tableTitle: '菜单数据',
|
||
totalSuffix: '个菜单',
|
||
keywordPlaceholder: '菜单代码 / 名称 / 路由',
|
||
menuStatus: '菜单状态',
|
||
visibleOnly: '只看可见菜单',
|
||
treeWarningTitle: '菜单树存在异常配置',
|
||
treeWarningHint: '后端已返回菜单树,但以下配置需要管理员确认。',
|
||
treeTitle: '菜单树',
|
||
treeDirty: '树结构有未保存调整',
|
||
treeDirtyActionBlocked: '请先保存树结构后再继续操作。',
|
||
treeWarningSaveBlocked: '请先处理菜单树异常,确认父级关系正确后再保存树结构。',
|
||
saveTreeOrder: '保存树结构',
|
||
menuCode: '菜单代码',
|
||
menuName: '菜单名称',
|
||
parentMenu: '上级菜单',
|
||
rootMenu: '根菜单',
|
||
componentKey: '组件标识',
|
||
iconKey: '图标标识',
|
||
unknownRoute: '未知路由',
|
||
unknownRouteHint: '当前路由未被前端识别,菜单可能会进入未接入页面。',
|
||
permissionLoadFailed: '权限列表加载失败,权限选择和菜单配置保存暂不可用。',
|
||
moveUp: '上移',
|
||
moveDown: '下移',
|
||
columns: {
|
||
menu: '菜单',
|
||
route: '路由',
|
||
permission: '权限码',
|
||
visible: '可见',
|
||
status: '状态',
|
||
sort: '排序',
|
||
knownRoute: '已知路由',
|
||
},
|
||
},
|
||
hotels: {
|
||
title: '酒店筛选',
|
||
createTitle: '新增酒店',
|
||
editTitle: '编辑酒店',
|
||
tableTitle: '酒店数据',
|
||
totalSuffix: '家酒店',
|
||
keywordPlaceholder: '酒店 ID / 酒店名称',
|
||
hotelStatus: '酒店状态',
|
||
hotelId: '酒店 ID',
|
||
hotelName: '酒店名称',
|
||
saveStatus: '保存状态',
|
||
singleActiveRule: '单酒店阶段只允许一家 ACTIVE 酒店;新增酒店默认禁用。',
|
||
columns: {
|
||
hotel: '酒店',
|
||
status: '状态',
|
||
timeZone: '时区',
|
||
authorizedUsers: '授权用户',
|
||
sort: '排序',
|
||
},
|
||
},
|
||
catalogs: {
|
||
title: 'Reservation V4 目录管理',
|
||
subtitle: '维护 Account、Room Type 和 Rate Code,供 V4 任务卡 lookup 和后端确认校验使用。',
|
||
typeNavigation: 'Reservation V4 目录类型',
|
||
filters: '目录筛选',
|
||
hotel: '酒店',
|
||
defaultHotel: '当前默认酒店',
|
||
keywordPlaceholder: '代码 / 名称',
|
||
catalogStatus: '目录状态',
|
||
createTitle: '新增 {type}',
|
||
createHint: '第一版新增目录由系统管理维护,保存后默认启用。',
|
||
createAction: '新增目录',
|
||
createSucceeded: '目录已新增',
|
||
statusUpdated: '目录状态已更新',
|
||
disabledLookupNotice: '停用目录项后,普通 V4 任务卡 lookup 不再返回该项;已确认历史卡片不会被回滚。',
|
||
defaultActiveHint: '新增后默认启用。Account 第一版固定使用 Market=LEISURE、Source=TRAVEL_AGENT。',
|
||
hotelRequired: '请先选择酒店。',
|
||
tableTitle: '{type} 数据',
|
||
totalSuffix: '条目录',
|
||
accountCode: 'Account Code',
|
||
accountName: 'Account 名称',
|
||
marketCode: 'Market Code',
|
||
sourceCode: 'Source Code',
|
||
externalAccountId: '外部 Account ID',
|
||
code: '代码',
|
||
displayName: '显示名称',
|
||
externalId: '外部目录 ID',
|
||
sortOrder: '排序',
|
||
catalogVersion: '目录版本',
|
||
metadataJson: '扩展 JSON',
|
||
enableAction: '启用',
|
||
disableAction: '停用',
|
||
types: {
|
||
accounts: 'Account',
|
||
roomTypes: 'Room Type',
|
||
rateCodes: 'Rate Code',
|
||
},
|
||
columns: {
|
||
catalog: '目录',
|
||
status: '状态',
|
||
marketSource: 'Market / Source',
|
||
source: '来源 / 版本',
|
||
sort: '排序',
|
||
},
|
||
},
|
||
audits: {
|
||
title: '审计筛选',
|
||
tableTitle: '管理审计数据',
|
||
totalSuffix: '条审计记录',
|
||
targetType: '对象类型',
|
||
targetId: '对象 ID',
|
||
action: '操作类型',
|
||
columns: {
|
||
action: '操作',
|
||
target: '对象',
|
||
actor: '操作者',
|
||
occurredAt: '发生时间',
|
||
},
|
||
},
|
||
},
|
||
workbench: {
|
||
title: '订单工作台',
|
||
subtitle: '查看、筛选和处理预订订单任务',
|
||
filters: '筛选条件',
|
||
dateRange: '日期范围',
|
||
businessKey: '业务号 / 临时单号',
|
||
orderStatus: '订单状态',
|
||
taskStatus: '任务状态',
|
||
taskCardType: '任务卡类型',
|
||
reset: '重置',
|
||
tableTitle: '订单 / 任务列表',
|
||
columns: {
|
||
businessKey: '业务号',
|
||
orderStatus: '订单状态',
|
||
currentTask: '当前任务',
|
||
taskStatus: '任务状态',
|
||
updatedAt: '最近更新',
|
||
operation: '操作',
|
||
},
|
||
view: '查看',
|
||
totalPrefix: '共',
|
||
totalSuffix: '条任务线索',
|
||
},
|
||
orderList: {
|
||
title: '订单列表',
|
||
subtitle: '按订单查看预订处理入口',
|
||
keyword: '团队号 / 确认号',
|
||
keywordPlaceholder: '团队号 / 确认号',
|
||
groupCode: '团队号',
|
||
groupCodePlaceholder: '输入团队号',
|
||
confirmationNumber: '确认号',
|
||
confirmationNumberPlaceholder: '输入确认号',
|
||
tableTitle: '订单数据',
|
||
totalSuffix: '条订单',
|
||
viewDetail: '查看详情',
|
||
continueTask: '继续处理',
|
||
noOpenTask: '无待处理任务',
|
||
endpointPending: '订单列表接口待后端接入,当前不展示假数据。',
|
||
columns: {
|
||
order: '订单',
|
||
status: '状态',
|
||
openTasks: '待处理',
|
||
createdAt: '创建时间',
|
||
},
|
||
},
|
||
manualInvoice: {
|
||
title: '手工开票',
|
||
createTitle: '创建 Invoice',
|
||
subtitle: '无订单、无任务时,手工填写 Proforma Invoice 字段并生成 PDF。',
|
||
sourceBadge: '手工生成',
|
||
independentHint: '本页第一版不关联订单或任务,生成记录和审计由后端统一落库。',
|
||
documentSection: '单据信息',
|
||
recipientSection: '收件方',
|
||
bookingSection: '预订信息',
|
||
chargesSection: '费用明细',
|
||
previewSection: '金额预览',
|
||
resultSection: '生成结果',
|
||
invoiceDate: '开票日期(Invoice Date)',
|
||
bookingDate: '预订日期(Booking Date)',
|
||
dueDate: '付款截止日期(Due Date)',
|
||
companySeed: '选择公司(Company)',
|
||
contactSeed: '选择收件人(Attention)',
|
||
selectCompany: '请选择公司',
|
||
selectContact: '请选择收件人',
|
||
company: '公司(Company)',
|
||
attention: '收件人(Attention)',
|
||
address: '地址(Address)',
|
||
companyInputPlaceholder: '输入公司名称',
|
||
attentionInputPlaceholder: '输入收件人',
|
||
addressInputPlaceholder: '输入客户完整账单地址',
|
||
telephone: 'Tel',
|
||
email: 'Email',
|
||
groupName: '团队名称(Group Name)',
|
||
arrivalDate: '到店日期(Arrival Date)',
|
||
departureDate: '离店日期(Departure Date)',
|
||
roomRateNote: '房价备注(Room Rate Note)',
|
||
roomRateNotePlaceholder: '例如 including BF',
|
||
datePlaceholder: '年-月-日',
|
||
extraBedRate: '加床价格(Extra Bed Rate)',
|
||
description: '费用描述(Description)',
|
||
roomType: '房型(Room Type)',
|
||
quantity: '数量(Quantity)',
|
||
rate: '单价(Rate)',
|
||
nights: '晚数(Nights)',
|
||
amount: 'Amount',
|
||
subtotal: 'Sub-Total',
|
||
vat: 'VAT 7%',
|
||
total: 'Total',
|
||
addCharge: '新增一行',
|
||
removeCharge: '删除',
|
||
chargeLineLabel: '第 {index} 行',
|
||
removeChargeLineAria: '删除第 {index} 行',
|
||
maxChargesReached: '第一版最多支持 10 条费用明细。',
|
||
previewDisclaimer: '前端仅做金额预览,最终金额以后端返回 totals 为准。',
|
||
manualOverrideHint: '选择 Company / Attention 后会自动带出资料,带出的文本仍可手工覆盖。',
|
||
generate: '确认并生成 PDF',
|
||
generating: '生成中',
|
||
openPdf: '打开 PDF',
|
||
downloadPdf: '下载 PDF',
|
||
downloadingPdf: '下载中',
|
||
downloadFallback: '浏览器未能直接下载,已尝试打开 PDF 页面。',
|
||
technicalDetails: '技术详情',
|
||
generationId: '生成记录 ID',
|
||
generationStatus: '生成状态',
|
||
pdfUrl: 'PDF 链接',
|
||
hotelId: '酒店 ID',
|
||
templateCode: '模板',
|
||
createdAt: '创建时间',
|
||
noPdfUrl: '后端未返回 PDF 链接。',
|
||
backendTotals: '后端返回金额',
|
||
validationTitle: '请先修正表单',
|
||
fieldErrors: {
|
||
required: '必填',
|
||
invalidEmail: 'Email 格式不正确',
|
||
dateOrder: '日期顺序不正确',
|
||
positiveNumber: '必须大于 0',
|
||
nonNegativeNumber: '不能小于 0',
|
||
},
|
||
statuses: {
|
||
SUCCEEDED: '已生成',
|
||
GENERATED: '已生成',
|
||
FAILED: '生成失败',
|
||
PROCESSING: '生成中',
|
||
},
|
||
errors: {
|
||
FRONTEND_VALIDATION: '表单校验未通过,请检查必填字段和费用明细。',
|
||
RESERVATION_INVOICE_VALIDATION_FAILED: 'Invoice 字段校验失败,请检查表单内容。',
|
||
RESERVATION_INVOICE_CONTEXT_MISMATCH: '订单或任务上下文不匹配。',
|
||
DOCUMENT_CONVERSION_FAILED: 'PDF 生成失败,请稍后重试或联系管理员。',
|
||
DOCUMENT_CONVERSION_TIMEOUT: 'PDF 生成超时,请稍后重试。',
|
||
AUTH_401: '登录已失效,请重新登录后再生成。',
|
||
AUTH_403: '当前账号没有手工开票权限。',
|
||
UNKNOWN: '生成失败,请稍后重试。',
|
||
requiredFields: '请补充日期、收件方、预订信息和至少一条有效费用明细。',
|
||
invalidEmail: 'Email 格式不正确。',
|
||
dueDateBeforeBookingDate: 'Due Date 不能早于 Booking 日期。',
|
||
departureBeforeArrival: 'Departure Date 必须晚于 Arrival Date。',
|
||
extraBedNegative: '加床价格不能小于 0。',
|
||
chargePositive: '费用明细的 Quantity、Rate、Nights 必须大于 0。',
|
||
},
|
||
},
|
||
roomingList: {
|
||
eyebrow: '预订工具',
|
||
title: '生成 Rooming List Excel',
|
||
subtitle: '上传旅行团名单 Excel,填写每房人数和目标列默认值,生成酒店可导入的 Rooming List。',
|
||
currentHotel: '当前酒店',
|
||
sourceSection: '来源名单与必填信息',
|
||
targetSection: '目标 Excel 默认值',
|
||
sourceFile: '来源 Excel 文件',
|
||
sourceFileHint: '支持 .xls / .xlsx;前端不会读取或记录名单内容。',
|
||
noFile: '选择 .xls / .xlsx 文件',
|
||
peoplePerRoom: '每间房人数',
|
||
arrival: '入住日期',
|
||
departure: '离店日期',
|
||
roomType: '房型',
|
||
roomTypePlaceholder: '例如 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: '生成并下载 Excel',
|
||
generating: '生成中',
|
||
validationTitle: '请先修正表单',
|
||
resultSuccess: '生成结果',
|
||
resultDownloaded: 'Excel 已生成,并已触发浏览器下载。',
|
||
downloadedFile: '下载文件',
|
||
fieldErrors: {
|
||
fileRequired: '请选择来源 Excel 文件。',
|
||
fileType: '仅支持 .xls / .xlsx 文件。',
|
||
positiveInteger: '每间房人数必须大于 0。',
|
||
nonNegativeInteger: '必须是 0 或正整数。',
|
||
arrivalRequired: '请填写入住日期。',
|
||
departureRequired: '请填写离店日期。',
|
||
dateFormat: '日期格式必须为 yyyy-MM-dd。',
|
||
departureAfterArrival: '离店日期必须晚于入住日期。',
|
||
roomTypeRequired: '请填写房型。',
|
||
invalidEmail: 'Email 格式不正确。',
|
||
},
|
||
errors: {
|
||
FRONTEND_VALIDATION: '表单校验未通过,请检查必填字段。',
|
||
ROOMING_LIST_VALIDATION_FAILED: 'Rooming List 字段校验失败,请检查表单内容。',
|
||
ROOMING_LIST_SOURCE_FILE_INVALID: '来源名单文件不合法,请检查 Excel 表头和文件格式。',
|
||
FRONTEND_PERMISSION_DENIED: '当前账号没有生成 Rooming List 的权限。',
|
||
HOTEL_ACCESS_DENIED: '当前账号不能访问所选酒店。',
|
||
AUTH_TOKEN_REQUIRED: '请先登录后再生成 Rooming List。',
|
||
AUTH_SESSION_INVALID: '登录已失效,请重新登录后再生成。',
|
||
UNKNOWN: 'Rooming List 生成失败,请稍后重试。',
|
||
},
|
||
},
|
||
order: {
|
||
summary: '订单摘要',
|
||
taskQueue: '同订单预订事项',
|
||
v4TaskTimeline: '处理记录',
|
||
v4TaskTimelineEmpty: '暂无处理记录。',
|
||
v4TaskTimelineHint: '只展示来源邮件处理记录和事项状态摘要;办理动作请进入订单事项办理页完成。',
|
||
v4OverviewTitle: '订单信息总览',
|
||
v4OverviewSubtitle: '仅来自已确认事项,不使用未确认建议。',
|
||
v4OverviewEmpty: '暂无已确认的订单信息。',
|
||
accountCode: 'Account 代码',
|
||
accountName: 'Account 名称',
|
||
marketCode: 'Market 代码',
|
||
sourceCode: 'Source 代码',
|
||
departureDate: '离店日期',
|
||
rateCode: 'Rate Code',
|
||
roomItems: '已确认房型房量',
|
||
latestConfirmedAt: '最近确认时间',
|
||
traceCardStatus: '跟进事项状态',
|
||
roomingListCardStatus: '房表事项状态',
|
||
paymentCardStatus: '付款凭证状态',
|
||
nextV4ActionTitle: '下一步处理',
|
||
nextV4ActionSubtitle: '订单总览只提供入口,不直接确认、复核或编辑事项。',
|
||
nextV4ActionType: '下一步',
|
||
nextV4ActionStatus: '处理状态',
|
||
nextV4CardId: '事项编号',
|
||
openOrderTaskCount: '待处理事项数',
|
||
enterV4Task: '进入办理页',
|
||
nextActionConfirm: '确认事项',
|
||
nextActionReview: '需要复核',
|
||
nextActionNone: '无待处理事项',
|
||
nextStep: '处理事项',
|
||
nextStepConfirm: '有事项待确认',
|
||
nextStepReview: '有事项需要复核',
|
||
nextV4ActionEmpty: '暂无下一步处理事项。',
|
||
relatedSourceMessages: '关联来源邮件',
|
||
relatedSourceMessagesHint: '只展示邮件头和会话摘要;全文请进入邮件会话页查看。',
|
||
relatedSourceMessagesEmpty: '暂无关联来源邮件。',
|
||
externalConversationId: '外部会话编号',
|
||
latestActivityAt: '最近活动时间',
|
||
v4CardsEmpty: '暂无事项状态摘要。',
|
||
cardStatusSummary: '事项状态摘要',
|
||
cardId: '事项编号',
|
||
reviewStatus: '复核状态',
|
||
confirmedBy: '确认人',
|
||
confirmedAt: '确认时间',
|
||
sourceEventIndex: '来源邮件事件 {index}',
|
||
processingRecord: '来源邮件处理记录',
|
||
sourceMessage: '来源消息',
|
||
businessKeySource: '业务号来源',
|
||
updatedAt: '最近更新',
|
||
guestName: '客人',
|
||
arrivalDate: '入住日期',
|
||
roomType: '房型',
|
||
amount: '金额',
|
||
openTask: '处理任务',
|
||
groupCode: '团队号(Group Code)',
|
||
confirmationNumber: '确认号(Confirmation No.)',
|
||
temporaryOrderNo: '临时单号',
|
||
blockCode: '团队预留号(Block Code)',
|
||
createdAt: '创建时间',
|
||
conversationMessageCount: '会话邮件数',
|
||
sourceSummaryPending: '订单详情任务时间线的来源邮件摘要字段待后端补充;请从具体任务进入后查看。',
|
||
},
|
||
taskList: {
|
||
title: '待处理预订事项',
|
||
subtitle: '查看需要确认、复核或已读的预订事项',
|
||
keyword: '订单 / 邮件关键词',
|
||
keywordPlaceholder: '订单号 / 邮件关键词',
|
||
taskType: '任务类型',
|
||
taskSubtype: '任务细分',
|
||
tableTitle: '预订事项',
|
||
totalSuffix: '条事项',
|
||
noSourceSubject: '暂无来源主题',
|
||
sourceReceivedAt: '来源时间',
|
||
businessStatus: '事项状态',
|
||
filterPending: '待处理',
|
||
filterReview: '需要复核',
|
||
filterCompleted: '已完成',
|
||
filterSourceNotification: '来源通知',
|
||
noOpenItems: '暂无需要处理的预订事项',
|
||
noPendingItems: '暂无待确认的预订事项',
|
||
noReviewItems: '暂无需要复核的预订事项',
|
||
noCompletedItems: '暂无已完成的预订事项',
|
||
noSourceNotifications: '暂无来源通知',
|
||
itemType: '工作项类型',
|
||
itemTypeOrderTask: '预订事项',
|
||
itemTypeSourceNotification: '来源通知',
|
||
orderTaskStatus: '订单任务状态',
|
||
cardStatus: '卡片状态',
|
||
orderUnresolved: '订单归属待确认',
|
||
sourceNotificationNoOrder: '不关联订单',
|
||
sourceNotificationNoOrderHint: '该邮件不关联订单,请查看邮件内容。',
|
||
cardCountsTotal: '共 {total} 个事项',
|
||
cardCountsPending: '待确认 {count}',
|
||
cardCountsReview: '待复核 {count}',
|
||
cardCountsConfirmed: '已确认 {count}',
|
||
viewNotification: '查看通知',
|
||
canProcess: '可处理',
|
||
cannotProcess: '不可处理',
|
||
queueParticipation: '是否参与队列',
|
||
queueAll: '全部队列状态',
|
||
queueIncluded: '参与队列',
|
||
queueExcluded: '不参与队列',
|
||
viewTask: '处理事项',
|
||
viewOrder: '查看订单',
|
||
viewConversation: '查看邮件会话',
|
||
sourceOnlyOrderLabel: '来源消息只读',
|
||
hiddenTechnicalOrder: '不关联可见订单',
|
||
columns: {
|
||
item: '事项类型',
|
||
task: '任务',
|
||
order: '订单',
|
||
card: '事项',
|
||
status: '状态',
|
||
source: '来源邮件',
|
||
cards: '事项进度',
|
||
queue: '队列',
|
||
},
|
||
},
|
||
taskV4: {
|
||
title: '订单事项办理',
|
||
subtitle: '按来源邮件办理当前订单事项',
|
||
orderTaskSummary: '事项摘要',
|
||
orderTaskId: '事项编号',
|
||
orderReference: '订单引用',
|
||
targetBookingType: '预订类型',
|
||
targetLocator: '订单线索',
|
||
targetResolutionStatus: '订单归属',
|
||
cardCounts: '事项统计',
|
||
sourceMessageCard: '来源邮件',
|
||
basicInformationCard: '预订基础信息',
|
||
roomInformationCard: '房型与日期',
|
||
paymentCard: '付款凭证',
|
||
businessCards: '预订事项',
|
||
adapterContractErrors: '适配契约诊断',
|
||
noAdapterContractErrors: '暂无适配契约异常。',
|
||
noBusinessCards: '暂无需要办理的预订事项。',
|
||
displayPayload: '展示摘要',
|
||
rawCardPayload: '卡片安全摘要',
|
||
readonlyReason: '不可操作原因',
|
||
blockedReason: '阻塞原因',
|
||
bookingTypeGroup: '团队预订',
|
||
bookingTypeFit: '散客预订',
|
||
bookingTypeUnknown: '预订类型待确认',
|
||
targetResolved: '已确认',
|
||
targetUnresolved: '待确认',
|
||
targetPending: '待确认',
|
||
confirmCard: '确认卡片',
|
||
confirmingCard: '确认中',
|
||
resolveReview: '提交复核',
|
||
resolvingReview: '提交中',
|
||
reviewReason: '复核说明',
|
||
reviewReasonPlaceholder: '可选,说明人工判断依据',
|
||
confirmedOrderId: '确认订单编号',
|
||
confirmedOrderIdPlaceholder: '订单归属未解决时填写',
|
||
confirmedOrderRequired: '订单归属未解决,请先填写确认订单编号。',
|
||
cardConfirmed: '卡片已确认,详情已刷新。',
|
||
reviewResolved: '复核已提交,详情已刷新。',
|
||
validationFailed: '请先修正当前卡片字段。',
|
||
roomInformation: {
|
||
noDisplayModel: '房型与日期信息暂不可用,请稍后刷新或联系管理员。',
|
||
eventType: {
|
||
NEW_BOOKING: '新预订',
|
||
UPDATE_BOOKING: '修改预订',
|
||
CANCEL_BOOKING: '取消预订',
|
||
unknown: '预订事项',
|
||
},
|
||
emptyValues: '暂无可展示字段。',
|
||
changeSummary: '本次变更摘要',
|
||
currentValues: '当前值',
|
||
proposedValues: '建议值',
|
||
finalValues: '最终值',
|
||
groupBlockName: '团队名称',
|
||
fitName: '散客姓名',
|
||
arrivalDate: '入住日期',
|
||
departureDate: '离店日期',
|
||
nights: '晚数',
|
||
rateCode: 'Rate Code',
|
||
breakfastIncluded: '含早',
|
||
groupBookingStatus: '团队预订状态',
|
||
blockId: 'Block ID',
|
||
confirmationNumber: '确认号',
|
||
roomItems: '房型明细',
|
||
roomTypeCode: '房型代码',
|
||
roomCount: '房间数',
|
||
yes: '是',
|
||
no: '否',
|
||
},
|
||
paymentAttachments: {
|
||
title: '付款凭证附件',
|
||
loading: '正在加载附件预览权限...',
|
||
loadFailed: '附件预览暂不可用,可检查来源邮件权限后重试。',
|
||
empty: '暂无付款凭证附件。',
|
||
openPreview: '查看大图',
|
||
closePreview: '关闭预览',
|
||
download: '下载',
|
||
previewUnavailable: '不可预览',
|
||
downloadUnavailable: '不可下载',
|
||
noMatchedMedia: '当前邮件中未找到匹配附件。',
|
||
missingSourceMessage: '缺少来源邮件,暂不可预览或下载。',
|
||
unavailableReason: '不可用原因:{reason}',
|
||
fileMeta: '{type} · {size}',
|
||
},
|
||
roomingList: {
|
||
title: '房表事项',
|
||
targetOrder: '目标订单',
|
||
unboundOrder: '暂未绑定可见订单',
|
||
description: '当前来源消息包含需要人工处理的 Rooming List 事项,请在酒店内部流程处理后确认该卡片。',
|
||
confirmHint: '第一版仅确认该事项已由人工处理,不展示或处理名单明细和附件内容。',
|
||
},
|
||
trace: {
|
||
title: '跟进事项',
|
||
itemLabel: '事项 {index}',
|
||
generalTitle: '普通事项',
|
||
extraBedTitle: '加床事项',
|
||
action: '固定动作',
|
||
},
|
||
lookup: {
|
||
loading: '选项加载中',
|
||
empty: '暂无可选项,如需新增请联系管理员维护资料。',
|
||
stale: '当前目录为过期快照,仍可选择,最终以后端校验为准。',
|
||
warning: '目录提示:{warning}',
|
||
error: '选项暂不可用,请刷新后重试。',
|
||
accountDerived: '选择后会带出市场:{market} / 来源:{source}。',
|
||
currentNotInCatalog: '原值“{value}”不在当前可选项中,请重新选择。',
|
||
},
|
||
sourceMessage: {
|
||
subject: '主题',
|
||
sender: '发件人',
|
||
receivedAt: '接收时间',
|
||
conversationCount: '会话邮件数',
|
||
attachments: '附件',
|
||
excerpt: '邮件片段',
|
||
body: '当前邮件正文',
|
||
bodyCollapsed: '邮件正文已折叠,展开后读取当前触发邮件正文。',
|
||
bodyLoading: '正在加载当前邮件正文...',
|
||
bodyLoadFailed: '当前邮件正文暂时无法加载,可进入邮件会话查看。',
|
||
noBody: '暂无当前邮件正文。',
|
||
showFullBody: '展开全文',
|
||
collapseBody: '收起正文',
|
||
noExcerpt: '暂无邮件片段',
|
||
noAttachments: '无附件',
|
||
},
|
||
field: {
|
||
required: '必填',
|
||
readonly: '只读',
|
||
empty: '未填写',
|
||
hidden: '敏感内容已隐藏',
|
||
selectPlaceholder: '请选择',
|
||
datePlaceholder: '年-月-日',
|
||
},
|
||
error: {
|
||
loadFailed: '订单事项办理页加载失败。',
|
||
actionFailed: '操作失败,请检查后端返回信息。',
|
||
},
|
||
},
|
||
sourceNotification: {
|
||
title: '来源通知详情',
|
||
subtitle: 'S10/S99 来源消息只读通知,不进入订单或任务卡处理。',
|
||
summary: '通知摘要',
|
||
notificationId: '通知编号',
|
||
routeCode: '路由代码',
|
||
status: '通知状态',
|
||
sourceMessage: '来源邮件',
|
||
ackReason: '处理说明',
|
||
ackReasonPlaceholder: '可选,说明已读或已处理依据',
|
||
ack: '确认已读',
|
||
acking: '确认中',
|
||
acked: '已确认已读,详情已刷新。',
|
||
noBusinessEntry: '该通知不关联订单、业务卡、字段编辑、复核或 OPERA 操作。',
|
||
error: {
|
||
loadFailed: '来源通知详情加载失败。',
|
||
ackFailed: '确认已读失败,请检查后端返回信息。',
|
||
},
|
||
},
|
||
task: {
|
||
title: '任务卡',
|
||
fieldContract: '字段契约',
|
||
evidence: '证据区',
|
||
saveDraft: '保存草稿',
|
||
confirm: '确认任务',
|
||
blocked: '阻塞中',
|
||
readOnly: '只读',
|
||
operaOperations: 'OPERA 模拟操作',
|
||
audits: '审计时间线',
|
||
noOperations: '确认任务后生成 OPERA 模拟操作。',
|
||
noAudits: '暂无审计记录。',
|
||
execute: '执行',
|
||
retry: '重试',
|
||
simulateFailure: '模拟失败',
|
||
fieldNotes: '字段备注',
|
||
emptyValue: '未填写',
|
||
attachments: '附件',
|
||
fieldAreaFallback: '基础信息',
|
||
savedLocally: '草稿已保存',
|
||
confirmedLocally: '任务已确认',
|
||
validationFailed: '请先修正字段',
|
||
validation: {
|
||
required: '{field}为必填项',
|
||
enum: '{field}必须来自可选项',
|
||
date: '{field}日期格式必须为 YYYY-MM-DD',
|
||
number: '{field}必须是数字',
|
||
},
|
||
viewOrder: '查看订单',
|
||
viewConversation: '查看邮件会话',
|
||
parentGroup: 'Parent Group',
|
||
sourceMessageId: '来源消息编号(ID)',
|
||
sourceSubject: '来源主题',
|
||
sourceSender: '发件人',
|
||
sourceReceivedAt: '接收时间',
|
||
sourceSummaryPending: '来源邮件摘要字段待后端补充',
|
||
sourceEmailPreview: '来源邮件预览',
|
||
sourceEmailExcerpt: '邮件片段',
|
||
sourceEmailAttachments: '相关附件',
|
||
sourceEmailNoExcerpt: '暂无邮件片段',
|
||
sourceEmailNoAttachments: '无附件',
|
||
sourceEmailFullConversation: '查看完整邮件会话',
|
||
sourceOnlyResult: '来源消息入口结果',
|
||
sourceOnlyReadonly: '该任务仅用于展示来源消息入口结果,不进入订单处理、字段编辑或 OPERA 操作。',
|
||
sourceOnlyNoOpera: '该类任务不涉及 OPERA 操作。',
|
||
routeInfo: '路由与处理信息',
|
||
resultType: '识别结果类型',
|
||
aiTaskType: 'AI 任务类型',
|
||
systemTaskType: '系统任务类型',
|
||
taskCardType: '任务卡类型',
|
||
taskSubtype: '任务细分',
|
||
routeCode: '路由代码',
|
||
systemProcessCategory: '系统处理分类',
|
||
reviewStatus: '复核状态',
|
||
entryResultCode: '入口结果码',
|
||
entryResultMeaning: '结果含义',
|
||
entryResultDescription: '结果说明',
|
||
entryResultSourceMessageId: '结果来源消息编号',
|
||
rawAnswer: 'SuperAgent 原始回答',
|
||
agentAssessment: 'AI 原始字段',
|
||
sourceNotification: '来源消息通知',
|
||
manualReviewData: '人工复核信息',
|
||
manualReviewEvidence: '人工复核证据',
|
||
manualReviewEvidenceFallback: '请根据来源邮件和候选信息确认 Parent Group 身份。',
|
||
manualReviewMissingFields: '缺失字段',
|
||
manualReviewBlockingPoints: '阻塞点',
|
||
manualReviewConflictingPoints: '冲突点',
|
||
manualReviewSuggestedActions: '建议动作',
|
||
manualReviewEvidenceToCheck: '建议核对证据',
|
||
parentIdentityCandidates: 'Parent Group 候选',
|
||
parentIdentityCandidate: '候选项',
|
||
noParentIdentityCandidates: '暂无 Parent Group 候选;需要后端透出 context_used.parent_identity_candidates。',
|
||
adapterContractErrors: '适配契约异常',
|
||
unhandledIntents: '未处理意图',
|
||
noSourceOnlyResult: '暂无来源消息入口结果。',
|
||
manualResolution: {
|
||
title: '人工复核解阻',
|
||
description: '在原任务卡上补齐缺失字段,提交后由后端校验并解除阻塞。',
|
||
pendingStatus: '待复核',
|
||
resolvedTitle: '复核已完成',
|
||
reasonCode: '复核原因代码',
|
||
reviewInstruction: '复核说明',
|
||
confirmedOrderId: '确认订单编号',
|
||
fieldValuePlaceholder: '填写确认后的值',
|
||
noSupportedMissingFields: '当前缺失字段暂不支持前端解阻,请联系后端确认字段映射。',
|
||
unopenedFieldsTitle: '未开放编辑字段',
|
||
fieldBackendUnopened: '当前字段后端未开放编辑',
|
||
fieldRequired: '请填写缺失字段和确认订单编号',
|
||
reason: '处理说明',
|
||
reasonPlaceholder: '可选,说明人工判断依据',
|
||
submit: '提交复核结果',
|
||
succeeded: '人工复核已解阻,任务状态已刷新。',
|
||
},
|
||
manualConversion: {
|
||
title: '人工转换',
|
||
description: '将人工复核任务转换为可处理的预订任务。',
|
||
targetTaskType: '目标任务类型',
|
||
targetOrder: '目标订单',
|
||
targetOrderHelp: '修改或取消预订必须选择一个未删除订单。',
|
||
targetOrderKeyword: '目标订单搜索',
|
||
targetOrderKeywordPlaceholder: '团队号、确认号或订单关键词',
|
||
searchTargetOrders: '搜索订单',
|
||
noTargetOrderCandidates: '请输入关键词并搜索目标订单',
|
||
orderDeletedDisabled: '已删除订单不可选',
|
||
newBookingHint: '转为新预订时不强制选择目标订单,后端会按当前任务重新归属。',
|
||
reason: '转换原因',
|
||
reasonPlaceholder: '可选,说明人工判断依据',
|
||
submit: '转换任务',
|
||
targetOrderRequired: '请选择目标订单',
|
||
succeeded: '人工转换已完成:{taskType},目标订单 {orderId}',
|
||
orderId: '订单编号',
|
||
},
|
||
},
|
||
conversation: {
|
||
title: '邮件会话详情',
|
||
subtitle: '查看来源邮件所在会话下的全部历史邮件和回复',
|
||
endpointPending: '邮件会话详情接口待后端接入,当前不展示假数据。',
|
||
subject: '会话主题',
|
||
messageCount: '邮件数',
|
||
channel: '渠道',
|
||
firstReceivedAt: '首次接收',
|
||
lastReceivedAt: '最近接收',
|
||
emptyBody: '邮件正文为空',
|
||
attachments: '附件 / 内嵌图片',
|
||
unnamedAttachment: '未命名附件',
|
||
relatedOrders: '关联订单',
|
||
relatedTasks: '关联任务',
|
||
},
|
||
debugEml: {
|
||
title: 'Debug EML 调试上传',
|
||
subtitle: '上传单封 .eml 邮件并查看 SourceMessage 与 SuperAgent 调试结果',
|
||
uploadConfig: '上传配置',
|
||
hotelId: '酒店 ID',
|
||
debugUploadKey: 'Debug 上传口令',
|
||
runLabel: '运行标签',
|
||
emlFile: '.eml 文件',
|
||
submit: '提交调试',
|
||
submitting: '等待 SuperAgent 返回',
|
||
executionStatus: '执行状态',
|
||
status: '状态',
|
||
debugRunId: 'Debug 运行 ID',
|
||
backendStatus: '后端状态',
|
||
backendMessage: '后端消息',
|
||
waitingSuperAgent: '正在解析邮件并等待 SuperAgent 返回',
|
||
systemStages: '本系统处理阶段',
|
||
superAgentTrace: 'SuperAgent Trace',
|
||
traceToolName: '工具',
|
||
traceInputSummary: '入参摘要',
|
||
traceOutputSummary: '出参摘要',
|
||
traceStatus: '状态',
|
||
traceTime: '时间',
|
||
sourceTrace: 'SourceMessage 追溯',
|
||
sourceMessageId: 'SourceMessage ID',
|
||
sourceProvider: '来源 Provider',
|
||
externalMessageId: '外部消息 ID',
|
||
externalConversationId: '外部会话 ID',
|
||
mailPreview: '邮件内容预览',
|
||
noSafeHtml: '当前没有可安全渲染的 HTML 正文',
|
||
uploadedMedia: '上传媒体',
|
||
unnamedMedia: '未命名媒体',
|
||
rawHtml: '原始处理 HTML',
|
||
superAgentResult: 'SuperAgent 结果',
|
||
superAgentSessionId: 'SuperAgent Session ID',
|
||
superAgentRunId: 'SuperAgent Run ID',
|
||
parsedJson: '解析 JSON',
|
||
rawAnswer: '原始回答',
|
||
warnings: '警告',
|
||
bookingExcelExtractions: 'Booking Excel 附件预处理',
|
||
debugPayload: '调试 Payload',
|
||
statuses: {
|
||
idle: '待上传',
|
||
uploading: '执行中',
|
||
succeeded: '成功',
|
||
failed: '失败',
|
||
},
|
||
errors: {
|
||
REQUEST_FIELD_REQUIRED: '缺少必填字段,请检查酒店 ID、文件或请求参数',
|
||
EML_FILE_REQUIRED: '请选择 .eml 邮件文件',
|
||
EML_FILE_TOO_LARGE: '邮件文件超过后端限制',
|
||
INVALID_FILE_TYPE: '只支持 .eml 邮件文件',
|
||
DEBUG_UPLOAD_KEY_INVALID: '调试上传口令缺失或错误',
|
||
EML_PARSE_FAILED: '邮件文件无法解析',
|
||
OSS_UPLOAD_FAILED: 'OSS 上传失败,请联系后端排查',
|
||
SUPERAGENT_OPEN_API_FAILED: 'SuperAgent 调用失败,SourceMessage 可能已经写入',
|
||
DEBUG_EML_RUN_FAILED: 'Debug EML 链路内部失败',
|
||
UNKNOWN: 'Debug EML 调试失败',
|
||
},
|
||
},
|
||
status: {
|
||
TEMPORARY: '临时',
|
||
ACTIVE: '有效',
|
||
ENDED: '已结束',
|
||
LOGIC_DELETED: '已删除',
|
||
PENDING_CONFIRM: '待确认',
|
||
READY: '待执行',
|
||
EXECUTING: '执行中',
|
||
FAILED: '失败',
|
||
COMPLETED: '已完成',
|
||
PENDING: '待执行',
|
||
SUCCEEDED: '成功',
|
||
BLOCKED: '阻塞',
|
||
SKIPPED: '跳过',
|
||
OPEN: '处理中',
|
||
READONLY: '只读',
|
||
REVIEW_REQUIRED: '待复核',
|
||
CONFIRMED: '已确认',
|
||
ACK_REQUIRED: '待确认已读',
|
||
ACKED: '已读',
|
||
},
|
||
cardType: {
|
||
NEW_BOOKING: '新预订',
|
||
UPDATE_BOOKING: '修改预订',
|
||
CANCEL_BOOKING: '取消预订',
|
||
CANCEL_ALLOTMENT: '取消 Parent Group 配额',
|
||
VOUCHER: '凭证',
|
||
ROOMING_LIST: '房表',
|
||
AMEND_GROUP_CODE: '修改团队号',
|
||
TRACE_NOTE: '追踪备注(Trace)',
|
||
TA_RECORD: '旅行社记录',
|
||
MESSAGE_NOTIFICATION: '消息通知',
|
||
INFORMATIONAL_MESSAGE: '消息通知(历史 Message Notification)',
|
||
SOURCE_MESSAGE_REVIEW_NOTIFICATION: '来源消息通知',
|
||
SOURCE_MESSAGE_ONLY: '来源消息只读',
|
||
SOURCE_MESSAGE_DISPLAY: '来源消息展示卡',
|
||
SOURCE_MESSAGE_NOTIFICATION: '来源消息通知卡',
|
||
BASIC_INFORMATION: '基础信息卡',
|
||
ROOM_INFORMATION: '房型信息卡',
|
||
TRACE_RESERVATION_NOTES: '追踪备注卡',
|
||
PAYMENT: '付款信息卡',
|
||
MANUAL_REVIEW: '人工复核',
|
||
FALLBACK_REVIEW: '人工复核',
|
||
},
|
||
taskSubtype: {
|
||
NEW_BOOKING: '新预订',
|
||
UPDATE_BOOKING: '修改预订',
|
||
CANCEL_BOOKING: '取消预订',
|
||
RATE_CHANGE: '价格调整',
|
||
UPDATE_STAY_DATES: '修改入住日期',
|
||
UPDATE_ROOM_TYPE: '修改房型',
|
||
UPDATE_FIX_CHARGE: '修改固定收费',
|
||
CANCEL_ALLOTMENT_CONTROL_BLOCK: '取消 Parent Group 整块配额',
|
||
NEW_GROUP_BLOCK: '新团队预留',
|
||
NEW_FIT_RESERVATION: '新散客预订',
|
||
MANUAL_REVIEW: '人工复核',
|
||
S10: '纯信息类邮件(S10)',
|
||
S99: '无法形成业务素材包(S99)',
|
||
S000: '纯信息类邮件',
|
||
S999: '无法形成业务素材包',
|
||
},
|
||
resultType: {
|
||
NORMAL_TASK: '普通任务',
|
||
MANUAL_REVIEW: '人工复核',
|
||
SOURCE_MESSAGE_REVIEW_NOTIFICATION: '来源消息通知',
|
||
ADAPTER_CONTRACT_ERROR: '适配契约异常',
|
||
UNHANDLED_CURRENT_INTENT: '未处理意图',
|
||
},
|
||
systemProcessCategory: {
|
||
BUSINESS_TASK: '业务任务',
|
||
SOURCE_MESSAGE_NOTIFICATION: '来源消息通知',
|
||
ADAPTER_CONTRACT_ERROR: '适配契约异常',
|
||
UNHANDLED_CURRENT_INTENT: '未处理意图',
|
||
},
|
||
readonlyReason: {
|
||
PROCESSABLE: '可处理',
|
||
PREVIOUS_TASK_NOT_FINISHED: '前序任务未完成',
|
||
TASK_FINISHED: '任务已结束',
|
||
TASK_READ_ONLY: '任务只读',
|
||
ORDER_CLOSED: '订单已关闭',
|
||
QUEUE_EXCLUDED: '未参与队列',
|
||
BLOCKED: '阻塞中',
|
||
MANUAL_REVIEW_REQUIRED: '需要人工复核',
|
||
},
|
||
actorType: {
|
||
USER: '人工用户',
|
||
SYSTEM: '系统',
|
||
AI: 'AI',
|
||
AGENT: '外部助手',
|
||
BACKEND: '后端服务',
|
||
},
|
||
auditAction: {
|
||
TASK_CREATED: '任务创建',
|
||
TASK_LOADED: '任务读取',
|
||
TASK_CONFIRMED: '任务确认',
|
||
TASK_CONFIRM: '任务确认',
|
||
DRAFT_SAVED: '草稿保存',
|
||
TASK_UPDATED: '任务更新',
|
||
OPERA_EXECUTED: 'OPERA 执行',
|
||
OPERA_RETRIED: 'OPERA 重试',
|
||
MANUAL_REVIEW_CREATED: '创建人工复核',
|
||
MANUAL_REVIEW_CONVERT: '人工转换',
|
||
MANUAL_REVIEW_RESOLVED: '人工复核解阻',
|
||
},
|
||
operaOperation: {
|
||
CREATE_RESERVATION: '创建预订',
|
||
UPDATE_RESERVATION: '更新预订',
|
||
CANCEL_RESERVATION: '取消预订',
|
||
UPDATE_ROOMING_LIST: '更新房表',
|
||
ADD_TRACE_NOTE: '添加追踪备注',
|
||
},
|
||
}
|