diff --git a/backend/src/services/paymentOrderService.js b/backend/src/services/paymentOrderService.js index cb7e399..52f4034 100644 --- a/backend/src/services/paymentOrderService.js +++ b/backend/src/services/paymentOrderService.js @@ -64,11 +64,23 @@ const createPaymentOrder = async (data, adminId) => { const actualUserId = user.id; // Verify appointment exists if provided + let actualAppointmentId = null; if (appointmentId) { - const appointment = await Appointment.findByPk(appointmentId); - if (!appointment) { - throw new Error('Appointment not found'); + // Check if appointmentId is a UUID or an appointment number + const isUUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(appointmentId); + + let appointment; + if (isUUID) { + appointment = await Appointment.findByPk(appointmentId); + } else { + // Try to find by appointment number + appointment = await Appointment.findOne({ where: { appointmentNo: appointmentId } }); } + + if (!appointment) { + throw new Error('预约单不存在,请检查预约单号是否正确'); + } + actualAppointmentId = appointment.id; } // Generate unique order number @@ -84,7 +96,7 @@ const createPaymentOrder = async (data, adminId) => { const paymentOrder = await PaymentOrder.create({ orderNo, userId: actualUserId, - appointmentId: appointmentId || null, + appointmentId: actualAppointmentId, amount: parseFloat(amount), serviceContent, paymentTime: new Date(paymentTime), diff --git a/miniprogram/src/locale/en.js b/miniprogram/src/locale/en.js index dc9c42b..8d681eb 100644 --- a/miniprogram/src/locale/en.js +++ b/miniprogram/src/locale/en.js @@ -93,8 +93,8 @@ export default { inviteReward: 'Invite Friends for Rewards', userAgreement: 'User Agreement', privacyPolicy: 'Privacy Policy', - general: 'General', - other: 'Other' + general: 'Common Features', + other: 'Other Features' }, language: { chinese: '中文', diff --git a/miniprogram/src/locale/es.js b/miniprogram/src/locale/es.js index 602e8f6..cf63f35 100644 --- a/miniprogram/src/locale/es.js +++ b/miniprogram/src/locale/es.js @@ -93,8 +93,8 @@ export default { inviteReward: 'Invita Amigos y Gana Recompensas', userAgreement: 'Acuerdo de Usuario', privacyPolicy: 'Política de Privacidad', - general: 'General', - other: 'Otro' + general: 'Funciones Comunes', + other: 'Otras Funciones' }, language: { chinese: '中文', diff --git a/miniprogram/src/locale/zh.js b/miniprogram/src/locale/zh.js index 0d3002b..ef9d673 100644 --- a/miniprogram/src/locale/zh.js +++ b/miniprogram/src/locale/zh.js @@ -93,8 +93,8 @@ export default { inviteReward: '邀请新人得奖励', userAgreement: '用户协议', privacyPolicy: '隐私协议', - general: '常规', - other: '其他' + general: '常用功能', + other: '其他功能' }, profile: { title: '个人资料', diff --git a/miniprogram/src/pages/appointment/air-logistics-page.vue b/miniprogram/src/pages/appointment/air-logistics-page.vue index 621c35e..caba711 100644 --- a/miniprogram/src/pages/appointment/air-logistics-page.vue +++ b/miniprogram/src/pages/appointment/air-logistics-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -365,12 +362,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/airfare-info-entry-page.vue b/miniprogram/src/pages/appointment/airfare-info-entry-page.vue index 38f1ed4..b154ab3 100644 --- a/miniprogram/src/pages/appointment/airfare-info-entry-page.vue +++ b/miniprogram/src/pages/appointment/airfare-info-entry-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -720,12 +717,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/airport-transfer-page.vue b/miniprogram/src/pages/appointment/airport-transfer-page.vue index 905dac8..ee06fb9 100644 --- a/miniprogram/src/pages/appointment/airport-transfer-page.vue +++ b/miniprogram/src/pages/appointment/airport-transfer-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -488,12 +485,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/exhibition-service-page.vue b/miniprogram/src/pages/appointment/exhibition-service-page.vue index b648049..13e5d34 100644 --- a/miniprogram/src/pages/appointment/exhibition-service-page.vue +++ b/miniprogram/src/pages/appointment/exhibition-service-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -324,12 +321,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/guide-translation-page.vue b/miniprogram/src/pages/appointment/guide-translation-page.vue index 47cd2e2..bb486ee 100644 --- a/miniprogram/src/pages/appointment/guide-translation-page.vue +++ b/miniprogram/src/pages/appointment/guide-translation-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -390,12 +387,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/hotel-reservation-page.vue b/miniprogram/src/pages/appointment/hotel-reservation-page.vue index c1d3dc0..ee2d674 100644 --- a/miniprogram/src/pages/appointment/hotel-reservation-page.vue +++ b/miniprogram/src/pages/appointment/hotel-reservation-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -699,12 +696,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/insurance-consultation-page.vue b/miniprogram/src/pages/appointment/insurance-consultation-page.vue index 2d28cbb..e0f85aa 100644 --- a/miniprogram/src/pages/appointment/insurance-consultation-page.vue +++ b/miniprogram/src/pages/appointment/insurance-consultation-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -324,12 +321,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/medical-consultation-page.vue b/miniprogram/src/pages/appointment/medical-consultation-page.vue index 9e3300b..c4a22da 100644 --- a/miniprogram/src/pages/appointment/medical-consultation-page.vue +++ b/miniprogram/src/pages/appointment/medical-consultation-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -429,12 +426,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/pet-transportation-page.vue b/miniprogram/src/pages/appointment/pet-transportation-page.vue index d3ad967..3002295 100644 --- a/miniprogram/src/pages/appointment/pet-transportation-page.vue +++ b/miniprogram/src/pages/appointment/pet-transportation-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -498,12 +495,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/rail-ticket-page.vue b/miniprogram/src/pages/appointment/rail-ticket-page.vue index 084e2f6..4948357 100644 --- a/miniprogram/src/pages/appointment/rail-ticket-page.vue +++ b/miniprogram/src/pages/appointment/rail-ticket-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -541,12 +538,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/sea-freight-page.vue b/miniprogram/src/pages/appointment/sea-freight-page.vue index bbe7696..30f245b 100644 --- a/miniprogram/src/pages/appointment/sea-freight-page.vue +++ b/miniprogram/src/pages/appointment/sea-freight-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -365,12 +362,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/special-needs-page.vue b/miniprogram/src/pages/appointment/special-needs-page.vue index 5eb9453..d6395dc 100644 --- a/miniprogram/src/pages/appointment/special-needs-page.vue +++ b/miniprogram/src/pages/appointment/special-needs-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -413,12 +410,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/travel-planning-page.vue b/miniprogram/src/pages/appointment/travel-planning-page.vue index 8f40b27..e5ace73 100644 --- a/miniprogram/src/pages/appointment/travel-planning-page.vue +++ b/miniprogram/src/pages/appointment/travel-planning-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -568,12 +565,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/unaccompanied-minor-page.vue b/miniprogram/src/pages/appointment/unaccompanied-minor-page.vue index 02dd1ee..a481314 100644 --- a/miniprogram/src/pages/appointment/unaccompanied-minor-page.vue +++ b/miniprogram/src/pages/appointment/unaccompanied-minor-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -529,12 +526,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/vip-lounge-page.vue b/miniprogram/src/pages/appointment/vip-lounge-page.vue index 53460f0..ddec6f8 100644 --- a/miniprogram/src/pages/appointment/vip-lounge-page.vue +++ b/miniprogram/src/pages/appointment/vip-lounge-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -530,12 +527,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/appointment/visa-consultation-page.vue b/miniprogram/src/pages/appointment/visa-consultation-page.vue index 7cf861d..650822a 100644 --- a/miniprogram/src/pages/appointment/visa-consultation-page.vue +++ b/miniprogram/src/pages/appointment/visa-consultation-page.vue @@ -17,9 +17,6 @@ 预约登记规则 {{ bookingRules }} - - {{ $t('infoEntry.personalInfo') }} @@ -324,12 +321,14 @@ /* 预约登记规则样式 */ .booking-rules-box { width: 680rpx; + height: 396rpx; margin-top: 32rpx; padding: 30rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1); box-sizing: border-box; + overflow-y: auto; } .rules-title { diff --git a/miniprogram/src/pages/me/me-page.vue b/miniprogram/src/pages/me/me-page.vue index bd39684..d70a2b7 100644 --- a/miniprogram/src/pages/me/me-page.vue +++ b/miniprogram/src/pages/me/me-page.vue @@ -57,8 +57,7 @@ - + {{ $t('me.general') }} @@ -124,8 +123,7 @@ - + {{ $t('me.other') }} @@ -507,7 +505,17 @@ flex-direction: column; } - // 统计数据行 + // 分区标题 + .section-title { + font-size: 28rpx; + font-weight: bold; + color: #333; + margin-left: 32rpx; + margin-top: 36rpx; + display: block; + } + + // 统计数据行 .stats-row { display: flex; flex-direction: row; diff --git a/miniprogram/src/static/Frame 19@2x.png b/miniprogram/src/static/Frame 19@2x.png deleted file mode 100644 index e4025a7..0000000 Binary files a/miniprogram/src/static/Frame 19@2x.png and /dev/null differ diff --git a/miniprogram/src/static/Frame 2@2x (1).png b/miniprogram/src/static/Frame 2@2x (1).png deleted file mode 100644 index 0b12110..0000000 Binary files a/miniprogram/src/static/Frame 2@2x (1).png and /dev/null differ diff --git a/miniprogram/src/static/Frame 3@2x (1).png b/miniprogram/src/static/Frame 3@2x (1).png deleted file mode 100644 index 6a45dbe..0000000 Binary files a/miniprogram/src/static/Frame 3@2x (1).png and /dev/null differ diff --git a/miniprogram/src/static/Frame 4@2x (1).png b/miniprogram/src/static/Frame 4@2x (1).png deleted file mode 100644 index 9de357d..0000000 Binary files a/miniprogram/src/static/Frame 4@2x (1).png and /dev/null differ diff --git a/miniprogram/src/static/about_me.png b/miniprogram/src/static/about_me.png deleted file mode 100644 index 10c97a0..0000000 Binary files a/miniprogram/src/static/about_me.png and /dev/null differ diff --git a/miniprogram/src/static/hot_server.png b/miniprogram/src/static/hot_server.png deleted file mode 100644 index 6095a62..0000000 Binary files a/miniprogram/src/static/hot_server.png and /dev/null differ diff --git a/miniprogram/src/static/ic_general.png b/miniprogram/src/static/ic_general.png deleted file mode 100644 index 57718d2..0000000 Binary files a/miniprogram/src/static/ic_general.png and /dev/null differ diff --git a/miniprogram/src/static/ic_other.png b/miniprogram/src/static/ic_other.png deleted file mode 100644 index b9c268a..0000000 Binary files a/miniprogram/src/static/ic_other.png and /dev/null differ