feat: 重构核心租住流程页面与交互体验

统一注册、看房、申请与入住等核心页面的视觉和流程衔接,补齐支付、签约与状态流转闭环,提升移动端操作连贯性。
This commit is contained in:
liangjian
2026-07-29 09:05:38 +08:00
parent da6bdc6a02
commit 1111ac148b
34 changed files with 8734 additions and 2801 deletions

View File

@@ -91,6 +91,7 @@ const messages = {
apartmentLabel: "Apartment",
cancelOrder: "Cancel Order",
cancelOrderContent: "This will close the current unpaid deposit order. Continue?",
cancelViewingContent: "This will close the current viewing request. Continue?",
cancelOrderFailed: "Failed to cancel order",
cancelOrderLoading: "Canceling...",
cancelOrderSuccess: "Order canceled",
@@ -158,6 +159,7 @@ const messages = {
stayApplicationTitle: "Stay Application",
submittedAtLabel: "Submitted At",
toolbarSummary: "{total} applications",
viewingNoDepositToast: "Viewing requests do not require a deposit",
viewingApplicationTitle: "Viewing Request",
viewingTimeLabel: "Viewing Time"
},
@@ -305,6 +307,36 @@ const messages = {
refreshStatus: "Refresh Status",
refreshing: "Refreshing...",
reviewStep: "Review",
applicationPendingTitle: "Application submitted, waiting for review",
applicationPendingDesc: "Your application has been submitted. It will enter the room inspection step after butler review.",
applicationPendingNote: "Application is under review. Please wait for butler notification.",
applicationPendingPaymentTitle: "Please pay the deposit",
applicationPendingPaymentDesc: "Your stay application has been submitted. Please pay the deposit to confirm your booking.",
applicationPendingPaymentNote: "After the deposit is paid, the manager will review your application and arrange the next steps.",
viewingPendingTitle: "Viewing request submitted, waiting for confirmation",
viewingPendingDesc: "Your viewing request has been submitted. Please wait for the manager to confirm the viewing schedule.",
viewingPendingNote: "No deposit is required for viewing requests. Please watch for the viewing time and follow-up notice.",
viewingNoDepositToast: "Viewing requests do not require a deposit",
inspectionPendingTitle: "Please schedule and complete room inspection",
inspectionPendingDesc: "The flow has entered the room inspection step. Please complete the inspection on time.",
inspectionPendingNote: "After the room inspection is completed, the system will automatically proceed to bill payment.",
billPendingTitle: "Bill generated, please pay as soon as possible",
billPendingDesc: "The flow has entered the bill payment step. Complete payment to proceed to contract signing.",
billPendingNote: "Please complete the bill payment within the specified time. Overdue payment may affect your room selection.",
signContractDoneTitle: "Contract signed, waiting for check-in",
signContractDoneNote: "Contract signing is complete. Please wait for butler notification for check-in.",
applicationNo: "Application No.",
billNo: "Bill No.",
applicationStep: "Application",
inspectionStep: "Inspection",
billStep: "Bill",
contractShort: "Contract",
checkinShort: "Check-in",
applying: "Applying",
inspecting: "Inspecting",
pendingPayment: "Pending Payment",
pendingSignature: "Pending Signature",
pendingCheckin: "Pending Check-in",
roomDeviceUnconfigured: "Smart devices are not configured for this room",
signContract: "Sign Contract",
signContractDesc: "A contract is ready for signature. You are now at the contract signing step.",
@@ -323,7 +355,11 @@ const messages = {
title: "My Stay",
unpaid: "Unpaid",
viewAll: "View All",
viewBill: "View Bills"
viewBill: "View Bills",
currentTaskTitle: "Current Task",
flowProgressTitle: "Flow Progress",
goInspection: "Book Inspection",
viewDetail: "View Details"
}
},
index: {
@@ -544,7 +580,9 @@ const messages = {
},
book_viewing: {
book_viewing: {
availableTimeLabel: "Available Slots",
backTitle: "Back",
bookingDateLabel: "Booking Date",
budgetLabel: "Budget (CNY/month)",
budgetPlaceholder: "Enter your expected budget",
defaultInfoDesc: "A dedicated manager will arrange a one-on-one viewing for you",
@@ -554,7 +592,12 @@ const messages = {
duration4: "10-12 months",
duration5: "Over 1 year",
durationLabel: "Expected Stay Duration",
emptyRoomTypesDesc: "No room types available, please try again later",
loadFailed: "Failed to load room types",
mapSelectFailed: "Map selection failed, please enter manually",
navTitle: "On-site Viewing",
popupSubtitle: "Select your preferred room type and area",
priceNegotiable: "Price negotiable",
roomTypeLabel: "Preferred Room Type",
remarkArea: "Preferred Area: {area}",
remarkBudget: "Budget: {budget} CNY/month",
@@ -569,11 +612,13 @@ const messages = {
rentalNeeds: "Rental Needs",
rentalNeedsDesc: "Help the manager recommend a suitable room",
selectDurationRequired: "Please select the expected stay duration",
selectedTimeLabel: "Selected Time",
selectTimeRequired: "Please select a viewing time slot",
selectViewingTime: "Select Viewing Time",
selectViewingTimeDesc: "Choose a time slot that works for you",
submitBooking: "Submit Request",
submitFailed: "Failed to submit the booking",
submitHint: "A dedicated manager will contact you shortly after submission",
submitSuccessContent: "Your viewing request has been submitted.\nThe system will forward it to the authorized manager of the selected area. After the manager confirms the viewing, the order can be completed directly or converted into a booking for payment once a room is selected.",
submitSuccessTitle: "Booking Submitted",
submitting: "Submitting...",
@@ -711,6 +756,7 @@ const messages = {
},
store_detail: {
store_detail: {
addressLabel: "Apartment Address",
apartmentName: "Community",
collapse: "Collapse",
contactManager: "Contact Butler",
@@ -1250,9 +1296,12 @@ const messages = {
submit_request: {
components: {
BuildingSelector: {
emptyDesc: "No available buildings, please try again later",
emptyText: "No buildings available",
loadFailed: "Failed to load buildings",
loadFailedShort: "Failed to load buildings",
loadingText: "Loading buildings...",
popupSubtitle: "Select your preferred building",
popupTitle: "Select Building",
selectAreaFirst: "Please select an area first",
selectBuilding: "Select building"
@@ -1266,9 +1315,12 @@ const messages = {
},
FloorSelector: {
clearSelection: "Not specified",
emptyDesc: "No available floors, please try again later",
emptyText: "No floors available",
loadFailed: "Failed to load floor list",
loadFailedShort: "Failed to load floors",
loadingText: "Loading floors...",
popupSubtitle: "Select your preferred floor",
popupTitle: "Select Floor",
selectFloor: "Select floor"
},
@@ -1576,6 +1628,7 @@ const messages = {
apartmentLabel: "所属公寓",
cancelOrder: "取消订单",
cancelOrderContent: "取消后将关闭当前未支付的定金订单,是否继续?",
cancelViewingContent: "取消后将关闭当前预约看房申请,是否继续?",
cancelOrderFailed: "取消订单失败",
cancelOrderLoading: "取消中...",
cancelOrderSuccess: "订单已取消",
@@ -1643,6 +1696,7 @@ const messages = {
stayApplicationTitle: "入住申请",
submittedAtLabel: "提交时间",
toolbarSummary: "共 {total} 条申请",
viewingNoDepositToast: "预约看房申请无需支付定金",
viewingApplicationTitle: "预约看房申请",
viewingTimeLabel: "预约时间"
},
@@ -1790,6 +1844,36 @@ const messages = {
refreshStatus: "刷新状态",
refreshing: "刷新中...",
reviewStep: "管家审核",
applicationPendingTitle: "申请单已提交,等待审核",
applicationPendingDesc: "您的申请单已提交,管家审核通过后将进入验房环节。",
applicationPendingNote: "申请单审核中,请耐心等待管家通知。",
applicationPendingPaymentTitle: "请支付定金",
applicationPendingPaymentDesc: "您的入住申请已提交,请先支付定金以确认预订。",
applicationPendingPaymentNote: "支付定金后,管家会尽快审核您的申请并安排后续入住流程。",
viewingPendingTitle: "预约看房已提交,等待确认",
viewingPendingDesc: "您的预约看房申请已提交,请等待管家与您确认看房安排。",
viewingPendingNote: "预约看房无需支付定金,请留意看房时间与后续通知。",
viewingNoDepositToast: "预约看房申请无需支付定金",
inspectionPendingTitle: "请预约并完成验房",
inspectionPendingDesc: "当前流程已进入验房阶段,请按预约时间完成房间验收。",
inspectionPendingNote: "验房完成后,系统将自动进入账单支付环节。",
billPendingTitle: "账单已生成,请尽快支付",
billPendingDesc: "当前流程已进入账单支付阶段,完成支付后即可进入合同签署环节。",
billPendingNote: "请在规定时间内完成账单支付,逾期可能影响选房资格。",
signContractDoneTitle: "合同已签署,等待办理入住",
signContractDoneNote: "合同签署完成,请等待管家通知办理入住。",
applicationNo: "申请编号",
billNo: "账单编号",
applicationStep: "申请单",
inspectionStep: "验房",
billStep: "账单",
contractShort: "合同",
checkinShort: "入住",
applying: "申请中",
inspecting: "验房中",
pendingPayment: "待支付",
pendingSignature: "待签约",
pendingCheckin: "待入住",
roomDeviceUnconfigured: "房间智能设备未配置",
signContract: "去签约",
signContractDesc: "系统已生成待签合同,当前流程已进入签订合同阶段,完成签约后即可继续后续入住流程。",
@@ -1808,7 +1892,12 @@ const messages = {
title: "我的入住",
unpaid: "待支付",
viewAll: "全部",
viewBill: "查看账单"
viewBill: "查看账单",
currentTaskTitle: "当前任务",
currentStepTag: "当前",
flowProgressTitle: "流程进度",
goInspection: "去验房",
viewDetail: "查看详情"
}
},
index: {
@@ -2029,7 +2118,9 @@ const messages = {
},
book_viewing: {
book_viewing: {
availableTimeLabel: "可约时段",
backTitle: "返回",
bookingDateLabel: "预约日期",
budgetLabel: "租金预算 (元/月)",
budgetPlaceholder: "请输入您的心理价位",
defaultInfoDesc: "专属管家为您提供一对一带看服务",
@@ -2039,7 +2130,12 @@ const messages = {
duration4: "10-12个月",
duration5: "1年以上",
durationLabel: "预计租住时长",
emptyRoomTypesDesc: "当前暂无可用房型,请稍后再试",
loadFailed: "房型加载失败",
mapSelectFailed: "地图选择失败,请手动输入",
navTitle: "预约现场带看",
popupSubtitle: "选择您心仪的房型与区域",
priceNegotiable: "价格面议",
roomTypeLabel: "意向房型",
remarkArea: "意向区域:{area}",
remarkBudget: "租金预算:{budget} 元/月",
@@ -2054,11 +2150,13 @@ const messages = {
rentalNeeds: "您的租住需求",
rentalNeedsDesc: "帮助管家更好地为您推荐房源",
selectDurationRequired: "请选择预计租住时长",
selectedTimeLabel: "已选时间",
selectTimeRequired: "请选择看房时间段",
selectViewingTime: "选择看房时间",
selectViewingTimeDesc: "请选择您方便的时间段",
submitBooking: "提交预约",
submitFailed: "预约提交失败",
submitHint: "提交后专属管家将尽快与您联系",
submitSuccessContent: "您的预约看房申请已提交,请等待管家联系",
submitSuccessTitle: "预约成功",
submitting: "提交中...",
@@ -2196,6 +2294,7 @@ const messages = {
},
store_detail: {
store_detail: {
addressLabel: "公寓地址",
apartmentName: "公寓详情",
collapse: "收起",
contactManager: "联系管家",
@@ -2735,9 +2834,12 @@ const messages = {
submit_request: {
components: {
BuildingSelector: {
emptyDesc: "当前暂无可用楼栋,请稍后再试",
emptyText: "暂无可选楼栋",
loadFailed: "楼栋列表加载失败",
loadFailedShort: "楼栋加载失败",
loadingText: "楼栋加载中...",
popupSubtitle: "选择您期望入住的楼栋",
popupTitle: "选择意向楼栋",
selectAreaFirst: "请先选择区域",
selectBuilding: "请选择楼栋"
@@ -2751,9 +2853,12 @@ const messages = {
},
FloorSelector: {
clearSelection: "不选择",
emptyDesc: "当前暂无可用楼层,请稍后再试",
emptyText: "暂无可选楼层",
loadFailed: "楼层列表加载失败",
loadFailedShort: "楼层加载失败",
loadingText: "楼层加载中...",
popupSubtitle: "选择您期望入住的楼层",
popupTitle: "选择意向楼层",
selectFloor: "请选择楼层"
},