src/components/index.md此文件在做清理工作时被删除,为便于阅读和更好利用既有设计,把他全部原有内容放在这里。
这里列举了 Pro 中所有用到的组件,这些组件不适合作为组件库,但是在业务中却真实需要。所以我们准备了这个文档,来指导大家是否需要使用这个组件。
Footer 页脚组件
这个组件自带了一些 Pro 的配置,你一般都需要改掉它的信息。
/*** background: '#f0f2f5'*/import React from 'react';import Footer from '@/components/Footer';export default () => <Footer />;
HeaderDropdown 头部下拉列表
HeaderDropdown 是 antd Dropdown 的封装,但是增加了移动端的特殊处理,用法也是相同的。
/*** background: '#f0f2f5'*/import { Button, Menu } from 'antd';import React from 'react';import HeaderDropdown from '@/components/HeaderDropdown';export default () => {const menuHeaderDropdown = (<Menu selectedKeys={[]}><Menu.Item key="center">个人中心</Menu.Item><Menu.Item key="settings">个人设置</Menu.Item><Menu.Divider /><Menu.Item key="logout">退出登录</Menu.Item></Menu>);return (<HeaderDropdown overlay={menuHeaderDropdown}><Button>hover 展示菜单</Button></HeaderDropdown>);};
HeaderSearch 头部搜索框
一个带补全数据的输入框,支持收起和展开 Input
/*** background: '#f0f2f5'*/import { Button, Menu } from 'antd';import React from 'react';import HeaderSearch from '@/components/HeaderSearch';export default () => {return (<HeaderSearchplaceholder="站内搜索"defaultValue="umi ui"options={[{ label: 'Ant Design Pro', value: 'Ant Design Pro' },{label: 'Ant Design',value: 'Ant Design',},{label: 'Pro Table',value: 'Pro Table',},{label: 'Pro Layout',value: 'Pro Layout',},]}onSearch={(value) => {console.log('input', value);}}/>);};
API
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value | 输入框的值 | ``string | - |
| onChange | 值修改后触发 | ``(value?: string) => void | - |
| onSearch | 查询后触发 | ``(value?: string) => void | - |
| options | 选项菜单的的列表 | ``{label,value}[] | - |
| defaultVisible | 输入框默认是否显示,只有第一次生效 | ``boolean | - |
| visible | 输入框是否显示 | ``boolean | - |
| onVisibleChange | 输入框显示隐藏的回调函数 | ``(visible: boolean) => void | - |
NoticeIcon 通知工具
通知工具提供一个展示多种通知信息的界面。
/*** background: '#f0f2f5'*/import { message } from 'antd';import React from 'react';import NoticeIcon from '@/components/NoticeIcon/NoticeIcon';export default () => {const list = [{id: '000000001',avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',title: '你收到了 14 份新周报',datetime: '2017-08-09',type: 'notification',},{id: '000000002',avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',title: '你推荐的 曲妮妮 已通过第三轮面试',datetime: '2017-08-08',type: 'notification',},];return (<NoticeIconcount={10}onItemClick={(item) => {message.info(`${item.title} 被点击了`);}}onClear={(title: string, key: string) => message.info('点击了清空更多')}loading={false}clearText="清空"viewMoreText="查看更多"onViewMore={() => message.info('点击了查看更多')}clearClose><NoticeIcon.TabtabKey="notification"count={2}list={list}title="通知"emptyText="你已查看所有通知"showViewMore/><NoticeIcon.TabtabKey="message"count={2}list={list}title="消息"emptyText="您已读完所有消息"showViewMore/><NoticeIcon.TabtabKey="event"title="待办"emptyText="你已完成所有待办"count={2}list={list}showViewMore/></NoticeIcon>);};
NoticeIcon API
| 参数 | 说明 | 类型 |
|---|---|---|
| count | 有多少未读通知 | number |
| bell | 铃铛的图表 | ReactNode |
| onClear | 点击清空数据按钮 | (tabName: string, tabKey: string) => void |
| onItemClick | 未读消息列被点击 | (item: API.NoticeIconData, tabProps: NoticeIconTabProps) => void |
| onViewMore | 查看更多的按钮点击 | (tabProps: NoticeIconTabProps, e: MouseEvent) => void |
| onTabChange | 通知 Tab 的切换 | (tabTile: string) => void; |
| popupVisible | 通知显示是否展示 | boolean |
| onPopupVisibleChange | 通知信息显示隐藏的回调函数 | (visible: boolean) => void |
| clearText | 清空按钮的文字 | string |
| viewMoreText | 查看更多的按钮文字 | string |
| clearClose | 展示清空按钮 | boolean |
| emptyImage | 列表为空时的兜底展示 | ReactNode |
NoticeIcon.Tab API
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| count | 有多少未读通知 | ``number | - |
| title | 通知 Tab 的标题 | ``ReactNode | - |
| showClear | 展示清除按钮 | ``boolean | ``true |
| showViewMore | 展示加载更 | ``boolean | ``true |
| tabKey | Tab 的唯一 key | ``string | - |
| onClick | 子项的单击事件 | ``(item: API.NoticeIconData) => void | - |
| onClear | 清楚按钮的点击 | ``()=>void | - |
| emptyText | 为空的时候测试 | ``()=>void | - |
| viewMoreText | 查看更多的按钮文字 | ``string | - |
| onViewMore | 查看更多的按钮点击 | ``( e: MouseEvent) => void | - |
| list | 通知信息的列表 | ``API.NoticeIconData | - |
NoticeIconData
export interface NoticeIconData {id: string;key: string;avatar: string;title: string;datetime: string;type: string;read?: boolean;description: string;clickClose?: boolean;extra: any;status: string;}
RightContent
RightContent 是以上几个组件的组合,同时新增了 plugins 的 SelectLang 插件。
<Space><HeaderSearchplaceholder="站内搜索"defaultValue="umi ui"options={[{ label: <a href="https://umijs.org/zh/guide/umi-ui.html">umi ui</a>, value: 'umi ui' },{label: <a href="next.ant.design">Ant Design</a>,value: 'Ant Design',},{label: <a href="https://protable.ant.design/">Pro Table</a>,value: 'Pro Table',},{label: <a href="https://prolayout.ant.design/">Pro Layout</a>,value: 'Pro Layout',},]}/><Tooltip title="使用文档"><spanclassName={styles.action}onClick={() => {window.location.href = 'https://pro.ant.design/docs/getting-started';}}><QuestionCircleOutlined /></span></Tooltip><Avatar />{REACT_APP_ENV && (<span><Tag color={ENVTagColor[REACT_APP_ENV]}>{REACT_APP_ENV}</Tag></span>)}<SelectLang className={styles.action} /></Space>
