Browse Source

use new local

pull/4236/head
陈帅 7 years ago
parent
commit
de0cf3da16
  1. 4
      config/defaultSettings.ts
  2. 2
      package.json
  3. 1
      src/components/Authorized/CheckPermissions.tsx
  4. 2
      src/components/SelectLang/index.tsx
  5. 20
      src/layouts/BasicLayout.tsx

4
config/defaultSettings.ts

@ -31,7 +31,7 @@ export interface DefaultSettings {
* sticky siderbar
*/
fixSiderbar: boolean;
menu: { disableLocal: boolean };
menu: { locale: boolean };
title: string;
pwa: boolean;
// Your custom iconfont Symbol script Url
@ -52,7 +52,7 @@ export default {
fixSiderbar: false,
colorWeak: false,
menu: {
disableLocal: false,
locale: true,
},
title: 'Ant Design Pro',
pwa: true,

2
package.json

@ -132,7 +132,7 @@
"umi": "^2.6.17",
"umi-plugin-ga": "^1.1.3",
"umi-plugin-pro-block": "^1.3.0",
"umi-plugin-react": "^1.7.2",
"umi-plugin-react": "^1.8.0-beta.1",
"umi-request": "^1.0.0"
},
"optionalDependencies": {

1
src/components/Authorized/CheckPermissions.tsx

@ -4,6 +4,7 @@ import PromiseRender from './PromiseRender';
import { CURRENT } from './renderAuthorize';
export type IAuthorityType =
| undefined
| string
| string[]
| Promise<any>

2
src/components/SelectLang/index.tsx

@ -12,7 +12,7 @@ interface SelectLangProps {
const SelectLang: React.FC<SelectLangProps> = props => {
const { className } = props;
const selectedLang = getLocale();
const changeLang = ({ key }: ClickParam) => setLocale(key);
const changeLang = ({ key }: ClickParam) => setLocale(key, false);
const locales = ['zh-CN', 'zh-TW', 'en-US', 'pt-BR'];
const languageLabels = {
'zh-CN': '简体中文',

20
src/layouts/BasicLayout.tsx

@ -3,6 +3,8 @@ import RightContent from '@/components/GlobalHeader/RightContent';
import { connect } from 'dva';
import React, { useState } from 'react';
import logo from '../assets/logo.svg';
import Authorized from '@/utils/Authorized';
import { formatMessage } from 'umi-plugin-react/locale';
import {
BasicLayout as BasicLayoutComponents,
BasicLayoutProps as BasicLayoutComponentsProps,
@ -21,6 +23,19 @@ export type BasicLayoutContext = { [K in 'location']: BasicLayoutProps[K] } & {
breadcrumbNameMap: { [path: string]: MenuDataItem };
};
/**
* default menuLocal
*/
const filterMenuData = (menuList: MenuDataItem[], locale: boolean) => {
return menuList.map(item => {
const localItem = {
...item,
name: item.locale && locale ? formatMessage({ id: item.locale }) : item.name,
};
return Authorized.check(item.authority, localItem, null) as MenuDataItem;
});
};
const BasicLayout: React.FC<BasicLayoutProps> = props => {
const { dispatch, children, settings } = props;
/**
@ -35,7 +50,9 @@ const BasicLayout: React.FC<BasicLayoutProps> = props => {
*/
const handleMenuCollapse = (payload: boolean) =>
dispatch!({ type: 'global/changeLayoutCollapsed', payload });
const {
menu: { locale },
} = settings;
return (
<>
<BasicLayoutComponents
@ -44,6 +61,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = props => {
menuItemRender={(menuItemProps, defaultDom) => {
return <Link to={menuItemProps.path}>{defaultDom}</Link>;
}}
filterMenuData={menuList => filterMenuData(menuList, locale)}
rightContentRender={rightProps => <RightContent {...rightProps} />}
{...props}
{...settings}

Loading…
Cancel
Save