From 6e721ccc7e4c2c9329009612cb7c83b02bed45dc Mon Sep 17 00:00:00 2001 From: liangjian <1394459087@qq.com> Date: Fri, 24 Jul 2026 13:43:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E8=BF=81=E7=A7=BB=E8=87=B3=E5=85=A8=E5=B1=80?= =?UTF-8?q?=20locales/messages.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将组件级 i18n 对象重构为统一由全局 locales/messages.js 管理,确保中英文语言切换时正确显示对应文本。 - 新增 utils/i18n.js 国际化工具函数 - 更新 store/$t.mixin.js 翻译混入逻辑 - 迁移 pkgService、pkgBooking、pkgAccount、pkgExplore、pages 等共 58 个组件的中英文文本至全局消息表 --- components/ContractSignDialog.vue | 75 +-- components/contract-alert/contract-alert.vue | 9 +- locales/messages.js | 348 +++++++++++- pages/index/component/MessageCenterTab.vue | 211 ++------ pages/index/component/MyApplicationTab.vue | 317 +++-------- pages/index/component/ProfileCenterTab.vue | 197 ++----- pages/index/component/SelectRoomAreaPanel.vue | 39 +- pages/index/component/SelectRoomHero.vue | 9 +- pages/index/component/SelectRoomTab.vue | 73 +-- pages/index/component/StayServiceTab.vue | 335 +++--------- pages/index/index.vue | 67 +-- pkgAccount/auth_result/auth_result.vue | 147 ++---- pkgAccount/login/login.vue | 79 +-- pkgAccount/register/register.vue | 499 +++++------------- .../registration_records.vue | 57 +- pkgBooking/book/book.vue | 69 +-- pkgBooking/book_viewing/book_viewing.vue | 169 ++---- .../components/RoomTypeSelector.vue | 16 +- pkgBooking/booking_detail/booking_detail.vue | 89 +--- pkgBooking/booking_list/booking_list.vue | 61 +-- pkgBooking/pay/pay.vue | 141 ++--- pkgExplore/download/download.vue | 27 +- pkgExplore/filter/filter.vue | 55 +- .../room_detail/components/RoomAssets.vue | 10 +- .../room_detail/components/RoomHero.vue | 17 +- .../room_detail/components/RoomInfo.vue | 9 +- .../room_detail/components/RoomRules.vue | 8 +- .../room_detail/components/RoomSummary.vue | 15 +- pkgExplore/room_detail/room_detail.vue | 89 ++-- pkgExplore/sign/sign.vue | 83 +-- .../store_detail/components/FacilityList.vue | 8 +- .../store_detail/components/RoomList.vue | 11 +- .../store_detail/components/StoreInfo.vue | 13 +- pkgExplore/store_detail/store_detail.vue | 37 +- pkgExplore/vr_preview/vr_preview.vue | 39 +- .../application_detail/application_detail.vue | 207 ++------ .../CurrentApplicationBillPanel.vue | 412 ++++----------- .../contract_detail/contract_detail.vue | 55 +- pkgService/contract_sign/contract_sign.vue | 89 +--- pkgService/device_control/device_control.vue | 115 +--- .../lost_found_publish/lost_found_publish.vue | 85 ++- pkgService/message_detail/message_detail.vue | 119 ++--- pkgService/my_application/my_application.vue | 141 ++--- pkgService/my_contract/my_contract.vue | 131 ++--- .../room_inspection/room_inspection.vue | 130 +---- pkgService/service_stub/service_stub.vue | 143 ++--- pkgService/smart_control/smart_control.vue | 103 +--- .../components/BuildingSelector.vue | 15 +- .../components/DateRangeSelector.vue | 31 +- .../components/FloorSelector.vue | 15 +- .../components/RoomTypeSelector.vue | 15 +- .../submit_request/components/TagSelector.vue | 17 +- pkgService/submit_request/submit_request.vue | 153 ++---- pkgService/ticket_center/ticket_center.vue | 25 +- .../ticket_workbench/ticket_workbench.vue | 327 +++--------- .../utility_recharge/utility_recharge.vue | 13 +- store/$t.mixin.js | 6 +- utils/i18n.js | 100 ++++ 58 files changed, 1810 insertions(+), 4065 deletions(-) diff --git a/components/ContractSignDialog.vue b/components/ContractSignDialog.vue index dd25676..ac816ca 100644 --- a/components/ContractSignDialog.vue +++ b/components/ContractSignDialog.vue @@ -57,24 +57,24 @@ - {{ t('undo') }} + {{ $tr('撤销') }} - {{ t('rewrite') }} + {{ $tr('重写') }} - {{ t('close') }} + {{ $tr('关闭') }} - {{ t('confirmSignature') }} + {{ $tr('确认签名') }} - {{ t('footerTip') }} + {{ $tr('签名前请确认您已完整阅读合同内容') }} - {{ t('closeBoardTitle') }} + {{ $tr('关闭提示') }} - {{ t('closeBoardDesc') }} + {{ $tr('您还未完成签名,确认要关闭吗?') }} - {{ t('continueSigning') }} - {{ t('continueClosing') }} + {{ $tr('继续签名') }} + {{ $tr('确认关闭') }} @@ -116,46 +116,6 @@ export default { default: '' } }, - i18n: { - zh: { - undo: '撤销', - rewrite: '重写', - close: '关闭', - confirmSignature: '确认签名', - footerTip: '签名前请确认您已完整阅读合同内容', - closeBoardTitle: '关闭提示', - closeBoardDesc: '您还未完成签名,确认要关闭吗?', - continueSigning: '继续签名', - continueClosing: '确认关闭', - missingSignerName: '签名人缺失', - writingHintZh: '请在此处手写中文正楷签名', - writingHintEn: 'Please write your signature here', - signerNameMissingToast: '签名人信息缺失', - signatureRequiredToast: '请先完成签名', - boundsFailedToast: '获取签名范围失败', - signatureTooSmallToast: '签名范围太小,请重新签名', - exportFailedToast: '导出签名失败,请重试' - }, - en: { - undo: 'Undo', - rewrite: 'Rewrite', - close: 'Close', - confirmSignature: 'Confirm', - footerTip: 'Please confirm that you have fully read the contract before signing', - closeBoardTitle: 'Notice', - closeBoardDesc: 'You have not finished signing. Are you sure to close?', - continueSigning: 'Continue Signing', - continueClosing: 'Close', - missingSignerName: 'Missing Signer', - writingHintZh: 'Please write your Chinese signature here', - writingHintEn: 'Please write your signature here', - signerNameMissingToast: 'Missing signer name', - signatureRequiredToast: 'Please sign first', - boundsFailedToast: 'Failed to get signature bounds', - signatureTooSmallToast: 'Signature is too small, please try again', - exportFailedToast: 'Failed to export signature, please try again' - } - }, data() { return { canvasId: 'contract-sign-canvas', @@ -179,7 +139,7 @@ export default { }, displaySignerName() { const name = String(this.signerName || '').trim() - return name || this.t('missingSignerName') + return name || this.$tr('签名人缺失') }, hasSignerName() { return !!String(this.signerName || '').trim() @@ -199,7 +159,7 @@ export default { return this.strokes.length > 0 }, writingHint() { - return this.isChineseName ? this.t('writingHintZh') : this.t('writingHintEn') + return this.isChineseName ? this.$tr('请在此处手写中文正楷签名') : this.$tr('Please write your signature here') }, guideFontSize() { const length = this.displaySignerName.length @@ -281,9 +241,6 @@ export default { this.ctx = null }, methods: { - t(key) { - return this.$translate(this.$options.i18n, key) - }, clearSignatureContent() { this.strokes = [] this.currentStroke = [] @@ -561,14 +518,14 @@ export default { handleSave() { if (!this.hasSignerName) { uni.showToast({ - title: this.t('signerNameMissingToast'), + title: this.$tr('签名人信息缺失'), icon: 'none' }) return } if (!this.hasSignature) { uni.showToast({ - title: this.t('signatureRequiredToast'), + title: this.$tr('请先完成签名'), icon: 'none' }) return @@ -576,14 +533,14 @@ export default { const cropRect = this.getSignatureBounds() if (!cropRect) { uni.showToast({ - title: this.t('boundsFailedToast'), + title: this.$tr('获取签名范围失败'), icon: 'none' }) return } if (!this.isSignatureQualified(cropRect)) { uni.showToast({ - title: this.t('signatureTooSmallToast'), + title: this.$tr('签名范围太小,请重新签名'), icon: 'none' }) return @@ -601,7 +558,7 @@ export default { .catch(error => { console.error('导出签名图片失败', error) uni.showToast({ - title: this.t('exportFailedToast'), + title: this.$tr('导出签名失败,请重试'), icon: 'none' }) }) diff --git a/components/contract-alert/contract-alert.vue b/components/contract-alert/contract-alert.vue index 94540da..87d86ba 100644 --- a/components/contract-alert/contract-alert.vue +++ b/components/contract-alert/contract-alert.vue @@ -36,9 +36,9 @@ export default { return null } return { - title: this.t('pendingTitle'), - desc: this.t('pendingDesc', { count: this.pendingContracts.length }), - actionText: this.t('actionText') + title: this.$tr('待签合同提醒'), + desc: this.$tr('您有 {count} 份合同待签署', { count: this.pendingContracts.length }), + actionText: this.$tr('去签署') } } }, @@ -59,9 +59,6 @@ export default { this.clearCollapseTimer() }, methods: { - t(key, params) { - return this.$translate(this.i18n, key, params) - }, clearCollapseTimer() { if (this.collapseTimer) { clearTimeout(this.collapseTimer) diff --git a/locales/messages.js b/locales/messages.js index 43e6e02..7fced2a 100644 --- a/locales/messages.js +++ b/locales/messages.js @@ -945,7 +945,22 @@ const messages = { resultLabel: "Result", totalChargeLabel: "Total Charge", wechatCodeFailed: "Failed to get Wechat login code", - wechatPayButton: "Wechat Pay" + wechatPayButton: "Wechat Pay", + cancelOrderButton: "Cancel Order", + cancelOrderContent: "This will close the current unpaid order. Continue?", + cancelOrderFailed: "Failed to cancel order", + cancelOrderLoading: "Canceling...", + cancelOrderSuccess: "Order canceled", + cancelOrderTitle: "Cancel Order", + paymentNoticeAmountLabel: "Amount", + paymentNoticeBillLabel: "Bill No.", + paymentNoticeCancel: "Later", + paymentNoticeConfirm: "Continue", + paymentNoticeItemLabel: "Charge Item", + paymentNoticeLine1: "Please confirm the bill and payment amount before continuing.", + paymentNoticeLine2: "After payment, the bill status may take a few seconds to sync. Please do not pay repeatedly.", + paymentNoticeLine3: "If the payment is interrupted or the page is closed, return to the bill page later to check the latest result.", + paymentNoticeTitle: "Payment Notice" } }, contract_detail: { @@ -1257,6 +1272,14 @@ const messages = { popupTitle: "Select Floor", selectFloor: "Select floor" }, + RoomTypeSelector: { + emptyRoomTypes: "No room types available", + loadFailed: "Failed to load room types", + loadingRoomTypes: "Loading room types...", + popupTitle: "Select Room Type", + priceUnit: "/month", + selectRoomType: "Select preferred room type" + }, TagSelector: { emptyText: "No tags available", loadingText: "Loading tags..." @@ -1309,6 +1332,155 @@ const messages = { utility_recharge: { navTitle: "Bill Management" } + }, + ticket_center: { + ticket_center: { + navTitle: "Work Orders", + heroBadge: "SERVICE", + heroTitle: "In-stay Ticket Services", + heroDesc: "Repair, renewal, checkout, room change, water delivery, cleaning, and suggestions are all handled here." + } + }, + ticket_workbench: { + ticket_workbench: { + areaLabel: "Area", + assigneeLabel: "Assignee", + attachmentsLabel: "Attachments", + cancelProcess: "Cancel Action", + cancelSupplement: "Cancel Supplement", + changeRoomTypeLabel: "Preferred Room Type", + cleaningTimeLabel: "Cleaning Time", + contentLabel: "Content", + currentFlowTag: "Current", + currentStayInfo: "Current Stay", + currentStayOrder: "Current Stay Order", + emptyHistoryDesc: "No tickets of this type yet.", + emptyHistoryTitle: "No Ticket Records", + flowActionTitle: "Available Actions", + historyTab: "History", + leaseLabel: "Lease", + loadMore: "Load More", + loadingMore: "Loading...", + loadOrderFailed: "Failed to load stay context", + noFlowContent: "No handling content", + noMore: "No more records", + refresh: "Refresh", + refreshing: "Refreshing...", + remarkLabel: "Notes", + remarkPlaceholder: "Enter notes to help the staff handle this ticket", + roomLabel: "Room", + roomTypeLabel: "Room Type", + searchPlaceholder: "Search title or content", + selectAssignee: "Select assignee", + selectDate: "Select date", + selectTime: "Select time", + submitSectionDefaultDesc: "The form below will be submitted through the ticket APIs.", + submitTab: "Submit", + submitTicket: "Submit Ticket", + submitting: "Submitting...", + supplementAction: "Supplement", + supplementLabel: "Supplementary Fields", + supplementPlaceholder: "Please enter {label}", + ticketKicker: "WORK ORDER", + uploadImage: "Upload Image", + uploadImageCountExceeded: "Up to 6 images", + uploadImageFailed: "Failed to upload image", + uploadImageOversize: "Image must be less than 5MB", + uploadTip: "Upload JPG or PNG images, up to 6 images and 5MB each.", + uploadTipRepair: "Upload JPG or PNG images, up to 6 images and 5MB each. Repair requires at least 1 image.", + checkoutTimeLabel: "Checkout Time", + renewalTimeLabel: "Renew Until", + submittedAtLabel: "Submitted At", + submitSuccess: "Ticket submitted", + submitFailed: "Failed to submit ticket", + confirmSubmitTitle: "Confirm", + confirmSubmitContent: "Confirm submitting this ticket?", + missingStayContext: "Missing current stay order or room information", + repairAttachmentRequired: "Please upload repair images", + changeAreaRequired: "Please select a room type", + checkoutTimeRequired: "Please select checkout time", + checkoutReasonRequired: "Please fill in the checkout reason", + loadHistoryFailed: "Failed to load ticket history", + loadFlowsFailed: "Failed to load ticket flows", + loadActionsFailed: "Failed to load ticket actions", + continueProcess: "Continue", + loadAssigneeFailed: "Failed to load assignees", + submitSectionActionDesc: "The ticket is in progress and will continue after submission.", + submitSectionSupplementDesc: "The ticket is on hold and will continue after supplementing the information.", + currentStatusPending: "Pending", + currentStatusProcessing: "Processing", + currentStatusResolved: "Resolved", + currentStatusClosed: "Closed", + allStatus: "All", + pendingStatus: "Pending", + processingStatus: "Processing", + resolvedStatus: "Resolved", + closedStatus: "Closed" + } + }, + room_inspection: { + room_inspection: { + pageTitle: "Inspection", + pageDesc: "Review and submit inspection results for the current order", + inspectionListTitle: "Inspection Records", + roomNoLabel: "Room No.", + inspectionTypeLabel: "Inspection Type", + inspectionStatusLabel: "Status", + inspectionTimeLabel: "Created At", + inspectionRemarksLabel: "Remarks", + inspectionRemarksPlaceholder: "Add notes for this inspection", + inspectionItemsTitle: "Inspection Items", + inspectionItemsDesc: "Check each item according to the on-site condition", + deviceFallback: "Unnamed Device", + requiredTag: "Required", + expectedQuantityLabel: "Expected Qty", + inspectionResultLabel: "Result", + checkedQuantityLabel: "Checked Qty", + checkedQuantityPlaceholder: "Enter quantity", + problemDetailLabel: "Problem Detail", + problemDetailPlaceholder: "Describe any abnormal, missing, or damaged condition", + photosLabel: "Photos", + addPhoto: "Add", + submitAction: "Submit", + loadingDesc: "Syncing inspection data...", + emptyTitle: "No inspections", + emptyDesc: "No inspection record is available for the current order.", + emptyItemsTitle: "No items", + emptyItemsDesc: "No inspection item is available for this inspection.", + submitSuccess: "Inspection submitted", + submitFailed: "Failed to submit", + submitting: "Submitting...", + missingInspectionNo: "Missing inspection record", + uploadFailed: "Failed to upload image", + chooseImageFailed: "Failed to choose image", + resultRequired: "Please complete the result selection for all items first" + } + } + }, + components: { + ContractSignDialog: { + undo: "Undo", + rewrite: "Rewrite", + close: "Close", + confirmSignature: "Confirm", + footerTip: "Please confirm that you have fully read the contract before signing", + closeBoardTitle: "Notice", + closeBoardDesc: "You have not finished signing. Are you sure to close?", + continueSigning: "Continue Signing", + continueClosing: "Close", + missingSignerName: "Missing Signer", + writingHintZh: "Please write your Chinese signature here", + writingHintEn: "Please write your signature here", + signerNameMissingToast: "Missing signer name", + signatureRequiredToast: "Please sign first", + boundsFailedToast: "Failed to get signature bounds", + signatureTooSmallToast: "Signature is too small, please try again", + exportFailedToast: "Failed to export signature, please try again" + }, + ContractAlert: { + actionText: "Sign Now", + pendingDesc: "You have {count} contract(s) pending signature", + pendingTitle: "Contract Pending Signature" } } }, @@ -2258,7 +2430,22 @@ const messages = { resultLabel: "处理结果", totalChargeLabel: "应收合计", wechatCodeFailed: "获取微信登录凭证失败", - wechatPayButton: "微信支付" + wechatPayButton: "微信支付", + cancelOrderButton: "取消订单", + cancelOrderContent: "取消后将关闭当前未支付订单,是否继续?", + cancelOrderFailed: "取消订单失败", + cancelOrderLoading: "取消中...", + cancelOrderSuccess: "订单已取消", + cancelOrderTitle: "取消订单", + paymentNoticeAmountLabel: "支付金额", + paymentNoticeBillLabel: "账单号", + paymentNoticeCancel: "稍后再付", + paymentNoticeConfirm: "继续支付", + paymentNoticeItemLabel: "费用项目", + paymentNoticeLine1: "请确认本次支付账单和金额无误后再继续付款。", + paymentNoticeLine2: "支付完成后,账单状态可能需要几秒同步,请勿重复支付。", + paymentNoticeLine3: "若支付中断或页面关闭,可稍后返回账单页查看最新结果。", + paymentNoticeTitle: "用户须知" } }, contract_detail: { @@ -2570,6 +2757,14 @@ const messages = { popupTitle: "选择意向楼层", selectFloor: "请选择楼层" }, + RoomTypeSelector: { + emptyRoomTypes: "暂无可选房型", + loadFailed: "房型列表加载失败", + loadingRoomTypes: "房型加载中...", + popupTitle: "选择意向房型", + priceUnit: "/月", + selectRoomType: "请选择意向房型" + }, TagSelector: { emptyText: "暂无标签", loadingText: "标签加载中..." @@ -2622,6 +2817,155 @@ const messages = { utility_recharge: { navTitle: "账单管理" } + }, + ticket_center: { + ticket_center: { + navTitle: "工单中心", + heroBadge: "SERVICE", + heroTitle: "住中工单服务", + heroDesc: "报修、续住、退宿、调宿、送水、清洁和意见建议都统一从这里进入,提交后可继续查看流转记录。" + } + }, + ticket_workbench: { + ticket_workbench: { + areaLabel: "所属区域", + assigneeLabel: "处理目标", + attachmentsLabel: "附件图片", + cancelProcess: "退出处理", + cancelSupplement: "取消补充", + changeRoomTypeLabel: "意向房型", + cleaningTimeLabel: "预约清洁时间", + contentLabel: "申请内容", + currentFlowTag: "当前节点", + currentStayInfo: "当前入住信息", + currentStayOrder: "当前入住订单", + emptyHistoryDesc: "当前类型还没有工单记录。", + emptyHistoryTitle: "暂无工单记录", + flowActionTitle: "可执行操作", + historyTab: "记录查询", + leaseLabel: "租期", + loadMore: "加载更多", + loadingMore: "加载中...", + loadOrderFailed: "入住信息加载失败", + noFlowContent: "暂无处理内容", + noMore: "没有更多了", + refresh: "刷新", + refreshing: "刷新中...", + remarkLabel: "补充说明", + remarkPlaceholder: "请输入补充说明,帮助工作人员更快处理", + roomLabel: "当前房间", + roomTypeLabel: "当前房型", + searchPlaceholder: "搜索工单标题或内容", + selectAssignee: "请选择处理目标", + selectDate: "请选择日期", + selectTime: "请选择时间", + submitSectionDefaultDesc: "以下内容将通过工单接口提交并进入后续流转。", + submitTab: "提交申请", + submitTicket: "提交工单", + submitting: "提交中...", + supplementAction: "补充信息", + supplementLabel: "补充业务信息", + supplementPlaceholder: "请输入{label}", + ticketKicker: "WORK ORDER", + uploadImage: "上传图片", + uploadImageCountExceeded: "最多上传 6 张图片", + uploadImageFailed: "图片上传失败,请重试", + uploadImageOversize: "图片不能超过 5MB", + uploadTip: "支持上传 JPG、PNG 等图片,单张不超过 5MB,最多 6 张。", + uploadTipRepair: "支持上传 JPG、PNG 等图片,单张不超过 5MB,最多 6 张。报修至少上传 1 张图片。", + checkoutTimeLabel: "预计退宿时间", + renewalTimeLabel: "续住至", + submittedAtLabel: "提交时间", + submitSuccess: "工单提交成功", + submitFailed: "工单提交失败", + confirmSubmitTitle: "确认提交", + confirmSubmitContent: "确认提交当前工单吗?", + missingStayContext: "当前缺少入住订单或房间信息,暂无法提交工单", + repairAttachmentRequired: "请上传报修附件图片", + changeAreaRequired: "请选择意向房型", + checkoutTimeRequired: "请选择退宿时间", + checkoutReasonRequired: "请填写退宿原因", + loadHistoryFailed: "工单记录加载失败", + loadFlowsFailed: "工单流转加载失败", + loadActionsFailed: "工单操作项加载失败", + continueProcess: "继续处理", + loadAssigneeFailed: "处理目标加载失败", + submitSectionActionDesc: "当前工单正在处理中,提交后会继续流转。", + submitSectionSupplementDesc: "当前工单处于挂起状态,补充信息后会继续流转。", + currentStatusPending: "待处理", + currentStatusProcessing: "处理中", + currentStatusResolved: "已解决", + currentStatusClosed: "已结束", + allStatus: "全部", + pendingStatus: "待处理", + processingStatus: "处理中", + resolvedStatus: "已解决", + closedStatus: "已结束" + } + }, + room_inspection: { + room_inspection: { + pageTitle: "验房", + pageDesc: "按当前订单查看并提交验房结果", + inspectionListTitle: "验房记录", + roomNoLabel: "房间号", + inspectionTypeLabel: "验房类型", + inspectionStatusLabel: "当前状态", + inspectionTimeLabel: "发起时间", + inspectionRemarksLabel: "备注", + inspectionRemarksPlaceholder: "可填写本次验房的补充说明", + inspectionItemsTitle: "检查项", + inspectionItemsDesc: "请根据现场情况逐项核对", + deviceFallback: "未命名设备", + requiredTag: "必查", + expectedQuantityLabel: "应有数量", + inspectionResultLabel: "检查结果", + checkedQuantityLabel: "实测数量", + checkedQuantityPlaceholder: "请输入数量", + problemDetailLabel: "问题说明", + problemDetailPlaceholder: "请描述异常、缺失或损坏情况", + photosLabel: "现场照片", + addPhoto: "添加", + submitAction: "提交验房", + loadingDesc: "正在同步验房数据...", + emptyTitle: "暂无验房单", + emptyDesc: "当前订单还没有可查看的验房记录。", + emptyItemsTitle: "暂无检查项", + emptyItemsDesc: "当前验房单还没有检查项明细。", + submitSuccess: "验房单已提交", + submitFailed: "提交失败", + submitting: "提交中...", + missingInspectionNo: "未获取到验房单", + uploadFailed: "图片上传失败", + chooseImageFailed: "选择图片失败", + resultRequired: "请先完成所有检查项结果选择" + } + } + }, + components: { + ContractSignDialog: { + undo: "撤销", + rewrite: "重写", + close: "关闭", + confirmSignature: "确认签名", + footerTip: "签名前请确认您已完整阅读合同内容", + closeBoardTitle: "关闭提示", + closeBoardDesc: "您还未完成签名,确认要关闭吗?", + continueSigning: "继续签名", + continueClosing: "确认关闭", + missingSignerName: "签名人缺失", + writingHintZh: "请在此处手写中文正楷签名", + writingHintEn: "Please write your signature here", + signerNameMissingToast: "签名人信息缺失", + signatureRequiredToast: "请先完成签名", + boundsFailedToast: "获取签名范围失败", + signatureTooSmallToast: "签名范围太小,请重新签名", + exportFailedToast: "导出签名失败,请重试" + }, + ContractAlert: { + actionText: "去签署", + pendingDesc: "您有 {count} 份合同待签署", + pendingTitle: "待签合同提醒" } } } diff --git a/pages/index/component/MessageCenterTab.vue b/pages/index/component/MessageCenterTab.vue index 67ea38e..2335b1c 100644 --- a/pages/index/component/MessageCenterTab.vue +++ b/pages/index/component/MessageCenterTab.vue @@ -1,12 +1,12 @@