Bladeren bron

fix(compiler): fix

shylock 2 jaren geleden
bovenliggende
commit
f9d7cfdce8
3 gewijzigde bestanden met toevoegingen van 34 en 60 verwijderingen
  1. 1 1
      config/routes.ts
  2. 30 0
      src/app.tsx
  3. 3 59
      src/pages/MenuManagement/index.tsx

+ 1 - 1
config/routes.ts

@@ -73,7 +73,7 @@
   },
   // 角色管理
   {
-    path: 'RoleManagement',
+    path: '/RoleManagement',
     name: '角色管理',
     icon: 'Appstore',
     component: './RoleManagement',

+ 30 - 0
src/app.tsx

@@ -7,6 +7,10 @@ import { history } from 'umi';
 import defaultSettings from '../config/defaultSettings';
 import { currentUser as queryCurrentUser } from './services/ant-design-pro/api';
 import { message } from 'antd';
+import type { MenuDataItem } from '@umijs/route-utils';
+import { queryMenu } from '@/services/menu';
+import Icon from '@ant-design/icons';
+import * as icons from '@ant-design/icons';
 
 const loginPath = '/user/login';
 
@@ -50,6 +54,19 @@ export async function getInitialState(): Promise<{
   };
 }
 
+/**
+ * 映射菜单对应的图标
+ * */
+const loopMenuItem = (menus: MenuDataItem[]): MenuDataItem[] =>
+  menus.map(({ icon, routes, ...item }) => {
+    console.log(icon, routes, item);
+    return {
+      ...item,
+      icon: icon && <Icon component={icons[icon]} />,
+      routes: routes && loopMenuItem(routes),
+    };
+  });
+
 // ProLayout 支持的api https://procomponents.ant.design/components/layout
 export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
   return {
@@ -66,6 +83,19 @@ export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) =
         history.push(loginPath);
       }
     },
+    menu: {
+      locale: false,
+      // 每当 initialState?.currentUser?.userid 发生修改时重新执行 request
+      params: {
+        userId: initialState,
+      },
+      request: async () => {
+        // initialState.currentUser 中包含了所有用户信息
+        const menuData = await queryMenu({ q: 'tree', query_all: 1 });
+        console.log('menuData=====', menuData.data.list);
+        return loopMenuItem(menuData.data.list);
+      },
+    },
     menuHeaderRender: undefined,
     // 自定义 403 页面
     // unAccessible: <div>unAccessible</div>,

+ 3 - 59
src/pages/MenuManagement/index.tsx

@@ -30,48 +30,21 @@ const MenuManagement: React.FC = () => {
   const [editData, setEditData] = useState(null);
   const [form] = Form.useForm();
   const [visible, setVisible] = useState(false);
-  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: any = {
-      q: 'page',
-      current: pagination.current,
-      pageSize: pagination.pageSize,
+      q: 'tree',
+      query_all: 1,
       ...searchData,
     };
     queryMenu(params).then((res) => {
       if (res && res.code === 0) {
-        const data: any = getTreeData(res.data.list);
-        setDataList(data);
-        setPagination(res.data.pagination);
+        setDataList(res.data.list);
         setLoading(false);
       }
     });
@@ -83,25 +56,6 @@ const MenuManagement: React.FC = () => {
     getList();
   }, []);
 
-  //  分页切换
-  const tableChange = (page: any) => {
-    setLoading(true);
-    const params = {
-      q: 'page',
-      current: page.current,
-      pageSize: page.pageSize,
-      ...searchData,
-    };
-    queryMenu(params).then((res) => {
-      if (res.code === 0) {
-        const data: any = getTreeData(res.data.list);
-        setDataList(data);
-        setPagination(res.data.pagination);
-        setLoading(false);
-      }
-    });
-  };
-
   useEffect(() => {
     getList();
   }, [searchData]);
@@ -250,14 +204,6 @@ const MenuManagement: React.FC = () => {
       ),
     },
   ];
-  const paginationProps = {
-    showSizeChanger: true,
-    showQuickJumper: true,
-    showTotal: (total: number) => {
-      return <span> 共 {total}条 </span>;
-    },
-    ...pagination,
-  };
   return (
     <PageContainer>
       <div>
@@ -287,9 +233,7 @@ const MenuManagement: React.FC = () => {
             columns={columns}
             dataSource={dataList}
             rowKey={(record) => record.record_id}
-            pagination={paginationProps}
             loading={loading}
-            onChange={tableChange}
           />
           {visible && <Edit visible={visible} editCallback={handleEdit} params={editData} />}
           {checkVisible && (