feat(admin): 订单列表只展示平台判断 SKU
This commit is contained in:
@@ -204,76 +204,55 @@ export default function AdminOrdersPage() {
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '商品 / 规格',
|
||||
minWidth: 260,
|
||||
title: '平台 SKU',
|
||||
minWidth: 190,
|
||||
render: (_, row) => {
|
||||
const itemTitle = row.itemTitle || row.itemSummary || '-'
|
||||
const skuNick = row.skuNick
|
||||
const items = row.items && row.items.length > 0 ? row.items : null
|
||||
const fallbackSku = row.matchSku || row.skuNick || '未识别 SKU'
|
||||
|
||||
const renderSkuTag = (sku: string | undefined, title?: string, key?: string) => {
|
||||
const label = sku || '未识别 SKU'
|
||||
return (
|
||||
<Tooltip
|
||||
key={key}
|
||||
title={
|
||||
title && title !== label
|
||||
? `平台 SKU:${label}|原商品标题:${title}`
|
||||
: `平台 SKU:${label}`
|
||||
}
|
||||
>
|
||||
<Tag
|
||||
color={label === '未识别 SKU' ? 'default' : 'blue'}
|
||||
style={{
|
||||
margin: 0,
|
||||
maxWidth: 200,
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
whiteSpace: 'nowrap',
|
||||
fontSize: 12,
|
||||
}}
|
||||
>
|
||||
{label}
|
||||
</Tag>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="cell-stack" style={{ gap: 4 }}>
|
||||
{items && items.length > 1 ? (
|
||||
<div className="cell-stack" style={{ gap: 4 }}>
|
||||
{items.slice(0, 2).map((item, idx) => (
|
||||
<div key={idx} className="cell-stack" style={{ gap: 2 }}>
|
||||
<Typography.Text
|
||||
strong
|
||||
ellipsis={{ tooltip: item.itemTitle }}
|
||||
style={{ maxWidth: 360, fontSize: 13 }}
|
||||
>
|
||||
{item.itemTitle || '-'}
|
||||
</Typography.Text>
|
||||
{item.skuNick ? (
|
||||
<Space size={4} wrap>
|
||||
<Tag
|
||||
color="blue"
|
||||
style={{
|
||||
margin: 0,
|
||||
maxWidth: 320,
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
whiteSpace: 'nowrap',
|
||||
fontSize: 12,
|
||||
}}
|
||||
title={`规格:${item.skuNick}`}
|
||||
>
|
||||
{item.skuNick}
|
||||
</Tag>
|
||||
</Space>
|
||||
) : null}
|
||||
</div>
|
||||
))}
|
||||
{items.length > 2 ? <span className="muted">等 {items.length} 种商品</span> : null}
|
||||
{items
|
||||
.slice(0, 2)
|
||||
.map((item, idx) =>
|
||||
renderSkuTag(item.matchSku || item.skuNick, item.itemTitle, `sku-${idx}`),
|
||||
)}
|
||||
{items.length > 2 ? <span className="muted">等 {items.length} 项</span> : null}
|
||||
</div>
|
||||
) : items && items.length === 1 ? (
|
||||
renderSkuTag(items[0].matchSku || items[0].skuNick, items[0].itemTitle, 'sku-0')
|
||||
) : (
|
||||
<>
|
||||
<Typography.Text
|
||||
strong
|
||||
ellipsis={{ tooltip: itemTitle }}
|
||||
style={{ maxWidth: 360, fontSize: 13 }}
|
||||
>
|
||||
{itemTitle}
|
||||
</Typography.Text>
|
||||
{skuNick ? (
|
||||
<Space size={4} wrap>
|
||||
<Tag
|
||||
color="blue"
|
||||
style={{
|
||||
margin: 0,
|
||||
maxWidth: 320,
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
whiteSpace: 'nowrap',
|
||||
fontSize: 12,
|
||||
}}
|
||||
title={`规格:${skuNick}`}
|
||||
>
|
||||
{skuNick}
|
||||
</Tag>
|
||||
</Space>
|
||||
) : null}
|
||||
</>
|
||||
renderSkuTag(fallbackSku, row.itemTitle || row.itemSummary, 'sku-0')
|
||||
)}
|
||||
<span className="muted" style={{ fontSize: 12 }}>
|
||||
数量 {row.totalQuantity || 1}
|
||||
|
||||
@@ -11,6 +11,7 @@ export interface AdminOrderFulfillmentProgress {
|
||||
export interface AdminOrderItemSummary {
|
||||
itemTitle: string
|
||||
skuNick: string
|
||||
matchSku: string
|
||||
quantity: number
|
||||
}
|
||||
|
||||
@@ -37,6 +38,7 @@ export interface AdminOrderListItem {
|
||||
itemSummary: string
|
||||
itemTitle?: string
|
||||
skuNick?: string
|
||||
matchSku?: string
|
||||
items?: AdminOrderItemSummary[]
|
||||
taskCount: number
|
||||
resourceStatus: string
|
||||
|
||||
Reference in New Issue
Block a user