完善接口

This commit is contained in:
wangxiaowei
2025-11-03 18:36:50 +08:00
parent 3465804793
commit ac8212c8f0
19 changed files with 845 additions and 352 deletions

View File

@ -23,7 +23,7 @@
: selectedTime.includes(item2.start_time)
? 'bg-[#F1F8F0] text-[#4C9F44]' // 选中高亮
: 'bg-[#F7F7F7] text-[#303133]', // 可选高亮
]" @click="item2.disabled == 1 && bookingTime.handleSelectTime(item2.start_time)">
]" @click="item2.disabled == 1 && bookingTime.handleSelectTime(item2.start_time, item2.timestamp)">
{{ item2.start_time }}
</view>
</view>
@ -79,48 +79,31 @@
// 初始化时间
onMounted(() => {
bookingTime.handleInitTime()
// bookingTime.handleInitTime()
})
/** 日期相关 **/
const timeList = [
{ time: '09:00', disabled: true },
{ time: '09:30', disabled: false },
{ time: '10:00', disabled: false },
{ time: '10:30', disabled: false },
{ time: '11:00', disabled: false },
{ time: '11:30', disabled: false },
]
const weekMap = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
const days = ref<string[]>([])
const selectedDay = ref<number>(0)
const selectedTime = ref<string[]>([])
const selectedTimeStamp = ref<number[]>([])
const countSelectedTime = ref<number>(0)
const bookingTime = {
// 初始化时间逻辑
handleInitTime: () => {
const today = new Date()
const result: string[] = []
for (let i = 0; i < 7; i++) {
const d = new Date(today)
d.setDate(today.getDate() + i)
const month = d.getMonth() + 1
const date = d.getDate()
const week = weekMap[d.getDay()]
result.push(`${month}/${date}${week}`)
}
days.value = result
console.log("🚀 ~ days.value:", days.value)
},
// 选择的时间高亮显示
handleSelectTime: (time: string) => {
handleSelectTime: (time: string, timestamp: number) => {
const idx = selectedTime.value.indexOf(time)
if (idx > -1) {
selectedTime.value.splice(idx, 1) // 取消选中
selectedTimeStamp.value.splice(idx, 1)
} else {
selectedTime.value.push(time) // 选中
selectedTimeStamp.value.push(timestamp)
}
// 计算时长
@ -142,7 +125,8 @@
const data = [
selectedDay.value,
selectedTime.value
selectedTime.value,
selectedTimeStamp.value.sort(),
]
emit('selectedTime', data)
showPopup.value = false
@ -151,12 +135,14 @@
// 切换时间tab的时候把之前选中的时间重置
handleChangeTimeTab: () => {
selectedTime.value = []
selectedTimeStamp.value = []
countSelectedTime.value = 0
},
// 重置选择的时间
resetSelectedTime: () => {
selectedTime.value = []
selectedTimeStamp.value = []
},
}

View File

@ -145,54 +145,63 @@
<view v-if="type === OrderSource.TeaSpecialist" class="bg-white rounded-10rpx p-28rpx">
<view class="flex items-center">
<view class="mr-28rpx">
<wd-img width="200rpx" height="200rpx" :src="`${OSS}images/home/home_image5.png`"></wd-img>
<wd-img width="200rpx" height="200rpx" :src="order.image"></wd-img>
</view>
<view class="flex-1" @click="comboCard.handleToOrderDetail">
<view class="flex items-center relative">
<view class="w-400rpx flex items-center">
<view class="font-bold text-[#303133] text-30rpx leading-42rpx mr-14rpx">茶艺师</view>
<view class="w-160rpx h-40rpx relative mr-44rpx">
<view class="absolute left-0 top-0 h-36rpx flex items-start">
<wd-img :src="`${OSS}icon/icon_gold_medal.png`" width="36rpx" height="36rpx"></wd-img>
</view>
<view class="bg-[#F0F6EF] text-[#006C2D] font-400 text-22rpx leading-32rpx rounded-4rpx text-center w-150rpx ml-18rpx pb-4rpx">金牌茶艺师</view>
<view class="font-bold text-[#303133] text-30rpx leading-42rpx mr-14rpx">{{ order.name }}</view>
<view class="">
<tea-specialist-level :level="TeaSpecialistLevelValue[order.teamasterLevel[0].level_name]"></tea-specialist-level>
</view>
</view>
<view class="font-400 text-28rpx leading-20rpx text-[#4C9F44] flex items-center absolute top-6rpx right-0">
<text v-if="orderStatus === OrderStatus.Consuming">消费中</text>
<text v-if="orderStatus === OrderStatus.Reserved">已预约</text>
<text v-if="orderStatus === OrderStatus.Serving">服务中</text>
<text v-if="orderStatus === OrderStatus.Finished" class="text-[#606266]">完成</text>
<text v-if="orderStatus === OrderStatus.Pending" class="text-[#FF5951]" >待付款</text>
<text v-if="orderStatus === OrderStatus.Cancelled" class="text-[#C9C9C9]" >订单取消</text>
<text v-if="order.order_status === TeaSpecialistOrderStatus.Pending" class="text-[#FF5951]" >待付款</text>
<text v-if="order.order_status === TeaSpecialistOrderStatus.Pay">已预约</text>
<text v-if="order.order_status === TeaSpecialistOrderStatus.Serving">服务中</text>
<text v-if="order.order_status === TeaSpecialistOrderStatus.Confirm" class="text-[#F29747]">待确认</text>
<text v-if="order.order_status === TeaSpecialistOrderStatus.Finished" class="text-[#606266]">完成</text>
<text v-if="order.order_status === TeaSpecialistOrderStatus.Cancelled" class="text-[#C9C9C9]" >订单取消</text>
</view>
</view>
<view class="flex items-center">
<template v-for="(label, labelIndex) in order.teamasterlabel" :key="labelIndex">
<!-- 上门服务 -->
<view class="mr-12rpx" v-if="label.id == 1">
<wd-tag color="#40AE36" bg-color="#40AE36" plain custom-class="!rounded-4rpx">{{ label.label_name }}</wd-tag>
</view>
<!-- 到点服务 -->
<view class="mr-12rpx" v-if="label.id == 2">
<wd-tag color="#F55726" bg-color="#F55726" plain custom-class="!rounded-4rpx">{{ label.label_name }}</wd-tag>
</view>
</template>
<view class="mr-12rpx">
<wd-tag color="#40AE36" bg-color="#40AE36" plain custom-class="!rounded-4rpx">上门服务</wd-tag>
<wd-tag color="#818CA9" bg-color="#F3F3F3">{{ order.both }}</wd-tag>
</view>
<view>
<wd-tag color="#F55726" bg-color="#F55726" plain>到点服务</wd-tag>
<view class="flex items-center mt-8rpx">
<wd-img :src="order.sex == 1 ? `${OSS}icon/icon_man.png` : `${OSS}icon/icon_woman.png`" width="28rpx" height="28rpx"></wd-img>
</view>
</view>
<view class="font-400 text-[#606266] text-26rpx leading-36rpx mt-42rpx">
预约时间03/18 08:00-12:00
预约时间{{ order.start_time }} - {{ order.end_time }}
</view>
</view>
</view>
<!-- 操作按钮 -->
<view>
<view v-if="orderStatus === OrderStatus.Finished || orderStatus === OrderStatus.Cancelled"
<view v-if="order.order_status === TeaSpecialistOrderStatus.Finished || order.order_status === TeaSpecialistOrderStatus.Cancelled"
class="flex items-center text-28rpx mt-28rpx justify-end"
@click="comboCard.handleDeleteOrder(OrderSource.TeaSpecialist)">
<view class="w-178rpx h-70rpx rounded-8rpx border-[2rpx] border-[#9CA3AF] text-[#303133] flex items-center justify-center">
删除订单
</view>
</view>
<view v-if="orderStatus === OrderStatus.Pending"
<view v-if="order.order_status === TeaSpecialistOrderStatus.Pending"
class="flex items-center text-28rpx mt-28rpx justify-end">
<view class="w-178rpx h-70rpx rounded-8rpx border-[2rpx] border-[#9CA3AF] text-[#303133] mr-28rpx flex items-center justify-center"
@click="comboCard.handleCancelOrder(OrderSource.TeaSpecialist)">
@ -213,6 +222,9 @@
import { OrderSource, OrderStatus } from '@/utils/order'
import { useMessage } from 'wot-design-uni'
import { toast } from '@/utils/toast'
import { TeaSpecialistOrderStatus, TeaSpecialistOrderStatusText } from '@/utils/order'
import {TeaSpecialistLevelValue} from '@/utils/teaSpecialist'
import { router } from '@/utils/tools'
/**
* ComboCard 套餐卡片组件
@ -236,6 +248,11 @@
orderStatus: {
type: String,
default: OrderStatus.ToUse
},
order: {
type: Object,
default: {}
}
})
@ -336,30 +353,8 @@
handleToOrderDetail: () => {
// TODO 这里要对不同类型的订单进行区分跳转一个是直营的一个市加盟的
switch (props.type) {
case OrderSource.Direct:
uni.navigateTo({
url: `/bundle/order/platform/direct-order-detail?orderStatus=${props.orderStatus}`
})
break;
case OrderSource.Franchise:
uni.navigateTo({
url: `/bundle/order/platform/franchise-order-detail?orderStatus=${props.orderStatus}`
})
break;
case OrderSource.DouYin:
uni.navigateTo({
url: `/bundle/order/douyin/douyin-order-detail?orderStatus=${props.orderStatus}`
})
break;
case OrderSource.TeaRoom:
uni.navigateTo({
url: `/bundle/order/tea-room/order-detail?orderStatus=${props.orderStatus}`
})
break;
case OrderSource.TeaSpecialist:
uni.navigateTo({
url: `/bundle/order/tea-specialist/order-detail?orderStatus=${props.orderStatus}`
})
router.navigateTo(`/bundle/order/tea-specialist/order-detail?orderId=${props.order.id}`)
break;
default:
break;