|
@@ -10,9 +10,9 @@ definePage({
|
|
|
navigationStyle: 'custom',
|
|
navigationStyle: 'custom',
|
|
|
},
|
|
},
|
|
|
})
|
|
})
|
|
|
-const collapse = ref(true)
|
|
|
|
|
const orderInfo = ref<Api.xsbOrderList>()
|
|
const orderInfo = ref<Api.xsbOrderList>()
|
|
|
const orderNum = ref()
|
|
const orderNum = ref()
|
|
|
|
|
+const { refreshOrderList } = storeToRefs(useSysStore())
|
|
|
onLoad((options: any) => {
|
|
onLoad((options: any) => {
|
|
|
orderNum.value = options.id
|
|
orderNum.value = options.id
|
|
|
getDetail(options.id)
|
|
getDetail(options.id)
|
|
@@ -26,25 +26,25 @@ async function getDetail(id: string) {
|
|
|
orderInfo.value = data
|
|
orderInfo.value = data
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-function handleCollapse() {
|
|
|
|
|
- collapse.value = !collapse.value
|
|
|
|
|
-}
|
|
|
|
|
async function handleCancel() {
|
|
async function handleCancel() {
|
|
|
- await handleCommonCancelOrder(orderInfo.value as Api.xsbOrderList)
|
|
|
|
|
|
|
+ await useUserStore().handleCommonCancelOrder(orderInfo.value as Api.xsbOrderList)
|
|
|
|
|
+ refreshOrderList.value = true
|
|
|
getDetail(String(unref(orderInfo)?.orderNumber))
|
|
getDetail(String(unref(orderInfo)?.orderNumber))
|
|
|
}
|
|
}
|
|
|
async function handlePay() {
|
|
async function handlePay() {
|
|
|
- const res = await handleCommonPayMent(String(unref(orderInfo)?.orderNumber))
|
|
|
|
|
|
|
+ const res = await useUserStore().handleCommonPayMent(String(unref(orderInfo)?.orderNumber))
|
|
|
if (res.payType !== 1) {
|
|
if (res.payType !== 1) {
|
|
|
- await getWxCommonPayment(res)
|
|
|
|
|
|
|
+ await useUserStore().getWxCommonPayment(res)
|
|
|
getDetail(String(unref(orderInfo)?.orderNumber))
|
|
getDetail(String(unref(orderInfo)?.orderNumber))
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
getDetail(String(unref(orderInfo)?.orderNumber))
|
|
getDetail(String(unref(orderInfo)?.orderNumber))
|
|
|
}
|
|
}
|
|
|
|
|
+ refreshOrderList.value = true
|
|
|
}
|
|
}
|
|
|
async function handelDel() {
|
|
async function handelDel() {
|
|
|
- await handleCommonDeleteOrder(unref(orderInfo) as Api.xsbOrderList)
|
|
|
|
|
|
|
+ await useUserStore().handleCommonDeleteOrder(unref(orderInfo) as Api.xsbOrderList)
|
|
|
|
|
+ refreshOrderList.value = true
|
|
|
router.back()
|
|
router.back()
|
|
|
}
|
|
}
|
|
|
async function handleFinish() {
|
|
async function handleFinish() {
|
|
@@ -61,15 +61,21 @@ function handleCopy() {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
async function handleAfterSale() {
|
|
async function handleAfterSale() {
|
|
|
- if (!orderInfo.value?.orderItemList) {
|
|
|
|
|
- useGlobalToast().show('商品异常!')
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- await useSysStore().getRefunOrder(orderInfo.value.orderNumber as string)
|
|
|
|
|
|
|
+ router.push({
|
|
|
|
|
+ name: 'djk-afterSales',
|
|
|
|
|
+ params: { data: JSON.stringify(orderInfo.value) },
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
-async function handleReceive() {
|
|
|
|
|
- await useUserStore().handleCommonOrderReceive(orderInfo.value as Api.xsbOrderList)
|
|
|
|
|
- getDetail(String(unref(orderInfo)?.orderNumber))
|
|
|
|
|
|
|
+function handleNav() {
|
|
|
|
|
+ uni.openLocation({
|
|
|
|
|
+ latitude: Number(orderInfo.value?.djkOrderAttachInfo?.shopLat),
|
|
|
|
|
+ longitude: Number(orderInfo.value?.djkOrderAttachInfo?.shopLng),
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+function handlePhone() {
|
|
|
|
|
+ uni.makePhoneCall({
|
|
|
|
|
+ phoneNumber: String(orderInfo.value?.djkOrderAttachInfo?.tel),
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
@@ -78,7 +84,7 @@ async function handleReceive() {
|
|
|
v-if="orderInfo" class="page-xsb"
|
|
v-if="orderInfo" class="page-xsb"
|
|
|
>
|
|
>
|
|
|
<wd-navbar
|
|
<wd-navbar
|
|
|
- title="订单详情" :bordered="false" placeholder :z-index="99" safe-area-inset-top left-arrow fixed
|
|
|
|
|
|
|
+ title="订单详情" :bordered="false" :z-index="99" safe-area-inset-top left-arrow placeholder fixed
|
|
|
@click-left="router.back()"
|
|
@click-left="router.back()"
|
|
|
/>
|
|
/>
|
|
|
<view class="relative z-90 box-border bg-[#f6f6f6] px-24rpx">
|
|
<view class="relative z-90 box-border bg-[#f6f6f6] px-24rpx">
|
|
@@ -115,29 +121,8 @@ async function handleReceive() {
|
|
|
</view>
|
|
</view>
|
|
|
<view
|
|
<view
|
|
|
v-if="orderInfo.hbOrderStatus !== OrderStatus.PaddingPay" class="flex items-center"
|
|
v-if="orderInfo.hbOrderStatus !== OrderStatus.PaddingPay" class="flex items-center"
|
|
|
- @click="handleCollapse"
|
|
|
|
|
>
|
|
>
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderAccepted" class="mr-10rpx">
|
|
|
|
|
- 商家拣货中
|
|
|
|
|
- </view>
|
|
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderWaitDelivery" class="mr-10rpx">
|
|
|
|
|
- 订单待配送
|
|
|
|
|
- </view>
|
|
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderDelivering" class="mr-10rpx">
|
|
|
|
|
- 订单配送中
|
|
|
|
|
- </view>
|
|
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderCancelAudit" class="mr-10rpx">
|
|
|
|
|
- 订单取消审核
|
|
|
|
|
- </view>
|
|
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderCancel" class="mr-10rpx">
|
|
|
|
|
- 订单取消
|
|
|
|
|
- </view>
|
|
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderArrived" class="mr-10rpx">
|
|
|
|
|
- 订单已送达
|
|
|
|
|
- </view>
|
|
|
|
|
- <view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderCompleted" class="mr-10rpx">
|
|
|
|
|
- 订单已完成
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+ {{ useUserStore().handleDjkCommonOrderStatusText(orderInfo) }}
|
|
|
</view>
|
|
</view>
|
|
|
<view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderCancel" class="mt-20rpx text-28rpx text-[#AAAAAA]">
|
|
<view v-if="orderInfo.hbOrderStatus === OrderStatus.OrderCancel" class="mt-20rpx text-28rpx text-[#AAAAAA]">
|
|
|
取消原因:{{ orderInfo.cancelReason }}
|
|
取消原因:{{ orderInfo.cancelReason }}
|
|
@@ -146,15 +131,6 @@ async function handleReceive() {
|
|
|
</view>
|
|
</view>
|
|
|
<view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
<view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
|
<view class="grid grid-cols-5 text-28rpx text-[#222]">
|
|
<view class="grid grid-cols-5 text-28rpx text-[#222]">
|
|
|
- <view
|
|
|
|
|
- v-if="orderInfo.hbOrderStatus === OrderStatus.OrderArrived" class="flex flex-col items-center"
|
|
|
|
|
- @click="handleReceive"
|
|
|
|
|
- >
|
|
|
|
|
- <image :src="`${StaticUrl}/orderDetaile-submit-order.png`" class="h-40rpx w-40rpx" />
|
|
|
|
|
- <view class="mt-40rpx">
|
|
|
|
|
- 确认收货
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
<view
|
|
<view
|
|
|
v-if="[OrderStatus.OrderCancel, OrderStatus.OrderCompleted].includes(Number(orderInfo.hbOrderStatus))"
|
|
v-if="[OrderStatus.OrderCancel, OrderStatus.OrderCompleted].includes(Number(orderInfo.hbOrderStatus))"
|
|
|
class="flex flex-col items-center" @click="handelDel"
|
|
class="flex flex-col items-center" @click="handelDel"
|
|
@@ -173,72 +149,122 @@ async function handleReceive() {
|
|
|
</Zcontact>
|
|
</Zcontact>
|
|
|
</view>
|
|
</view>
|
|
|
<view
|
|
<view
|
|
|
- v-if="orderInfo.refundStatus != 2 && [OrderStatus.OrderCompleted, OrderStatus.OrderWaitDelivery, OrderStatus.OrderAccepted].includes(orderInfo.hbOrderStatus)"
|
|
|
|
|
|
|
+ v-if="orderInfo.hbOrderStatus == OrderStatus.OrderAccepted && orderInfo.djkOrderAttachInfo?.djkOrderType == 0 "
|
|
|
class="flex flex-col items-center" @click="handleAfterSale"
|
|
class="flex flex-col items-center" @click="handleAfterSale"
|
|
|
>
|
|
>
|
|
|
<image :src="`${StaticUrl}/orderDetaile-shou.png`" class="h-40rpx w-40rpx" />
|
|
<image :src="`${StaticUrl}/orderDetaile-shou.png`" class="h-40rpx w-40rpx" />
|
|
|
<view class="mt-40rpx">
|
|
<view class="mt-40rpx">
|
|
|
- 申请售后
|
|
|
|
|
|
|
+ 申请退款
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
|
|
|
- <view class="flex items-center">
|
|
|
|
|
- <image :src="`${StaticUrl}/order-icon.png`" class="h-36rpx w-36rpx" />
|
|
|
|
|
- <view class="ml-20rpx text-32rpx font-semibold">
|
|
|
|
|
- {{ orderInfo?.shopName }}
|
|
|
|
|
|
|
+ <view class="mt-20rpx flex items-center rounded-16rpx bg-white p-24rpx">
|
|
|
|
|
+ <image
|
|
|
|
|
+ :src="orderInfo.djkOrderAttachInfo?.goodsImg?.split(',')[0]"
|
|
|
|
|
+ class="h160rpx w160rpx flex-shrink-0 rounded-16rpx"
|
|
|
|
|
+ />
|
|
|
|
|
+ <view class="ml20rpx flex-1">
|
|
|
|
|
+ <view class="text-32rpx font-semibold">
|
|
|
|
|
+ {{ orderInfo.djkOrderAttachInfo?.goodsName }}
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <view class="my-24rpx h-2rpx w-full bg-[#F0F0F0]" />
|
|
|
|
|
- <CollapsePanel :line-height="150">
|
|
|
|
|
- <view v-for="item in orderInfo?.orderItemList" :key="item.skuId" class="mb-20rpx w-full flex items-center">
|
|
|
|
|
- <view class="mr-20rpx w-120rpx flex-shrink-0">
|
|
|
|
|
- <image :src="item.pic" class="h-120rpx w-120rpx" />
|
|
|
|
|
|
|
+ <view class="mt16rpx text-24rpx text-gray">
|
|
|
|
|
+ 有效期360天·需提前1天预约
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt16rpx flex items-center justify-between">
|
|
|
|
|
+ <view class="text-36rpx text-#FF4D3A font-semibold">
|
|
|
|
|
+ <text class="text-20rpx">
|
|
|
|
|
+ ¥
|
|
|
|
|
+ </text> {{ orderInfo.djkOrderAttachInfo?.price }}
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="flex-1">
|
|
|
|
|
- <view class="w-full flex items-center justify-between font-semibold">
|
|
|
|
|
- <view class="text-28rpx">
|
|
|
|
|
- {{ item.skuName }}
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="text-32rpx text-[#FF4D3A]">
|
|
|
|
|
- ¥{{ item.price }}
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="text-24rpx text-[#AAAAAA]">
|
|
|
|
|
- 规格:{{ item.spec }}
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="text-24rpx text-[#AAAAAA]">
|
|
|
|
|
- ×{{ item.prodCount }}
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+ <view class="text-24rpx text-gray">
|
|
|
|
|
+ x{{ orderInfo.djkOrderAttachInfo?.goodsNum }}
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- </CollapsePanel>
|
|
|
|
|
-
|
|
|
|
|
- <view class="mt-24rpx h-2rpx w-full bg-[#F0F0F0]" />
|
|
|
|
|
- <view class="mt-24rpx flex items-center justify-between">
|
|
|
|
|
- <view class="text-28rpx">
|
|
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
|
|
|
+ <view class="flex items-center justify-between">
|
|
|
|
|
+ <view class="text-28rpx text-gray">
|
|
|
商品金额
|
|
商品金额
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="text-[#FF4A39] font-semibold">
|
|
|
|
|
- ¥{{ orderInfo?.total }}
|
|
|
|
|
|
|
+ <view class="text-28rpx font-semibold">
|
|
|
|
|
+ ¥{{ orderInfo.djkOrderAttachInfo?.price }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx flex items-center justify-between">
|
|
|
|
|
+ <view class="text-28rpx text-gray">
|
|
|
|
|
+ 积分{{ orderInfo.offsetPoints ? `(${orderInfo.offsetPoints})` : '' }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="text-28rpx text-#FF4D3A font-semibold">
|
|
|
|
|
+ -¥{{ Number(orderInfo.offsetPoints) / 100 }}
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="mt-24rpx flex items-center justify-between">
|
|
|
|
|
- <view class="text-28rpx">
|
|
|
|
|
- 积分
|
|
|
|
|
|
|
+ <view class="my20rpx h2rpx w-full bg-#F0F0F0" />
|
|
|
|
|
+ <view class="mt20rpx flex items-center justify-between">
|
|
|
|
|
+ <view class="text-28rpx text-gray">
|
|
|
|
|
+ 总计
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="text-[#FF4A39] font-semibold">
|
|
|
|
|
- -¥{{ Number(orderInfo?.offsetPoints) / 100 }}
|
|
|
|
|
|
|
+ <view class="text-28rpx font-semibold">
|
|
|
|
|
+ ¥{{ orderInfo.actualTotal }}
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="my-24rpx h-2rpx w-full bg-[#F0F0F0]" />
|
|
|
|
|
- <view class="flex items-center justify-end">
|
|
|
|
|
- <view class="text-28rpx">
|
|
|
|
|
- 总计{{ orderInfo.orderMoney }} 共减 {{ Number(orderInfo.offsetPoints) / 100 }}
|
|
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx rounded-16rpx bg-white p24rpx">
|
|
|
|
|
+ <view class="mt20rpx h160rpx flex items-center justify-between bg-cover bg-center px24rpx" :style="{ backgroundImage: `url(${StaticUrl}/djk-shop-nav-bg.png)` }">
|
|
|
|
|
+ <view class="flex items-center">
|
|
|
|
|
+ {{ orderInfo.djkOrderAttachInfo?.shopAddress }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="flex items-center">
|
|
|
|
|
+ <view class="mr40rpx flex flex-col items-center justify-center" @click="handleNav">
|
|
|
|
|
+ <image
|
|
|
|
|
+ :src="`${StaticUrl}/djk-shop-dh.png`"
|
|
|
|
|
+ class="h40rpx w40rpx"
|
|
|
|
|
+ />
|
|
|
|
|
+ <view class="mt20rpx text-28rpx">
|
|
|
|
|
+ 导航
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="flex flex-col items-center justify-center" @click="handlePhone">
|
|
|
|
|
+ <image
|
|
|
|
|
+ :src="`${StaticUrl}/film-phone.png`"
|
|
|
|
|
+ class="h40rpx w40rpx"
|
|
|
|
|
+ />
|
|
|
|
|
+ <view class="mt20rpx text-28rpx">
|
|
|
|
|
+ 电话
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <view class="mt20rpx rounded-16rpx bg-white p24rpx">
|
|
|
|
|
+ <view class="text-32rpx font-semibold">
|
|
|
|
|
+ 客户信息
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx text-24rpx">
|
|
|
|
|
+ {{ phoneFormat(String(orderInfo.consigneeMobile)) }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx rounded-16rpx bg-white p24rpx">
|
|
|
|
|
+ <view class="text-32rpx font-semibold">
|
|
|
|
|
+ 退款规则
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx text-24rpx">
|
|
|
|
|
+ 支付成功后,服务有效期为30天
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx text-24rpx">
|
|
|
|
|
+ 有效期内可自主申请退款
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx text-24rpx">
|
|
|
|
|
+ 过期未使用将自动退款,无需申请
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx text-24rpx text-gray">
|
|
|
|
|
+ (积分支付的,退还后积分过期后,也将不可使用)
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="mt20rpx text-24rpx">
|
|
|
|
|
+ 已核销服务不可退款
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
<view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
<view class="mt-20rpx rounded-16rpx bg-white p-24rpx">
|
|
|
<view class="mb-24rpx text-28rpx font-semibold">
|
|
<view class="mb-24rpx text-28rpx font-semibold">
|
|
|
订单信息
|
|
订单信息
|
|
@@ -246,7 +272,7 @@ async function handleReceive() {
|
|
|
<view class="pb-20rpx">
|
|
<view class="pb-20rpx">
|
|
|
<view class="mb-28rpx flex items-center justify-between">
|
|
<view class="mb-28rpx flex items-center justify-between">
|
|
|
<view class="text-28rpx text-[#AAAAAA]">
|
|
<view class="text-28rpx text-[#AAAAAA]">
|
|
|
- 订单编号
|
|
|
|
|
|
|
+ 订单号
|
|
|
</view>
|
|
</view>
|
|
|
<view class="flex items-center">
|
|
<view class="flex items-center">
|
|
|
<text class="text-[#222]">
|
|
<text class="text-[#222]">
|
|
@@ -257,14 +283,6 @@ async function handleReceive() {
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="mb-28rpx flex items-center justify-between">
|
|
|
|
|
- <view class="text-28rpx text-[#AAAAAA]">
|
|
|
|
|
- 支付方式
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="text-[#222]">
|
|
|
|
|
- 微信支付
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
<view class="mb-28rpx flex items-center justify-between">
|
|
<view class="mb-28rpx flex items-center justify-between">
|
|
|
<view class="text-28rpx text-[#AAAAAA]">
|
|
<view class="text-28rpx text-[#AAAAAA]">
|
|
|
下单时间
|
|
下单时间
|
|
@@ -273,14 +291,6 @@ async function handleReceive() {
|
|
|
{{ orderInfo?.createTime }}
|
|
{{ orderInfo?.createTime }}
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="mb-28rpx flex items-center justify-between">
|
|
|
|
|
- <view class="text-28rpx text-[#AAAAAA]">
|
|
|
|
|
- 备注信息
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="text-[#222]">
|
|
|
|
|
- {{ orderInfo?.remarks || '无' }}
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="h-80rpx" />
|
|
<view class="h-80rpx" />
|