From b849d8b5264bafdb54e15a31a81710146cab72c5 Mon Sep 17 00:00:00 2001 From: whyour Date: Sat, 13 Nov 2021 17:42:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=84=9A=E6=9C=AC=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/log/index.tsx | 11 +++++++---- src/pages/script/index.tsx | 27 +++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/pages/log/index.tsx b/src/pages/log/index.tsx index e0ad75ec..260db798 100644 --- a/src/pages/log/index.tsx +++ b/src/pages/log/index.tsx @@ -16,7 +16,6 @@ function getFilterData(keyword: string, data: any) { data.forEach((item: any) => { if (item.title.toLocaleLowerCase().includes(keyword)) { tree.push(item); - expandedKeys.push(...item.children.map((x: any) => x.key)); } else { const children: any[] = []; (item.children || []).forEach((subItem: any) => { @@ -29,7 +28,7 @@ function getFilterData(keyword: string, data: any) { ...item, children, }); - expandedKeys.push(...children.map((x) => x.key)); + expandedKeys.push(item.key); } } }); @@ -47,6 +46,7 @@ const Log = ({ headerStyle, isPhone, theme }: any) => { const [loading, setLoading] = useState(false); const [height, setHeight] = useState(); const treeDom = useRef(); + const [expandedKeys, setExpandedKeys] = useState([]); const getLogs = () => { setLoading(true); @@ -100,8 +100,12 @@ const Log = ({ headerStyle, isPhone, theme }: any) => { const onSearch = useCallback( (e) => { const keyword = e.target.value; - const { tree } = getFilterData(keyword.toLocaleLowerCase(), data); + const { tree, expandedKeys } = getFilterData( + keyword.toLocaleLowerCase(), + data, + ); setFilterData(tree); + setExpandedKeys(expandedKeys); }, [data, setFilterData], ); @@ -127,7 +131,6 @@ const Log = ({ headerStyle, isPhone, theme }: any) => { treeData={data} placeholder="请选择日志文件" showSearch - key="value" onSelect={onSelect} />, ] diff --git a/src/pages/script/index.tsx b/src/pages/script/index.tsx index 7813f2ca..65951360 100644 --- a/src/pages/script/index.tsx +++ b/src/pages/script/index.tsx @@ -35,16 +35,31 @@ import EditScriptNameModal from './editNameModal'; const { Text } = Typography; function getFilterData(keyword: string, data: any) { + const expandedKeys: string[] = []; if (keyword) { const tree: any = []; data.forEach((item: any) => { if (item.title.toLocaleLowerCase().includes(keyword)) { tree.push(item); + } else { + const children: any[] = []; + (item.children || []).forEach((subItem: any) => { + if (subItem.title.toLocaleLowerCase().includes(keyword)) { + children.push(subItem); + } + }); + if (children.length > 0) { + tree.push({ + ...item, + children, + }); + expandedKeys.push(item.key); + } } }); - return { tree }; + return { tree, expandedKeys }; } - return { tree: data }; + return { tree: data, expandedKeys }; } const LangMap: any = { @@ -70,6 +85,7 @@ const Script = ({ headerStyle, isPhone, theme }: any) => { const editorRef = useRef(null); const [isAddFileModalVisible, setIsAddFileModalVisible] = useState(false); const [currentNode, setCurrentNode] = useState(); + const [expandedKeys, setExpandedKeys] = useState([]); const getScripts = () => { setLoading(true); @@ -132,7 +148,11 @@ const Script = ({ headerStyle, isPhone, theme }: any) => { (e) => { const keyword = e.target.value; setSearchValue(keyword); - const { tree } = getFilterData(keyword.toLocaleLowerCase(), data); + const { tree, expandedKeys } = getFilterData( + keyword.toLocaleLowerCase(), + data, + ); + setExpandedKeys(expandedKeys); setFilterData(tree); }, [data, setFilterData], @@ -323,7 +343,6 @@ const Script = ({ headerStyle, isPhone, theme }: any) => { treeData={data} placeholder="请选择脚本文件" showSearch - key="value" onSelect={onSelect} />,