Procházet zdrojové kódy

:sparkles:删除支持多选

visuddhinanda před 1 rokem
rodič
revize
b7feb752ba
1 změnil soubory, kde provedl 10 přidání a 2 odebrání
  1. 10 2
      dashboard/src/components/article/EditableTree.tsx

+ 10 - 2
dashboard/src/components/article/EditableTree.tsx

@@ -159,7 +159,7 @@ const EditableTreeWidget = ({
   onTitleClick,
   onTitleClick,
 }: IWidget) => {
 }: IWidget) => {
   const intl = useIntl();
   const intl = useIntl();
-
+  const [checkKeys, setCheckKeys] = useState<string[]>([]);
   const [gData, setGData] = useState<TreeNodeData[]>([]);
   const [gData, setGData] = useState<TreeNodeData[]>([]);
   const [listTreeData, setListTreeData] = useState<ListNodeData[]>();
   const [listTreeData, setListTreeData] = useState<ListNodeData[]>();
   const [keys, setKeys] = useState<Key>("");
   const [keys, setKeys] = useState<Key>("");
@@ -234,6 +234,11 @@ const EditableTreeWidget = ({
     setGData(data);
     setGData(data);
   }, [treeData]);
   }, [treeData]);
 
 
+  const onCheck: TreeProps["onCheck"] = (checkedKeys, info) => {
+    console.log("onCheck", checkedKeys, info);
+    setCheckKeys(checkedKeys as string[]);
+  };
+
   const onDragEnter: TreeProps["onDragEnter"] = (info) => {
   const onDragEnter: TreeProps["onDragEnter"] = (info) => {
     console.log(info);
     console.log(info);
     // expandedKeys 需要受控时设置
     // expandedKeys 需要受控时设置
@@ -343,10 +348,11 @@ const EditableTreeWidget = ({
         <Button
         <Button
           icon={<DeleteOutlined />}
           icon={<DeleteOutlined />}
           danger
           danger
+          disabled={checkKeys.length === 0}
           onClick={() => {
           onClick={() => {
             const delTree = (node: TreeNodeData[]): boolean => {
             const delTree = (node: TreeNodeData[]): boolean => {
               for (let index = 0; index < node.length; index++) {
               for (let index = 0; index < node.length; index++) {
-                if (node[index].key === keys) {
+                if (checkKeys.includes(node[index].key)) {
                   node.splice(index, 1);
                   node.splice(index, 1);
                   return true;
                   return true;
                 } else {
                 } else {
@@ -384,12 +390,14 @@ const EditableTreeWidget = ({
       <Divider></Divider>
       <Divider></Divider>
       <Tree
       <Tree
         showIcon
         showIcon
+        checkable
         rootClassName="draggable-tree"
         rootClassName="draggable-tree"
         draggable
         draggable
         blockNode
         blockNode
         selectable={false}
         selectable={false}
         onDragEnter={onDragEnter}
         onDragEnter={onDragEnter}
         onDrop={onDrop}
         onDrop={onDrop}
+        onCheck={onCheck}
         onSelect={(selectedKeys: Key[]) => {
         onSelect={(selectedKeys: Key[]) => {
           if (selectedKeys.length > 0) {
           if (selectedKeys.length > 0) {
             setKeys(selectedKeys[0]);
             setKeys(selectedKeys[0]);