fix(platform): 模型选择与计费展示 - 透传渠道信息并标注视频结算来源

This commit is contained in:
ddCat
2026-09-18 23:28:12 +08:00
parent b99ad798b9
commit cd5a9f2e21
7 changed files with 105 additions and 5 deletions

View File

@@ -178,7 +178,8 @@ export function systemChannelModelChannels(channels: PublicChannelCatalog[]): Mo
return {
model: model.modelKey,
displayName: model.displayName,
description: "",
channelLabel: model.channelLabel,
description: model.description || "",
icon: model.icon || "",
capability: model.capability as ModelCapability,
protocol: model.protocol as any,

View File

@@ -328,7 +328,11 @@ export default function CreditOperationsPanel({ users, activeOperation, onOperat
<div className="text-xs leading-5">
<div className="font-medium tabular-nums">{order.status === "settled" ? `${formatCredits(order.actualAmountMicrocredits)} 积分` : "等待用量结算"}</div>
<div className="text-foreground/50">
输入 {order.inputTokens} · 输出 {order.outputTokens} · 缓存 {order.cachedTokens}
{order.usageSource === "video_formula"
? `公式结算 · ${order.outputTokens.toLocaleString()} 视频 Token`
: order.capability === "video"
? `上游用量 · ${order.outputTokens.toLocaleString()} 视频 Token`
: `输入 ${order.inputTokens} · 输出 ${order.outputTokens} · 缓存 ${order.cachedTokens}`}
</div>
</div>
) : (

View File

@@ -363,6 +363,7 @@ export type ModelChannel = {
modelCosts?: Array<{
model: string;
displayName?: string;
channelLabel?: string;
description?: string;
icon?: string;
capability: ModelCapability;

View File

@@ -9,11 +9,25 @@
padding: 14px 16px;
}
/* Appearance management follows the same full-width settings document used by storage and access pages. */
/* Appearance categories share one draft and command bar. */
.admin-appearance-settings {
padding-bottom: 24px;
}
.admin-appearance-tabs,
.admin-appearance-tabs .ant-tabs-content-holder,
.admin-appearance-tabs .ant-tabs-tabpane {
min-width: 0;
}
.admin-appearance-tabs > .ant-tabs-nav {
margin-bottom: var(--space-4);
}
.admin-appearance-tabs .ant-tabs-tab {
padding-block: var(--space-3);
}
.admin-appearance-settings .admin-settings-section {
border: 1px solid var(--admin-card-border);
}
@@ -724,7 +738,6 @@
.admin-skin-card.is-selected {
border-color: color-mix(in srgb, var(--workspace-accent) 76%, var(--admin-card-border));
background: color-mix(in srgb, var(--workspace-accent) 5%, var(--admin-layer-2));
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--workspace-accent) 36%, transparent);
}
.admin-skin-card-select {
@@ -9124,10 +9137,80 @@
}
.admin-model-editor-references .admin-capability-reference-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
align-items: start;
gap: 10px;
}
.admin-model-editor-modal .admin-capability-reference-card,
.admin-model-editor-modal .admin-capability-protocol-card {
min-width: 0;
border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
border-radius: 8px;
background: color-mix(in srgb, var(--foreground) 2.5%, var(--admin-layer-1));
}
.admin-model-editor-modal .admin-capability-reference-card-heading,
.admin-model-editor-modal .admin-capability-protocol-card-heading {
display: flex;
min-width: 0;
align-items: flex-start;
gap: 8px;
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
padding: 12px;
}
.admin-model-editor-modal .admin-capability-reference-card-heading h3,
.admin-model-editor-modal .admin-capability-protocol-card-heading h3 {
margin: 0;
color: var(--admin-text-primary);
font-size: 12px;
font-weight: 650;
line-height: 1.4;
}
.admin-model-editor-modal .admin-capability-reference-card-heading p,
.admin-model-editor-modal .admin-capability-protocol-card-heading p {
margin: 2px 0 0;
color: var(--admin-text-muted);
font-size: 11px;
line-height: 1.45;
}
.admin-model-editor-modal .admin-capability-reference-fields,
.admin-model-editor-modal .admin-capability-protocol-fields {
display: grid;
min-width: 0;
gap: 8px;
padding: 10px 12px 12px;
}
.admin-model-editor-modal .admin-capability-protocol-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
align-items: start;
gap: 12px;
}
.admin-model-editor-modal .admin-capability-protocol-card-heading > span {
display: grid;
flex: none;
width: 24px;
height: 24px;
place-items: center;
border-radius: 6px;
background: color-mix(in srgb, var(--foreground) 8%, transparent);
color: var(--admin-text-muted);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.04em;
}
.admin-model-editor-modal .admin-capability-protocol-card-heading > div {
min-width: 0;
}
.admin-model-editor-references .admin-capability-reference-card {
padding: 10px 12px;
}
@@ -9174,6 +9257,10 @@
.admin-model-editor-references .admin-capability-reference-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.admin-model-editor-modal .admin-capability-protocol-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.admin-price-tier-card {
@@ -9423,6 +9510,9 @@
.admin-model-editor-modal .admin-capability-reference-grid {
grid-template-columns: minmax(0, 1fr);
}
.admin-model-editor-modal .admin-capability-protocol-grid {
grid-template-columns: minmax(0, 1fr);
}
.admin-price-tier-upstream {
grid-column: 1 / -1;
}
@@ -10853,4 +10943,3 @@ html[data-magicui-theme-vt="active"] .admin-shell * {
.admin-banner-type-card[data-banner-type="warning"] .admin-banner-type-card-preview {
background: var(--notice-banner-surface-warning);
}