Commit 5e8e57d8 authored by 武广's avatar 武广

feat: 添加地址组件

parent 2450732e
import React, { useState, useImperativeHandle, useRef, forwardRef, useEffect } from 'react'; import React, { useState, useImperativeHandle, useRef, forwardRef, useEffect } from 'react';
import { Checkbox } from 'antd'; import { Checkbox } from 'antd';
import { CaretRightOutlined, CaretDownOutlined } from '@ant-design/icons'; import { CaretRightOutlined, CaretDownOutlined, LoadingOutlined } from '@ant-design/icons';
import debounce from 'lodash/debounce';
import styles from './index.less'; import styles from './index.less';
const CheckboxGroup = Checkbox.Group;
const CustomTree = forwardRef((props, ref) => { const CustomTree = forwardRef((props, ref) => {
const [checked, setChecked] = useState(false); const { treeData } = props;
const [checkExpand, setCheckExpand] = useState(false);
const refNode = useRef(null); const refNode = useRef(null);
const onChange = e => { const onChange = () => {
console.log('props.treeData :>> ', props.treeData); props.onChange(treeData.key, !treeData.checked);
props.onChange(
{
key: props.treeData.key,
children: props.children,
},
!checked,
);
setChecked(!checked);
};
const onClose = () => {
setCheckExpand(false);
}; };
useImperativeHandle(ref, () => ({ const onVisible = debounce(e => {
onClose, e.stopPropagation();
})); props.onVisibleChildren(treeData.key, !treeData.visibleChildren, treeData.children);
}, 100);
// useEffect(() => { const renderIcon = () => {
// // console.log('props.hideChildren :>> ', props.hideChildren); if (treeData.children && treeData.isLoading) {
// // setCheckExpand(false); return <LoadingOutlined />;
// console.log('props.treeData :>> ', props.treeData); }
// }, []) if (treeData.isLeaf) {
return (
<div onClick={onVisible}>
{treeData.visibleChildren ? <CaretDownOutlined /> : <CaretRightOutlined />}
</div>
);
}
return <span />;
};
// treeData.children && treeData.isLoading ? (
// [<LoadingOutlined />]
// ) : treeData.isLeaf ? (
// [
// <div onClick={onVisible}>
// {treeData.visibleChildren ? <CaretDownOutlined /> : <CaretRightOutlined />}
// </div>,
// ]
// ) : (
// <span />
// );
return ( return (
<div className={styles['ccheck-wrapper']}>
<div className={styles['ccheck-box']} ref={refNode}> <div className={styles['ccheck-box']} ref={refNode}>
{props.children && ( <div className={styles['ccheck-box--expand']}>{renderIcon()}</div>
<div className={styles['ccheck-box--expand']} onClick={() => setCheckExpand(!checkExpand)}>
{checkExpand ? <CaretDownOutlined /> : <CaretRightOutlined />}
</div>
)}
<Checkbox <Checkbox
onChange={onChange} onChange={onChange}
indeterminate={ indeterminate={!treeData.checked && treeData.indeterminate}
!props.checked && props.treeData.value ? props.treeData.value.length > 0 : false checked={treeData.checked}
}
checked={props.checked}
> >
{props.label} {props.label}
{`${props.checked}`} {treeData.value.length > 0 ? `(${treeData.value.length})` : ''}
</Checkbox> </Checkbox>
{checkExpand && <div className={styles['ccheck-box--childrens']}>{props.children}</div>} {(treeData.visibleChildren && treeData.children && treeData.children.length && (
<div className={styles['ccheck-box--childrens']}>{props.children}</div>
)) ||
''}
</div>
</div> </div>
); );
}); });
......
/* eslint-disable no-unused-expressions */ /* eslint-disable no-unused-expressions */
import React, { useState, useLayoutEffect, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef, forwardRef } from 'react';
import { Row, Col } from 'antd'; import { Row, Col } from 'antd';
import { relativeTimeRounding } from 'moment';
import styles from './index.less'; import styles from './index.less';
import CTreeNode from './CTreeNode'; import CTreeNode from './CTreeNode';
import { deepClone } from '@/utils/utils'; import { deepClone } from '@/utils/utils';
const CustomTree = props => { const CustomTree = forwardRef(props => {
const [hideChildren, setHideChildern] = useState(false);
const refNode = useRef(); const refNode = useRef();
const [treeData, setTreeData] = useState([]); const [treeData, setTreeData] = useState([]);
// const updateTreeData = (list, obj, isChecked) => {
// let checked = false;
// list.forEach(node => {
// if (node.key === obj.key) {
// checked = true;
// if (obj.children) {
// node.value = isChecked ? obj.children.map(item => item.key) : [];
// } else {
// node.value = isChecked ? [obj.key] : []
// }
// } else if (node.children) {
// const res = updateTreeData(node.children, obj, isChecked)
// if (res) {
// node.value ? node.value.push(obj.key) : (node.value = [obj.key]);
// checked = true;
// }
// }
// });
// return checked;
// }
const updateChildren = (list, isChecked) => { const updateChildren = (list, isChecked) => {
list.forEach(item => { list.forEach(item => {
item.indeterminate = isChecked; item.indeterminate = isChecked;
item.checked = isChecked; item.checked = isChecked;
if (item.children) { if (item.children && item.children.length) {
item.value = isChecked ? item.children.map(c => c.key) : []; item.value = isChecked ? item.children.map(c => c.key) : [];
updateChildren(item.children, isChecked); updateChildren(item.children, isChecked);
} else { } else {
...@@ -43,133 +23,200 @@ const CustomTree = props => { ...@@ -43,133 +23,200 @@ const CustomTree = props => {
}); });
}; };
const updateTreeData = (list, obj, isChecked) => { const updateTreeData = list => {
const json = { list.forEach(node => {
checked: false, let cksel = false;
key: obj.key, let cklen = 0;
const value = [];
if (node.children && node.children.length) {
updateTreeData(node.children);
let indeterminate = false;
node.children.forEach(item => {
if (node.checked || item.checked) {
value.push(item.key);
}
item.indeterminate && (indeterminate = true);
});
cklen = value.length;
node.checked = cklen === node.children.length;
cksel = cklen === node.children.length || indeterminate;
}
node.indeterminate = cklen > 0 || cksel;
node.value = value;
});
}; };
let checked = false;
const changeChecked = (list, ckey, isChecked, pkey) => {
let key = '';
list.forEach(node => { list.forEach(node => {
if (node.key === obj.key) { if (node.key === ckey) {
json.checked = isChecked;
checked = isChecked;
if (node.children) {
node.value = isChecked ? node.children.map(item => item.key) : [];
updateChildren(node.children, isChecked);
} else {
node.value = isChecked ? [obj.key] : [];
node.checked = isChecked; node.checked = isChecked;
if (!isChecked) {
key = pkey;
}
node.children && node.children.length && updateChildren(node.children, isChecked);
} else if (node.children && node.children.length) {
if (changeChecked(node.children, ckey, isChecked, node.key) === node.key) {
node.checked = false;
key = pkey;
}
} }
} else if (node.children) {
json.checked = updateTreeData(node.children, obj, isChecked);
// console.log('json.key :>> ', json.key);
// if (json.checked) {
// node.value.push(json.key);
// json.key = node.key;
// } else {
// const index = node.value.indexOf(json.key);
// index > -1 && node.value.splice(index, 1);
// }
}
json.key = node.key;
}); });
return checked; return key;
}; };
// const changeChecked = (list, obj, isChecked) => { const onChange = (ckey, isChecked) => {
// list.forEach(node => {
// if (node.key === obj.key) {
// node.checked = isChecked;
// } else if (node.children) {
// changeChecked(node.children, obj, isChecked);
// }
// });
// }
const onChange = (obj, isChecked) => {
// console.log('obj1 :>> ', obj);
const datas = [...treeData]; const datas = [...treeData];
// changeChecked(datas, obj, isChecked) changeChecked(datas, ckey, isChecked);
updateTreeData(datas, obj, isChecked); updateTreeData(datas);
console.log('datas :>> ', datas);
setTreeData(datas); setTreeData(datas);
}; };
const getChecked = (parent, item) => { const updateVisibleChildren = (list, visible) => {
const res = list.forEach(item => {
parent.value && item.visibleChildren = false;
(parent.value.indexOf(item.key) > -1 || item.isLoading = false;
(item.value && item.value[0] === item.key) || if (item.children && item.children.length) {
(parent.children && parent.value.length === parent.children.length)); updateVisibleChildren(item.children, visible);
if (item.key === '0-0') { }
// console.log('item.value && item.value[0] === item.key :>> ', item.value && item.value[0] === item.key); });
// console.log('parent1, item2 :>> ', res, parent, item); };
}
// res === undefined && console.log('res :>> ', parent, item); const updateVisible = (list, ckey, visible, pkey) => {
return res; let key = '';
list.forEach(node => {
node.isLoading = false;
if (node.key === ckey) {
node.visibleChildren = visible;
key = pkey;
node.isLeaf = node.children.length > 0;
updateVisibleChildren(node.children, visible);
} else if (node.children && node.children.length) {
node.visibleChildren = false;
if (updateVisible(node.children, ckey, visible, node.key) === node.key) {
node.visibleChildren = true;
key = pkey;
} else {
node.visibleChildren = false;
}
}
});
return key;
};
const filterData = arr => {
const list = [];
arr.forEach(item => {
const checked = props.value.some(val => +val[props.valueKey || 'key'] === +item.addrId);
list.push({
label: item.addrName,
key: +item.addrId,
level: item.addrLevel,
value: [],
checked,
indeterminate: false,
children: [],
isLeaf: true,
isLoading: false,
// value: props.templateData.list.filter(item => item.)
});
});
return list;
};
const appendTreeData = (list, key, children) =>
list.map(node => {
if (node.key === key) {
return {
...node,
children: children.length ? children : undefined,
};
}
if (node.children) {
return {
...node,
children: appendTreeData(node.children, key, children),
};
}
return node;
});
const ChangeVal = (list, key, v, keyName) => {
list.forEach(node => {
if (node.key === key) {
node[keyName] = v;
} else if (node.children && node.children.length) {
ChangeVal(node.children, key, v);
}
});
};
const onVisibleChildren = async (ckey, visible, children) => {
let arr = [...treeData];
if (children && !children.length && typeof props.loadData === 'function') {
ChangeVal(arr, ckey, true, 'isLoading');
setTreeData(arr);
const res = await props.loadData({ key: ckey, children });
if (res && res.length) {
arr = appendTreeData(arr, ckey, filterData(res));
}
}
updateVisible(arr, ckey, visible);
setTreeData(arr);
}; };
const renderTreeNodes = (data, parent) => const renderTreeNodes = data =>
data && data &&
data.map(item => { data.map(item => (
if (item.children) {
return (
<CTreeNode <CTreeNode
ref={refNode} ref={refNode}
label={item.title} label={item.label}
onChange={onChange} onChange={onChange}
checked={getChecked(parent, item)} onVisibleChildren={onVisibleChildren}
key={item.key} key={item.key}
treeData={item} treeData={item}
> >
{renderTreeNodes(item.children, item)} {(item.children && item.children.length && renderTreeNodes(item.children, item)) || ''}
</CTreeNode> </CTreeNode>
); ));
}
return (
<CTreeNode
ref={refNode}
label={item.title}
onChange={onChange}
checked={getChecked(parent, item)}
key={item.key}
treeData={item}
/>
);
});
const handleMouseUp = e => { const handleMouseUp = e => {
const isCur = e.path.some(item => item.id === 'my-custom-tree-box'); const isCur = e.path.some(item => item.id === 'my-custom-tree-box');
if (isCur) { if (!isCur) {
console.log('20001112 :>> ', 20001112); onVisibleChildren('', false);
} else {
console.log('3333 :>> ', 3333);
refNode.current.onClose();
} }
}; };
useEffect(() => { const initTreeData = (arr = [], level) =>
window.addEventListener('mouseup', handleMouseUp, false); arr.map(item => {
return () => { const json = {
window.removeEventListener('mouseup', handleMouseUp, false); value: item.value || [],
level,
visibleChildren: false,
checked: props.value.some(val => val[props.valueKey || 'key'] === item.key),
indeterminate: false,
label: item[props.labelName || 'label'],
key: item[props.keyName || 'key'],
isLeaf: true,
isLoading: false,
}; };
}, []);
const deepCloneArr = (arr = []) => {
// console.log('arr :>> ', arr);
arr.forEach(item => {
item.value = [];
if (item.children) { if (item.children) {
deepCloneArr(item.children); json.children = initTreeData(item.children, level + 1);
} }
return json;
}); });
};
useEffect(() => { useEffect(() => {
const arr = deepClone(props.treeData || []); const arr = initTreeData(props.treeData, 1);
deepCloneArr(arr);
setTreeData(arr); setTreeData(arr);
}, [props.treeData]); }, [props.value, props.treeData]);
useEffect(() => {
window.addEventListener('mouseup', handleMouseUp);
return () => {
window.removeEventListener('mouseup', handleMouseUp);
};
}, [treeData]);
return ( return (
<div className={styles['tree-box']} id="my-custom-tree-box"> <div className={styles['tree-box']} id="my-custom-tree-box">
...@@ -179,20 +226,27 @@ const CustomTree = props => { ...@@ -179,20 +226,27 @@ const CustomTree = props => {
<Col span={7}> <Col span={7}>
<CTreeNode <CTreeNode
ref={refNode} ref={refNode}
label={item.title} label={item.label}
onChange={onChange} onChange={onChange}
onVisibleChildren={onVisibleChildren}
key={item.key} key={item.key}
checked={getChecked(item, item)}
treeData={item} treeData={item}
> >
{item.children && renderTreeNodes(item.children, item)} {(item.children && item.children.length && (
<div className={styles['tree-children-box']}>
<div className={styles['tree-children-wrapper']}>
{renderTreeNodes(item.children, item) || ''}
</div>
</div>
)) ||
''}
</CTreeNode> </CTreeNode>
</Col> </Col>
))} ))}
</Row> </Row>
</div> </div>
); );
}; });
CustomTree.CTreeNode = CTreeNode; CustomTree.CTreeNode = CTreeNode;
export default CustomTree; export default CustomTree;
...@@ -30,3 +30,17 @@ ...@@ -30,3 +30,17 @@
} }
} }
} }
// .tree-children-box {
// position: absolute;
// left: 100%;
// z-index: 2;
// background-color: #fff;
// }
// .tree-children-wrapper {
// position: relative;
// background-color: #fff;
// box-shadow: 0 0 3px #ccc;
// }
// .ccheck-wrapper {
// position: relative;
// }
import React, { useRef, useState } from 'react';
import { Row, Col, Tree } from 'antd';
import { treeDataList } from '../data';
import CustomTree from '@/components/CustomTree';
const { TreeNode } = Tree;
const { CTreeNode } = CustomTree;
const CheckboxList = props => {
const [expandedKeys, setExpandedKeys] = useState([]);
const [treeData, setTreeData] = useState(treeDataList);
const refTreeNode = useRef();
const renderTreeNodes = data =>
data.map(item => {
if (item.children) {
return (
<CTreeNode ref={refTreeNode} label={item.title} key={item.key} dataRef={item}>
{renderTreeNodes(item.children)}
</CTreeNode>
);
}
return <CTreeNode ref={refTreeNode} key={item.key} label={item.title} {...item} />;
});
const updateTreeData = (list, key, children) =>
list.map(node => {
if (node.key === key) {
return {
...node,
children,
};
}
if (node.children) {
return {
...node,
children: updateTreeData(node.children, key, children),
};
}
return node;
});
const onExpand = expandedKeysValue => {
console.log('onExpand', expandedKeysValue);
setExpandedKeys(expandedKeysValue);
};
const onLoadData = ({ key, children }) =>
new Promise(resolve => {
if (children) {
resolve();
return;
}
setTimeout(() => {
setTreeData(origin =>
updateTreeData(origin, key, [
{ title: 'Child Node', key: `${key}-0` },
{ title: 'Child Node', key: `${key}-1` },
]),
);
resolve();
}, 1000);
});
return (
// <CustomTree>
// <Row justify="space-between">
// {treeData && treeData.length && treeData.map(item =>
// <Col span={7}>
// <CTreeNode treeData={item} ref={refTreeNode} label={item.title}>
// {item.children && renderTreeNodes(item.children)}
// </CTreeNode>
// </Col>,
// )}
// </Row>
// </CustomTree>
<CustomTree treeData={treeData} />
);
};
export default CheckboxList;
...@@ -5,7 +5,7 @@ import React, { useState, useEffect } from 'react'; ...@@ -5,7 +5,7 @@ import React, { useState, useEffect } from 'react';
import { el } from 'date-fns/locale'; import { el } from 'date-fns/locale';
import { areaList, getAddTemplate, forbiddenAddress } from '../services'; import { areaList, getAddTemplate, forbiddenAddress } from '../services';
import { treeDataList } from '../data'; import { treeDataList } from '../data';
import CheckboxList from './CheckboxList'; import CustomTree from '@/components/CustomTree';
const { Option } = Select; const { Option } = Select;
const { TreeNode } = Tree; const { TreeNode } = Tree;
...@@ -20,7 +20,7 @@ const AddAreaModal = props => { ...@@ -20,7 +20,7 @@ const AddAreaModal = props => {
const [selectedList, setSelectedList] = useState([]); const [selectedList, setSelectedList] = useState([]);
const [selected, setSelect] = useState([]); const [selected, setSelect] = useState([]);
const [expandedKeys, setExpandedKeys] = useState([]); const [expandedKeys, setExpandedKeys] = useState([]);
const [treeData, setTreeData] = useState(treeDataList); const [treeData, setTreeData] = useState([]);
const formItemLayout = { const formItemLayout = {
labelCol: { labelCol: {
...@@ -30,15 +30,19 @@ const AddAreaModal = props => { ...@@ -30,15 +30,19 @@ const AddAreaModal = props => {
span: 16, span: 16,
}, },
}; };
const loadProvice = async () => {
const data = await areaList(); const filterData = arr =>
if (data && data.length) { arr.map(item => ({
const arr = data.map(item => ({ label: item.addrName,
title: item.addrName, key: Number(item.addrId),
key: item.addrId,
level: item.addrLevel, level: item.addrLevel,
children: [], children: [],
// value: props.templateData.list.filter(item => item.)
})); }));
const loadProvice = async () => {
const data = await areaList();
if (data && data.length) {
const arr = filterData(data);
setTreeData(arr); setTreeData(arr);
} }
}; };
...@@ -89,27 +93,27 @@ const AddAreaModal = props => { ...@@ -89,27 +93,27 @@ const AddAreaModal = props => {
}); });
}; };
// 判断是否重复 // 判断是否重复
const getChilds = select => { // const getChilds = select => {
const reslutData = selectedList.filter( // const reslutData = selectedList.filter(
item => // item =>
!select.addressName.includes(item.addressName) && // !select.addressName.includes(item.addressName) &&
!item.addressName.includes(select.addressName), // !item.addressName.includes(select.addressName),
); // );
reslutData.push(select); // reslutData.push(select);
return reslutData; // return reslutData;
}; // };
const renderTreeNodes = data => // const renderTreeNodes = data =>
data.map(item => { // data.map(item => {
if (item.children) { // if (item.children) {
return ( // return (
<TreeNode title={item.name} key={item.key} dataRef={item}> // <TreeNode title={item.name} key={item.key} dataRef={item}>
{renderTreeNodes(item.children)} // {renderTreeNodes(item.children)}
</TreeNode> // </TreeNode>
); // );
} // }
return <TreeNode key={item.key} {...item} />; // return <TreeNode key={item.key} {...item} />;
}); // });
const updateTreeData = (list, key, children) => const updateTreeData = (list, key, children) =>
list.map(node => { list.map(node => {
if (node.key === key) { if (node.key === key) {
...@@ -126,36 +130,33 @@ const AddAreaModal = props => { ...@@ -126,36 +130,33 @@ const AddAreaModal = props => {
} }
return node; return node;
}); });
const onExpand = expandedKeysValue => { // const onExpand = expandedKeysValue => {
console.log('onExpand', expandedKeysValue); // console.log('onExpand', expandedKeysValue);
setExpandedKeys(expandedKeysValue); // setExpandedKeys(expandedKeysValue);
// };
const onLoadData = async ({ key, children }) => {
console.log('key :>> ', key);
const res = await areaList({ parentId: key });
return res || [];
// if (!res || !res.length) {
// return;
// }
// setTreeData(origin =>
// updateTreeData(origin, key, filterData(res)),
// );
}; };
const onLoadData = ({ key, children }) =>
new Promise(resolve => {
if (children) {
resolve();
return;
}
setTimeout(() => {
setTreeData(origin =>
updateTreeData(origin, key, [
{ title: 'Child Node', key: `${key}-0` },
{ title: 'Child Node', key: `${key}-1` },
]),
);
resolve();
}, 1000);
});
useEffect(() => { useEffect(() => {
// getAreaList(); // getAreaList();
if (props.templateData) { if (props.templateData) {
console.log('props.templateData :>> ', props.templateData);
setSelectedList(props.templateData.list); setSelectedList(props.templateData.list);
} }
}, [props.templateData]); }, [props.templateData]);
// useEffect(() => { useEffect(() => {
// props.visible && loadProvice(); props.visible && loadProvice();
// }, [props.visible]) }, [props.visible]);
return ( return (
<Modal <Modal
...@@ -173,7 +174,12 @@ const AddAreaModal = props => { ...@@ -173,7 +174,12 @@ const AddAreaModal = props => {
initialValue: templateData.templateName, initialValue: templateData.templateName,
})(<Input placeholder="请填写模板名称" maxLength={20} />)} })(<Input placeholder="请填写模板名称" maxLength={20} />)}
</Form.Item> </Form.Item>
<Form.Item label="限制配送区域">{getFieldDecorator('name')(<CheckboxList />)}</Form.Item> <Form.Item label="限制配送区域">
{getFieldDecorator('list', {
rules: [{ required: true, message: '请选择限制配送区域!' }],
initialValue: templateData.list,
})(<CustomTree treeData={treeData} loadData={onLoadData} valueKey="addressId" />)}
</Form.Item>
</Form> </Form>
</Modal> </Modal>
); );
......
...@@ -76,65 +76,65 @@ export const treeDataList = [ ...@@ -76,65 +76,65 @@ export const treeDataList = [
{ title: '0-0-0-2', key: '0-0-0-2', level: 3 }, { title: '0-0-0-2', key: '0-0-0-2', level: 3 },
], ],
}, },
// { {
// title: '0-0-1', title: '0-0-1',
// key: '0-0-1', key: '0-0-1',
// level: 2, level: 2,
// children: [ children: [
// { title: '0-0-1-0', key: '0-0-1-0', level: 3 }, { title: '0-0-1-0', key: '0-0-1-0', level: 3 },
// { title: '0-0-1-1', key: '0-0-1-1', level: 3 }, { title: '0-0-1-1', key: '0-0-1-1', level: 3 },
// { title: '0-0-1-2', key: '0-0-1-2', level: 3 }, { title: '0-0-1-2', key: '0-0-1-2', level: 3 },
// ], ],
// }, },
// { {
// title: '0-0-2', title: '0-0-2',
// key: '0-0-2', key: '0-0-2',
// level: 2, level: 2,
// }, },
],
},
{
title: '0-1',
key: '0-1',
level: 1,
children: [
{ title: '0-1-0-0', key: '0-1-0-0', level: 2 },
{ title: '0-1-0-1', key: '0-1-0-1', level: 2 },
{ title: '0-1-0-2', key: '0-1-0-2', level: 2 },
],
},
{
title: '0-2',
key: '0-2',
level: 1,
children: [
{
title: '0-2-0',
key: '0-2-0',
level: 2,
children: [
{ title: '0-2-0-0', key: '0-2-0-0', level: 3 },
{ title: '0-2-0-1', key: '0-2-0-1', level: 3 },
{ title: '0-2-0-2', key: '0-2-0-2', level: 3 },
],
},
{
title: '0-2-1',
key: '0-2-1',
level: 2,
children: [
{ title: '0-2-1-0', key: '0-2-1-0', level: 3 },
{ title: '0-2-1-1', key: '0-2-1-1', level: 3 },
{ title: '0-2-1-2', key: '0-2-1-2', level: 3 },
],
},
{
title: '0-2-2',
key: '0-2-2',
level: 2,
},
], ],
}, },
// {
// title: '0-1',
// key: '0-1',
// level: 1,
// children: [
// { title: '0-1-0-0', key: '0-1-0-0', level: 2 },
// { title: '0-1-0-1', key: '0-1-0-1', level: 2 },
// { title: '0-1-0-2', key: '0-1-0-2', level: 2 },
// ],
// },
// {
// title: '0-2',
// key: '0-2',
// level: 1,
// children: [
// {
// title: '0-2-0',
// key: '0-2-0',
// level: 2,
// children: [
// { title: '0-2-0-0', key: '0-2-0-0', level: 3 },
// { title: '0-2-0-1', key: '0-2-0-1', level: 3 },
// { title: '0-2-0-2', key: '0-2-0-2', level: 3 },
// ],
// },
// {
// title: '0-2-1',
// key: '0-2-1',
// level: 2,
// children: [
// { title: '0-2-1-0', key: '0-2-1-0', level: 3 },
// { title: '0-2-1-1', key: '0-2-1-1', level: 3 },
// { title: '0-2-1-2', key: '0-2-1-2', level: 3 },
// ],
// },
// {
// title: '0-2-2',
// key: '0-2-2',
// level: 2,
// },
// ],
// },
// { // {
// title: '0-2', // title: '0-2',
// key: '0-2', // key: '0-2',
......
...@@ -11,7 +11,7 @@ import { DISTRIBUTION_AREA } from '@/../config/permission.config'; ...@@ -11,7 +11,7 @@ import { DISTRIBUTION_AREA } from '@/../config/permission.config';
const TableList = props => { const TableList = props => {
const { permissions } = props; const { permissions } = props;
const canEditable = permissions[DISTRIBUTION_AREA.EDITABLE]; const canEditable = permissions[DISTRIBUTION_AREA.EDITABLE];
const [visible, setVisible] = useState(true); const [visible, setVisible] = useState(false);
const [templateData, settemplateData] = useState(''); const [templateData, settemplateData] = useState('');
const actionRef = useRef(); const actionRef = useRef();
const reload = () => { const reload = () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment