fix(claim): 优化H5领取与绑定界面商品图展示并集成发货存证凭据生成
- 修复后端 affiliate_dash 领取详情接口漏传 imageUrl 字段的问题 - 优化前端 ClaimProductImage 占位逻辑,消除无图或失败时的空灰色方块 - 移植并集成 affiliate_dash 前端 Canvas 高清发货到账存证凭据(Retina 640x960) - 在兑换成功页面提供结果图预览、一键复制到剪贴板与下载凭据图片功能
This commit is contained in:
@@ -271,6 +271,7 @@ function buildAffiliateDashClaimDetailPayload({
|
||||
const product = {
|
||||
title: productTitle,
|
||||
skuCode: String(orderItem.sku_code || '').trim(),
|
||||
imageUrl: resolveClaimProductImageUrl(orderItem),
|
||||
quantity: Math.max(1, Number(orderItem.quantity || 1) || 1),
|
||||
isBundle: false,
|
||||
items: [
|
||||
|
||||
@@ -20,13 +20,21 @@ export const PRODUCT_IMAGE_PUBLIC_PREFIX = '/images/products'
|
||||
/** 图片后缀:38 个 slug 全部有 webp,统一用它(体积小、移动端浏览器都支持)。 */
|
||||
export const PRODUCT_IMAGE_EXTENSION = 'webp'
|
||||
|
||||
const KNOWN_SLUGS = new Set(Object.values(AFFILIATE_DASH_SKU_MAPPING))
|
||||
|
||||
/** 内部 SKU → 图片文件名(英文 sku);映射不到返回空串。 */
|
||||
export function resolveProductImageSlug(internalSku: unknown): string {
|
||||
const key = String(internalSku ?? '').trim()
|
||||
if (!key) {
|
||||
return ''
|
||||
}
|
||||
return String(AFFILIATE_DASH_SKU_MAPPING[key] || '').trim()
|
||||
if (AFFILIATE_DASH_SKU_MAPPING[key]) {
|
||||
return AFFILIATE_DASH_SKU_MAPPING[key]
|
||||
}
|
||||
if (KNOWN_SLUGS.has(key)) {
|
||||
return key
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
/** 内部 SKU → 图片 URL;映射不到返回空串(前端展示占位)。 */
|
||||
|
||||
Reference in New Issue
Block a user