diff --git a/src/api/order.ts b/src/api/order.ts new file mode 100644 index 0000000..e0931a0 --- /dev/null +++ b/src/api/order.ts @@ -0,0 +1,68 @@ +import { http } from '@/http/alova' + +/** + * 订单搜索历史 + */ +export function getOrderSearchHistory() { + return http.Post('/storeapi/order/orderStoreSearchHistory') +} + +/** + * 删除订单搜索历史 + */ +export function deleteOrderSearchHistory() { + return http.Post('/storeapi/order/delOrderStoreSearchHistory') +} + +/** + * 订单列表页 + */ +export interface IGetStoreOrderListParams { + page: number + size: number + store_id: number + order_status?: number|string + search?: string +} + +export function getStoreOrderList(data: IGetStoreOrderListParams) { + return http.Post('/storeapi/order/orderStoreList', data) +} + +/** + * 续单 + * @param id 订单ID + * @param renew_hour 续单小时数 + */ +export interface IRenewOrderParams { + id: number + renew_hour: number +} + +export function renewOrder(data: IRenewOrderParams) { + return http.Post('/storeapi/store/renewDtime', data) +} + +/** + * 释放包间订单 + * @param id 订单ID + */ +export function releaseTeaRoomOrder(id: number) { + return http.Post('/storeapi/order/releaseOrderStore', { id }) +} + +/** + * 取消包间订单 + * @param id 订单ID + */ +export function cancelTeaRoomOrder(id: number) { + return http.Post('/storeapi/order/cancelOrderStore', {id}) +} + +/** + * 删除包间订单 + * @param id 订单ID + */ +export function deleteTeaRoomOrder(id: number) { + return http.Post('/storeapi/order/delOrderStore', {id}) +} \ No newline at end of file diff --git a/src/api/store.ts b/src/api/store.ts index a30c9d3..afce69c 100644 --- a/src/api/store.ts +++ b/src/api/store.ts @@ -126,4 +126,33 @@ export function openLock(data: {type: number, lock_no: string, room_id: number, */ export function openPower(data: {device_id: string, state: number, room_id: number}) { return http.Post('/storeapi/device/deviceOff_On', data) -} \ No newline at end of file +} + +/** + * 房间列表-(没有分页) + */ +export function getAllRoomList(store_id: number) { + return http.Post('/storeapi/store/roomSelectList', { store_id }) +} + +/** + * 包间预定 + */ +export interface IReserveRoomParams { + id: number + day_time: string + start_time: string + end_time: string + hours: number +} + +export function reserveRoom(data: IReserveRoomParams) { + return http.Post('/storeapi/store/submitStoreOrder', data) +} + +/** + * 获取包间详情 + */ +export function getStoreOrderDetails(id: number) { + return http.Post('/storeapi/store/roomDetails', { id }) +} diff --git a/src/bundle/profile/profile.vue b/src/bundle/profile/profile.vue index bc0eabc..7c4d03b 100644 --- a/src/bundle/profile/profile.vue +++ b/src/bundle/profile/profile.vue @@ -140,7 +140,7 @@ diff --git a/src/bundle/wallet/wallet.vue b/src/bundle/wallet/wallet.vue index 13d3f0f..8259920 100644 --- a/src/bundle/wallet/wallet.vue +++ b/src/bundle/wallet/wallet.vue @@ -118,7 +118,6 @@ import type { IUserResult } from '@/api/types/user' import { getUserInfo, getUserTransactionDetails } from '@/api/user' import { router } from '@/utils/tools' -import { u } from '@tanstack/vue-query/build/legacy/queryClient-CAHOJcvF' const OSS = inject('OSS') const userStore = useUserStore() diff --git a/src/components/order/ComboCard.vue b/src/components/order/ComboCard.vue index aff6e08..ea00e8e 100644 --- a/src/components/order/ComboCard.vue +++ b/src/components/order/ComboCard.vue @@ -137,11 +137,12 @@ {{ order.store_name }} + 待使用 使用中 完成 - 订单取消 + 取消订单 @@ -164,16 +165,16 @@ @@ -185,18 +186,19 @@ diff --git a/src/hooks/useOrder.ts b/src/hooks/useOrder.ts index f180a9a..a745872 100644 --- a/src/hooks/useOrder.ts +++ b/src/hooks/useOrder.ts @@ -3,20 +3,20 @@ import { toast } from '@/utils/toast' import { cancelTeaRoomOrder, deleteTeaRoomOrder, - confirmTeaRoomOrder -} from '@/api/tea-room' -import { OrderType } from '@/utils/order' -import { ReserveServiceCategory } from '@/utils/order' + releaseTeaRoomOrder +} from '@/api/order' + /** - * 包间-取消订单 - * @param orderId 订单ID + * 释放时间 + * @param id 订单ID */ -export async function handleTRCancelOrderHooks(orderId: number) { +export async function handleReleaseTeaRoomOrderHookds (id: number) { try { - await cancelTeaRoomOrder({ id: orderId }) + await releaseTeaRoomOrder(id) uni.$emit('refreshOrderList') uni.$emit('refreshOrderDetail') + toast.info('释放成功') } catch (error) { router.navigateBack() throw error @@ -24,40 +24,28 @@ export async function handleTRCancelOrderHooks(orderId: number) { } /** - * 重新支付 + * 取消订单 * @param orderId 订单ID - * @param teaRoomName 茶室名称 - * @param storeId 商家ID - * @returns */ -export function handleTRToPayHooks(orderId: number, teaRoomName: string, storeId: number) { +export async function handleCancelOrderHooks(id: number) { try { - uni.$on('payment', params => { - setTimeout(() => { - uni.$off("payment") - uni.$emit('refreshOrderList') - uni.$emit('refreshOrderDetail') - uni.redirectTo({ - url: '/bundle/order/tea-room/order-list?orderStatus=all' - }) - }, 1000) - }) - - setTimeout(() => { - router.navigateTo(`/pages/cashier/cashier?from=${OrderType.TeaRoomOrder}&orderId=${orderId}&name=${teaRoomName}&storeId=${storeId}&isGroupBuying=0`) - }, 800) + await cancelTeaRoomOrder(id) + uni.$emit('refreshOrderList') + uni.$emit('refreshOrderDetail') + toast.info('取消成功') } catch (error) { - toast.info('订单提交失败,请稍后重试') - return + router.navigateBack() + throw error } } + /** - * 包间-删除订单 + * 删除订单 */ -export async function handleTRDeleteOrderHooks(orderId: number) { +export async function handleDeleteOrderHooks(id: number) { try { - await deleteTeaRoomOrder({ id: orderId }) + await deleteTeaRoomOrder(id) uni.$emit('refreshOrderList') uni.$emit('refreshOrderDetail') toast.info('删除订单成功') @@ -65,84 +53,4 @@ export async function handleTRDeleteOrderHooks(orderId: number) { router.navigateBack() throw error } -} - -/** - * 确认(完成)订单 - */ -export async function handleTRConfirmOrderHooks(orderId: number) { - try { - await confirmTeaRoomOrder({ id: orderId }) - uni.$emit('refreshOrderList') - uni.$emit('refreshOrderDetail') - } catch (error) { - router.navigateBack() - throw error - } -} - -/** - * 订单退款 - * @param orderId 订单ID - * @param orderType 订单类型 - */ -// export async function handleRefundOrderHooks(orderId: number, orderType: string) { -// try { -// const response = await refundTeaSpecialistOrder({ id: orderId, order_type: orderType }) -// uni.$emit('refreshOrderList') -// uni.$emit('refreshOrderDetail') -// } catch (error) { -// router.navigateBack() -// throw error -// } -// } - - -/** - * 跳转到茶室店铺 - * @param storeId 门店ID - * @param operationType 门店类型:1-直营 2-加盟 - */ -export function handleToTRStoreHooks(storeId: number, operationType: number) { - router.navigateTo(`/bundle/tea-room/room?id=${storeId}&type=${operationType}`) -} - -/*************************************************************套餐***********************************************************************/ - -/** - * 平台团购套餐-订单退款 - */ -export async function handleTGOrderRefundHooks(orderId: number) { - // try { - // await confirmTeaRoomOrder({ id: orderId }) - // uni.$emit('refreshPackageOrderList') - // uni.$emit('refreshPackageOrderDetail') - // } catch (error) { - // router.navigateBack() - // throw error - // } -} - - -/** - * 跳转到套餐详情 - * @param storeId 门店ID - * @param id 套餐ID - */ -export function handleToTGComboHooks(storeId: number, id: number) { - router.navigateTo(`/bundle/tea-room/detail?storeId=${storeId}&id=${id}&type=${ReserveServiceCategory.GroupBuying}`) -} - -/** - * 释放时间 - */ -export async function handleReleaseTimeHooks(orderId: number) { - try { - // await releaseTeaRoomOrderTime({ id: orderId }) - uni.$emit('refreshOrderList') - uni.$emit('refreshOrderDetail') - } catch (error) { - router.navigateBack() - throw error - } } \ No newline at end of file diff --git a/src/pages/order/order.vue b/src/pages/order/order.vue index d05c185..6fc6f34 100644 --- a/src/pages/order/order.vue +++ b/src/pages/order/order.vue @@ -17,7 +17,7 @@ --> - @@ -36,10 +36,13 @@ - + + + + @@ -50,6 +53,10 @@ import useMescroll from "@/uni_modules/mescroll-uni/hooks/useMescroll.js" import { OrderSource, AdminOrderStatusText, TeaSpecialistOrderStatusText, TeaSpecialistOrderStatusValue } from '@/utils/order' import { router } from '@/utils/tools' + import { getStoreOrderList} from '@/api/order' + import { useStoreStore } from '@/store' + + const useStore = useStoreStore() /* mescroll */ const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom) // 调用mescroll的hook @@ -87,21 +94,22 @@ const Order = { // 上拉加载的回调: 其中num:当前页 从1开始, size:每页数据条数,默认10 upCallback: (mescroll) => { - // const filter = { - // page: mescroll.num, - // size: mescroll.size, - // order_status: orderStatus.value, - // search: keywords.value - // } + const filter = { + page: mescroll.num, + size: mescroll.size, + store_id: useStore.defaultStore.id, + order_status: '', + search: keywords.value, + } - // getTeaSpecialistOrderList(filter).then((res) => { - // const curPageData = res.list || [] // 当前页数据 - // if(mescroll.num == 1) list.value = [] // 第一页需手动制空列表 - // list.value = list.value.concat(curPageData) //追加新数据 - // mescroll.endSuccess(curPageData.length, Boolean(res.more)) - // }).catch(() => { + getStoreOrderList(filter).then((res) => { + const curPageData = res.list || [] // 当前页数据 + if(mescroll.num == 1) list.value = [] // 第一页需手动制空列表 + list.value = list.value.concat(curPageData) //追加新数据 + mescroll.endSuccess(curPageData.length, Boolean(res.more)) + }).catch(() => { mescroll.endErr() // 请求失败, 结束加载 - // }) + }) }, /** @@ -122,8 +130,6 @@ * 重置搜索 */ handleResetSearch: () => { - console.log("🚀 ~ location:", 456) - list.value = [] getMescroll().resetUpScroll() }, diff --git a/src/pages/search/search.vue b/src/pages/search/search.vue index 7599315..6a8e14c 100644 --- a/src/pages/search/search.vue +++ b/src/pages/search/search.vue @@ -1,6 +1,5 @@ { - "needLogin": true, "layout": "tabbar", "style": { // 'custom' 表示开启自定义导航栏,默认 'default' @@ -24,7 +23,7 @@ hide-cancel placeholder-left light - placeholder="搜索茶址名称" + placeholder="搜索订单信息" placeholderStyle="text-align:left;line-heigt: 44rpx;color: #C9C9C9; font-size: 32rpx;font-weight: normal;" @search="Search.handleSearch"> @@ -42,7 +41,7 @@ - + {{ item.content }} @@ -55,7 +54,7 @@ diff --git a/src/pages/store/room-detail.vue b/src/pages/store/room-detail.vue index 1ed3256..dabffc3 100644 --- a/src/pages/store/room-detail.vue +++ b/src/pages/store/room-detail.vue @@ -110,12 +110,12 @@ --> - + - 团购图片 + 包间图片 @@ -484,7 +484,6 @@ index: tagIndex } }) - console.log("🚀 ~ form.tags:", tags.value) // 设置已选择的标签 selectedTags.value = [] diff --git a/src/utils/order.ts b/src/utils/order.ts index 8ace276..2011cb1 100644 --- a/src/utils/order.ts +++ b/src/utils/order.ts @@ -166,6 +166,20 @@ export const OrderStatusTitle: Record> [OrderStatus.Refunded]: '售后完成', [OrderStatus.AfterSaleApply]: '申请售后', [OrderStatus.AfterSaleProcessing]: '申请售后中' + }, + [OrderSource.Admin]: { + [OrderStatus.Consuming]: '消费中', + [OrderStatus.Reserved]: '已预约', + [OrderStatus.Serving]: '服务中', + [OrderStatus.Pending]: '待付款', + [OrderStatus.Confirm]: '订单待确认', + [OrderStatus.Finished]: '已完结', + [OrderStatus.Cancelled]: '订单取消', + [OrderStatus.ToUse]: '待使用', + [OrderStatus.Used]: '交易完成', + [OrderStatus.Refunded]: '售后完成', + [OrderStatus.AfterSaleApply]: '申请售后', + [OrderStatus.AfterSaleProcessing]: '申请售后中' }, } @@ -323,18 +337,20 @@ export const TeaRoomPackageOrderStatusTextValue: Record