diff --git a/modules/web/src/components/SourceItem.vue b/modules/web/src/components/SourceItem.vue index 7317ee7d5..1073956c7 100644 --- a/modules/web/src/components/SourceItem.vue +++ b/modules/web/src/components/SourceItem.vue @@ -2,23 +2,35 @@ {{ source.bookSourceName || source.sourceName }} + diff --git a/modules/web/src/components/SourceList.vue b/modules/web/src/components/SourceList.vue index ba7630453..f9d6f6942 100644 --- a/modules/web/src/components/SourceList.vue +++ b/modules/web/src/components/SourceList.vue @@ -18,7 +18,7 @@ type="danger" :icon="Delete" @click="deleteSelectSources" - :disabled="sourceSelect.length === 0" + :disabled="sourceUrlSelect.length === 0" >删除 清空 - + { return /bookSource/.test(window.location.href); }); +const sourceSelect = computed(() => { + let temp = sourceUrlSelect.value, + selectUrlsLength = temp.length; + if (selectUrlsLength == 0) return []; + let searchKey = "sourceUrl"; + if (isBookSource.value) searchKey = "bookSourceUrl"; + return sources.value.filter((source) => { + let searchIndex = temp.indexOf(source[searchKey]); + if (searchIndex > -1) { + temp.splice(searchIndex, 1); + return true; + } + return false; + }); +}); const deleteSelectSources = () => { API.deleteSource(sourceSelect.value).then(({ data }) => { if (!data.isSuccess) return ElMessage.error(data.errorMsg); store.deleteSources(sourceSelect.value); - sourceSelect.value = []; + sourceUrlSelect.value = []; }); }; const clearAllSources = () => { store.clearAllSource(); - sourceSelect.value = []; + sourceUrlSelect.value = []; }; //筛选源 const sourcesFiltered = computed(() => { @@ -104,7 +119,7 @@ const importSourceFile = () => { const outExport = () => { const exportFile = document.createElement("a"); let sources = - sourceSelect.value.length === 0 + sourceUrlSelect.value.length === 0 ? sourcesFiltered.value : sourceSelect.value, sourceType = isBookSource.value ? "BookSource" : "RssSource"; @@ -131,7 +146,6 @@ const outExport = () => { #source-list { margin-top: 6px; height: calc(100vh - 112px - 7px); - :deep(.el-checkbox) { margin-bottom: 4px; width: 100%;