From 9f8a4ec05010da20704c1b55aa8b9af5630df72e Mon Sep 17 00:00:00 2001 From: CaIon Date: Tue, 28 Apr 2026 11:29:30 +0800 Subject: [PATCH] fix: filter pricing variables based on cache token availability in tiered model price rendering --- web/src/helpers/render.jsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/web/src/helpers/render.jsx b/web/src/helpers/render.jsx index f5ce1f03..f785c085 100644 --- a/web/src/helpers/render.jsx +++ b/web/src/helpers/render.jsx @@ -2293,7 +2293,12 @@ export function renderTieredModelPrice(opts) { const { symbol, rate } = getCurrencyConfig(); const gr = groupRatio || 1; - const priceLines = BILLING_PRICING_VARS.map((v) => [v.field, v.label]); + const hasAnyCacheTokens = cacheTokens > 0 || cacheCreationTokens > 0 + || cacheCreationTokens5m > 0 || cacheCreationTokens1h > 0; + + const priceLines = BILLING_PRICING_VARS + .filter((v) => v.group !== 'cache' || hasAnyCacheTokens) + .map((v) => [v.field, v.label]); const lines = [ buildBillingText('命中档位:{{tier}}', { tier: matchedTier || tier.label }), @@ -2334,7 +2339,11 @@ export function renderTieredModelPriceSimple(opts) { ]; if (tier && isPriceDisplayMode(displayMode)) { - const priceSegments = BILLING_PRICING_VARS.map((v) => [v.field, v.shortLabel]); + const hasAnyCacheTokens = cacheTokens > 0 || cacheCreationTokens > 0 + || cacheCreationTokens5m > 0 || cacheCreationTokens1h > 0; + const priceSegments = BILLING_PRICING_VARS + .filter((v) => v.group !== 'cache' || hasAnyCacheTokens) + .map((v) => [v.field, v.shortLabel]); for (const [field, label] of priceSegments) { if (tier[field] > 0) { segments.push({