From 10b6d1f09cbfc0825f6bca342e3a70f2216faf08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= <2897217417@qq.com> Date: Thu, 20 Jul 2023 11:16:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=9B=AE=E5=BD=95=E5=B1=95?= =?UTF-8?q?=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Information/Pages/help.jsx | 5 +++-- src/forge/Wiki/utils.js | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/forge/Information/Pages/help.jsx b/src/forge/Information/Pages/help.jsx index bbcad47e7..5c3fc8d24 100644 --- a/src/forge/Information/Pages/help.jsx +++ b/src/forge/Information/Pages/help.jsx @@ -8,6 +8,7 @@ import { findFirstWiki, generateList, getParentKey, getWiki, parseSidebar, wikiP import RenderHtml from '../../../components/render-html'; import { Base64 } from 'js-base64'; import { getTocContent } from '../../../common/marked'; +import { splitAndCombine } from '../../Wiki/utils'; const { Search } = Input; const { DirectoryTree, TreeNode } = Tree; @@ -47,7 +48,7 @@ function ProjectSource(props) { // 默认打开第一个wiki const firstWiki = findFirstWiki(menuList); if(firstWiki){ - setExpandedKeys([getParentKey(firstWiki.key, menuList)+"", firstWiki.key+""]); + setExpandedKeys(splitAndCombine(firstWiki.key+"")); setWiki(firstWiki); } setFlattenedMenuList(generateList(menuList)); @@ -164,7 +165,7 @@ function ProjectSource(props) { return null; }).filter((item, i, self) => item && self.indexOf(item) === i); setSearchValue(va); - setExpandedKeys(expandedKeys); + setExpandedKeys(splitAndCombine(expandedKeys[0])); } else { setSearchValue(""); } diff --git a/src/forge/Wiki/utils.js b/src/forge/Wiki/utils.js index c04eca2de..8eede2e38 100644 --- a/src/forge/Wiki/utils.js +++ b/src/forge/Wiki/utils.js @@ -5,4 +5,20 @@ export function splicingTabs(count) { tabs += "\t"; } return tabs; +} + +// 输入:'2-2-2-1' 返回:['2', '2-2', '2-2-2', '2-2-2-1'] +export function splitAndCombine(str) { + if(!str) return [] + var parts = str.split('-'); + var result = parts.reduce(function(acc, curr) { + if (acc.length === 0) { + acc.push(curr); + } else { + var lastItem = acc[acc.length - 1]; + acc.push(lastItem + '-' + curr); + } + return acc; + }, []); + return result; } \ No newline at end of file