diff --git a/src/background/icon-and-alias-collector.ts b/src/background/icon-and-alias-collector.ts index 113a0a3d3..faf953496 100644 --- a/src/background/icon-and-alias-collector.ts +++ b/src/background/icon-and-alias-collector.ts @@ -29,7 +29,7 @@ async function collectAlias(key: timer.site.SiteKey, tabTitle: string) { if (!tabTitle) return if (isUrl(tabTitle)) return const siteName = extractSiteName(tabTitle, key.host) - siteName && await siteService.saveAlias(key, siteName) + siteName && await siteService.saveAlias(key, siteName, true) } /** diff --git a/src/pages/app/components/SiteManage/SiteManageTable/index.tsx b/src/pages/app/components/SiteManage/SiteManageTable/index.tsx index ee0d748f0..b32ba3b53 100644 --- a/src/pages/app/components/SiteManage/SiteManageTable/index.tsx +++ b/src/pages/app/components/SiteManage/SiteManageTable/index.tsx @@ -46,11 +46,12 @@ const _default = defineComponent({ return ElMessage.info("No data") } const toSave = new SiteMap() - data.forEach(site => { + const items = await siteService.batchSelect(data) + items.filter(i => !i.alias).forEach(site => { const newAlias = genInitialAlias(site) newAlias && toSave.put(site, newAlias) }) - await siteService.batchSaveAlias(toSave) + await siteService.batchSaveAliasNoRewrite(toSave) ctx.emit('aliasGenerated') ElMessage.success(t(msg => msg.operation.successMsg)) } diff --git a/src/service/site-service.ts b/src/service/site-service.ts index c82f8c04d..8313cca51 100644 --- a/src/service/site-service.ts +++ b/src/service/site-service.ts @@ -23,12 +23,12 @@ async function removeAlias(key: timer.site.SiteKey) { await siteDatabase.save(exist) } -async function saveAlias(key: timer.site.SiteKey, alias: string) { +async function saveAlias(key: timer.site.SiteKey, alias: string, noRewrite?: boolean) { const exist = await siteDatabase.get(key) let toUpdate: timer.site.SiteInfo if (exist) { // Can't overwrite if alias is already existed - if (exist.alias) return + if (exist.alias && noRewrite) return toUpdate = exist toUpdate.alias = alias } else { @@ -37,7 +37,7 @@ async function saveAlias(key: timer.site.SiteKey, alias: string) { await siteDatabase.save(toUpdate) } -async function batchSaveAlias(siteMap: SiteMap): Promise { +async function batchSaveAliasNoRewrite(siteMap: SiteMap): Promise { if (!siteMap?.count?.()) return const allSites = await siteDatabase.getBatch(siteMap.keys()) const existMap = new SiteMap() @@ -113,7 +113,7 @@ class SiteService { } saveAlias = saveAlias - batchSaveAlias = batchSaveAlias + batchSaveAliasNoRewrite = batchSaveAliasNoRewrite removeAlias = removeAlias saveIconUrl = saveIconUrl removeIconUrl = removeIconUrl