fix(*): 视频计费与结果解析 - 按 Token 预估展示并解析数组媒体结果

This commit is contained in:
ddCat
2026-09-19 07:48:08 +08:00
parent f549486fa2
commit 6c67019f2f
8 changed files with 92 additions and 14 deletions

View File

@@ -337,7 +337,7 @@ export function CanvasNodePromptPanel({ projectId, node, isRunning, onPromptChan
const renderSubmitButton = (expanded: boolean) => {
const showCost = creditsEnabled && credits !== null;
const formattedCredits = credits?.toLocaleString("zh-CN", { maximumFractionDigits: 6 });
const actionLabel = isRunning ? "生成中" : showCost ? `预计消耗 ${formattedCredits} 积分,生成` : "生成";
const actionLabel = isRunning ? "生成中" : showCost ? `${routeQuote?.estimated ? "预估" : "消耗"} ${formattedCredits} 积分,生成` : "生成";
return (
<Button
type="text"
@@ -357,7 +357,7 @@ export function CanvasNodePromptPanel({ projectId, node, isRunning, onPromptChan
{showCost ? (
<span className="canvas-node-composer-submit-cost">
<CreditSymbol />
<span>{routeQuote?.estimated ? "预计 " : ""}{formattedCredits}</span>
<span>{routeQuote?.estimated ? `预估:${formattedCredits}` : formattedCredits}</span>
</span>
) : null}
<span className="canvas-node-composer-submit-action" aria-hidden>

View File

@@ -506,7 +506,7 @@ function tierSpecificationLabel(tier: NonNullable<NonNullable<AiConfig["channels
function ModelPrice({ price, quote, compact = false }: { price: ModelMenuPrice | null | undefined; quote?: LogicalModelQuote; compact?: boolean }) {
if (quote) {
const amount = (quote.amountMicrocredits / 1_000_000).toLocaleString("zh-CN", { maximumFractionDigits: 6 });
const label = quote.estimated ? `预计 ${amount}` : `${amount}`;
const label = quote.estimated ? `预估:${amount}` : `${amount}`;
return (
<span className="inline-flex shrink-0 items-center gap-0.5 text-[var(--fs-tiny)] font-bold tabular-nums text-amber-600 dark:text-amber-300" title={modelQuoteDescription(quote)}>
<Coins className="size-3" />