From a1008f7e6abf68262d8a511b63f24f4a13086590 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Thu, 1 Oct 2026 16:06:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(listings):=20=E9=A6=96=E9=A1=B5=E6=97=A0?= =?UTF-8?q?=E8=AE=BA=E6=98=AF=E5=90=A6=E5=8F=AF=E4=BF=AE=E6=94=B9=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E5=90=8D=E9=83=BD=E5=B1=95=E7=A4=BA=E8=AF=A5=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 号主选择「否」时买家也能在商品卡片上看到,避免只展示「是」造成信息缺失。 Co-authored-by: Cursor --- .../utils/__tests__/listingDisplay.spec.ts | 22 ++++++++++++++++++- frontend/src/shared/utils/listingDisplay.ts | 7 +++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/frontend/src/shared/utils/__tests__/listingDisplay.spec.ts b/frontend/src/shared/utils/__tests__/listingDisplay.spec.ts index 88c045a..43eef28 100644 --- a/frontend/src/shared/utils/__tests__/listingDisplay.spec.ts +++ b/frontend/src/shared/utils/__tests__/listingDisplay.spec.ts @@ -1,6 +1,10 @@ import { describe, expect, it } from 'vitest' -import { getListingSellerCoinPrice, getListingSellerPrice } from '../listingDisplay' +import { + getListingChips, + getListingSellerCoinPrice, + getListingSellerPrice, +} from '../listingDisplay' import type { PublicListingItem } from '@/features/listings/api/listings' function buildListing(assetSummary?: Record): PublicListingItem { @@ -62,3 +66,19 @@ describe('号主纯币价格读取', () => { ) }) }) + +describe('首页规格芯片', () => { + it('无论是否可以修改游戏名都展示', () => { + const yesChip = getListingChips(buildListing({ can_change_game_name: '是' })).find( + chip => chip.label === '可修改游戏名' + ) + const noChip = getListingChips(buildListing({ can_change_game_name: '否' })).find( + chip => chip.label === '可修改游戏名' + ) + const missing = getListingChips(buildListing()).find(chip => chip.label === '可修改游戏名') + + expect(yesChip).toEqual({ label: '可修改游戏名', value: '是' }) + expect(noChip).toEqual({ label: '可修改游戏名', value: '否' }) + expect(missing).toBeUndefined() + }) +}) diff --git a/frontend/src/shared/utils/listingDisplay.ts b/frontend/src/shared/utils/listingDisplay.ts index d17af1d..c069637 100644 --- a/frontend/src/shared/utils/listingDisplay.ts +++ b/frontend/src/shared/utils/listingDisplay.ts @@ -155,9 +155,10 @@ export function getListingChips(item: PublicListingItem): ListingDisplayChip[] { if (online) { chips.push({ label: '方便上号', value: online }) } - // 仅在号主确认可修改游戏名时展示。 - if (readAssetString(item, 'can_change_game_name') === '是') { - chips.push({ label: '可修改游戏名', value: '是' }) + // 号主已填写时,首页同时展示「是」和「否」。 + const canChangeGameName = readAssetString(item, 'can_change_game_name') + if (canChangeGameName === '是' || canChangeGameName === '否') { + chips.push({ label: '可修改游戏名', value: canChangeGameName }) } // 全英雄为必选项,仅在号主勾选「是」时展示 if (readAssetString(item, 'all_hero') === '是') {