From ac42fce39ba0eab7cf2268d7e8d0cbd78decd8ab Mon Sep 17 00:00:00 2001 From: AnxForever <130662349+AnxForever@users.noreply.github.com> Date: Thu, 18 Jun 2026 16:21:24 +0800 Subject: [PATCH 1/3] feat: add sort and batch operations to installed plugins page - Add sorting controls (name, author, updated time, update status) to installed plugins tab - Add multi-select mode with checkbox overlay on plugin cards - Add batch operations toolbar (enable, disable, uninstall) with confirmation dialog - System/reserved plugins are excluded from selection - Reuse existing PluginSortControl component for consistency with market tab - Add i18n keys for zh-CN and en-US --- .../src/components/shared/ExtensionCard.vue | 39 ++++ .../locales/en-US/features/extension.json | 21 +++ .../locales/zh-CN/features/extension.json | 21 +++ .../views/extension/InstalledPluginsTab.vue | 158 +++++++++++++++- .../src/views/extension/useExtensionPage.js | 174 ++++++++++++++++++ 5 files changed, 411 insertions(+), 2 deletions(-) diff --git a/dashboard/src/components/shared/ExtensionCard.vue b/dashboard/src/components/shared/ExtensionCard.vue index 8335c47a53..d67279c05f 100644 --- a/dashboard/src/components/shared/ExtensionCard.vue +++ b/dashboard/src/components/shared/ExtensionCard.vue @@ -25,6 +25,14 @@ const props = defineProps({ type: Boolean, default: false, }, + selectable: { + type: Boolean, + default: false, + }, + selected: { + type: Boolean, + default: false, + }, }); // 定义要发送到父组件的事件 @@ -39,6 +47,7 @@ const emit = defineEmits([ "view-changelog", "toggle-pin", "open-webui", + "toggle-select", ]); const hasPages = computed(() => { @@ -165,6 +174,22 @@ const openWebui = () => { : '#ffffffdd', }" > + +
+ +
+
@@ -416,6 +441,20 @@ const openWebui = () => {