|
@@ -30,32 +30,54 @@ const MenuManagement: React.FC = () => {
|
|
|
const [editData, setEditData] = useState(null);
|
|
|
const [form] = Form.useForm();
|
|
|
const [visible, setVisible] = useState(false);
|
|
|
- const [pagination, setPagination] = useState({ total: 0, current: 1, pageSize: 10 });
|
|
|
+ const [pagination, setPagination] = useState({ current: 1, pageSize: 10 });
|
|
|
const [dataList, setDataList] = useState([]);
|
|
|
const [tag] = useState('web');
|
|
|
const [checkVisible, setCheckVisible] = useState(false);
|
|
|
const [checkData, setCheckData] = useState<object | null>({});
|
|
|
|
|
|
+ // 转换成树结构
|
|
|
+ const getTreeData = (data: any) => {
|
|
|
+ const temp = {};
|
|
|
+ const treeData = [];
|
|
|
+ data.forEach((el: any) => {
|
|
|
+ temp[el.record_id] = el;
|
|
|
+ });
|
|
|
+
|
|
|
+ for (const i in temp) {
|
|
|
+ if (temp[i].parent_id !== '') {
|
|
|
+ if (temp[temp[i].parent_id]) {
|
|
|
+ if (!('children' in temp[temp[i].parent_id])) {
|
|
|
+ temp[temp[i].parent_id].children = [];
|
|
|
+ }
|
|
|
+ temp[temp[i].parent_id].children.push(temp[i]);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ treeData.push(temp[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return treeData;
|
|
|
+ };
|
|
|
+
|
|
|
// 获取列表数据
|
|
|
const getList = () => {
|
|
|
- const params = {
|
|
|
+ const params: any = {
|
|
|
q: 'page',
|
|
|
current: pagination.current,
|
|
|
pageSize: pagination.pageSize,
|
|
|
...searchData,
|
|
|
};
|
|
|
queryMenu(params).then((res) => {
|
|
|
- if (res.code === 0) {
|
|
|
- res.data.list.forEach((el: { children: any[] }) => {
|
|
|
- el.children = [];
|
|
|
- });
|
|
|
- setDataList(res.data.list);
|
|
|
+ if (res && res.code === 0) {
|
|
|
+ const data: any = getTreeData(res.data.list);
|
|
|
+ setDataList(data);
|
|
|
setPagination(res.data.pagination);
|
|
|
setLoading(false);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+ // 初始化数据
|
|
|
useEffect(() => {
|
|
|
setLoading(true);
|
|
|
getList();
|
|
@@ -72,13 +94,18 @@ const MenuManagement: React.FC = () => {
|
|
|
};
|
|
|
queryMenu(params).then((res) => {
|
|
|
if (res.code === 0) {
|
|
|
- setDataList(res.data.list);
|
|
|
+ const data: any = getTreeData(res.data.list);
|
|
|
+ setDataList(data);
|
|
|
setPagination(res.data.pagination);
|
|
|
setLoading(false);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
+ getList();
|
|
|
+ }, [searchData]);
|
|
|
+
|
|
|
// 搜索
|
|
|
const onFinish = () => {
|
|
|
form.validateFields().then((data) => {
|
|
@@ -86,9 +113,6 @@ const MenuManagement: React.FC = () => {
|
|
|
setSearchData(data);
|
|
|
});
|
|
|
};
|
|
|
- useEffect(() => {
|
|
|
- getList();
|
|
|
- }, [searchData]);
|
|
|
// 重置
|
|
|
const onReset = () => {
|
|
|
form.resetFields();
|
|
@@ -144,27 +168,6 @@ const MenuManagement: React.FC = () => {
|
|
|
setCheckVisible(false);
|
|
|
};
|
|
|
|
|
|
- // const getChildrenList = () =>{
|
|
|
- // const params = {
|
|
|
- // q:'page',
|
|
|
- //
|
|
|
- // };
|
|
|
- // queryMenu(params).then(res =>{
|
|
|
- // if(res.code === 0){
|
|
|
- // setDataList(res.data.list);
|
|
|
- // setPagination(res.data.pagination);
|
|
|
- // setLoading(false);
|
|
|
- // }
|
|
|
- // })
|
|
|
- // }
|
|
|
-
|
|
|
- // 异步展开树table
|
|
|
- const areaExpandedRowsChange = (expanded: any, record: any) => {
|
|
|
- // 做一下限制,如果已经有数据,不再重复请求数据
|
|
|
- if (expanded && record.children && record.children.length >= 0) {
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
const columns: ColumnsType<DataType> = [
|
|
|
{
|
|
|
title: '序号',
|
|
@@ -287,9 +290,6 @@ const MenuManagement: React.FC = () => {
|
|
|
pagination={paginationProps}
|
|
|
loading={loading}
|
|
|
onChange={tableChange}
|
|
|
- expandable={{
|
|
|
- onExpand: areaExpandedRowsChange,
|
|
|
- }}
|
|
|
/>
|
|
|
{visible && <Edit visible={visible} editCallback={handleEdit} params={editData} />}
|
|
|
{checkVisible && (
|