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