src/components/index.md此文件在做清理工作时被删除,为便于阅读和更好利用既有设计,把他全部原有内容放在这里。

这里列举了 Pro 中所有用到的组件,这些组件不适合作为组件库,但是在业务中却真实需要。所以我们准备了这个文档,来指导大家是否需要使用这个组件。

Footer 页脚组件

这个组件自带了一些 Pro 的配置,你一般都需要改掉它的信息。

  1. /**
  2. * background: '#f0f2f5'
  3. */
  4. import React from 'react';
  5. import Footer from '@/components/Footer';
  6. export default () => <Footer />;

HeaderDropdown 头部下拉列表

HeaderDropdown 是 antd Dropdown 的封装,但是增加了移动端的特殊处理,用法也是相同的。

  1. /**
  2. * background: '#f0f2f5'
  3. */
  4. import { Button, Menu } from 'antd';
  5. import React from 'react';
  6. import HeaderDropdown from '@/components/HeaderDropdown';
  7. export default () => {
  8. const menuHeaderDropdown = (
  9. <Menu selectedKeys={[]}>
  10. <Menu.Item key="center">个人中心</Menu.Item>
  11. <Menu.Item key="settings">个人设置</Menu.Item>
  12. <Menu.Divider />
  13. <Menu.Item key="logout">退出登录</Menu.Item>
  14. </Menu>
  15. );
  16. return (
  17. <HeaderDropdown overlay={menuHeaderDropdown}>
  18. <Button>hover 展示菜单</Button>
  19. </HeaderDropdown>
  20. );
  21. };

HeaderSearch 头部搜索框

一个带补全数据的输入框,支持收起和展开 Input

  1. /**
  2. * background: '#f0f2f5'
  3. */
  4. import { Button, Menu } from 'antd';
  5. import React from 'react';
  6. import HeaderSearch from '@/components/HeaderSearch';
  7. export default () => {
  8. return (
  9. <HeaderSearch
  10. placeholder="站内搜索"
  11. defaultValue="umi ui"
  12. options={[
  13. { label: 'Ant Design Pro', value: 'Ant Design Pro' },
  14. {
  15. label: 'Ant Design',
  16. value: 'Ant Design',
  17. },
  18. {
  19. label: 'Pro Table',
  20. value: 'Pro Table',
  21. },
  22. {
  23. label: 'Pro Layout',
  24. value: 'Pro Layout',
  25. },
  26. ]}
  27. onSearch={(value) => {
  28. console.log('input', value);
  29. }}
  30. />
  31. );
  32. };

API

参数 说明 类型 默认值
value 输入框的值 ``string -
onChange 值修改后触发 ``(value?: string) => void -
onSearch 查询后触发 ``(value?: string) => void -
options 选项菜单的的列表 ``{label,value}[] -
defaultVisible 输入框默认是否显示,只有第一次生效 ``boolean -
visible 输入框是否显示 ``boolean -
onVisibleChange 输入框显示隐藏的回调函数 ``(visible: boolean) => void -

NoticeIcon 通知工具

通知工具提供一个展示多种通知信息的界面。

  1. /**
  2. * background: '#f0f2f5'
  3. */
  4. import { message } from 'antd';
  5. import React from 'react';
  6. import NoticeIcon from '@/components/NoticeIcon/NoticeIcon';
  7. export default () => {
  8. const list = [
  9. {
  10. id: '000000001',
  11. avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
  12. title: '你收到了 14 份新周报',
  13. datetime: '2017-08-09',
  14. type: 'notification',
  15. },
  16. {
  17. id: '000000002',
  18. avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',
  19. title: '你推荐的 曲妮妮 已通过第三轮面试',
  20. datetime: '2017-08-08',
  21. type: 'notification',
  22. },
  23. ];
  24. return (
  25. <NoticeIcon
  26. count={10}
  27. onItemClick={(item) => {
  28. message.info(`${item.title} 被点击了`);
  29. }}
  30. onClear={(title: string, key: string) => message.info('点击了清空更多')}
  31. loading={false}
  32. clearText="清空"
  33. viewMoreText="查看更多"
  34. onViewMore={() => message.info('点击了查看更多')}
  35. clearClose
  36. >
  37. <NoticeIcon.Tab
  38. tabKey="notification"
  39. count={2}
  40. list={list}
  41. title="通知"
  42. emptyText="你已查看所有通知"
  43. showViewMore
  44. />
  45. <NoticeIcon.Tab
  46. tabKey="message"
  47. count={2}
  48. list={list}
  49. title="消息"
  50. emptyText="您已读完所有消息"
  51. showViewMore
  52. />
  53. <NoticeIcon.Tab
  54. tabKey="event"
  55. title="待办"
  56. emptyText="你已完成所有待办"
  57. count={2}
  58. list={list}
  59. showViewMore
  60. />
  61. </NoticeIcon>
  62. );
  63. };

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

  1. export interface NoticeIconData {
  2. id: string;
  3. key: string;
  4. avatar: string;
  5. title: string;
  6. datetime: string;
  7. type: string;
  8. read?: boolean;
  9. description: string;
  10. clickClose?: boolean;
  11. extra: any;
  12. status: string;
  13. }

RightContent

RightContent 是以上几个组件的组合,同时新增了 plugins 的 SelectLang 插件。

  1. <Space>
  2. <HeaderSearch
  3. placeholder="站内搜索"
  4. defaultValue="umi ui"
  5. options={[
  6. { label: <a href="https://umijs.org/zh/guide/umi-ui.html">umi ui</a>, value: 'umi ui' },
  7. {
  8. label: <a href="next.ant.design">Ant Design</a>,
  9. value: 'Ant Design',
  10. },
  11. {
  12. label: <a href="https://protable.ant.design/">Pro Table</a>,
  13. value: 'Pro Table',
  14. },
  15. {
  16. label: <a href="https://prolayout.ant.design/">Pro Layout</a>,
  17. value: 'Pro Layout',
  18. },
  19. ]}
  20. />
  21. <Tooltip title="使用文档">
  22. <span
  23. className={styles.action}
  24. onClick={() => {
  25. window.location.href = 'https://pro.ant.design/docs/getting-started';
  26. }}
  27. >
  28. <QuestionCircleOutlined />
  29. </span>
  30. </Tooltip>
  31. <Avatar />
  32. {REACT_APP_ENV && (
  33. <span>
  34. <Tag color={ENVTagColor[REACT_APP_ENV]}>{REACT_APP_ENV}</Tag>
  35. </span>
  36. )}
  37. <SelectLang className={styles.action} />
  38. </Space>