diff --git a/src/api/tea-package.ts b/src/api/tea-package.ts index 209c873..643e32a 100644 --- a/src/api/tea-package.ts +++ b/src/api/tea-package.ts @@ -15,7 +15,9 @@ export function getTeaPackageList() { * 获取茶艺师套餐详情 */ export function getTeaPackageDetail(id: number) { - return http.Post('/api/Teamaster/teamasterGroupDetails', { id }) + return http.Post('/api/Teamaster/teamasterGroupDetails', { id }, { + meta: { ignoreAuth: true } + }) } /** diff --git a/src/api/tea-specialist.ts b/src/api/tea-specialist.ts index a729657..cfd6bd3 100644 --- a/src/api/tea-specialist.ts +++ b/src/api/tea-specialist.ts @@ -17,6 +17,7 @@ export interface ITeaSpecialistParams { longitude: number level?: string search?: string + server_type?: number // 1到店服务 2上门服务 } export function getTeaSpecialist(data: ITeaSpecialistParams) { diff --git a/src/bundle/package/claim-coupon.vue b/src/bundle/package/claim-coupon.vue index 2c5761a..c6280e2 100644 --- a/src/bundle/package/claim-coupon.vue +++ b/src/bundle/package/claim-coupon.vue @@ -26,7 +26,7 @@ 公司名称 - + @@ -38,7 +38,7 @@ 手机号 - + diff --git a/src/bundle/package/detail.vue b/src/bundle/package/detail.vue index dc76e2e..43fbf35 100644 --- a/src/bundle/package/detail.vue +++ b/src/bundle/package/detail.vue @@ -1,6 +1,5 @@ { - "needLogin": true, "layout": "tabbar", "style": { "navigationStyle": "custom" @@ -213,7 +212,7 @@ const Detail = { }, /** - * 提交订单 + * 立即预约 */ handleReserve: async () => { router.navigateTo('/bundle/package/service') diff --git a/src/bundle/package/reserve.vue b/src/bundle/package/reserve.vue index 52c1b2e..24eadc0 100644 --- a/src/bundle/package/reserve.vue +++ b/src/bundle/package/reserve.vue @@ -203,7 +203,7 @@ 预定茶叶 - 支持多选 + 任选一款 @@ -727,20 +727,20 @@ const Reserve = { }, /** - * 切换预定茶叶选择 + * 切换预定茶叶选择 (单选) */ handleToggleTea: (id: number, name: string, price: number) => { const index = selectedTea.value.indexOf(id) if (index >= 0) { // 已选择,取消选择 - selectedTea.value.splice(index, 1) - selectedTeaTxt.value.splice(index, 1) - selectedTeaPrice.value.splice(index, 1) + selectedTea.value = [] + selectedTeaTxt.value = [] + selectedTeaPrice.value = [] } else { - // 未选择,添加选择 - selectedTea.value.push(id) - selectedTeaTxt.value.push(name) - selectedTeaPrice.value.push(price) + // 未选择,设置为当前选择 (排他单选) + selectedTea.value = [id] + selectedTeaTxt.value = [name] + selectedTeaPrice.value = [price] } totalSelectedTeaPrice.value = toPlus(selectedTeaPrice.value) diff --git a/src/bundle/package/service.vue b/src/bundle/package/service.vue index 6ce0908..e721130 100644 --- a/src/bundle/package/service.vue +++ b/src/bundle/package/service.vue @@ -289,7 +289,7 @@ const Service = { } uni.setStorageSync('selectedPackageService', address) // 将选择的服务信息存储到本地,供下一个页面使用 - router.navigateTo('/bundle/package/tea-specialist') + router.navigateTo('/bundle/package/tea-specialist?serviceType=' + serviceType.value) // 跳转到下一个页面,并传递服务方式参数 } } diff --git a/src/bundle/package/tea-specialist.vue b/src/bundle/package/tea-specialist.vue index 0865f3e..7136c55 100644 --- a/src/bundle/package/tea-specialist.vue +++ b/src/bundle/package/tea-specialist.vue @@ -15,8 +15,8 @@ 茶艺师 匹配心动茶艺师 - - + @@ -40,7 +40,7 @@ - + @@ -62,7 +62,7 @@ - 商家认证 + {{ info.company_abv }} import { inject, ref, computed } from 'vue' -import { router } from '@/utils/tools' +import { router, previewImage } from '@/utils/tools' import { getTeaSpecialist, getTeaSpecialistDetail } from '@/api/tea-specialist' import type { ITeaSpecialistResult } from '@/api/types/tea-specialist' +import { toast } from '@/utils/toast' const OSS = inject('OSS') @@ -164,10 +165,16 @@ const info = ref({ mileage_price: 0, // 车马费 server_type: 0, // 服务方式 1到店 2上门 3两者都有 label: [], // 专属圈子标签 + company_abv: '', // 公司简称 + company_url: '', // 图片链接 + company_status: 0, // 是否有公司信息 }) +const serviceType = ref(1) // 服务方式,默认为到店服务 + +onLoad((args) => { + serviceType.value = args.serviceType || 1 // 默认到店服务 -onLoad(() => { TeaSpecialist.handleGetTeaSpecialistList() }) @@ -186,6 +193,7 @@ const TeaSpecialist = { latitude: storage.latitude || import.meta.env.VITE_DEFAULT_LATITUDE, longitude: storage.longitude || import.meta.env.VITE_DEFAULT_LONGITUDE, level: uni.getStorageSync('teaPackageType'), + server_type: serviceType.value, // 1到店服务 2上门服务 } try { const res = await getTeaSpecialist(filter) @@ -241,6 +249,17 @@ const TeaSpecialist = { handleNext: () => { console.log("🚀 ~ info.value:", info.value) router.navigateTo(`/bundle/package/reserve?id=${info.value.team_user_id}`) + }, + + /** + * 查看商家信息 + */ + handlePreviewInfo: () => { + if (info.value.company_status) { + previewImage(info.value.company_url, [info.value.company_url]) + } else { + toast.info('暂无商家信息') + } } } diff --git a/src/bundle_b/pages/tea-specialist/detail.vue b/src/bundle_b/pages/tea-specialist/detail.vue index 8d7c9ba..40afc82 100644 --- a/src/bundle_b/pages/tea-specialist/detail.vue +++ b/src/bundle_b/pages/tea-specialist/detail.vue @@ -116,7 +116,7 @@ - 商家认证 + {{ info.company_abv }} @@ -331,6 +331,9 @@ const info = ref({ mileage_price: 0, // 车马费 server_type: 0, // 服务方式 1到店 2上门 3两者都有 label: [], // 专属圈子标签 + company_abv: '', // 公司简称 + company_url: '', // 图片链接 + company_status: 0, // 是否有公司信息 }) const latitude = ref(0) // 纬度 const longitude = ref(0) // 经度 @@ -510,6 +513,17 @@ const Detail = { */ handlePreviewImage: (e: { index: number, item: any }) => { previewImage(info.value.image_arr[e.index], info.value.image_arr) + }, + + /** + * 查看商家信息 + */ + handlePreviewInfo: () => { + if (info.value.company_status) { + previewImage(info.value.company_url, [info.value.company_url]) + } else { + toast.info('暂无商家信息') + } } } diff --git a/src/bundle_b/pages/tea-specialist/list.vue b/src/bundle_b/pages/tea-specialist/list.vue index 3a83a29..9b6f3e0 100644 --- a/src/bundle_b/pages/tea-specialist/list.vue +++ b/src/bundle_b/pages/tea-specialist/list.vue @@ -59,28 +59,27 @@ :up="upOption" fixed> - - 可约 - 工作中 - 不可约 - - + + + 可约 + 工作中 + 不可约 + - - + + {{ item.name }} - 5.0 - + {{ item.star }} - + - - + {{ label.label_name }} - + @@ -155,8 +155,8 @@ const OSS = inject('OSS') const navbarHeight = inject('navbarHeight') const toast = useToast() -// 茶艺师等级 -const selectedLevel = ref>([]) // 选择茶艺师的点击等级 +// 茶艺师等级(单选) +const selectedLevel = ref>([]) // 当前选中的茶艺师等级 // mescroll const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom) // 调用mescroll的hook @@ -195,6 +195,16 @@ onShareAppMessage(() => { }) const List = { + handleGetLabelStyle: (index: number) => { + const firstThreeStyles = [ + { backgroundColor: '#FAF1F1', color: '#CE295A' }, + { backgroundColor: '#F1F3FA', color: '#2934CE' }, + { backgroundColor: '#F1FAF9', color: '#29C9CE' }, + ] + + return firstThreeStyles[index] || { backgroundColor: '#F3F3F3', color: '#818CA9' } + }, + /** * 筛选表 */ @@ -205,7 +215,8 @@ const List = { size: mescroll.size, latitude: uni.getStorageSync('latitude') || import.meta.env.VITE_DEFAULT_LATITUDE, longitude: uni.getStorageSync('longitude') || import.meta.env.VITE_DEFAULT_LONGITUDE, - search: keywords.value + search: keywords.value, + server_type: 0 } getTeaSpecialist(filter).then((res: ITeaSpecialistResult) => { @@ -234,11 +245,11 @@ const List = { handleToggleTeaSpecialistLevel: (value: any) => { const index = selectedLevel.value.indexOf(value); if (index > -1) { - // 如果已经选择了该等级,则取消选择 - selectedLevel.value.splice(index, 1); + // 已选中时再次点击,取消选择 + selectedLevel.value = []; } else { - // 如果未选择该等级,则添加选择 - selectedLevel.value.push(value); + // 单选:只保留当前点击项 + selectedLevel.value = [value]; } List.handleSearch() diff --git a/src/pages.json b/src/pages.json index 68a87cc..95c1f53 100644 --- a/src/pages.json +++ b/src/pages.json @@ -255,7 +255,6 @@ { "path": "package/detail", "type": "page", - "needLogin": true, "layout": "tabbar", "style": { "navigationStyle": "custom" diff --git a/src/pages/cashier/cashier.vue b/src/pages/cashier/cashier.vue index f298c5a..de8af30 100644 --- a/src/pages/cashier/cashier.vue +++ b/src/pages/cashier/cashier.vue @@ -1,396 +1,408 @@ - -{ +{ "needLogin": true, "layout": "default", "style": { "navigationStyle": "custom" } -} - +} diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 87f30a3..d21cce7 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -86,10 +86,8 @@ {{ item.title }} - - - {{ item.discount_price }} - /{{ item.hour }}小时 + + ¥{{ item.discount_price }}/{{ item.hour }}小时 diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue index 5622723..3abb00c 100644 --- a/src/pages/login/login.vue +++ b/src/pages/login/login.vue @@ -98,22 +98,20 @@ return } - uni.showLoading({ - title: '登录中...', - mask: true - }) try { - const res = await userStore.wxLogin(Number(storeId.value)) - console.log("🚀 ~ token:", uni.getStorageSync('token')) - uni.hideLoading() + uni.showLoading({ title: '登录中...', mask: true }); + const res = await userStore.wxLogin(Number(storeId.value) || 0); if (!res.mobile) { - showBindMobilePopup.value = true - return false + showBindMobilePopup.value = true; + toast.info('请先绑定手机号'); + return; } - - Login.handleToLogin() - } catch(error) { - uni.hideLoading() + Login.handleToLogin(); + } catch (error) { + console.error(error); + toast.info('登录失败,请重试'); + } finally { + uni.hideLoading(); } },