Files
easyai-ai-gateway/apps/web/src/pages/admin/PricingEditorControls.tsx
T

63 lines
1.4 KiB
TypeScript

import type { ReactNode } from 'react';
import { Calculator } from 'lucide-react';
export function PricingInlineField(props: {
label: string;
children: ReactNode;
}) {
return (
<div className="pricingInlineField">
<span>{props.label}</span>
{props.children}
</div>
);
}
export function PricingReadonlyField(props: {
label: string;
value: string;
}) {
return (
<div className="pricingInlineField pricingInlineReadonly">
<span>{props.label}</span>
<strong>{props.value}</strong>
</div>
);
}
export function unitLabel(unit: string | undefined) {
const labels: Record<string, string> = {
image: '每张图片',
'5s': '每 5 秒',
second: '每秒',
item: '每次',
'1k_tokens': '每 1K Token',
character_1k: '每 1K 字符',
};
return labels[unit ?? ''] ?? unit ?? '-';
}
export function calculatorLabel(calculatorType: string | undefined) {
const labels: Record<string, string> = {
token_usage: '按 Token 用量',
unit_weight: '按数量和参数',
duration_weight: '按时长和参数',
formula: '按公式',
};
return labels[calculatorType ?? ''] ?? calculatorType ?? '-';
}
export function PricingFormulaNote(props: {
children: ReactNode;
}) {
return (
<div className="pricingFormulaBox">
<Calculator size={16} />
<div>
<strong>计费公式</strong>
<p>{props.children}</p>
</div>
</div>
);
}