perf(import): 优化账号导入弹窗为秒开体验并支持批量回查校验
This commit is contained in:
@@ -704,10 +704,13 @@ async function loadImportTargetGroups(websiteId: number) {
|
||||
importTargetGroups.value = []
|
||||
return
|
||||
}
|
||||
const frozenId = websiteId
|
||||
try {
|
||||
const res = await websitesApi.groups(websiteId)
|
||||
const res = await websitesApi.groups(frozenId)
|
||||
if (importAccountsForm.value.website_id !== frozenId) return
|
||||
importTargetGroups.value = res.data
|
||||
} catch {
|
||||
if (importAccountsForm.value.website_id !== frozenId) return
|
||||
importTargetGroups.value = []
|
||||
}
|
||||
}
|
||||
@@ -1073,26 +1076,36 @@ async function openImportAccounts(site?: WebsiteData | null) {
|
||||
}
|
||||
importAccountResults.value = []
|
||||
importSyncStatus.value = null
|
||||
await loadImportTargetGroups(importAccountsForm.value.website_id)
|
||||
// 打开弹窗后自动同步导入状态(校验远端账号是否仍存在)
|
||||
const reloaded = await syncImportStatus()
|
||||
if (!reloaded) await loadImportGeneratedKeys(importAccountsForm.value.upstream_id)
|
||||
|
||||
// 1. 立即打开弹窗,实现秒开体验
|
||||
importAccountsDialog.value = true
|
||||
|
||||
// 2. 在后台并发加载分组、Keys,并在加载完成后自动执行同步
|
||||
void Promise.all([
|
||||
loadImportTargetGroups(importAccountsForm.value.website_id),
|
||||
loadImportGeneratedKeys(importAccountsForm.value.upstream_id)
|
||||
]).then(() => {
|
||||
void syncImportStatus()
|
||||
})
|
||||
}
|
||||
|
||||
async function onImportAccountWebsiteChange(value: number) {
|
||||
importAccountsForm.value.target_group_map = {}
|
||||
await loadImportTargetGroups(value)
|
||||
const reloaded = await syncImportStatus()
|
||||
if (!reloaded) await loadImportGeneratedKeys(importAccountsForm.value.upstream_id)
|
||||
void Promise.all([
|
||||
loadImportTargetGroups(value),
|
||||
loadImportGeneratedKeys(importAccountsForm.value.upstream_id)
|
||||
]).then(() => {
|
||||
void syncImportStatus()
|
||||
})
|
||||
}
|
||||
|
||||
async function onImportAccountUpstreamChange(value: number) {
|
||||
importAccountsForm.value.upstream_key_ids = []
|
||||
importAccountsForm.value.target_group_map = {}
|
||||
importAccountResults.value = []
|
||||
const reloaded = await syncImportStatus()
|
||||
if (!reloaded) await loadImportGeneratedKeys(value)
|
||||
void loadImportGeneratedKeys(value).then(() => {
|
||||
void syncImportStatus()
|
||||
})
|
||||
}
|
||||
|
||||
function onPlatformModeChange(value: string) {
|
||||
|
||||
Reference in New Issue
Block a user