diff --git a/dashboard/src/i18n/locales/en-US/features/extension.json b/dashboard/src/i18n/locales/en-US/features/extension.json index 8184dcce4f..dbaa9ff1a9 100644 --- a/dashboard/src/i18n/locales/en-US/features/extension.json +++ b/dashboard/src/i18n/locales/en-US/features/extension.json @@ -185,6 +185,7 @@ "installTime": "Last Modified", "name": "Name", "stars": "Stars", + "downloads": "Downloads", "author": "Author", "updated": "Last Updated", "updateStatus": "Update Status", diff --git a/dashboard/src/i18n/locales/ru-RU/features/extension.json b/dashboard/src/i18n/locales/ru-RU/features/extension.json index b4ed54f3e8..4f684d2966 100644 --- a/dashboard/src/i18n/locales/ru-RU/features/extension.json +++ b/dashboard/src/i18n/locales/ru-RU/features/extension.json @@ -184,6 +184,7 @@ "installTime": "Дате установки", "name": "Имени", "stars": "Звездам", + "downloads": "Количеству скачиваний", "author": "Автору", "updated": "Дате обновления", "updateStatus": "Статусу обновления", diff --git a/dashboard/src/i18n/locales/zh-CN/features/extension.json b/dashboard/src/i18n/locales/zh-CN/features/extension.json index d7afc3971c..10f2ac06aa 100644 --- a/dashboard/src/i18n/locales/zh-CN/features/extension.json +++ b/dashboard/src/i18n/locales/zh-CN/features/extension.json @@ -185,6 +185,7 @@ "installTime": "最后修改时间", "name": "名称", "stars": "Star数", + "downloads": "下载量", "author": "作者名", "updated": "更新时间", "updateStatus": "更新状态", diff --git a/dashboard/src/views/extension/MarketPluginsTab.vue b/dashboard/src/views/extension/MarketPluginsTab.vue index 0bc8750e80..96eba7c26b 100644 --- a/dashboard/src/views/extension/MarketPluginsTab.vue +++ b/dashboard/src/views/extension/MarketPluginsTab.vue @@ -162,6 +162,7 @@ const currentSourceName = computed(() => { const marketSortItems = computed(() => [ { title: tm("sort.default"), value: "default" }, { title: tm("sort.stars"), value: "stars" }, + { title: tm("sort.downloads"), value: "downloads" }, { title: tm("sort.author"), value: "author" }, { title: tm("sort.updated"), value: "updated" }, ]); diff --git a/dashboard/src/views/extension/useExtensionPage.js b/dashboard/src/views/extension/useExtensionPage.js index 7937bb2cb7..7c313cd71d 100644 --- a/dashboard/src/views/extension/useExtensionPage.js +++ b/dashboard/src/views/extension/useExtensionPage.js @@ -209,7 +209,7 @@ export const useExtensionPage = (initialTab = "installed") => { const marketSearch = ref(""); const debouncedMarketSearch = ref(""); const refreshingMarket = ref(false); - const sortBy = ref("default"); // default, stars, author, updated + const sortBy = ref("default"); // default, stars, downloads, author, updated const sortOrder = ref("desc"); // desc (降序) or asc (升序) const randomPluginNames = ref([]); const marketCategoryFilter = ref("all"); @@ -392,6 +392,15 @@ export const useExtensionPage = (initialTab = "installed") => { const starsB = b.stars ?? 0; return sortOrder.value === "desc" ? starsB - starsA : starsA - starsB; }); + } else if (sortBy.value === "downloads") { + // 按下载量排序 + plugins.sort((a, b) => { + const downloadsA = a.download_count ?? 0; + const downloadsB = b.download_count ?? 0; + return sortOrder.value === "desc" + ? downloadsB - downloadsA + : downloadsA - downloadsB; + }); } else if (sortBy.value === "author") { // 按作者名字典序排序 plugins.sort((a, b) => {