mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-22 09:43:46 +00:00
refactor: unify quota sections into single "配额控制" card
Merge the separate "配额限制" and "配额控制" sections into one unified "配额控制" section per account type. For Anthropic OAuth/SetupToken accounts, AffinityConfigCard is now inside the quota control section instead of a separate card. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1227,13 +1227,13 @@
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 配额限制 (Anthropic 平台: 配额 + 亲和) -->
|
||||
<!-- 配额控制 (Anthropic 平台: 配额 + 亲和) -->
|
||||
<div
|
||||
v-if="form.platform === 'anthropic'"
|
||||
class="border-t border-gray-200 pt-4 dark:border-dark-600 space-y-4"
|
||||
>
|
||||
<div class="mb-3">
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaLimit') }}</h3>
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaControl.title') }}</h3>
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
|
||||
{{ t('admin.accounts.quotaLimitHint') }}
|
||||
</p>
|
||||
@@ -1249,13 +1249,13 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 配额限制 (非 Anthropic apikey) -->
|
||||
<!-- 配额控制 (非 Anthropic apikey) -->
|
||||
<div
|
||||
v-else-if="form.type === 'apikey'"
|
||||
class="border-t border-gray-200 pt-4 dark:border-dark-600 space-y-4"
|
||||
>
|
||||
<div class="mb-3">
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaLimit') }}</h3>
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaControl.title') }}</h3>
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
|
||||
{{ t('admin.accounts.quotaLimitHint') }}
|
||||
</p>
|
||||
|
||||
@@ -904,18 +904,18 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 配额限制 (Anthropic 平台: 配额 + 亲和) -->
|
||||
<!-- 配额控制 (Anthropic apikey: 配额限制 + 亲和) -->
|
||||
<div
|
||||
v-if="account?.platform === 'anthropic'"
|
||||
v-if="account?.platform === 'anthropic' && account?.type === 'apikey'"
|
||||
class="border-t border-gray-200 pt-4 dark:border-dark-600 space-y-4"
|
||||
>
|
||||
<div class="mb-3">
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaLimit') }}</h3>
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaControl.title') }}</h3>
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
|
||||
{{ t('admin.accounts.quotaLimitHint') }}
|
||||
</p>
|
||||
</div>
|
||||
<QuotaLimitCard v-if="account?.type === 'apikey'" :totalLimit="editQuotaLimit" :dailyLimit="editQuotaDailyLimit" :weeklyLimit="editQuotaWeeklyLimit" @update:totalLimit="editQuotaLimit = $event" @update:dailyLimit="editQuotaDailyLimit = $event" @update:weeklyLimit="editQuotaWeeklyLimit = $event" />
|
||||
<QuotaLimitCard :totalLimit="editQuotaLimit" :dailyLimit="editQuotaDailyLimit" :weeklyLimit="editQuotaWeeklyLimit" @update:totalLimit="editQuotaLimit = $event" @update:dailyLimit="editQuotaDailyLimit = $event" @update:weeklyLimit="editQuotaWeeklyLimit = $event" />
|
||||
<AffinityConfigCard
|
||||
:enabled="clientAffinityEnabled"
|
||||
:base="affinityBase"
|
||||
@@ -926,13 +926,13 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 配额限制 (非 Anthropic apikey) -->
|
||||
<!-- 配额控制 (非 Anthropic apikey) -->
|
||||
<div
|
||||
v-else-if="account?.type === 'apikey'"
|
||||
class="border-t border-gray-200 pt-4 dark:border-dark-600 space-y-4"
|
||||
>
|
||||
<div class="mb-3">
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaLimit') }}</h3>
|
||||
<h3 class="input-label mb-0 text-base font-semibold">{{ t('admin.accounts.quotaControl.title') }}</h3>
|
||||
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
|
||||
{{ t('admin.accounts.quotaLimitHint') }}
|
||||
</p>
|
||||
@@ -998,7 +998,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Quota Control Section (Anthropic OAuth/SetupToken only) -->
|
||||
<!-- 配额控制 (Anthropic OAuth/SetupToken: 亲和 + 窗口费用 + 会话 + RPM 等) -->
|
||||
<div
|
||||
v-if="account?.platform === 'anthropic' && (account?.type === 'oauth' || account?.type === 'setup-token')"
|
||||
class="border-t border-gray-200 pt-4 dark:border-dark-600 space-y-4"
|
||||
@@ -1010,6 +1010,15 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<AffinityConfigCard
|
||||
:enabled="clientAffinityEnabled"
|
||||
:base="affinityBase"
|
||||
:buffer="affinityBuffer"
|
||||
@update:enabled="clientAffinityEnabled = $event"
|
||||
@update:base="affinityBase = $event"
|
||||
@update:buffer="affinityBuffer = $event"
|
||||
/>
|
||||
|
||||
<!-- Window Cost Limit -->
|
||||
<div class="rounded-lg border border-gray-200 p-4 dark:border-dark-600">
|
||||
<div class="mb-3 flex items-center justify-between">
|
||||
|
||||
@@ -1965,7 +1965,7 @@ export default {
|
||||
// Quota control (Anthropic OAuth/SetupToken only)
|
||||
quotaControl: {
|
||||
title: 'Quota Control',
|
||||
hint: 'Only applies to Anthropic OAuth/Setup Token accounts',
|
||||
hint: 'Configure cost window, session limits, client affinity and other scheduling controls.',
|
||||
windowCost: {
|
||||
label: '5h Window Cost Limit',
|
||||
hint: 'Limit account cost usage within the 5-hour window',
|
||||
|
||||
@@ -2099,7 +2099,7 @@ export default {
|
||||
// Quota control (Anthropic OAuth/SetupToken only)
|
||||
quotaControl: {
|
||||
title: '配额控制',
|
||||
hint: '仅适用于 Anthropic OAuth/Setup Token 账号',
|
||||
hint: '配置费用窗口、会话限制、客户端亲和等调度控制。',
|
||||
windowCost: {
|
||||
label: '5h窗口费用控制',
|
||||
hint: '限制账号在5小时窗口内的费用使用',
|
||||
|
||||
Reference in New Issue
Block a user