From 97759cdbad702dd53c365c33d3a71593c063b124 Mon Sep 17 00:00:00 2001
From: wangxiaowei <1121133807@qq.com>
Date: Mon, 4 May 2026 16:54:47 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/bundle/profile/profile.vue | 2 +-
src/bundle/settle-in/tea-specialist.vue | 48 ++--
src/bundle/tea-room/room.vue | 2 +-
src/bundle/wallet/recharge-store.vue | 183 +++++++++++++
src/bundle/wallet/recharge.vue | 267 ++++++++++---------
src/bundle_b/pages/tea-specialist/detail.vue | 2 -
src/pages.json | 9 +
src/pages/my/my.vue | 10 +-
src/pages/reserve/reserve.vue | 10 +-
9 files changed, 390 insertions(+), 143 deletions(-)
create mode 100644 src/bundle/wallet/recharge-store.vue
diff --git a/src/bundle/profile/profile.vue b/src/bundle/profile/profile.vue
index fc98425..b708f1c 100644
--- a/src/bundle/profile/profile.vue
+++ b/src/bundle/profile/profile.vue
@@ -119,7 +119,7 @@
- 2.14.12
+ 2.14.16
diff --git a/src/bundle/settle-in/tea-specialist.vue b/src/bundle/settle-in/tea-specialist.vue
index 77d5884..f79f803 100644
--- a/src/bundle/settle-in/tea-specialist.vue
+++ b/src/bundle/settle-in/tea-specialist.vue
@@ -169,7 +169,7 @@
-
+
@@ -253,7 +253,7 @@
-
+
@@ -327,8 +327,12 @@
class="text-32rpx leading-44rpx flex items-center justify-center leading-90rpx text-center text-[#303133] mt-112rpx pb-66rpx">
联系我们
-
- 提交申请
+
+ 提交申请
+ 提交中...
+
@@ -369,10 +373,13 @@ const countDownTime = ref(1 * 60 * 1000) // 60s倒计时
const startCountDown = ref(false) // 是否开始倒计时
const countDown = ref(null) // 倒计时组件
+// 防重复提交
+const isSubmitting = ref(false) // 是否正在提交
+
// 表单
const form = ref<{
- license_img: string // 营业执照
+ // license_img: string // 营业执照
username: string // 茶艺师名字
gender: number // 茶艺师性别(1男 2女)
both: number | string // 出生年月
@@ -382,7 +389,7 @@ const form = ref<{
avatar: string // 头像
mobile: string // 联系电话
code: string // 验证码
- health_certificate?: string // 健康证
+ // health_certificate?: string // 健康证
information?: string // 个人展示
image?: string // 个人展示
front_card?: string // 身份证正面
@@ -390,7 +397,7 @@ const form = ref<{
broker_user_id?: number // 经纪人ID(可选,扫码绑定经纪人时携带)
label_id?: string // 专属圈子标签ID,逗号分隔
}>({
- license_img: '', // 营业执照
+ // license_img: '', // 营业执照
username: '', // 茶艺师名字
gender: 2, // 茶艺师性别(1男 2女)
both: '', // 出生年月
@@ -400,7 +407,7 @@ const form = ref<{
avatar: '', // 头像
mobile: '', // 联系电话
code: '', // 验证码
- health_certificate: '', // 健康证
+ // health_certificate: '', // 健康证
information: '', // 个人展示(2026-04-07暂时废弃)
image: '', // 本人照片
front_card: '', // 身份证正面
@@ -572,10 +579,10 @@ const TeaSpecialist = {
// return false
// }
- if (fileList.value.length == 0) {
- toast.show('请上传茶艺师资格证书')
- return false
- }
+ // if (fileList.value.length == 0) {
+ // toast.show('请上传茶艺师资格证书')
+ // return false
+ // }
// if (fileList4.value.length == 0) {
// toast.show('请至少上传一张个人展示照片')
@@ -593,9 +600,9 @@ const TeaSpecialist = {
}
form.value.label_id = selectedTags.value.join(',') // 专属圈子标签ID,逗号分隔
- form.value.license_img = fileList.value.length > 0 ? removeImageUrlPrefix(fileList.value)[0] : '' // 茶艺师资格证书
+ // form.value.license_img = fileList.value.length > 0 ? removeImageUrlPrefix(fileList.value)[0] : '' // 茶艺师资格证书
form.value.avatar = fileList2.value.length > 0 ? removeImageUrlPrefix(fileList2.value)[0] : '' // 个人照片
- form.value.health_certificate = fileList3.value.length > 0 ? removeImageUrlPrefix(fileList3.value)[0] : '' // 健康证
+ // form.value.health_certificate = fileList3.value.length > 0 ? removeImageUrlPrefix(fileList3.value)[0] : '' // 健康证
form.value.image = fileList4.value.length > 0 ? removeImageUrlPrefix(fileList4.value) : '' // 个人展示
form.value.image = Array.isArray(form.value.image) ? form.value.image.join(',') : form.value.image
form.value.front_card = frontCard.value.length > 0 ? removeImageUrlPrefix(frontCard.value)[0] : '' // 身份证正面
@@ -604,6 +611,12 @@ const TeaSpecialist = {
let data = form.value
data.both = both.value
+ // 防重复提交
+ if (isSubmitting.value) {
+ return
+ }
+ isSubmitting.value = true
+
toast.loading({
loadingType: 'ring',
loadingColor: '#4C9F44',
@@ -619,7 +632,8 @@ const TeaSpecialist = {
}, 100)
} catch (e) {
toast.close()
- return
+ } finally {
+ isSubmitting.value = false // 无论成功失败都要重置状态
}
}
}
diff --git a/src/bundle/tea-room/room.vue b/src/bundle/tea-room/room.vue
index a47120e..38f13b2 100644
--- a/src/bundle/tea-room/room.vue
+++ b/src/bundle/tea-room/room.vue
@@ -412,7 +412,7 @@
*/
handleToRecharge: () => {
// router.navigateTo(`/bundle/store-recharge/store-recharge?id=${teaRoom.value.id}&storeName=${teaRoom.value.name}`)
- router.navigateTo('/bundle/wallet/recharge?storeId=' + teaRoom.value.id)
+ router.navigateTo('/bundle/wallet/recharge-store?storeId=' + teaRoom.value.id)
},
/**
diff --git a/src/bundle/wallet/recharge-store.vue b/src/bundle/wallet/recharge-store.vue
new file mode 100644
index 0000000..0d0361d
--- /dev/null
+++ b/src/bundle/wallet/recharge-store.vue
@@ -0,0 +1,183 @@
+
+{
+ "needLogin": true,
+ "layout": "default",
+ "style": {
+ "navigationStyle": "custom"
+ }
+}
+
+
+
+
+
+
+
+
+
+ 当前平台暂无充值活动
+
+
+
+
+
+
+ 充值活动
+
+
+
+
+
+
+
+ 充{{ item.price }}
+
+ 送
+ {{ item.gift_price }}
+
+
+
+
+
+
+
+
+
+
+
+ 充值
+
+
+
+
+
+
+
+
+
diff --git a/src/bundle/wallet/recharge.vue b/src/bundle/wallet/recharge.vue
index 0d0361d..1ac8df8 100644
--- a/src/bundle/wallet/recharge.vue
+++ b/src/bundle/wallet/recharge.vue
@@ -11,147 +11,191 @@
-
+
-
- 当前平台暂无充值活动
-
-
-
-
+
-
- 充值活动
+
+ 充值方式
+
+
+
+
+
+ 微信
-
-
-
-
- 充{{ item.price }}
-
- 送
- {{ item.gift_price }}
+
+
+ 充值方式
+
+
+ ¥
+
+
+
+
+
+
+
+
+
-
-
- 充值
+
+ 确定充值
+
+
+
+
+
+
+
+ 推广方式
+
+
+
+
+
+
+
+ 这是茶馆名字
+
+ 距您5.3km
+
+
+
+ 北京市海淀区宏福苑西区20号楼2单元30
+
+
+
+
+
+
+
-
diff --git a/src/bundle_b/pages/tea-specialist/detail.vue b/src/bundle_b/pages/tea-specialist/detail.vue
index d9d0b38..32e8d7c 100644
--- a/src/bundle_b/pages/tea-specialist/detail.vue
+++ b/src/bundle_b/pages/tea-specialist/detail.vue
@@ -524,8 +524,6 @@ const Detail = {
* 处理收藏
*/
handleCollect: async () => {
- console.log("🚀 ~ Detail.handleCollect:", 123)
-
if (!userInfo.value.id) {
toast.info('请先登录')
router.navigateTo('/pages/login/login', 200)
diff --git a/src/pages.json b/src/pages.json
index 8d40b12..bb3d45a 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -431,6 +431,15 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "wallet/recharge-store",
+ "type": "page",
+ "needLogin": true,
+ "layout": "default",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "wallet/recharge",
"type": "page",
diff --git a/src/pages/my/my.vue b/src/pages/my/my.vue
index f50dffc..2e73d4a 100644
--- a/src/pages/my/my.vue
+++ b/src/pages/my/my.vue
@@ -202,7 +202,7 @@
-
+
茶艺师订单
@@ -270,6 +270,7 @@
import { useUserStore } from '@/store'
import { getUserInfo, getMyCoupon, claimMyCoupon, getUserMember, getConfig } from '@/api/user'
import type { IUserResult } from '@/api/types/user'
+ import { getSetting } from '@/api/tea-specialist'
const OSS = inject('OSS')
const navbarHeight = inject('navbarHeight')
@@ -337,6 +338,9 @@
// 过期时间
const expireTime = ref('')
+ // 获取设置
+ const setting = ref({})
+
onShow(() => {
const userStore = useUserStore()
isLogin.value = userStore.isLoggedIn
@@ -402,6 +406,10 @@
sheetMenu.value = [{ name: serviceMobile }]
}
})
+
+ getSetting().then(res => {
+ setting.value = res
+ })
},
/**
diff --git a/src/pages/reserve/reserve.vue b/src/pages/reserve/reserve.vue
index 992b5c5..aac2b29 100644
--- a/src/pages/reserve/reserve.vue
+++ b/src/pages/reserve/reserve.vue
@@ -26,7 +26,7 @@
-
+
@@ -57,6 +57,7 @@
import { router } from '@/utils/tools'
import { getTeaRoomOrderList } from '@/api/tea-room'
import { getTeaSpecialistOrderList } from '@/api/teaSpecialist-order'
+ import { getSetting } from '@/api/tea-specialist'
const OSS = inject('OSS')
const navbarHeight = Number(inject('navbarHeight')) + 42 + 14 // 42为tabs的高度 14是边距值
@@ -65,6 +66,9 @@
const tab = ref(0)
const reserveType = ref(0) // 0:茶室预约 1:茶艺师预约
+ // 获取设置
+ const setting = ref({})
+
// mescroll
const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom) // 调用mescroll的hook
const downOption = {
@@ -96,6 +100,10 @@
list.value = []
getMescroll().resetUpScroll()
})
+
+ getSetting().then(res => {
+ setting.value = res
+ })
})
onUnload(() => {