Просмотр исходного кода

Merge pull request #1657 from visuddhinanda/agile

修复目录无法展开
visuddhinanda 2 лет назад
Родитель
Сommit
4b5655ada9

+ 2 - 1
dashboard/src/components/article/PaliTextToc.tsx

@@ -46,9 +46,10 @@ const PaliTextTocWidget = ({ book, para, channel, onSelect }: IWidget) => {
 
 
   return (
   return (
     <TocTree
     <TocTree
+      randomKey={false}
       treeData={tocList}
       treeData={tocList}
-      expandedKeys={expandedKeys}
       selectedKeys={selectedKeys}
       selectedKeys={selectedKeys}
+      expandedKeys={expandedKeys}
       onSelect={(selectedKeys: Key[]) => {
       onSelect={(selectedKeys: Key[]) => {
         if (typeof onSelect !== "undefined") {
         if (typeof onSelect !== "undefined") {
           onSelect(selectedKeys);
           onSelect(selectedKeys);

+ 17 - 8
dashboard/src/components/article/TocTree.tsx

@@ -23,13 +23,14 @@ export interface TreeNodeData {
 
 
 function tocGetTreeData(
 function tocGetTreeData(
   listData: ListNodeData[],
   listData: ListNodeData[],
-  active = ""
+  active = "",
+  randomKey = true
 ): [TreeNodeData[] | undefined, IIdMap[]] {
 ): [TreeNodeData[] | undefined, IIdMap[]] {
   let treeData: TreeNodeData[] = [];
   let treeData: TreeNodeData[] = [];
   let tocActivePath: TreeNodeData[] = [];
   let tocActivePath: TreeNodeData[] = [];
   let treeParents = [];
   let treeParents = [];
   let rootNode: TreeNodeData = {
   let rootNode: TreeNodeData = {
-    key: randomString(),
+    key: randomKey ? randomString() : "0",
     id: "0",
     id: "0",
     title: "root",
     title: "root",
     level: 0,
     level: 0,
@@ -43,7 +44,7 @@ function tocGetTreeData(
   for (let index = 0; index < listData.length; index++) {
   for (let index = 0; index < listData.length; index++) {
     const element = listData[index];
     const element = listData[index];
     let newNode: TreeNodeData = {
     let newNode: TreeNodeData = {
-      key: randomString(),
+      key: randomKey ? randomString() : element.key,
       id: element.key,
       id: element.key,
       title: element.title,
       title: element.title,
       level: element.level,
       level: element.level,
@@ -104,11 +105,13 @@ interface IWidgetTocTree {
   treeData?: ListNodeData[];
   treeData?: ListNodeData[];
   expandedKeys?: Key[];
   expandedKeys?: Key[];
   selectedKeys?: Key[];
   selectedKeys?: Key[];
+  randomKey?: boolean;
   onSelect?: Function;
   onSelect?: Function;
 }
 }
 
 
 const TocTreeWidget = ({
 const TocTreeWidget = ({
   treeData,
   treeData,
+  randomKey = true,
   expandedKeys,
   expandedKeys,
   selectedKeys,
   selectedKeys,
   onSelect,
   onSelect,
@@ -120,23 +123,29 @@ const TocTreeWidget = ({
 
 
   useEffect(() => {
   useEffect(() => {
     if (treeData && treeData.length > 0) {
     if (treeData && treeData.length > 0) {
-      const [data, idMap] = tocGetTreeData(treeData);
+      const [data, idMap] = tocGetTreeData(treeData, "", randomKey);
       setTree(data);
       setTree(data);
       setKeyIdMap(idMap);
       setKeyIdMap(idMap);
-      console.log("create tree", treeData.length);
+      console.log(" tree data", data);
     } else {
     } else {
       setTree([]);
       setTree([]);
     }
     }
   }, [treeData]);
   }, [treeData]);
 
 
-  useEffect(() => setSelected(selectedKeys), [selectedKeys]);
-  useEffect(() => setExpanded(expandedKeys), [expandedKeys]);
+  useEffect(() => {
+    setSelected(selectedKeys);
+  }, [selectedKeys]);
+
+  useEffect(() => {
+    setExpanded(expandedKeys);
+  }, [expandedKeys]);
 
 
+  console.log("selected", selected);
   return (
   return (
     <Tree
     <Tree
       treeData={tree}
       treeData={tree}
-      expandedKeys={expanded}
       selectedKeys={selected}
       selectedKeys={selected}
+      expandedKeys={expanded}
       autoExpandParent
       autoExpandParent
       onExpand={(expandedKeys: Key[]) => {
       onExpand={(expandedKeys: Key[]) => {
         setExpanded(expandedKeys);
         setExpanded(expandedKeys);

+ 17 - 10
dashboard/src/components/studio/LeftSider.tsx

@@ -202,16 +202,23 @@ const LeftSiderWidget = ({ selectedKeys = "" }: IWidgetHeadBar) => {
 
 
   return (
   return (
     <Affix offsetTop={0}>
     <Affix offsetTop={0}>
-      <Sider width={200} breakpoint="lg" className="site-layout-background">
-        <Menu
-          theme="light"
-          onClick={onClick}
-          defaultSelectedKeys={[selectedKeys]}
-          defaultOpenKeys={["basic", "advance", "collaboration"]}
-          mode="inline"
-          items={items}
-        />
-      </Sider>
+      <div
+        style={{
+          height: "100vh",
+          overflowY: "scroll",
+        }}
+      >
+        <Sider width={200} breakpoint="lg" className="site-layout-background">
+          <Menu
+            theme="light"
+            onClick={onClick}
+            defaultSelectedKeys={[selectedKeys]}
+            defaultOpenKeys={["basic", "advance", "collaboration"]}
+            mode="inline"
+            items={items}
+          />
+        </Sider>
+      </div>
     </Affix>
     </Affix>
   );
   );
 };
 };

+ 15 - 6
dashboard/src/pages/studio/article/edit.tsx

@@ -63,12 +63,21 @@ const Widget = () => {
         }}
         }}
       >
       >
         <Affix offsetTop={0}>
         <Affix offsetTop={0}>
-          <Article
-            active={true}
-            type={"article"}
-            articleId={parent}
-            mode="read"
-          />
+          <div
+            style={{
+              height: "100vh",
+              overflowY: "scroll",
+              paddingLeft: "0.5em",
+              paddingRight: "0.5em",
+            }}
+          >
+            <Article
+              active={true}
+              type={"article"}
+              articleId={parent}
+              mode="read"
+            />
+          </div>
         </Affix>
         </Affix>
       </div>
       </div>
     </div>
     </div>