Feat:体验项目订单流程对接

This commit is contained in:
linxi
2026-03-17 19:29:13 +08:00
parent 7091d7e124
commit e608382075
6 changed files with 1172 additions and 210 deletions
+98 -7
View File
@@ -51,7 +51,24 @@
class="item"
>
<view
v-if="order.merName"
v-if="order.experienceOrderInfo"
class="shop-info flex jc-between ai-center"
@click.stop="goStore(order)"
>
<view class="flex ai-center">
<image
:src="webUrl+'/orderIcon/shop.png'"
style="width: 32rpx;height: 32rpx"
/>
<text class="name v12-font-weight-400 v12-dark-text v12-font-24">{{ order.merName || order.storeName }}</text>
<image
:src="webUrl+'/orderIcon/arrow.png'"
style="width: 24rpx;height: 24rpx; margin-top: 5rpx"
/>
</view>
</view>
<view
v-if="order.merName && !order.experienceOrderInfo"
class="shop-info flex jc-between ai-center"
@click="goStore(order)"
>
@@ -74,7 +91,16 @@
<text class="address v12-dark-text v12-font-bold v12-font-24">{{ order.merCityName }}</text>
</view>
</view>
<view class="title acea-row row-between-wrapper" style="padding: 0 0 0 30rpx !important;">
<view v-if="order.experienceOrderInfo" class="title acea-row row-between-wrapper" style="padding: 0 0 0 30rpx !important;">
<view class="acea-row row-middle">
订单号:{{ order.orderId }}
</view>
<view
class="font-color-white statusTag"
:class="{'v12-primary': order.experienceOrderStatus === 0, 'v12-primary': order.experienceOrderStatus === 1, 'bg-color-hui': order.experienceOrderStatus === 2}"
>{{ ['待使用', '已完成', '已过期'][order.experienceOrderStatus] }}</view>
</view>
<view v-if="!order.experienceOrderInfo" class="title acea-row row-between-wrapper" style="padding: 0 0 0 30rpx !important;">
<view class="acea-row row-middle">
<text
v-if="order.combinationId || order.seckillId || order.bargainId || order.storeId"
@@ -132,6 +158,25 @@
</view>
</view>
</view>
<view v-else-if="order.experienceOrderInfo">
<view class="item-info acea-row row-between row-top">
<view class="pictrue">
<image :src="order.experienceOrderInfo.themeImage" />
</view>
<view class="text">
<view class="acea-row name-wrap">
<view class="name more-t v12-font-bold">{{ order.experienceOrderInfo.themeName }}</view>
</view>
<view class="v12-secondary-dark-text v12-font-24" style="margin-top: 30rpx;">
有效期至{{ order.experienceOrderInfo.endTime }}
</view>
<view class="v12-secondary-dark-text v12-font-24 flex ai-center" style="margin-top: 10rpx;" v-if="order.distance || order.experienceOrderInfo.distance">
<image :src="webUrl+'/orderIcon/map.png'" style="width: 24rpx;height: 24rpx;margin-right: 6rpx;" />
<text>距该地{{ order.distance || order.experienceOrderInfo.distance }}</text>
</view>
</view>
</view>
</view>
<view v-else>
<view
v-for="(cart,cartInfoIndex) in order.cartInfo"
@@ -183,7 +228,7 @@
</view>
</view>
</view>
<view class="totalPrice acea-row row-between row-middle" :style="{'padding-bottom': order.isTravelGroup === 1 ? '0rpx !important' : '30rpx'}">
<view v-if="!order.experienceOrderInfo" class="totalPrice acea-row row-between row-middle" :style="{'padding-bottom': order.isTravelGroup === 1 ? '0rpx !important' : '30rpx'}">
<view v-if="order.createTime">
<span class="orderTime v12-font-24 v12-dark1-text">{{ order.createTime }}</span>
</view>
@@ -208,7 +253,7 @@
入住时间: {{ order.travelGroupOrderInfo.orderStartDate }}
</text>
</view>
<view v-if="order._status && ['1'].includes(order._status._type) && order.confirmTimeout" class="v12-ml-4 v12-mb-2" >
<view v-if="!order.experienceOrderInfo && order._status && ['1'].includes(order._status._type) && order.confirmTimeout" class="v12-ml-4 v12-mb-2" >
<view class="v12-primary-text v12-font-24 v12-align-center">
等待商家确认时间,剩余
<u-count-down format="HH:mm:ss" autoStart :time="$global.diffSSS(order.confirmTimeout)" />
@@ -216,7 +261,27 @@
</view>
</view>
<view
v-if="!order.isGiftCardSend"
v-if="order.experienceOrderInfo"
class="bottom flex jc-end ai-center"
>
<view
v-if="order.experienceOrderStatus === 0 || order.experienceOrderStatus === 1"
class="bnt service"
@click.stop="goRoom(order)"
>联系商家</view>
<view
v-if="order.experienceOrderStatus === 0"
class="bnt v12-primary v12-white-text v12-primary-border v12-radius-40"
@click.stop="goOrderDetails(order)"
>去使用</view>
<view
v-if="order.experienceOrderStatus === 1 || order.experienceOrderStatus === 2"
class="bnt service"
@click.stop="delOrder(order)"
>删除订单</view>
</view>
<view
v-if="!order.isGiftCardSend && !order.experienceOrderInfo"
class="bottom flex jc-between ai-center"
>
<view
@@ -352,7 +417,7 @@
</template>
</view>
</view>
<view class="bottom" v-else>
<view class="bottom" v-else-if="order.isGiftCardSend">
<view class="v12-font-24 v12-grey tips-text" >
{{ Number(order.status) === 0 ? '待支付' : getGiftTips(order.giftCardInfo) }}
</view>
@@ -366,6 +431,7 @@
<view class="v12-align-center">
<button
v-if="Number(order.status) !== 0 &&
order.giftCardInfo &&
order.giftCardInfo.giftCardStatus !== 9 &&
getGiftTips(order.giftCardInfo) &&
order.giftCardInfo.giftCardStatus !== 2 &&
@@ -674,7 +740,7 @@ export default {
})
},
goStore(order) {
if(order.isTravelGroup === 1) {
if(order.isTravelGroup === 1 || order.experienceOrderInfo) {
// uni.showToast({
// title: '该订单为团体订单,无法查看店铺信息!'
// })
@@ -733,6 +799,22 @@ export default {
},
goRoom(order) {
console.log(order);
if (order.experienceOrderInfo) {
const params = {
goodsId: order.experienceOrderInfo.id,
goodsName: order.experienceOrderInfo.themeName,
skuStr: '',
price: 0,
seckillId: 0,
cover: order.experienceOrderInfo.themeImage,
goodsData: '',
seckillData: ''
}
uni.navigateTo({
url: `/pkg_common/views/room?id=${order.merId}&name=${order.merName || order.storeName}&params=${JSON.stringify(params)}`
})
return
}
if(order.isTravelGroup === 1) {
// 拨打商家电话
uni.makePhoneCall({
@@ -785,6 +867,15 @@ export default {
});
},
goOrderDetails(order) {
if (order.experienceOrderInfo) {
this.$yrouter.push({
path: "/pkg_product/views/experienceCouponOrderDetail",
query: {
orderId: order.orderId
}
});
return
}
if(order.isTravelGroup === 1) {
this.$yrouter.push({
path: "/pkg_product/views/sojoumOrderDetails",