visuddhinanda пре 3 година
родитељ
комит
6d1b452c84
1 измењених фајлова са 22 додато и 3 уклоњено
  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;
   title: string;
   level: number;
+  children?: number;
 };
 
 var tocActivePath: TreeNodeData[] = [];
@@ -99,6 +100,7 @@ function treeToList(treeNode: TreeNodeData[]): ListNodeData[] {
       key: node.key,
       title: node.title,
       level: iTocTreeCurrLevel,
+      children: children,
     });
     if (children > 0) {
       iTocTreeCurrLevel++;
@@ -117,8 +119,15 @@ interface IWidgetEditableTree {
   onSelect?: Function;
   onSave?: Function;
 }
-const Widget = ({ treeData, onChange, onSelect }: IWidgetEditableTree) => {
+const Widget = ({
+  treeData,
+  onChange,
+  onSelect,
+  onSave,
+}: IWidgetEditableTree) => {
   const [gData, setGData] = useState<TreeNodeData[]>([]);
+  const [listTreeData, setListTreeData] = useState<ListNodeData[]>();
+
   const [keys, setKeys] = useState<Key>("");
   useEffect(() => {
     const data = tocGetTreeData(treeData);
@@ -197,7 +206,9 @@ const Widget = ({ treeData, onChange, onSelect }: IWidgetEditableTree) => {
     }
     setGData(data);
     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 icon={<SaveOutlined />} type="primary">
+        <Button
+          icon={<SaveOutlined />}
+          onClick={() => {
+            if (typeof onSave !== "undefined") {
+              onSave(listTreeData);
+            }
+          }}
+          type="primary"
+        >
           保存
         </Button>
       </Space>