完善茶艺师套餐功能

This commit is contained in:
wangxiaowei
2026-03-31 21:59:42 +08:00
parent 61d0ca2bd1
commit 401b1f0d2f
28 changed files with 593 additions and 176 deletions

View File

@ -79,7 +79,7 @@
? 'linear-gradient( 180deg, #FFF3FB 0%, #F6F7F9 100%)'
: 'linear-gradient( 180deg, #FFF9EA 0%, #F6F7F9 100%)'
}"
@click="router.navigateTo(`/bundle/package/detail?id=${item.id}`)"
@click="router.navigateTo(`/bundle/package/detail?id=${item.id}&type=${item.type}`)"
>
<view class="px-10rpx pt-10rpx flex justify-center">
<wd-img width="204rpx" height="124rpx" :src="item.img" radius="16rpx" mode="aspectFill" />

View File

@ -43,10 +43,10 @@
<view class="flex items-center mx-32rpx mt-64rpx">
<view class="w-32rpx h-32rpx">
<wd-checkbox v-model="agree" @change="Login.handleAgree" checked-color="#4C9F44" size="large"> </wd-checkbox>
<wd-checkbox v-model="agree" checked-color="#4C9F44" size="large"> </wd-checkbox>
</view>
<view class="font-400 text-26rpx leading-40rpx text-[#8F959E] ml-14rpx flex-1" @click="agree = !agree">
我已阅读并同意 <text class="text-[#4C9F44]" @click.stop="Login.handleToService">服务协议</text> <text class="text-[#4C9F44]" @click.stop="Login.handleToPrivacy">隐私政策</text>未注册手机号登录后将自动你为您创建账号
我已阅读并同意 <text class="text-[#4C9F44]" @click.stop="Login.handleToWebview('service')">服务协议</text> <text class="text-[#4C9F44]" @click.stop="Login.handleToWebview('privacy')">隐私政策</text>未注册手机号登录后将自动你为您创建账号
</view>
</view>
</view>
@ -57,7 +57,7 @@
import { toast } from '@/utils/toast'
import { getWxCode } from '@/api/login'
import { useUserStore } from '@/store'
import { router } from '@/utils/tools'
import { router, strToParams } from '@/utils/tools'
import { getMobileByMnp } from '@/api/user'
const OSS = inject('OSS')
@ -70,10 +70,20 @@
const redirectUrl = ref<string>('')
const redirectParams = ref<string>('')
// 门店ID
const storeId = ref<number>(0)
// 绑定手机号码popup
const showBindMobilePopup = ref<boolean>(false)
onLoad((args) => {
const scene = args?.scene
console.log("🚀 ~ scene:", scene)
if (scene) {
storeId.value = strToParams(decodeURIComponent(args.scene))?.store_id
console.log("🚀 ~ storeId.value:", storeId.value)
}
redirectUrl.value = args.redirect || ''
})
@ -93,9 +103,7 @@
mask: true
})
try {
console.log("🚀 ~ Login userRegisterSource=", userStore.userRegisterSource)
const res = await userStore.wxLogin()
console.log("🚀 ~ res:", res)
const res = await userStore.wxLogin(Number(storeId.value))
console.log("🚀 ~ token:", uni.getStorageSync('token'))
uni.hideLoading()
if (!res.mobile) {
@ -104,19 +112,6 @@
}
Login.handleToLogin()
// Login.handleToLogin()
// if (res) {
// const decoded = decodeURIComponent(redirectUrl.value)
// console.log("🚀 ~ decoded:", decoded)
// if (decoded == '/bundle/order/tea-room/order-detail') {
// const transferOrderParams = uni.getStorageSync('transferOrderParams')
// uni.$emit('transferOrder', transferOrderParams)
// }
// toast.info('登录成功')
// router.navigateBack(1, 500)
// }
} catch(error) {
uni.hideLoading()
}
@ -180,20 +175,14 @@
}
toast.info('登录成功')
router.navigateBack(1, 500)
},
handleAgree: async (e: any) => {
router.navigateBack(1, 500).catch(err => {
router.switchTab('/pages/my/my')
})
},
// 跳转到服务协议页面
handleToService: () => {
router.navigateTo('/pages/webview/webview?type=service')
},
// 跳转到隐私政策页面
handleToPrivacy: () => {
router.navigateTo('/pages/webview/webview?type=privacy')
handleToWebview: (type: string) => {
router.navigateTo(`/pages/webview/webview?type=${type}`)
},
}
</script>

View File

@ -220,18 +220,16 @@
<view class="bg-white rounded-16rpx mx-30rpx mt-28rpx pb-34rpx">
<view class="px-30rpx pt-30rpx py-24rpx">更多服务</view>
<view class="flex px-30rpx">
<view v-for="(item, index) in serviceMenuList" :key="index">
<navigator :url="item.url" hover-class="none">
<view class="text-center flex flex-col items-center justify-center mr-30rpx relative" :class="item.badge ? 'w-180rpx ml-[-10rpx]' : 'w-120rpx'">
<view class="w-60rpx h-60rpx flex items-center justify-center">
<wd-img width="100%" height="100%" :src="item.icon"></wd-img>
</view>
<view class="font-400 text-24rpx text-[#303133] leading-34rpx mt-8rpx">{{ item.title }}</view>
<view class="service-badge rounded-18rpx text-[#63300E] text-16rpx leading-20rpx w-72rpx h-28rpx text-center leading-28rpx absolute top-0 right-0" v-if="item.badge">
{{item.badge}}
</view>
<view v-for="(item, index) in serviceMenuList" :key="index" @click="router.navigateTo(`${item.url}`)">
<view class="text-center flex flex-col items-center justify-center mr-30rpx relative" :class="item.badge ? 'w-180rpx ml-[-10rpx]' : 'w-120rpx'">
<view class="w-60rpx h-60rpx flex items-center justify-center">
<wd-img width="100%" height="100%" :src="item.icon"></wd-img>
</view>
</navigator>
<view class="font-400 text-24rpx text-[#303133] leading-34rpx mt-8rpx">{{ item.title }}</view>
<view class="service-badge rounded-18rpx text-[#63300E] text-16rpx leading-20rpx w-72rpx h-28rpx text-center leading-28rpx absolute top-0 right-0" v-if="item.badge">
{{item.badge}}
</view>
</view>
</view>
</view>
</view>

View File

@ -39,7 +39,7 @@
<reserve-notice title="团体茶艺师预约成功" desc="团体茶艺师预约成功">
<template #layout>
<view class="pb-22rpx mt-40rpx mx-30rpx flex justify-between items-center text-[32rpx] text-center">
<view class='bg-[#4C9F44] text-[#fff] rounded-8rpx h-90rpx leading-90rpx w-632rpx' @click="reserve.handleRoomDone">完成</view>
<view class='bg-[#4C9F44] text-[#fff] rounded-8rpx h-90rpx leading-90rpx w-632rpx' @click="router.switchTab('/pages/index/index')">完成</view>
</view>
</template>
</reserve-notice>