From 999a6e7c6ef59868e7503bdbf0283af2798de6c3 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 12 Apr 2025 09:30:17 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E7=AB=99=E7=82=B9=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/dialog/SearchBarDialog.vue | 90 ++++++------------- src/components/dialog/SearchSiteDialog.vue | 29 ++---- .../dialog/WorkflowActionsDialog.vue | 2 +- 3 files changed, 36 insertions(+), 85 deletions(-) diff --git a/src/components/dialog/SearchBarDialog.vue b/src/components/dialog/SearchBarDialog.vue index c01d9429..084f9abf 100644 --- a/src/components/dialog/SearchBarDialog.vue +++ b/src/components/dialog/SearchBarDialog.vue @@ -152,66 +152,32 @@ async function fetchSubscribes() { } } -// 保存用户站点选择到本地 -const saveUserSitePreferences = () => { - try { - localStorage.setItem('MP_SelectedSites', JSON.stringify(selectedSites.value)) - } catch (err) { - console.error('保存站点选择失败:', err) - } -} - -// 从本地或接口加载用户站点偏好设置 +// 从接口加载用户站点偏好设置 const loadUserSitePreferences = async () => { try { - // 先尝试从本地存储获取 - const storedSites = localStorage.getItem('MP_SelectedSites') - if (storedSites) { - selectedSites.value = JSON.parse(storedSites) - console.log('从本地加载站点选择:', selectedSites.value) - return - } - - // 如果本地没有,尝试从接口获取系统预设 const result = await api.get('system/setting/IndexerSites') if (result && result.data && result.data.value) { selectedSites.value = result.data.value - console.log('从系统预设加载站点选择:', selectedSites.value) return } } catch (err) { - console.error('加载站点选择失败:', err) + console.error(err) } } -// 获取站点分类信息 -const getSiteCategories = () => { - api - .get('site/') - .then(async (res: any) => { - if (res && Array.isArray(res)) { - allSites.value = res.filter((site: any) => site.is_active) || [] - // 加载用户站点选择 - await loadUserSitePreferences() - // 如果没有选择任何站点并且有可用站点,才默认选择全部 - if (selectedSites.value.length === 0 && allSites.value.length > 0) { - selectedSites.value = allSites.value.map((site: Site) => site.id) - } - } else if (res.data && Array.isArray(res.data)) { - allSites.value = res.data.filter((site: any) => site.is_active) || [] - // 加载用户站点选择 - await loadUserSitePreferences() - // 如果没有选择任何站点并且有可用站点,才默认选择全部 - if (selectedSites.value.length === 0 && allSites.value.length > 0) { - selectedSites.value = allSites.value.map((site: Site) => site.id) - } - } - console.log('站点数据:', allSites.value) - console.log('已选站点:', selectedSites.value) - }) - .catch(err => { - console.error('获取站点数据失败:', err) - }) +// 查询所有站点 +async function queryAllSites() { + try { + const data: Site[] = await api.get('site/') + // 过滤站点,只有启用的站点才显示 + allSites.value = data.filter(item => item.is_active) + // 如果没有选择任何站点并且有可用站点,才默认选择全部 + if (selectedSites.value.length === 0 && allSites.value.length > 0) { + selectedSites.value = allSites.value.map((site: Site) => site.id) + } + } catch (error) { + console.log(error) + } } // 打开站点选择对话框 @@ -235,19 +201,11 @@ function searchSites(sites: number[]) { searchTorrent() } -// 选择站点 -function chooseSitesDone(sites: number[]) { - chooseSiteDialog.value = false - selectedSites.value = sites -} - // 搜索资源 function searchTorrent() { if (!searchWord.value) return // 记录搜索词 saveRecentSearches(searchWord.value) - // 保存用户站点选择 - saveUserSitePreferences() // 跳转到搜索页面 router.push({ path: '/resource', @@ -335,7 +293,8 @@ onMounted(() => { fetchInstalledPlugins() fetchSubscribes() loadRecentSearches() - getSiteCategories() + loadUserSitePreferences() + if (superUser) queryAllSites() }) diff --git a/src/components/dialog/SearchSiteDialog.vue b/src/components/dialog/SearchSiteDialog.vue index 43a2e7df..66d0f124 100644 --- a/src/components/dialog/SearchSiteDialog.vue +++ b/src/components/dialog/SearchSiteDialog.vue @@ -8,14 +8,10 @@ const props = defineProps({ required: true, }, selected: Array as PropType, - savebtn: { - type: Boolean, - default: false, - }, }) // 定义事件 -const emit = defineEmits(['close', 'search', 'reload', 'save']) +const emit = defineEmits(['close', 'search', 'reload']) // 过滤词 const siteFilter = ref('') @@ -23,11 +19,14 @@ const siteFilter = ref('') // 已选择站点 const selectedSites = ref(props.selected || []) -watch(() => props.selected, value => { - if (selectedSites.value.length == 0 && value) { - selectedSites.value = value - } -}) +watch( + () => props.selected, + value => { + if (selectedSites.value.length == 0 && value) { + selectedSites.value = value + } + }, +) // 全选/全不选按钮文字 const checkAllText = computed(() => { @@ -171,16 +170,6 @@ const filteredSites = computed(() => { > 取消 - - 确定 - { - 编辑流程 - {{ workflow?.name }} + 编辑流程 - {{ workflow?.name }}