Browse Source

Merge pull request #389 from ding113/dev

release v0.3.33
Ding 2 months ago
parent
commit
ef5a5a4430

+ 1 - 1
VERSION

@@ -1 +1 @@
-0.3.33
+0.3.32

+ 1 - 0
messages/en/settings.json

@@ -1463,6 +1463,7 @@
       "byName": "By Name (A-Z)",
       "byPriority": "By Priority (High-Low)",
       "byWeight": "By Weight (High-Low)",
+      "byActualPriority": "By Actual Selection Priority",
       "byCreatedAt": "By Created Time (New-Old)",
       "placeholder": "Sort Providers"
     },

+ 1 - 0
messages/ja/settings.json

@@ -1413,6 +1413,7 @@
       "byName": "名前順 (A-Z)",
       "byPriority": "優先度順 (高-低)",
       "byWeight": "重み順 (高-低)",
+      "byActualPriority": "実際の選択優先順",
       "byCreatedAt": "作成日時順 (新-旧)",
       "placeholder": "プロバイダーを並べ替え"
     },

+ 1 - 0
messages/ru/settings.json

@@ -1413,6 +1413,7 @@
       "byName": "По имени (A-Z)",
       "byPriority": "По приоритету (выс-низ)",
       "byWeight": "По весу (выс-низ)",
+      "byActualPriority": "По фактическому приоритету выбора",
       "byCreatedAt": "По дате создания (нов-стар)",
       "placeholder": "Сортировать провайдеров"
     },

+ 1 - 0
messages/zh-CN/settings.json

@@ -1099,6 +1099,7 @@
       "byName": "按名称 (A-Z)",
       "byPriority": "按优先级 (高-低)",
       "byWeight": "按权重 (高-低)",
+      "byActualPriority": "按实际选取顺序",
       "byCreatedAt": "按创建时间 (新-旧)",
       "placeholder": "排序供应商"
     },

+ 1 - 0
messages/zh-TW/settings.json

@@ -1419,6 +1419,7 @@
       "byName": "按名稱 (A-Z)",
       "byPriority": "按優先級 (高-低)",
       "byWeight": "按權重 (高-低)",
+      "byActualPriority": "按實際選取順序",
       "byCreatedAt": "按建立時間 (新-舊)",
       "placeholder": "排序供應商"
     },

+ 6 - 0
src/app/[locale]/settings/providers/_components/provider-manager.tsx

@@ -83,6 +83,12 @@ export function ProviderManager({
         case "weight":
           // 权重:数值越大越优先,降序排列
           return b.weight - a.weight;
+        case "actualPriority":
+          // 实际选取顺序:先按优先级升序,再按权重降序
+          if (a.priority !== b.priority) {
+            return a.priority - b.priority;
+          }
+          return b.weight - a.weight;
         case "createdAt": {
           const timeA = new Date(a.createdAt).getTime();
           const timeB = new Date(b.createdAt).getTime();

+ 2 - 1
src/app/[locale]/settings/providers/_components/provider-sort-dropdown.tsx

@@ -10,7 +10,7 @@ import {
   SelectValue,
 } from "@/components/ui/select";
 
-export type SortKey = "name" | "priority" | "weight" | "createdAt";
+export type SortKey = "name" | "priority" | "weight" | "createdAt" | "actualPriority";
 
 interface ProviderSortDropdownProps {
   value: SortKey;
@@ -30,6 +30,7 @@ export function ProviderSortDropdown({
     { value: "name", labelKey: "byName" },
     { value: "priority", labelKey: "byPriority" },
     { value: "weight", labelKey: "byWeight" },
+    { value: "actualPriority", labelKey: "byActualPriority" },
     { value: "createdAt", labelKey: "byCreatedAt" },
   ];