优化客服群聊订单信息展示
This commit is contained in:
@@ -15,6 +15,12 @@ export interface ListingDisplayResource {
|
||||
amount: number
|
||||
}
|
||||
|
||||
export interface ListingDisplaySkinGroup {
|
||||
key: string
|
||||
title: string
|
||||
options: string[]
|
||||
}
|
||||
|
||||
export function getCoinWan(item: Listing) {
|
||||
return Math.round(Number(item.haf_coin_amount || 0) / 10000)
|
||||
}
|
||||
@@ -204,12 +210,29 @@ export function getSkinGroup(item: Listing, groupKey: string) {
|
||||
)
|
||||
}
|
||||
|
||||
export function getSkinNames(item: Listing) {
|
||||
export function getListingSkinGroups(item: Listing): ListingDisplaySkinGroup[] {
|
||||
const skinGroups = item.asset_summary?.skin_groups
|
||||
if (typeof skinGroups !== 'object' || skinGroups === null) return []
|
||||
return Object.values(skinGroups as Record<string, unknown>)
|
||||
.flatMap(group => (Array.isArray(group) ? group : []))
|
||||
.filter((skin): skin is string => typeof skin === 'string')
|
||||
const titles: Record<string, string> = {
|
||||
melee: '近战',
|
||||
operator: '干员',
|
||||
operatorGold: '金皮',
|
||||
operatorRed: '红皮',
|
||||
weapon: '武器',
|
||||
}
|
||||
return Object.entries(skinGroups as Record<string, unknown>)
|
||||
.map(([key, value]) => ({
|
||||
key,
|
||||
title: titles[key] || key,
|
||||
options: Array.isArray(value)
|
||||
? value.filter((skin): skin is string => typeof skin === 'string' && Boolean(skin.trim()))
|
||||
: [],
|
||||
}))
|
||||
.filter(group => group.options.length)
|
||||
}
|
||||
|
||||
export function getSkinNames(item: Listing) {
|
||||
return getListingSkinGroups(item).flatMap(group => group.options)
|
||||
}
|
||||
|
||||
export function assetRegions(item: Listing) {
|
||||
|
||||
Reference in New Issue
Block a user