refactor: 优化促销商品列表和电子卡券逻辑

- 更新促销商品列表组件,简化商品详情页跳转逻辑
- 移除不必要的礼品卡相关状态管理,确保电子卡券逻辑的清晰性
- 调整 utils/goodsType.js 中的卡密处理函数,专注于当前订单的卡密履约行
- 优化订单详情页的卡密展示逻辑,确保信息准确性
This commit is contained in:
田香琪
2026-08-05 13:48:21 +08:00
parent 370c63afcd
commit eb40916cf7
4 changed files with 165 additions and 193 deletions

View File

@@ -115,20 +115,16 @@ function normalizeCardKeyFulfillLine(source) {
status,
message: source.cardKeyFulfillMessage,
cardKeys,
isGift: !!source.isGift,
}
}
/** 汇总 E_COUPON 主单行 + 满赠子单摘要的履约行 */
export function collectCardKeyFulfillLines(orderItems = [], giftSummaries = []) {
/** 汇总当前订单 orderItems 的卡密履约行(仅本单;满赠赠品在赠品订单单独查看) */
export function collectCardKeyFulfillLines(orderItems = []) {
const lines = []
;(orderItems || []).forEach((item) => {
if (!isCardKeyFulfillApplicable(item)) return
lines.push(normalizeCardKeyFulfillLine(item))
})
;(giftSummaries || []).forEach((gift) => {
lines.push(normalizeCardKeyFulfillLine({ ...gift, isGift: true }))
})
return lines
}
@@ -143,19 +139,15 @@ function flattenCardKeyFulfillLines(lines, withGoodsName = false) {
return rows
}
/** 订单是否含已交付卡密(含满赠 E_COUPON 子单 */
export function orderHasCardKeyContent(orderItems, giftSummaries) {
const lines = collectCardKeyFulfillLines(orderItems, giftSummaries)
/** 当前订单是否含已交付卡密(仅 orderItems */
export function orderHasCardKeyContent(orderItems) {
const lines = collectCardKeyFulfillLines(orderItems)
return flattenCardKeyFulfillLines(lines).length > 0
}
/** 将 orderItems[].cardKeys 展平为明文列表DELIVERED 且含 cardSecret */
export function flattenOrderCardKeys(
orderItems,
withGoodsName = false,
giftSummaries
) {
const lines = collectCardKeyFulfillLines(orderItems, giftSummaries)
export function flattenOrderCardKeys(orderItems, withGoodsName = false) {
const lines = collectCardKeyFulfillLines(orderItems)
if (lines.some((line) => line.status)) {
return flattenCardKeyFulfillLines(lines, withGoodsName)
}
@@ -168,8 +160,3 @@ export function flattenOrderCardKeys(
})
return rows
}
/** 是否已发卡(兼容旧调用;含满赠子单) */
export function isCardKeyDelivered(orderItems, giftSummaries) {
return orderHasCardKeyContent(orderItems, giftSummaries)
}