fix: 单个提供商更新时不再清空全部余额缓存

loadBalances 新增 fullReload 参数,单个提供商刷新时传入 false,
避免更新一个提供商的余额数据时清除其他提供商的已加载余额。
This commit is contained in:
fawney19
2026-03-09 23:35:51 +08:00
parent 8a8bc999d2
commit 3b0dbadb1e
2 changed files with 6 additions and 5 deletions

View File

@@ -57,9 +57,10 @@ export function useProviderBalance() {
}
// 异步加载余额数据(使用批量接口)
async function loadBalances(providers: ProviderWithEndpointsSummary[]) {
// 清空旧的余额缓存,避免数据累积
balanceCache.value = {}
async function loadBalances(providers: ProviderWithEndpointsSummary[], fullReload = true) {
if (fullReload) {
balanceCache.value = {}
}
const currentVersion = ++balanceLoadVersion
try {
const opsProviderIds = providers.filter(p => p.ops_configured).map(p => p.id)

View File

@@ -437,7 +437,7 @@ function handleProviderUpdated(updated: ProviderWithEndpointsSummary) {
if (index !== -1) {
providers.value[index] = updated
// 刷新该提供商的余额数据
loadBalances([updated])
loadBalances([updated], false)
}
}
@@ -449,7 +449,7 @@ async function handleDrawerRefresh() {
const index = providers.value.findIndex(p => p.id === updated.id)
if (index !== -1) {
providers.value[index] = updated
loadBalances([updated])
loadBalances([updated], false)
}
} catch (err) {
showError(parseApiError(err, '刷新提供商数据失败'), '错误')