mirror of
https://gitee.com/wanwujie/sub2api
synced 2026-04-03 06:52:13 +08:00
fix: 恢复 UsageProgressBar 中被意外移除的窗口统计数据展示
commit 0debe0a8 在修复 OpenAI WS 用量窗口刷新问题时,意外删除了
UsageProgressBar 中的 window stats 渲染逻辑和格式化函数。
恢复进度条上方的统计行(requests, tokens, account cost, user cost)
及对应的 4 个格式化 computed 属性。
This commit is contained in:
@@ -1,5 +1,29 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
<!-- Window stats row (above progress bar) -->
|
||||||
|
<div
|
||||||
|
v-if="windowStats"
|
||||||
|
class="mb-0.5 flex items-center"
|
||||||
|
>
|
||||||
|
<div class="flex items-center gap-1.5 text-[9px] text-gray-500 dark:text-gray-400">
|
||||||
|
<span class="rounded bg-gray-100 px-1.5 py-0.5 dark:bg-gray-800">
|
||||||
|
{{ formatRequests }} req
|
||||||
|
</span>
|
||||||
|
<span class="rounded bg-gray-100 px-1.5 py-0.5 dark:bg-gray-800">
|
||||||
|
{{ formatTokens }}
|
||||||
|
</span>
|
||||||
|
<span class="rounded bg-gray-100 px-1.5 py-0.5 dark:bg-gray-800">
|
||||||
|
A ${{ formatAccountCost }}
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
v-if="windowStats?.user_cost != null"
|
||||||
|
class="rounded bg-gray-100 px-1.5 py-0.5 dark:bg-gray-800"
|
||||||
|
>
|
||||||
|
U ${{ formatUserCost }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Progress bar row -->
|
<!-- Progress bar row -->
|
||||||
<div class="flex items-center gap-1">
|
<div class="flex items-center gap-1">
|
||||||
<!-- Label badge (fixed width for alignment) -->
|
<!-- Label badge (fixed width for alignment) -->
|
||||||
@@ -108,4 +132,32 @@ const formatResetTime = computed(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Window stats formatters
|
||||||
|
const formatRequests = computed(() => {
|
||||||
|
if (!props.windowStats) return ''
|
||||||
|
const r = props.windowStats.requests
|
||||||
|
if (r >= 1000000) return `${(r / 1000000).toFixed(1)}M`
|
||||||
|
if (r >= 1000) return `${(r / 1000).toFixed(1)}K`
|
||||||
|
return r.toString()
|
||||||
|
})
|
||||||
|
|
||||||
|
const formatTokens = computed(() => {
|
||||||
|
if (!props.windowStats) return ''
|
||||||
|
const t = props.windowStats.tokens
|
||||||
|
if (t >= 1000000000) return `${(t / 1000000000).toFixed(1)}B`
|
||||||
|
if (t >= 1000000) return `${(t / 1000000).toFixed(1)}M`
|
||||||
|
if (t >= 1000) return `${(t / 1000).toFixed(1)}K`
|
||||||
|
return t.toString()
|
||||||
|
})
|
||||||
|
|
||||||
|
const formatAccountCost = computed(() => {
|
||||||
|
if (!props.windowStats) return '0.00'
|
||||||
|
return props.windowStats.cost.toFixed(2)
|
||||||
|
})
|
||||||
|
|
||||||
|
const formatUserCost = computed(() => {
|
||||||
|
if (!props.windowStats || props.windowStats.user_cost == null) return '0.00'
|
||||||
|
return props.windowStats.user_cost.toFixed(2)
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user