feat: 补齐预约下单售后链路,并接入礼品卡结算

立即购买先选时段再结算,免物流地址,售后按数量退款;同步接入礼品卡入口。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pikachu1995@126.com
2026-09-20 17:07:27 +08:00
parent 2ad8a7f5a6
commit 2107e3f03a
15 changed files with 2186 additions and 71 deletions

View File

@@ -62,7 +62,7 @@
v-if="order.allowOperationVO.pay" @click="waitPay(order)">立即付款</view>
<!-- 取消订单 -->
<view ripple class="cancel-btn" shape="circle" size="mini"
v-if="order.allowOperationVO.cancel" @click="onCancel(order.sn)">
v-if="showOrderCancel(order)" @click="onCancel(order.sn)">
取消订单
</view>
<!-- 等待收货 -->
@@ -71,7 +71,7 @@
确认收货
</view>
<view ripple shape="circle" class="cancel-btn" size="mini"
v-if="!isECouponOrder(order.orderType) && order.groupAfterSaleStatus && ( order.groupAfterSaleStatus.includes('NOT_APPLIED') || order.groupAfterSaleStatus.includes('PART_AFTER_SALE'))"
v-if="showOrderAfterSale(order)"
@click="applyService(order)">
退款/售后
</view>
@@ -123,7 +123,8 @@ import {
orderStatusList,
} from '@/utils/filters.js'
// E_COUPON 订单不展示确认收货、退款/售后FR-B-04
import { isECouponOrder } from '@/utils/goodsType.js'
import { isECouponOrder, isAppointmentOrder } from '@/utils/goodsType.js'
import { getAppointmentAllowOperation } from '@/utils/appointmentGoods.js'
const store = useStore()
const { proxy } = getCurrentInstance()!
@@ -371,6 +372,23 @@ function orderStateExp(state: number) {
return { stateTip, stateTipColor }
}
function showOrderCancel(order: any) {
if (isAppointmentOrder(order?.orderType)) {
return !!getAppointmentAllowOperation(order)?.cancel
}
return !!order?.allowOperationVO?.cancel
}
function showOrderAfterSale(order: any) {
if (isECouponOrder(order?.orderType)) return false
if (isAppointmentOrder(order?.orderType)) {
const allow = getAppointmentAllowOperation(order)
if (!allow?.afterSale) return false
}
const status = order?.groupAfterSaleStatus
return status && (status.includes('NOT_APPLIED') || status.includes('PART_AFTER_SALE'))
}
function navigateToOrderDetail(sn: string) {
uni.navigateTo({
url: './orderDetail?sn=' + sn,