From 1065973e072cc776ef312bab9e5b2e0767e1635b Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 9 Jun 2025 12:49:00 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=8F=92=E4=BB=B6=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E8=BF=90=E8=A1=8C=E4=B8=AD=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/locales/en-US.ts | 1 + src/locales/zh-CN.ts | 1 + src/locales/zh-TW.ts | 1 + src/views/plugin/PluginCardListView.vue | 39 ++++++++++++++++--------- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 12dd7bf3..585b2ed5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "2.5.3-1", + "version": "2.5.4", "private": true, "type": "module", "bin": "dist/service.js", diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index e39b707a..8b5f5fd8 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -2020,6 +2020,7 @@ export default { filterPlugins: 'Filter Plugins', name: 'Name', hasNewVersion: 'Has New Version', + running: 'Running', author: 'Author', label: 'Label', repository: 'Repository', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index ce82d0ef..68d501b1 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1998,6 +1998,7 @@ export default { filterPlugins: '过滤插件', name: '名称', hasNewVersion: '有新版本', + running: '运行中', author: '作者', label: '标签', repository: '仓库', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 07eb3542..e61023dc 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -2000,6 +2000,7 @@ export default { filterPlugins: '過濾插件', name: '名稱', hasNewVersion: '有新版本', + running: '運行中', author: '作者', label: '標籤', repository: '倉庫', diff --git a/src/views/plugin/PluginCardListView.vue b/src/views/plugin/PluginCardListView.vue index ee3d7b52..3eed49c6 100644 --- a/src/views/plugin/PluginCardListView.vue +++ b/src/views/plugin/PluginCardListView.vue @@ -147,6 +147,9 @@ const installedFilter = ref(null) // 有新版本过滤条件 const hasUpdateFilter = ref(false) +// 已启用过滤条件 +const enabledFilter = ref(false) + // 已安装插件过滤窗口 const filterInstalledPluginDialog = ref(false) @@ -191,9 +194,17 @@ const getFilteredFolderPlugins = (folderName: string) => { // 应用筛选条件 return folderPlugins.filter(plugin => { - if (!installedFilter.value && !hasUpdateFilter.value) return true - if (hasUpdateFilter.value) { - return plugin.has_update + if (!installedFilter.value && !hasUpdateFilter.value && !enabledFilter.value) return true + if (hasUpdateFilter.value && enabledFilter.value) { + return plugin.has_update && plugin.state + } + if (hasUpdateFilter.value) return plugin.has_update + if (enabledFilter.value) return plugin.state + if (installedFilter.value) { + return plugin.plugin_name?.toLowerCase().includes((installedFilter.value as string).toLowerCase()) + } + if (installedFilter.value) { + return plugin.plugin_name?.toLowerCase().includes((installedFilter.value as string).toLowerCase()) } if (installedFilter.value) { return plugin.plugin_name?.toLowerCase().includes((installedFilter.value as string).toLowerCase()) @@ -263,7 +274,7 @@ const displayedFolders = computed(() => { }) .filter(folder => { // 当有筛选条件时,只显示包含筛选后插件的文件夹 - if (installedFilter.value || hasUpdateFilter.value) { + if (installedFilter.value || hasUpdateFilter.value || enabledFilter.value) { return folder.pluginCount > 0 } return true @@ -278,9 +289,6 @@ function updateMixedSortList() { // 主列表:创建混合列表 const items: MixedSortItem[] = [] - // 创建统一的排序索引 - let globalOrder = 0 - // 始终使用全局排序配置来创建混合列表 const allItems: { type: 'folder' | 'plugin'; id: string; data: any; order: number }[] = [] @@ -330,7 +338,7 @@ function updateMixedSortList() { // 监听相关数据变化,更新混合排序列表 watch( - [displayedPlugins, displayedFolders, orderConfig, folderOrder, installedFilter, hasUpdateFilter], + [displayedPlugins, displayedFolders, orderConfig, folderOrder, installedFilter, hasUpdateFilter, enabledFilter], () => { // 只有在非拖拽状态下才更新 if (!isDraggingSortMode.value) { @@ -761,12 +769,14 @@ function handleRepoUrl(url: string | undefined) { } // 监测dataList变化或installedFilter、hasUpdateFilter变化时更新filteredDataList -watch([dataList, installedFilter, hasUpdateFilter], () => { +watch([dataList, installedFilter, hasUpdateFilter, enabledFilter], () => { filteredDataList.value = dataList.value.filter(item => { - if (!installedFilter.value && !hasUpdateFilter.value) return true - if (hasUpdateFilter.value) { - return item.has_update + if (!installedFilter.value && !hasUpdateFilter.value && !enabledFilter.value) return true + if (hasUpdateFilter.value && enabledFilter.value) { + return item.has_update && item.state } + if (hasUpdateFilter.value) return item.has_update + if (enabledFilter.value) return item.state if (installedFilter.value) { return item.plugin_name?.toLowerCase().includes((installedFilter.value as string).toLowerCase()) } @@ -1238,7 +1248,10 @@ function onDragStartPlugin(evt: any) { clearable /> - + + + +