diff --git a/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx b/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx index 6e19339..786f886 100644 --- a/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx +++ b/web/src/components/table/model-pricing/modal/components/ChannelPricingCard.jsx @@ -112,6 +112,8 @@ const ChannelPricingCard = ({ completionRatio: item.completion_ratio, modelPrice: item.model_price, hasCustomPricing: item.has_custom_pricing, + cacheRatio: item.cache_ratio, + cacheCreationRatio: item.cache_creation_ratio, })); // 判断是否存在按次计费的渠道 @@ -205,6 +207,26 @@ const ChannelPricingCard = ({ ] : []; + // 判断是否存在高级比例数据 + const hasAdvancedPricing = tableData.some( + (item) => item.cacheRatio > 0 || item.cacheCreationRatio > 0 + ); + + const advancedColumns = hasAdvancedPricing + ? [ + { + title: t('缓存读取'), + dataIndex: 'cacheRatio', + render: (v) => (v > 0 ? v : '-'), + }, + { + title: t('缓存创建'), + dataIndex: 'cacheCreationRatio', + render: (v) => (v > 0 ? v : '-'), + }, + ] + : []; + // 只有存在按次计费的渠道时才显示固定价格列 const callBasedColumn = hasCallBased ? [ @@ -226,7 +248,7 @@ const ChannelPricingCard = ({ ] : []; - const columns = [...baseColumns, ...tokenBasedColumns, ...callBasedColumn]; + const columns = [...baseColumns, ...tokenBasedColumns, ...advancedColumns, ...callBasedColumn]; return ( diff --git a/web/src/pages/Setting/Ratio/ChannelPricingView.jsx b/web/src/pages/Setting/Ratio/ChannelPricingView.jsx index 77b580a..f097bc9 100644 --- a/web/src/pages/Setting/Ratio/ChannelPricingView.jsx +++ b/web/src/pages/Setting/Ratio/ChannelPricingView.jsx @@ -490,6 +490,11 @@ const ChannelPricingView = ({ channels, channelPricings, tags, onRefresh }) => { completion_ratio: editingRecord?.pricing?.completion_ratio ?? 0, model_price: editingRecord?.pricing?.model_price ?? 0, tag_ids: getInitialTagIds(editingRecord?.pricing), + cache_ratio: editingRecord?.pricing?.cache_ratio ?? 0, + cache_creation_ratio: editingRecord?.pricing?.cache_creation_ratio ?? 0, + image_ratio: editingRecord?.pricing?.image_ratio ?? 0, + audio_ratio: editingRecord?.pricing?.audio_ratio ?? 0, + audio_completion_ratio: editingRecord?.pricing?.audio_completion_ratio ?? 0, }} > { initValue={tokenPrices.outputTokenPrice} /> + + + + + + + + )} {currentQuotaType === 1 && (