fix: 密钥管理排除站点列表缺少无账号站点
loadExclusionSources() 原只从 accounts 提取站点, 新增的/无关联账号的站点不显示。 增加 api.getSites() 调用,合并所有站点到排除选项。
This commit is contained in:
@@ -518,17 +518,29 @@ export default function DownstreamKeys() {
|
||||
if (exclusionSourceLoading || exclusionSourceLoaded) return;
|
||||
setExclusionSourceLoading(true);
|
||||
try {
|
||||
const [accountsSnapshotRes, tokensRes] = await Promise.all([
|
||||
const [accountsSnapshotRes, tokensRes, sitesRes] = await Promise.all([
|
||||
api.getAccountsSnapshot(),
|
||||
api.getAccountTokens(),
|
||||
api.getSites(),
|
||||
]);
|
||||
|
||||
const accountRows = Array.isArray(accountsSnapshotRes?.accounts)
|
||||
? accountsSnapshotRes.accounts
|
||||
: [];
|
||||
const tokenRows = Array.isArray(tokensRes) ? tokensRes : [];
|
||||
const siteRows = Array.isArray(sitesRes) ? sitesRes : [];
|
||||
|
||||
const siteMap = new Map<number, { siteId: number; siteName: string; accountIds: Set<number> }>();
|
||||
|
||||
for (const site of siteRows) {
|
||||
const siteId = Number(site?.id);
|
||||
if (!Number.isFinite(siteId) || siteId <= 0) continue;
|
||||
const siteName = String(site?.name || `站点 ${siteId}`).trim() || `站点 ${siteId}`;
|
||||
if (!siteMap.has(siteId)) {
|
||||
siteMap.set(siteId, { siteId, siteName, accountIds: new Set<number>() });
|
||||
}
|
||||
}
|
||||
|
||||
for (const account of accountRows) {
|
||||
const siteId = Number(account?.site?.id);
|
||||
const accountId = Number(account?.id);
|
||||
|
||||
Reference in New Issue
Block a user