diff --git a/src/locale/en-US.ts b/src/locale/en-US.ts index dba4a0e..de488f0 100644 --- a/src/locale/en-US.ts +++ b/src/locale/en-US.ts @@ -1228,8 +1228,8 @@ export default { 'nanaAssistant.hint': 'Type a question, or pick a capability above.', 'nanaAssistant.hintLive': 'Smart advisor is live — price, channel guide, tracking.', 'nanaAssistant.inputPlaceholder': 'Ask a question…', - 'nanaAssistant.inputPlaceholderLive': '', - 'nanaAssistant.inputPlaceholderTrack': '', + 'nanaAssistant.inputPlaceholderLive': 'Ask about price, channels, or tracking…', + 'nanaAssistant.inputPlaceholderTrack': 'Enter waybill / tracking no.…', 'nanaAssistant.mcp.sectionLabel': 'Capabilities', 'nanaAssistant.mcp.required': 'Required', 'nanaAssistant.mcp.optional': 'Optional', @@ -1276,10 +1276,10 @@ export default { 'nanaAssistant.replyPrice': 'For a quote, destination destCountry + actual weight (kg) is enough — e.g. US 0.5kg. Postal code/dims help; origin city is not required.', 'nanaAssistant.replyQuoteSpeed': 'With destCountry + weight we can return an indicative quote right away; final billing follows inbound weight and product rules.', 'nanaAssistant.trackHint': 'Just send the waybill number to track, e.g. IDE2607281746002926', - 'nanaAssistant.replyVisibility': 'You get milestone updates from pickup to delivery — pickup, export, line-haul, customs, and final delivery. We proactively flag delays before they escalate.', - 'nanaAssistant.replyAfterSales': "Your dedicated advisor handles exceptions, claims, and after-sales follow-up — you won't be left chasing tickets alone. Describe the issue and tracking number if you have one.", - 'nanaAssistant.replyHuman': 'Reach us via the contact page — phone 18123959245 or email bd01@1st56.com. Mention your route and cargo so we assign the right advisor.', - 'nanaAssistant.fallback': 'Tell me destination destCountry + weight to quote, or paste a waybill number to track — or talk to a human advisor.', +'nanaAssistant.replyVisibility': 'You get milestone updates from pickup to delivery — pickup, export, line-haul, customs, and final delivery. We proactively flag delays before they escalate.', +'nanaAssistant.replyAfterSales': "Your dedicated advisor handles exceptions, claims, and after-sales follow-up — you won't be left chasing tickets alone. Describe the issue and tracking number if you have one.", +'nanaAssistant.replyHuman': 'Reach us via the contact page — phone 18123959245 or email bd01@1st56.com. Mention your route and cargo so we assign the right advisor.', +'nanaAssistant.fallback': 'Tell me destination destCountry + weight to quote, or paste a waybill number to track — or talk to a human advisor.', 'nanaAssistant.emptyReply': 'No useful reply came back. Please try again with destination + weight, or a waybill number.', 'nanaAssistant.aiUnavailable': 'AI advisor is not configured yet. Please contact a human advisor or try later.', 'nanaAssistant.providerLoading': 'Connecting to AI advisor… please send again in a moment.', @@ -1288,7 +1288,7 @@ export default { 'nanaAssistant.wechatId': 'WeChat ID', 'nanaAssistant.noAdvisor': 'No exclusive advisor assigned yet', 'nanaAssistant.noWechatQr': 'WeChat QR code not uploaded', - 'nanaAssistant.greeting': "Hi, I'm Nana, your AI assistant.\n\nAsk me about tracking, shipping times, declared values, customs clearance, and more. How can I help you today?", +'nanaAssistant.greeting': "Hi, I'm Nana, your AI assistant.\n\nAsk me about tracking, shipping times, declared values, customs clearance, and more. How can I help?", 'nanaAssistant.send': 'Send', 'nanaAssistant.close': 'Close', 'nanaAssistant.back': 'Back', @@ -2805,7 +2805,6 @@ export default { 'system.user.form.wechatQrCode': 'WeChat QR Code', 'system.user.form.wechatQrUpload': 'Upload QR code', 'system.user.table.employeeNo': 'Employee No.', - 'system.user.table.phone': 'Phone', 'system.user.message.wechatQrTooLarge': 'WeChat QR image must be under 2MB', 'system.user.search.organizationPlaceholder': 'Filter by organization', 'system.user.search.accountOrNamePlaceholder': 'Search username or account', diff --git a/src/locale/zh-CN.ts b/src/locale/zh-CN.ts index b346b6a..77f9308 100644 --- a/src/locale/zh-CN.ts +++ b/src/locale/zh-CN.ts @@ -2728,7 +2728,6 @@ export default { 'system.user.form.wechatQrCode': '微信二维码', 'system.user.form.wechatQrUpload': '上传二维码', 'system.user.table.employeeNo': '工号', - 'system.user.table.phone': '电话', 'system.user.message.wechatQrTooLarge': '微信二维码图片不能超过 2MB', 'system.user.search.organizationPlaceholder': '选择组织筛选', 'system.user.search.accountOrNamePlaceholder': '搜索用户名或账号', diff --git a/src/views/channel/issueTemplate/index.vue b/src/views/channel/issueTemplate/index.vue index d09d14e..8f2fd71 100644 --- a/src/views/channel/issueTemplate/index.vue +++ b/src/views/channel/issueTemplate/index.vue @@ -128,7 +128,7 @@ function formatNotifyMethods(methods: string[]) { const found = NOTIFY_METHOD_OPTIONS.find((item) => item.value === code) return found ? t(found.labelKey) : code }) - .join('ã€?) + .join('') } function mapRow(r: any): IssueTemplateRow { @@ -443,7 +443,7 @@ const { tableContainerRef, tableHeight } = useTableContainerHeight() const handsontableHeight = computed(() => Math.max(tableHeight.value || 0, 400)) function customCellRenderer(_row: number, col: number, _value: any, rowData: IssueTemplateRow): string | null { - // 固定列序:操ä½?+ 序号 â†?数据ä»?col 2 èµ? + // 固定列序:操?+ 序号 ?数据?col 2 ) const dataColIndex = col - 2 if (dataColIndex < 0 || dataColIndex >= hotColumns.value.length) return null const colKey = hotColumns.value[dataColIndex].key @@ -466,7 +466,7 @@ function customCellRenderer(_row: number, col: number, _value: any, rowData: Iss ? t('channel.issueTemplate.handlerType.customer') : t('channel.issueTemplate.handlerType.user') const detail = rowData.handlerType === 'user' && rowData.handlerUserName - ? `ï¼?{rowData.handlerUserName}` + ? `【${rowData.handlerUserName}` : '' return `${typeLabel}${detail}` } diff --git a/src/views/channel/weightRules/index.vue b/src/views/channel/weightRules/index.vue index 23b9c28..bb5f4e9 100644 --- a/src/views/channel/weightRules/index.vue +++ b/src/views/channel/weightRules/index.vue @@ -480,8 +480,8 @@ ]); function hotCellRenderer(_row: number, col: number, _value: any, rowData: any): string | null { - // ChannelConfigHotTable:操ä½?+ 序号 â†?数据ä»?col 2 èµ? - const dataColIndex = col - 2; + // ChannelConfigHotTable:操?+ 序号 ?数据?col 2 ) + const dataColIndex = col - 2; if (dataColIndex < 0 || dataColIndex >= hotColumns.value.length) return null; const colKey = hotColumns.value[dataColIndex].key; if (colKey === 'condition') { diff --git a/src/views/marketing/commissionWithdraw/index.vue b/src/views/marketing/commissionWithdraw/index.vue index ed29632..2f5e73f 100644 --- a/src/views/marketing/commissionWithdraw/index.vue +++ b/src/views/marketing/commissionWithdraw/index.vue @@ -220,7 +220,7 @@ function statusTone(status: number): StatusTagTone { } function customCellRenderer(_row: number, col: number, _value: unknown, rowData: WithdrawRow): string | null { - // 固定列序:操ä½?+ 序号 â†?数据ä»?col 2 èµ? + // 固定列序:操?+ 序号 ?数据?col 2 ) const dataColIndex = col - 2 if (dataColIndex < 0 || dataColIndex >= hotColumns.value.length) return null const colKey = hotColumns.value[dataColIndex].key diff --git a/src/views/operation/printLabel/index.vue b/src/views/operation/printLabel/index.vue index 539ca5e..7629867 100644 --- a/src/views/operation/printLabel/index.vue +++ b/src/views/operation/printLabel/index.vue @@ -1,7 +1,7 @@