From ee70523026b8e1c0a12078a92c629bf7154edd12 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Sun, 7 May 2023 11:40:33 +0800 Subject: [PATCH] =?UTF-8?q?perf(web):=20=E4=BD=BF=E7=94=A8map=E6=9F=A5?= =?UTF-8?q?=E6=89=BE=E6=8E=A8=E9=80=81=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/web/src/components/SourceItem.vue | 10 +++++-- modules/web/src/components/SourceList.vue | 7 +++-- modules/web/src/store/sourceStore.js | 36 ++++++++++------------- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/modules/web/src/components/SourceItem.vue b/modules/web/src/components/SourceItem.vue index 1073956c7..22f932bbe 100644 --- a/modules/web/src/components/SourceItem.vue +++ b/modules/web/src/components/SourceItem.vue @@ -4,7 +4,7 @@ border :label="sourceUrl" :class="{ - error: errorPushSources.includes(source), + error: isSaveError, edit: sourceUrl == currentSourceUrl, }" > @@ -17,12 +17,16 @@ import { Edit } from "@element-plus/icons-vue"; const props = defineProps(["source"]); -const sourceUrl = props.source.bookSourceUrl || props.source.sourceUrl; const store = useSourceStore(); -const { errorPushSources, currentSourceUrl } = storeToRefs(store); +const { savedSourcesMap, currentSourceUrl, sourceUrlKey } = storeToRefs(store); +const sourceUrl = computed(() => props.source[sourceUrlKey.value]); const handleSourceClick = (source) => { store.changeCurrentSource(source); }; +const isSaveError = computed(() => { + if (savedSourcesMap.value.size == 0) return false; + return !savedSourcesMap.value.has(sourceUrl.value); +});