优化客服群聊订单信息展示

This commit is contained in:
yml
2026-06-18 00:44:45 +08:00
parent 0add23dedb
commit 272b2cb71e
15 changed files with 479 additions and 55 deletions
+27 -4
View File
@@ -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) {