Browse Source

支持保存

visuddhinanda 3 years ago
parent
commit
6d1b452c84
1 changed files with 22 additions and 3 deletions
  1. 22 3
      dashboard/src/components/article/EditableTree.tsx

+ 22 - 3
dashboard/src/components/article/EditableTree.tsx

@@ -20,6 +20,7 @@ export type ListNodeData = {
   key: string;
   key: string;
   title: string;
   title: string;
   level: number;
   level: number;
+  children?: number;
 };
 };
 
 
 var tocActivePath: TreeNodeData[] = [];
 var tocActivePath: TreeNodeData[] = [];
@@ -99,6 +100,7 @@ function treeToList(treeNode: TreeNodeData[]): ListNodeData[] {
       key: node.key,
       key: node.key,
       title: node.title,
       title: node.title,
       level: iTocTreeCurrLevel,
       level: iTocTreeCurrLevel,
+      children: children,
     });
     });
     if (children > 0) {
     if (children > 0) {
       iTocTreeCurrLevel++;
       iTocTreeCurrLevel++;
@@ -117,8 +119,15 @@ interface IWidgetEditableTree {
   onSelect?: Function;
   onSelect?: Function;
   onSave?: Function;
   onSave?: Function;
 }
 }
-const Widget = ({ treeData, onChange, onSelect }: IWidgetEditableTree) => {
+const Widget = ({
+  treeData,
+  onChange,
+  onSelect,
+  onSave,
+}: IWidgetEditableTree) => {
   const [gData, setGData] = useState<TreeNodeData[]>([]);
   const [gData, setGData] = useState<TreeNodeData[]>([]);
+  const [listTreeData, setListTreeData] = useState<ListNodeData[]>();
+
   const [keys, setKeys] = useState<Key>("");
   const [keys, setKeys] = useState<Key>("");
   useEffect(() => {
   useEffect(() => {
     const data = tocGetTreeData(treeData);
     const data = tocGetTreeData(treeData);
@@ -197,7 +206,9 @@ const Widget = ({ treeData, onChange, onSelect }: IWidgetEditableTree) => {
     }
     }
     setGData(data);
     setGData(data);
     if (typeof onChange !== "undefined") {
     if (typeof onChange !== "undefined") {
-      onChange(treeToList(data));
+      const list = treeToList(data);
+      onChange(list);
+      setListTreeData(list);
     }
     }
   };
   };
 
 
@@ -232,7 +243,15 @@ const Widget = ({ treeData, onChange, onSelect }: IWidgetEditableTree) => {
         >
         >
           删除
           删除
         </Button>
         </Button>
-        <Button icon={<SaveOutlined />} type="primary">
+        <Button
+          icon={<SaveOutlined />}
+          onClick={() => {
+            if (typeof onSave !== "undefined") {
+              onSave(listTreeData);
+            }
+          }}
+          type="primary"
+        >
           保存
           保存
         </Button>
         </Button>
       </Space>
       </Space>