diff --git a/src/api/event.ts b/src/api/event.ts index cfbbbb2..518f813 100644 --- a/src/api/event.ts +++ b/src/api/event.ts @@ -74,6 +74,13 @@ export function isPmMarketClosed(m: PmEventMarketItem | null | undefined): boole return m?.closed === true } +/** 过滤掉已关闭的子市场(服务端公开接口已过滤,保留供本地兜底) */ +export function filterOpenMarkets( + markets: PmEventMarketItem[] | undefined, +): PmEventMarketItem[] { + return (markets ?? []).filter((m) => !isPmMarketClosed(m)) +} + /** * 已结算市场的结果角标:取 outcomePrices 中概率最高项对应 outcomes 文案(兼容 0–1 或 1–100)。 */ @@ -430,8 +437,20 @@ function mapMarketToOutcome(m: PmEventMarketItem): EventCardOutcome { */ export function mapEventItemToCard(item: PmEventListItem): EventCardItem { const markets = item.markets ?? [] + if (markets.length === 0) { + return buildEventCardItem(item, markets, false, undefined) + } const multi = markets.length > 1 const firstMarket = markets[0] + return buildEventCardItem(item, markets, multi, firstMarket) +} + +function buildEventCardItem( + item: PmEventListItem, + markets: PmEventMarketItem[], + multi: boolean, + firstMarket: PmEventMarketItem | undefined, +): EventCardItem { const firstPrices = firstMarket ? parseOutcomePrices(firstMarket) : { yesPrice: 0.5, noPrice: 0.5 } return { diff --git a/src/views/EventMarkets.vue b/src/views/EventMarkets.vue index da7ee19..c737f02 100644 --- a/src/views/EventMarkets.vue +++ b/src/views/EventMarkets.vue @@ -118,14 +118,14 @@
- - - -
- {{ t('eventMarkets.settledSubMarketsTitle') }} -
-
-
-
- {{ - market.question || t('eventMarkets.marketPlaceholder') - }} - {{ formatVolumeLine(market.volume) }} -
- - {{ settledWinnerPill(market)!.label }} - - mdi-chevron-right -
-
-
-
+
-