From df698a5e170bf6ec1798077e55dcceb1f6f224b0 Mon Sep 17 00:00:00 2001 From: wanyiwei Date: Mon, 25 Jul 2022 09:51:11 +0800 Subject: [PATCH] comment --- .../containers/footer/operation/index.js | 7 +- .../containers/footer/operation/left.js | 166 ++++++++++++++++++ .../containers/footer/operation/right.js | 9 + 3 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 web/client/src/sections/quanju/containers/footer/operation/left.js create mode 100644 web/client/src/sections/quanju/containers/footer/operation/right.js diff --git a/web/client/src/sections/quanju/containers/footer/operation/index.js b/web/client/src/sections/quanju/containers/footer/operation/index.js index c8b81208..4ebd1ab2 100644 --- a/web/client/src/sections/quanju/containers/footer/operation/index.js +++ b/web/client/src/sections/quanju/containers/footer/operation/index.js @@ -1,8 +1,13 @@ import React from 'react' +import Left from './left' +import Right from './right' const Operation = () => { return ( - <>运营 +
+ + +
) } export default Operation \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/operation/left.js b/web/client/src/sections/quanju/containers/footer/operation/left.js new file mode 100644 index 00000000..2fbfdc75 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/operation/left.js @@ -0,0 +1,166 @@ +import React, { useMemo, useState, useEffect } from 'react'; +import { Col, Row, Input, Tree } from 'antd' +import Module from '../../public/module' + +const { Search } = Input; +const x = 3; +const y = 2; +const z = 1; +const defaultData = []; + +const generateData = (_level, _preKey, _tns) => { + const preKey = _preKey || '0'; + const tns = _tns || defaultData; + const children = []; + + for (let i = 0; i < x; i++) { + const key = `${preKey}-${i}`; + tns.push({ + title: key, + key, + }); + + if (i < y) { + children.push(key); + } + } + + if (_level < 0) { + return tns; + } + + const level = _level - 1; + children.forEach((key, index) => { + tns[index].children = []; + return generateData(level, key, tns[index].children); + }); +}; + +generateData(z); +const dataList = []; + +const generateList = (data) => { + for (let i = 0; i < data.length; i++) { + const node = data[i]; + const { key } = node; + dataList.push({ + key, + title: key, + }); + + if (node.children) { + generateList(node.children); + } + } +}; + +generateList(defaultData); + +const getParentKey = (key, tree) => { + let parentKey; + + for (let i = 0; i < tree.length; i++) { + const node = tree[i]; + + if (node.children) { + if (node.children.some((item) => item.key === key)) { + parentKey = node.key; + } else if (getParentKey(key, node.children)) { + parentKey = getParentKey(key, node.children); + } + } + } + + return parentKey; +}; + +const Left = () => { + + useEffect(() => { + + }, []) + + const style = { height: "97%", marginTop: "3%" } + const [expandedKeys, setExpandedKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [autoExpandParent, setAutoExpandParent] = useState(true); + + const onExpand = (newExpandedKeys) => { + setExpandedKeys(newExpandedKeys); + setAutoExpandParent(false); + }; + + const onChange = (e) => { + const { value } = e.target; + const newExpandedKeys = dataList + .map((item) => { + if (item.title.indexOf(value) > -1) { + return getParentKey(item.key, defaultData); + } + + return null; + }) + .filter((item, i, self) => item && self.indexOf(item) === i); + setExpandedKeys(newExpandedKeys); + setSearchValue(value); + setAutoExpandParent(true); + }; + + const treeData = useMemo(() => { + const loop = (data) => + data.map((item) => { + const strTitle = item.title; + const index = strTitle.indexOf(searchValue); + const beforeStr = strTitle.substring(0, index); + const afterStr = strTitle.slice(index + searchValue.length); + const title = + index > -1 ? ( + + {beforeStr} + {searchValue} + {afterStr} + + ) : ( + {strTitle} + ); + + if (item.children) { + return { + title, + key: item.key, + children: loop(item.children), + }; + } + + return { + title, + key: item.key, + }; + }); + + return loop(defaultData); + }, [searchValue]); + return ( +
+ +
+ + +
+
+
+ ); +}; + +export default Left; \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/operation/right.js b/web/client/src/sections/quanju/containers/footer/operation/right.js new file mode 100644 index 00000000..fe140e63 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/operation/right.js @@ -0,0 +1,9 @@ +import React from 'react' + +const Right = () => { + return ( +
555555555 +
+ ) +} +export default Right \ No newline at end of file