Просмотр исходного кода

Merge pull request #1262 from wans10/main

fix: 修复渠道界面模型选择下拉框模型重复显示
Calcium-Ion 8 месяцев назад
Родитель
Сommit
e85cc6acbe
1 измененных файлов с 21 добавлено и 12 удалено
  1. 21 12
      web/src/pages/Channel/EditChannel.js

+ 21 - 12
web/src/pages/Channel/EditChannel.js

@@ -298,18 +298,27 @@ const EditChannel = (props) => {
     }
   };
 
-  useEffect(() => {
-    let localModelOptions = [...originModelOptions];
-    inputs.models.forEach((model) => {
-      if (!localModelOptions.find((option) => option.label === model)) {
-        localModelOptions.push({
-          label: model,
-          value: model,
-        });
-      }
-    });
-    setModelOptions(localModelOptions);
-  }, [originModelOptions, inputs.models]);
+useEffect(() => {
+  // 使用 Map 来避免重复,以 value 为键
+  const modelMap = new Map();
+  
+  // 先添加原始模型选项
+  originModelOptions.forEach(option => {
+    modelMap.set(option.value, option);
+  });
+  
+  // 再添加当前选中的模型(如果不存在)
+  inputs.models.forEach(model => {
+    if (!modelMap.has(model)) {
+      modelMap.set(model, {
+        label: model,
+        value: model,
+      });
+    }
+  });
+  
+  setModelOptions(Array.from(modelMap.values()));
+}, [originModelOptions, inputs.models]);
 
   useEffect(() => {
     fetchModels().then();