fix: resolve runtime crashes in render.jsx and TieredPricingEditor.jsx

- render.jsx: change const destructuring of completionRatio/audioRatio to
  use raw names with ?? 0 defaults, preventing "Assignment to constant
  variable" errors in renderModelPrice, renderAudioModelPrice, and
  renderClaudeModelPrice
- TieredPricingEditor.jsx: add missing MATCH_GTE import, remove misleading
  alias help text, preserve conditions for single-tier configs
This commit is contained in:
CaIon
2026-04-24 00:33:41 +08:00
parent 6bde1a9c8d
commit 8eeae00737
2 changed files with 17 additions and 35 deletions

View File

@@ -1643,7 +1643,7 @@ export function renderModelPrice(opts) {
completion_tokens: completionTokens = 0,
model_ratio: modelRatio = 0,
model_price: modelPrice = -1,
completion_ratio: completionRatio,
completion_ratio: _completionRatio,
group_ratio: _groupRatio,
user_group_ratio,
cache_tokens: cacheTokens = 0,
@@ -1669,6 +1669,7 @@ export function renderModelPrice(opts) {
user_group_ratio,
);
let groupRatio = effectiveGroupRatio;
const completionRatio = _completionRatio ?? 0;
const { symbol, rate } = getCurrencyConfig();
@@ -1695,9 +1696,6 @@ export function renderModelPrice(opts) {
]);
}
if (completionRatio === undefined) {
completionRatio = 0;
}
const inputRatioPrice = modelRatio * 2.0;
const completionRatioPrice = modelRatio * 2.0 * completionRatio;
const cacheRatioPrice = modelRatio * 2.0 * cacheRatio;
@@ -1908,10 +1906,6 @@ export function renderModelPrice(opts) {
);
}
if (completionRatio === undefined) {
completionRatio = 0;
}
const modelRatioValue = formatRatioValue(modelRatio);
const completionRatioValue = formatRatioValue(completionRatio);
const cacheRatioValue = formatRatioValue(cacheRatio);
@@ -2408,11 +2402,11 @@ export function renderAudioModelPrice(opts) {
completion_tokens: completionTokens = 0,
model_ratio: modelRatio = 0,
model_price: modelPrice = -1,
completion_ratio: completionRatio,
completion_ratio: _completionRatio,
audio_input: audioInputTokens = 0,
audio_output: audioCompletionTokens = 0,
audio_ratio: audioRatio,
audio_completion_ratio: audioCompletionRatio,
audio_ratio: _audioRatio,
audio_completion_ratio: _audioCompletionRatio,
group_ratio: _groupRatio,
user_group_ratio,
cache_tokens: cacheTokens = 0,
@@ -2424,6 +2418,9 @@ export function renderAudioModelPrice(opts) {
user_group_ratio,
);
let groupRatio = effectiveGroupRatio;
const completionRatio = _completionRatio ?? 0;
const audioRatio = parseFloat(_audioRatio ?? 0).toFixed(6);
const audioCompletionRatio = _audioCompletionRatio ?? 0;
// 获取货币配置
const { symbol, rate } = getCurrencyConfig();
@@ -2450,10 +2447,6 @@ export function renderAudioModelPrice(opts) {
]);
}
if (completionRatio === undefined) {
completionRatio = 0;
}
audioRatio = parseFloat(audioRatio).toFixed(6);
const inputRatioPrice = modelRatio * 2.0;
const completionRatioPrice = modelRatio * 2.0 * completionRatio;
const textPrice =
@@ -2541,10 +2534,6 @@ export function renderAudioModelPrice(opts) {
);
}
if (completionRatio === undefined) {
completionRatio = 0;
}
const modelRatioValue = formatRatioValue(modelRatio);
const completionRatioValue = formatRatioValue(completionRatio);
const cacheRatioValue = formatRatioValue(cacheRatio);
@@ -2695,7 +2684,7 @@ export function renderClaudeModelPrice(opts) {
completion_tokens: completionTokens = 0,
model_ratio: modelRatio = 0,
model_price: modelPrice = -1,
completion_ratio: completionRatio,
completion_ratio: _completionRatio,
group_ratio: _groupRatio,
user_group_ratio,
cache_tokens: cacheTokens = 0,
@@ -2713,6 +2702,7 @@ export function renderClaudeModelPrice(opts) {
user_group_ratio,
);
let groupRatio = effectiveGroupRatio;
const completionRatio = _completionRatio ?? 0;
// 获取货币配置
const { symbol, rate } = getCurrencyConfig();
@@ -2739,10 +2729,6 @@ export function renderClaudeModelPrice(opts) {
]);
}
if (completionRatio === undefined) {
completionRatio = 0;
}
const inputRatioPrice = modelRatio * 2.0;
const completionRatioPrice = modelRatio * 2.0 * completionRatio;
const cacheRatioPrice = modelRatio * 2.0 * cacheRatio;
@@ -2926,10 +2912,6 @@ export function renderClaudeModelPrice(opts) {
);
}
if (completionRatio === undefined) {
completionRatio = 0;
}
const modelRatioValue = formatRatioValue(modelRatio);
const completionRatioValue = formatRatioValue(completionRatio);
const cacheRatioValue = formatRatioValue(cacheRatio);