From 1c62465c3e51a2776c030c9343bfe4b438cd2365 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 9 Jun 2025 20:35:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8F=92=E4=BB=B6=E5=B8=82?= =?UTF-8?q?=E5=9C=BA=E6=89=8B=E5=8A=A8=E5=88=B7=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/plugin/PluginCardListView.vue | 33 ++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/views/plugin/PluginCardListView.vue b/src/views/plugin/PluginCardListView.vue index 3eed49c6..8d0b114b 100644 --- a/src/views/plugin/PluginCardListView.vue +++ b/src/views/plugin/PluginCardListView.vue @@ -93,6 +93,9 @@ const SearchDialog = ref(false) // 插件市场设置窗口 const MarketSettingDialog = ref(false) +// 插件市场刷新状态 +const isMarketRefreshing = ref(false) + // 搜索关键字 const keyword = ref('') @@ -651,12 +654,13 @@ async function fetchInstalledPlugins() { } // 获取未安装插件列表数据 -async function fetchUninstalledPlugins() { +async function fetchUninstalledPlugins(force: boolean = false) { try { loading.value = true uninstalledList.value = await api.get('plugin/', { params: { state: 'market', + force: force, }, }) // 设置更新状态 @@ -762,6 +766,19 @@ function marketSettingDone() { refreshData() } +// 手动刷新插件市场 +async function refreshMarket() { + isMarketRefreshing.value = true + try { + await fetchUninstalledPlugins(true) + await getPluginStatistics() + } catch (error) { + console.error(error) + } finally { + isMarketRefreshing.value = false + } +} + // 处理掉github地址的前缀 function handleRepoUrl(url: string | undefined) { if (!url) return '' @@ -1336,6 +1353,16 @@ function onDragStartPlugin(evt: any) { +
- +