Commit 8045b844 authored by 陈帅's avatar 陈帅

fix types error

parent 56a5bcf5
@import '~antd/lib/style/themes/default.less';
.globalFooter {
margin: 48px 0 24px 0;
padding: 0 16px;
text-align: center;
.links {
margin-bottom: 8px;
a {
color: @text-color-secondary;
transition: all 0.3s;
&:not(:last-child) {
margin-right: 40px;
}
&:hover {
color: @text-color;
}
}
}
.copyright {
color: @text-color-secondary;
font-size: @font-size-base;
}
}
import React from 'react';
import classNames from 'classnames';
import styles from './index.less';
export interface GlobalFooterProps {
links?: Array<{
key?: string;
title: React.ReactNode;
href: string;
blankTarget?: boolean;
}>;
copyright?: React.ReactNode;
style?: React.CSSProperties;
className?: string;
}
const GlobalFooter: React.SFC<GlobalFooterProps> = ({ className, links, copyright }) => {
const clsString = classNames(styles.globalFooter, className);
return (
<footer className={clsString}>
{links && (
<div className={styles.links}>
{links.map(link => (
<a
key={link.key}
title={link.key}
target={link.blankTarget ? '_blank' : '_self'}
href={link.href}
>
{link.title}
</a>
))}
</div>
)}
{copyright && <div className={styles.copyright}>{copyright}</div>}
</footer>
);
};
export default GlobalFooter;
---
order: 0
title: 全局搜索
---
通常放置在导航工具条右侧。(点击搜索图标预览效果)
````jsx
import HeaderSearch from 'ant-design-pro/lib/HeaderSearch';
ReactDOM.render(
<div
style={{
textAlign: 'right',
height: '64px',
lineHeight: '64px',
boxShadow: '0 1px 4px rgba(0,21,41,.12)',
padding: '0 32px',
width: '400px',
}}
>
<HeaderSearch
placeholder="站内搜索"
dataSource={['搜索提示一', '搜索提示二', '搜索提示三']}
onSearch={(value) => {
console.log('input', value); // eslint-disable-line
}}
onPressEnter={(value) => {
console.log('enter', value); // eslint-disable-line
}}
/>
</div>
, mountNode);
````
---
title: HeaderSearch
subtitle:
cols: 1
order: 8
---
Usually placed as an entry to the global search, placed on the right side of the navigation toolbar.
## API
参数 | 说明 | 类型 | 默认值
----|------|-----|------
placeholder | placeholder text | string | -
dataSource | current list of prompts | string[] | -
onSearch | Called when searching items. | function(value) | -
onChange | Called when select an option or input value change, or value of input is changed | function(value) | -
onSelect | Called when a option is selected. param is option's value and option instance. | function(value) | -
onPressEnter | Callback when pressing Enter | function(value) | -
onVisibleChange | Show or hide the callback of the text box | function(value) |-
defaultOpen | The input box is displayed for the first time. | boolean | false
open | The input box is displayed | boolean |false
\ No newline at end of file
---
title: HeaderSearch
subtitle: 顶部搜索框
cols: 1
order: 8
---
通常作为全局搜索的入口,放置在导航工具条右侧。
## API
参数 | 说明 | 类型 | 默认值
----|------|-----|------
placeholder | 占位文字 | string | -
dataSource | 当前提示内容列表 | string[] | -
onSearch | 搜索补全项的时候调用 | function(value) | -
onChange | 选中 option,或 input 的 value 变化时,调用此函数 | function(value) | -
onSelect | 被选中时调用,参数为选中项的 value 值 | function(value) | -
onPressEnter | 按下回车时的回调 | function(value) | -
onVisibleChange | 显示或隐藏文本框的回调 | function(value) |-
defaultOpen | 输入框首次显示是否显示 | boolean | false
open | 控制输入框是否显示 | boolean |false
\ No newline at end of file
import SelectLang from '@/components/SelectLang'; import SelectLang from '@/components/SelectLang';
import { MenuDataItem } from '@/components/SiderMenu'; import GlobalFooter from '@/components/GlobalFooter';
import { ConnectProps, ConnectState } from '@/models/connect'; import { ConnectProps, ConnectState } from '@/models/connect';
import getPageTitle from '@/utils/getPageTitle'; import getPageTitle from '@/utils/getPageTitle';
import { GlobalFooter } from 'ant-design-pro';
import { Icon } from 'antd'; import { Icon } from 'antd';
import { connect } from 'dva'; import { connect } from 'dva';
import React, { Component, Fragment } from 'react'; import React, { Component, Fragment } from 'react';
...@@ -11,6 +10,7 @@ import { formatMessage } from 'umi-plugin-locale'; ...@@ -11,6 +10,7 @@ import { formatMessage } from 'umi-plugin-locale';
import Link from 'umi/link'; import Link from 'umi/link';
import logo from '../assets/logo.svg'; import logo from '../assets/logo.svg';
import styles from './UserLayout.less'; import styles from './UserLayout.less';
import { MenuDataItem } from '@ant-design/pro-layout';
const links = [ const links = [
{ {
...@@ -79,6 +79,6 @@ class UserLayout extends Component<UserLayoutProps> { ...@@ -79,6 +79,6 @@ class UserLayout extends Component<UserLayoutProps> {
} }
export default connect(({ menu: menuModel }: ConnectState) => ({ export default connect(({ menu: menuModel }: ConnectState) => ({
menuData: menuModel.menuData, menuDaDocumentTitleta: menuModel.menuData,
breadcrumbNameMap: menuModel.breadcrumbNameMap, breadcrumbNameMap: menuModel.breadcrumbNameMap,
}))(UserLayout); }))(UserLayout);
...@@ -2,7 +2,7 @@ import { queryNotices } from '@/services/user'; ...@@ -2,7 +2,7 @@ import { queryNotices } from '@/services/user';
import { Subscription } from 'dva'; import { Subscription } from 'dva';
import { Reducer } from 'redux'; import { Reducer } from 'redux';
import { Effect } from './connect'; import { Effect } from './connect';
import { NoticeIconData } from 'ant-design-pro/lib/NoticeIcon/NoticeIconTab'; import { NoticeIconData } from '@/components/NoticeIcon';
export interface NoticeItem extends NoticeIconData { export interface NoticeItem extends NoticeIconData {
id: string; id: string;
...@@ -107,12 +107,14 @@ const GlobalModel: GlobalModelType = { ...@@ -107,12 +107,14 @@ const GlobalModel: GlobalModelType = {
}, },
saveNotices(state, { payload }) { saveNotices(state, { payload }) {
return { return {
collapsed: false,
...state, ...state,
notices: payload, notices: payload,
}; };
}, },
saveClearedNotices(state, { payload }) { saveClearedNotices(state, { payload }) {
return { return {
collapsed: false,
...state, ...state,
notices: state.notices.filter(item => item.type !== payload), notices: state.notices.filter(item => item.type !== payload),
}; };
......
import { MenuDataItem, Route } from '@/components/SiderMenu'; import { MenuDataItem } from '@ant-design/pro-layout';
import Authorized from '@/utils/Authorized'; import Authorized from '@/utils/Authorized';
import { Effect } from 'dva'; import { Effect } from 'dva';
import isEqual from 'lodash/isEqual'; import isEqual from 'lodash/isEqual';
...@@ -10,7 +10,7 @@ import defaultSettings from '../../config/defaultSettings'; ...@@ -10,7 +10,7 @@ import defaultSettings from '../../config/defaultSettings';
// Conversion router to menu. // Conversion router to menu.
function formatter( function formatter(
data: Route[], data: MenuDataItem[],
parentAuthority?: string[] | string, parentAuthority?: string[] | string,
parentName?: string, parentName?: string,
): MenuDataItem[] { ): MenuDataItem[] {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment