修改UI,

This commit is contained in:
18631081161 2025-12-22 16:57:26 +08:00
parent 0a8595b308
commit 3b5dd2bad6
29 changed files with 67 additions and 63 deletions

View File

@ -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),

View File

@ -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: '中文',

View File

@ -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: '中文',

View File

@ -93,8 +93,8 @@ export default {
inviteReward: '邀请新人得奖励',
userAgreement: '用户协议',
privacyPolicy: '隐私协议',
general: '常',
other: '其他'
general: '常用功能',
other: '其他功能'
},
profile: {
title: '个人资料',

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -17,9 +17,6 @@
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
<view class="" style="width: 100%; font-size: 40rpx; padding-left: 54rpx; margin-top: 38rpx;">
{{ $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 {

View File

@ -57,8 +57,7 @@
</view>
</view>
<image src="/static/ic_general.png"
style="width: 123.67rpx; height: 29.92rpx; margin-left: 32rpx; margin-top: 36rpx;" mode=""></image>
<text class="section-title">{{ $t('me.general') }}</text>
<!-- 通知 -->
@ -124,8 +123,7 @@
<image src="/static/ic_other.png"
style="width: 123.67rpx; height: 29.92rpx; margin-left: 32rpx; margin-top: 36rpx;" mode=""></image>
<text class="section-title">{{ $t('me.other') }}</text>
<!-- 语言设置 -->
@ -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;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB