Bläddra i källkod

添加选择清除按钮

visuddhinanda 3 år sedan
förälder
incheckning
2572fb888d
1 ändrade filer med 21 tillägg och 4 borttagningar
  1. 21 4
      dashboard/src/components/corpus/BookTree.tsx

+ 21 - 4
dashboard/src/components/corpus/BookTree.tsx

@@ -1,6 +1,6 @@
-import { useState, useEffect } from "react";
+import { useState, useEffect, Key } from "react";
 import { DownOutlined } from "@ant-design/icons";
 import { DownOutlined } from "@ant-design/icons";
-import { Space, Tree } from "antd";
+import { Button, Space, Tree } from "antd";
 import { Typography } from "antd";
 import { Typography } from "antd";
 
 
 import { get } from "../../request";
 import { get } from "../../request";
@@ -28,7 +28,7 @@ const Widget = ({
   onRootChange,
   onRootChange,
 }: IWidgetBookTree) => {
 }: IWidgetBookTree) => {
   const [treeData, setTreeData] = useState<ITocTree[]>([]);
   const [treeData, setTreeData] = useState<ITocTree[]>([]);
-
+  const [selectedKeys, setSelectedKeys] = useState<Key[]>([]);
   useEffect(() => {
   useEffect(() => {
     if (typeof root !== "undefined") fetchBookTree(root);
     if (typeof root !== "undefined") fetchBookTree(root);
   }, [root]);
   }, [root]);
@@ -76,15 +76,32 @@ const Widget = ({
           }}
           }}
         />
         />
       </Space>
       </Space>
+      <Button
+        onClick={() => {
+          setSelectedKeys([]);
+          if (typeof onChange !== "undefined") {
+            onChange([], []);
+          }
+        }}
+      >
+        清除选择
+      </Button>
       <Tree
       <Tree
+        selectedKeys={selectedKeys}
         multiple={multiSelect}
         multiple={multiSelect}
         showLine
         showLine
         switcherIcon={<DownOutlined />}
         switcherIcon={<DownOutlined />}
         defaultExpandedKeys={["sutta"]}
         defaultExpandedKeys={["sutta"]}
+        onCheck={(checkedKeysValue, info) => {
+          console.log("onCheck", checkedKeysValue);
+          //setCheckedKeys(checkedKeysValue);
+        }}
         onSelect={(selectedKeys, info) => {
         onSelect={(selectedKeys, info) => {
+          console.log("tree selected", selectedKeys, info);
+          setSelectedKeys(selectedKeys);
           //let aaa: NewTree = info.node;
           //let aaa: NewTree = info.node;
           const node: ITocTree = info.node as unknown as ITocTree;
           const node: ITocTree = info.node as unknown as ITocTree;
-          console.log("tree selected", selectedKeys, node.path);
+
           if (typeof onChange !== "undefined") {
           if (typeof onChange !== "undefined") {
             onChange(selectedKeys, node.path);
             onChange(selectedKeys, node.path);
           }
           }