Преглед изворни кода

feat(merge): merge xyh

Next xyh
Lind пре 3 година
родитељ
комит
306dec56c2
1 измењених фајлова са 25 додато и 9 уклоњено
  1. 25 9
      src/app.tsx

+ 25 - 9
src/app.tsx

@@ -15,6 +15,7 @@ import SystemConst from '@/utils/const';
 import { service as MenuService } from '@/pages/system/Menu';
 import getRoutes, { extraRouteArr, getMenus, handleRoutes, saveMenusCache } from '@/utils/menu';
 import { AIcon } from '@/components';
+import React from 'react';
 
 const isDev = process.env.NODE_ENV === 'development';
 const loginPath = '/user/login';
@@ -198,6 +199,23 @@ export const request: RequestConfig = {
   requestInterceptors: [requestInterceptor],
 };
 
+const MenuItemIcon = (
+  menuItemProps: any,
+  defaultDom: React.ReactNode,
+  props: any,
+): React.ReactNode => {
+  if (defaultDom) {
+    // @ts-ignore
+    const menuItem = React.cloneElement(defaultDom, {
+      // @ts-ignore
+      children: [<AIcon type={menuItemProps.icon as string} />, defaultDom.props.children[1]],
+      ...props,
+    });
+    return menuItem;
+  }
+  return defaultDom;
+};
+
 // ProLayout 支持的api https://procomponents.ant.design/components/layout
 export const layout: RunTimeLayoutConfig = ({ initialState }) => {
   // console.log({ ...initialState });
@@ -224,15 +242,13 @@ export const layout: RunTimeLayoutConfig = ({ initialState }) => {
     menuDataRender: () => {
       return getMenus(extraRoutes);
     },
-    menuItemRender: (menuItemProps) => {
-      return (
-        <Link to={menuItemProps.path}>
-          <span className={`antd-pro-menu-item`}>
-            {menuItemProps.icon && <AIcon type={menuItemProps.icon as string} />}
-            <span className={`antd-pro-menu-item-title`}>{menuItemProps.name}</span>
-          </span>
-        </Link>
-      );
+    subMenuItemRender: MenuItemIcon,
+    menuItemRender: (menuItemProps, defaultDom) => {
+      return MenuItemIcon(menuItemProps, defaultDom, {
+        onClick: () => {
+          history.push(menuItemProps.path!);
+        },
+      });
     },
     links: isDev
       ? [