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