fix: 高峰倍率全链路透传、计费术语修正与边界处理

- 高峰倍率信息透传至可用渠道、支付计划、结算信息等 API,前端
  GroupBadge / GroupOptionItem / SubscriptionPlanCard / PaymentView /
  SubscriptionsView 统一展示高峰时段与倍率标签
- 修正计费术语:"文本倍率" → "token 倍率",明确高峰倍率同时作用于
  token 计费的图片 token,图片按次计费不受高峰影响
- 允许高峰倍率 multiplier=0,支持高峰时段免费策略
- 切换分组类型为 standard 时自动清除高峰倍率配置
- 长上下文计费与标准计费路径改用内部实现,移除冗余中间调用
- 前端高峰倍率相关控件文案改为 i18n
- 新增多组高峰倍率相关单元测试
This commit is contained in:
xueshiji committed 2026-07-01 17:46:12 +08:00
1 parent ebd83dc0f9
commit 1034f576d7
32 files changed
+686 -145

No files matched your search

+10 -8
View File
@@ -866,7 +866,7 @@
type="checkbox"
class="rounded border-gray-300 text-blue-600 focus:ring-blue-500"
/>
<span>启用高峰时段倍率</span>
<span>{{ t("admin.groups.peakRate.enable") }}</span>
</label>
</div>
<div
@@ -874,7 +874,7 @@
class="mb-4 grid grid-cols-3 gap-3"
>
<div>
<label class="input-label">高峰开始</label>
<label class="input-label">{{ t("admin.groups.peakRate.peakStart") }}</label>
<input
v-model="createForm.peak_start"
type="time"
@@ -882,7 +882,7 @@
/>
</div>
<div>
<label class="input-label">高峰结束</label>
<label class="input-label">{{ t("admin.groups.peakRate.peakEnd") }}</label>
<input
v-model="createForm.peak_end"
type="time"
@@ -890,7 +890,7 @@
/>
</div>
<div>
<label class="input-label">高峰倍率</label>
<label class="input-label">{{ t("admin.groups.peakRate.peakMultiplier") }}</label>
<input
v-model.number="createForm.peak_rate_multiplier"
type="number"
@@ -898,6 +898,7 @@
min="0"
class="input"
placeholder="1"
:title="t('admin.groups.peakRate.multiplierHint')"
/>
</div>
</div>
@@ -2204,7 +2205,7 @@
type="checkbox"
class="rounded border-gray-300 text-blue-600 focus:ring-blue-500"
/>
<span>启用高峰时段倍率</span>
<span>{{ t("admin.groups.peakRate.enable") }}</span>
</label>
</div>
<div
@@ -2212,7 +2213,7 @@
class="mb-4 grid grid-cols-3 gap-3"
>
<div>
<label class="input-label">高峰开始</label>
<label class="input-label">{{ t("admin.groups.peakRate.peakStart") }}</label>
<input
v-model="editForm.peak_start"
type="time"
@@ -2220,7 +2221,7 @@
/>
</div>
<div>
<label class="input-label">高峰结束</label>
<label class="input-label">{{ t("admin.groups.peakRate.peakEnd") }}</label>
<input
v-model="editForm.peak_end"
type="time"
@@ -2228,7 +2229,7 @@
/>
</div>
<div>
<label class="input-label">高峰倍率</label>
<label class="input-label">{{ t("admin.groups.peakRate.peakMultiplier") }}</label>
<input
v-model.number="editForm.peak_rate_multiplier"
type="number"
@@ -2236,6 +2237,7 @@
min="0"
class="input"
placeholder="1"
:title="t('admin.groups.peakRate.multiplierHint')"
/>
</div>
</div>