refactor(frontend): 优化 Gemini 配额显示,参考 Antigravity 样式

- 简化标签:将 "RPD Pro/Flash" 改为 "Pro/Flash",避免文字截断
- 添加账号类型徽章(Free/Pro/Ultra),带颜色区分
- 添加帮助图标(?),悬停显示限流政策和官方文档链接
- 重构显示布局:账号类型 + 两行配额(Pro/Flash)
- 移除冗余的 AccountQuotaInfo 组件调用
This commit is contained in:
IanShaw027
2026-01-01 08:29:57 +08:00
parent 4a7e2a44d9
commit 8181746695
8 changed files with 201 additions and 22 deletions

View File

@@ -10,7 +10,7 @@
v-if="!isRateLimited"
class="text-xs text-gray-400 dark:text-gray-500"
>
未限流
{{ t('admin.accounts.gemini.rateLimit.ok') }}
</span>
<span
v-else
@@ -21,19 +21,22 @@
: 'text-amber-600 dark:text-amber-400'
]"
>
限流 {{ resetCountdown }}
{{ t('admin.accounts.gemini.rateLimit.limited', { time: resetCountdown }) }}
</span>
</div>
</template>
<script setup lang="ts">
import { computed, ref, watch, onUnmounted } from 'vue'
import { useI18n } from 'vue-i18n'
import type { Account, GeminiCredentials } from '@/types'
const props = defineProps<{
account: Account
}>()
const { t } = useI18n()
const now = ref(new Date())
let timer: ReturnType<typeof setInterval> | null = null
@@ -98,7 +101,7 @@ const resetCountdown = computed(() => {
if (Number.isNaN(resetTime)) return '-'
const diffMs = resetTime - now.value.getTime()
if (diffMs <= 0) return 'now'
if (diffMs <= 0) return t('admin.accounts.gemini.rateLimit.now')
const diffSeconds = Math.floor(diffMs / 1000)
const diffMinutes = Math.floor(diffSeconds / 60)