|
@@ -2,40 +2,24 @@
|
|
|
import { StaticUrl } from '@/config'
|
|
import { StaticUrl } from '@/config'
|
|
|
import router from '@/router'
|
|
import router from '@/router'
|
|
|
|
|
|
|
|
-const props = defineProps<{
|
|
|
|
|
- orderList: Api.xsbOrderList[]
|
|
|
|
|
- subPackOrder?: typeof import('@/subPack-xsb/utils/order-data')
|
|
|
|
|
- subPackConfirm?: typeof import('@/subPack-xsb/utils/confirm-order')
|
|
|
|
|
|
|
+defineProps<{
|
|
|
|
|
+ order: Api.xsbOrderList
|
|
|
}>()
|
|
}>()
|
|
|
|
|
|
|
|
const _emit = defineEmits<{
|
|
const _emit = defineEmits<{
|
|
|
- 'after-sale': [item: Api.xsbOrderList]
|
|
|
|
|
- 'refresh': []
|
|
|
|
|
|
|
+ refresh: []
|
|
|
}>()
|
|
}>()
|
|
|
|
|
|
|
|
-function resolveModule<T = any>(maybeRef: any): T | undefined {
|
|
|
|
|
- if (!maybeRef)
|
|
|
|
|
- return undefined
|
|
|
|
|
- if (maybeRef.value !== undefined)
|
|
|
|
|
- return maybeRef.value as T
|
|
|
|
|
- return maybeRef as T
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
async function handleCancel(order: Api.xsbOrderList) {
|
|
async function handleCancel(order: Api.xsbOrderList) {
|
|
|
- const sp = resolveModule(props.subPackOrder)
|
|
|
|
|
- if (!sp)
|
|
|
|
|
- return
|
|
|
|
|
- await sp.handleCommonCancelOrder?.(order)
|
|
|
|
|
|
|
+ await useUserStore().handleCommonCancelOrder?.(order)
|
|
|
_emit('refresh')
|
|
_emit('refresh')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async function handlePay(orderNumber: string) {
|
|
async function handlePay(orderNumber: string) {
|
|
|
- const spc = resolveModule(props.subPackConfirm)
|
|
|
|
|
- if (!spc)
|
|
|
|
|
- return
|
|
|
|
|
- const res = await spc.handleCommonPayMent?.(orderNumber)
|
|
|
|
|
|
|
+ const res = await useUserStore().handleCommonPayMent?.(orderNumber)
|
|
|
if (res?.payType !== 1 && res) {
|
|
if (res?.payType !== 1 && res) {
|
|
|
- await spc.getWxCommonPayment?.(res)
|
|
|
|
|
|
|
+ await useUserStore().getWxCommonPayment(res, 1)
|
|
|
|
|
+ _emit('refresh')
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
_emit('refresh')
|
|
_emit('refresh')
|
|
@@ -43,42 +27,43 @@ async function handlePay(orderNumber: string) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async function handleSubmit(order: Api.xsbOrderList) {
|
|
async function handleSubmit(order: Api.xsbOrderList) {
|
|
|
- const sp = resolveModule(props.subPackOrder)
|
|
|
|
|
- if (!sp)
|
|
|
|
|
- return
|
|
|
|
|
- await sp.handleCommonOrderReceive?.(order)
|
|
|
|
|
|
|
+ await useUserStore().handleCommonOrderReceive(order)
|
|
|
_emit('refresh')
|
|
_emit('refresh')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async function handleDel(order: Api.xsbOrderList) {
|
|
async function handleDel(order: Api.xsbOrderList) {
|
|
|
- const sp = resolveModule(props.subPackOrder)
|
|
|
|
|
- if (!sp)
|
|
|
|
|
- return
|
|
|
|
|
- await sp.handleCommonDeleteOrder?.(order)
|
|
|
|
|
|
|
+ await useUserStore().handleCommonDeleteOrder(order)
|
|
|
_emit('refresh')
|
|
_emit('refresh')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function handleClick(no: string) {
|
|
function handleClick(no: string) {
|
|
|
router.push({ name: 'xsb-orderDetaile', params: { id: no } })
|
|
router.push({ name: 'xsb-orderDetaile', params: { id: no } })
|
|
|
}
|
|
}
|
|
|
|
|
+async function handleAfterSale(item: Api.xsbOrderList) {
|
|
|
|
|
+ if (!item.orderItemList) {
|
|
|
|
|
+ useGlobalToast().show('商品异常!')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ await useSysStore().getRefunOrder(item.orderNumber as string)
|
|
|
|
|
+}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <view v-for="item in orderList" :key="item.orderNumber" class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
|
|
|
|
|
+ <view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
|
<view class="flex items-center justify-between">
|
|
<view class="flex items-center justify-between">
|
|
|
<view class="flex items-center">
|
|
<view class="flex items-center">
|
|
|
<image :src="`${StaticUrl}/order-icon.png`" class="h-36rpx w-36rpx" />
|
|
<image :src="`${StaticUrl}/order-icon.png`" class="h-36rpx w-36rpx" />
|
|
|
<view class="ml-20rpx text-32rpx font-semibold">
|
|
<view class="ml-20rpx text-32rpx font-semibold">
|
|
|
- {{ item.shopName }}
|
|
|
|
|
|
|
+ {{ order.shopName }}
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="text-24rpx text-[#FF4D3A]">
|
|
<view class="text-24rpx text-[#FF4D3A]">
|
|
|
- <template v-if="item.hbOrderStatus !== props.subPackOrder?.OrderStatus.PaddingPay">
|
|
|
|
|
- {{ props.subPackOrder?.handleCommonOrderStatusText(item) }}
|
|
|
|
|
|
|
+ <template v-if="order.hbOrderStatus !== OrderStatus.PaddingPay">
|
|
|
|
|
+ {{ useUserStore().handleXSBCommonOrderStatusText(order) }}
|
|
|
</template>
|
|
</template>
|
|
|
<template v-else>
|
|
<template v-else>
|
|
|
<view class="flex items-center">
|
|
<view class="flex items-center">
|
|
|
- 待支付( 还剩 <wd-count-down :time="props.subPackOrder?.handleCommonOrderStatusText(item)" @finish="$emit('refresh')" /> )
|
|
|
|
|
|
|
+ 待支付( 还剩 <wd-count-down :time="useUserStore().handleXSBCommonOrderStatusText(order)" @finish="$emit('refresh')" /> )
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
</view>
|
|
</view>
|
|
@@ -101,12 +86,12 @@ function handleClick(no: string) {
|
|
|
</view> -->
|
|
</view> -->
|
|
|
<view
|
|
<view
|
|
|
class="box-border h-176rpx w-full flex items-center justify-between rounded-16rpx bg-[#F9F9F9]"
|
|
class="box-border h-176rpx w-full flex items-center justify-between rounded-16rpx bg-[#F9F9F9]"
|
|
|
- @click="handleClick(item.orderNumber as string)"
|
|
|
|
|
|
|
+ @click="handleClick(order.orderNumber as string)"
|
|
|
>
|
|
>
|
|
|
<view class="box-border h-full w-480rpx py-28rpx pl-20rpx">
|
|
<view class="box-border h-full w-480rpx py-28rpx pl-20rpx">
|
|
|
<scroll-view scroll-x class="h-full w-full whitespace-nowrap">
|
|
<scroll-view scroll-x class="h-full w-full whitespace-nowrap">
|
|
|
<view class="flex items-center">
|
|
<view class="flex items-center">
|
|
|
- <view v-for="goods in item.orderItemList" :key="goods.skuId" class="mr-50rpx">
|
|
|
|
|
|
|
+ <view v-for="goods in order.orderItemList" :key="goods.skuId" class="mr-50rpx">
|
|
|
<image :src="goods.pic" class="h-120rpx w-120rpx" />
|
|
<image :src="goods.pic" class="h-120rpx w-120rpx" />
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
@@ -114,44 +99,44 @@ function handleClick(no: string) {
|
|
|
</view>
|
|
</view>
|
|
|
<view class="box-shadow box-border h-full flex-1 flex-shrink-0 px-14rpx py-40rpx">
|
|
<view class="box-shadow box-border h-full flex-1 flex-shrink-0 px-14rpx py-40rpx">
|
|
|
<view class="text-center text-32rpx text-[#FF4D3A] font-semibold">
|
|
<view class="text-center text-32rpx text-[#FF4D3A] font-semibold">
|
|
|
- ¥{{ item.actualTotal }}
|
|
|
|
|
|
|
+ ¥{{ order.actualTotal }}
|
|
|
</view>
|
|
</view>
|
|
|
<view class="text-center text-28rpx text-[#AAAAAA]">
|
|
<view class="text-center text-28rpx text-[#AAAAAA]">
|
|
|
- 共{{ item.goodsTotal }}件
|
|
|
|
|
|
|
+ 共{{ order.goodsTotal }}件
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="my-24rpx flex items-center justify-end">
|
|
<view class="my-24rpx flex items-center justify-end">
|
|
|
- <template v-if="item.hbOrderStatus === resolveModule(props.subPackOrder)?.OrderStatus.PaddingPay">
|
|
|
|
|
|
|
+ <template v-if="order.hbOrderStatus === OrderStatus.PaddingPay">
|
|
|
<view class="mr-20rpx">
|
|
<view class="mr-20rpx">
|
|
|
- <wd-button size="small" plain type="info" @click.stop="handleCancel(item)">
|
|
|
|
|
|
|
+ <wd-button size="small" plain type="info" @click.stop="handleCancel(order)">
|
|
|
取消订单
|
|
取消订单
|
|
|
</wd-button>
|
|
</wd-button>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="mr-20rpx">
|
|
<view class="mr-20rpx">
|
|
|
- <wd-button size="small" plain type="error" @click.stop="handlePay(item.orderNumber as string)">
|
|
|
|
|
|
|
+ <wd-button size="small" plain type="error" @click.stop="handlePay(order.orderNumber as string)">
|
|
|
付款
|
|
付款
|
|
|
</wd-button>
|
|
</wd-button>
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
- <template v-if="[resolveModule(props.subPackOrder)?.OrderStatus.OrderCancel, resolveModule(props.subPackOrder)?.OrderStatus.OrderCompleted].includes(item.hbOrderStatus) ">
|
|
|
|
|
|
|
+ <template v-if="[OrderStatus.OrderCancel, OrderStatus.OrderCompleted].includes(order.hbOrderStatus) ">
|
|
|
<view class="mr-20rpx">
|
|
<view class="mr-20rpx">
|
|
|
- <wd-button size="small" plain type="info" @click.stop="handleDel(item)">
|
|
|
|
|
|
|
+ <wd-button size="small" plain type="info" @click.stop="handleDel(order)">
|
|
|
删除订单
|
|
删除订单
|
|
|
</wd-button>
|
|
</wd-button>
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
- <template v-if="item.hbOrderStatus === resolveModule(props.subPackOrder)?.OrderStatus.OrderArrived">
|
|
|
|
|
|
|
+ <template v-if="order.hbOrderStatus === OrderStatus.OrderArrived">
|
|
|
<view class="mr-20rpx">
|
|
<view class="mr-20rpx">
|
|
|
- <wd-button size="small" plain type="info" @click.stop="handleSubmit(item)">
|
|
|
|
|
|
|
+ <wd-button size="small" plain type="info" @click.stop="handleSubmit(order)">
|
|
|
确认收货
|
|
确认收货
|
|
|
</wd-button>
|
|
</wd-button>
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
- <template v-if="item.refundStatus != 2 && [resolveModule(props.subPackOrder)?.OrderStatus.OrderCompleted, resolveModule(props.subPackOrder)?.OrderStatus.OrderWaitDelivery, resolveModule(props.subPackOrder)?.OrderStatus.OrderAccepted].includes(item.hbOrderStatus) ">
|
|
|
|
|
|
|
+ <template v-if="order.refundStatus != 2 && [OrderStatus.OrderCompleted, OrderStatus.OrderWaitDelivery, OrderStatus.OrderAccepted].includes(order.hbOrderStatus) ">
|
|
|
<view class="mr-20rpx">
|
|
<view class="mr-20rpx">
|
|
|
- <wd-button size="small" plain type="info" @click.stop="() => _emit('after-sale', item)">
|
|
|
|
|
|
|
+ <wd-button size="small" plain type="info" @click.stop="() => handleAfterSale(order)">
|
|
|
申请售后
|
|
申请售后
|
|
|
</wd-button>
|
|
</wd-button>
|
|
|
</view>
|
|
</view>
|