Sfoglia il codice sorgente

feat(场景联动): 优化设备弹出选择-选择全部

xieyonghong 3 anni fa
parent
commit
a2df668d93

+ 10 - 7
src/pages/rule-engine/Scene/Save/action/device/deviceModal.tsx

@@ -38,6 +38,7 @@ export default (props: DeviceModelProps) => {
   const [selectKeys, setSelectKeys] = useState<ChangeValueType[]>(props.value || []);
   const [selectKeys, setSelectKeys] = useState<ChangeValueType[]>(props.value || []);
   const [searchParam, setSearchParam] = useState({});
   const [searchParam, setSearchParam] = useState({});
   const [value, setValue] = useState<ChangeValueType[]>(props.value || []);
   const [value, setValue] = useState<ChangeValueType[]>(props.value || []);
+  const oldAllSelect = useRef<any[]>([]);
 
 
   useEffect(() => {
   useEffect(() => {
     setValue(props.value || []);
     setValue(props.value || []);
@@ -161,16 +162,18 @@ export default (props: DeviceModelProps) => {
                 setSelectKeys(newSelectKeys);
                 setSelectKeys(newSelectKeys);
               },
               },
               onSelectAll: (selected, selectedRows) => {
               onSelectAll: (selected, selectedRows) => {
-                console.log(selectedRows);
+                let newSelectKeys = [...selectKeys];
                 if (selected) {
                 if (selected) {
-                  setSelectKeys(
-                    selectedRows.map((selectedRow) => ({
-                      name: selectedRow.name,
-                      value: selectedRow.id,
-                    })),
-                  );
+                  oldAllSelect.current = selectedRows;
+                  selectedRows.forEach((item) => {
+                    newSelectKeys.push({ name: item.name, value: item.id });
+                  });
                 } else {
                 } else {
+                  newSelectKeys = newSelectKeys.filter((a) => {
+                    return !oldAllSelect.current.some((b) => b.id === a.value);
+                  });
                 }
                 }
+                setSelectKeys(newSelectKeys);
               },
               },
             }}
             }}
             request={(params) => queryDevice(params)}
             request={(params) => queryDevice(params)}