Procházet zdrojové kódy

feat: add new config "menu.enableLocale" (#3310)

* feat: add new config "layoutLocal"

* Use enableLayoutLocale instead of layoutLocale

* Use enableMenuLocale instead of enableMenuLocale

* use menu.disableLocal
陈帅 před 7 roky
rodič
revize
8ce6a73cf0
4 změnil soubory, kde provedl 22 přidání a 11 odebrání
  1. 1 1
      package.json
  2. 3 0
      src/defaultSettings.js
  3. 11 8
      src/layouts/BasicLayout.js
  4. 7 2
      src/models/menu.js

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "ant-design-pro",
-  "version": "2.2.0",
+  "version": "2.2.1",
   "description": "An out-of-box UI solution for enterprise applications",
   "private": true,
   "scripts": {

+ 3 - 0
src/defaultSettings.js

@@ -6,5 +6,8 @@ module.exports = {
   fixedHeader: false, // sticky header
   autoHideHeader: false, // auto hide header
   fixSiderbar: false, // sticky siderbar
+  menu: {
+    disableLocal: false,
+  },
   title: 'Ant Design Pro',
 };

+ 11 - 8
src/layouts/BasicLayout.js

@@ -17,7 +17,8 @@ import Context from './MenuContext';
 import Exception403 from '../pages/Exception/403';
 import PageLoading from '@/components/PageLoading';
 import SiderMenu from '@/components/SiderMenu';
-import { title } from '../defaultSettings';
+import { menu, title } from '../defaultSettings';
+
 import styles from './BasicLayout.less';
 
 // lazy load SettingDrawer
@@ -118,10 +119,12 @@ class BasicLayout extends React.PureComponent {
     if (!currRouterData) {
       return title;
     }
-    const pageName = formatMessage({
-      id: currRouterData.locale || currRouterData.name,
-      defaultMessage: currRouterData.name,
-    });
+    const pageName = menu.disableLocal
+      ? currRouterData.name
+      : formatMessage({
+          id: currRouterData.locale || currRouterData.name,
+          defaultMessage: currRouterData.name,
+        });
 
     return `${pageName} - ${title}`;
   };
@@ -220,11 +223,11 @@ class BasicLayout extends React.PureComponent {
   }
 }
 
-export default connect(({ global, setting, menu }) => ({
+export default connect(({ global, setting, menu: menuModel }) => ({
   collapsed: global.collapsed,
   layout: setting.layout,
-  menuData: menu.menuData,
-  breadcrumbNameMap: menu.breadcrumbNameMap,
+  menuData: menuModel.menuData,
+  breadcrumbNameMap: menuModel.breadcrumbNameMap,
   ...setting,
 }))(props => (
   <Media query="(max-width: 599px)">

+ 7 - 2
src/models/menu.js

@@ -2,6 +2,7 @@ import memoizeOne from 'memoize-one';
 import isEqual from 'lodash/isEqual';
 import { formatMessage } from 'umi/locale';
 import Authorized from '@/utils/Authorized';
+import { menu } from '../defaultSettings';
 
 const { check } = Authorized;
 
@@ -19,10 +20,14 @@ function formatter(data, parentAuthority, parentName) {
       } else {
         locale = `menu.${item.name}`;
       }
-
+      // if enableMenuLocale use item.name,
+      // close menu international
+      const name = menu.disableLocal
+        ? item.name
+        : formatMessage({ id: locale, defaultMessage: item.name });
       const result = {
         ...item,
-        name: formatMessage({ id: locale, defaultMessage: item.name }),
+        name,
         locale,
         authority: item.authority || parentAuthority,
       };