From d6c543a1cd5b6da49c06a389a24cc6f3e27e128c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= <2897217417@qq.com> Date: Wed, 12 Apr 2023 17:34:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=9B=AE=E5=BD=95/=E5=AD=90?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=87=AA=E5=8A=A8=E6=89=93=E5=BC=80=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7sidebar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Wiki/components/sidebar/index.jsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/forge/Wiki/components/sidebar/index.jsx b/src/forge/Wiki/components/sidebar/index.jsx index 36fd2846e..1ec88130b 100644 --- a/src/forge/Wiki/components/sidebar/index.jsx +++ b/src/forge/Wiki/components/sidebar/index.jsx @@ -31,12 +31,12 @@ export default function Sidebar(props) { // 设置选中wiki setSelectedKey(defaultSelectedKeys); // 第一次渲染,默认打开选中的页面所处目录 - const keys = []; + const keys = expandedKeys || []; const list = defaultSelectedKeys[0].split('-'); list.map((item, index)=>{ keys.push(index > 0 ? `${keys[index-1]}-${item}` : item) }) - setExpandedKeys(keys); + setExpandedKeys(Array.from(new Set(keys))); } }, [defaultSelectedKeys]) @@ -319,15 +319,23 @@ export default function Sidebar(props) { } if(!isEditName){ // 新增目录:校验同级目录中是否有相同名称 - const {children, node, title, key} = visible; + const {children, key} = visible; const mList = children.filter(item=>!item.title.trim().startsWith('[[')).map(i=>i.title.trim()) if(mList.includes(`- ${menuName}`)){ setAddMenuError('不能与已有目录名称相同'); return; } const newList = menuList; + // 设置Tree 打开的目录 + const keys = expandedKeys || []; + const list = key.split('-'); + list.map((item, index)=>{ + keys.push(index > 0 ? `${keys[index-1]}-${item}` : item) + }) + keys.push(`${key}-${children.length}`); + setExpandedKeys(Array.from(new Set(keys))); addChildrenByKey(newList, key, menuName); - updateSidebar(treeToMd(newList), 3) + updateSidebar(treeToMd(newList), 3); }else{ // isEditName 1 编辑目录名称 2编辑页面名称 const titleToJudge = isEditName === 2 ? `[[${menuName}]]` : `- ${menuName}`;