Timeline时间轴

垂直展示的时间流信息。

何时使用

  • 当有一系列信息需按时间排列时,可正序和倒序。

  • 需要有一条时间轴进行视觉上的串联时。

代码演示

Timeline时间轴 - 图1

基本用法

基本的时间轴。

  1. import { Timeline } from 'antd';
  2. ReactDOM.render(
  3. <Timeline>
  4. <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
  5. <Timeline.Item>Solve initial network problems 2015-09-01</Timeline.Item>
  6. <Timeline.Item>Technical testing 2015-09-01</Timeline.Item>
  7. <Timeline.Item>Network problems being solved 2015-09-01</Timeline.Item>
  8. </Timeline>,
  9. mountNode,
  10. );

Timeline时间轴 - 图2

最后一个及排序

当任务状态正在发生,还在记录过程中,可用幽灵节点来表示当前的时间节点,当 pending 为真值时展示幽灵节点,如果 pending 是 React 元素可用于定制该节点内容,同时 pendingDot 将可以用于定制其轴点。reverse 属性用于控制节点排序,为 false 时按正序排列,为 true 时按倒序排列。

  1. import { Timeline, Button } from 'antd';
  2. class PendingTimeLine extends React.Component {
  3. state = {
  4. reverse: false,
  5. };
  6. handleClick = () => {
  7. this.setState({ reverse: !this.state.reverse });
  8. };
  9. render() {
  10. return (
  11. <div>
  12. <Timeline pending="Recording..." reverse={this.state.reverse}>
  13. <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
  14. <Timeline.Item>Solve initial network problems 2015-09-01</Timeline.Item>
  15. <Timeline.Item>Technical testing 2015-09-01</Timeline.Item>
  16. </Timeline>
  17. <Button type="primary" style={{ marginTop: 16 }} onClick={this.handleClick}>
  18. Toggle Reverse
  19. </Button>
  20. </div>
  21. );
  22. }
  23. }
  24. ReactDOM.render(<PendingTimeLine />, mountNode);

Timeline时间轴 - 图3

自定义时间轴点

可以设置为图标或其他自定义元素。

  1. import { Timeline } from 'antd';
  2. import { ClockCircleOutlined } from '@ant-design/icons';
  3. ReactDOM.render(
  4. <Timeline>
  5. <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
  6. <Timeline.Item>Solve initial network problems 2015-09-01</Timeline.Item>
  7. <Timeline.Item dot={<ClockCircleOutlined className="timeline-clock-icon" />} color="red">
  8. Technical testing 2015-09-01
  9. </Timeline.Item>
  10. <Timeline.Item>Network problems being solved 2015-09-01</Timeline.Item>
  11. </Timeline>,
  12. mountNode,
  13. );
  1. .timeline-clock-icon {
  2. font-size: 16px;
  3. }
  4. [data-theme='compact'] .timeline-clock-icon {
  5. font-size: 14px;
  6. }

Timeline时间轴 - 图4

标签

使用 label 标签单独展示时间。

  1. import { useState } from 'react';
  2. import { Timeline, Radio } from 'antd';
  3. function TimelimeLabelDemo() {
  4. const [mode, setMode] = useState('left');
  5. const onChange = e => {
  6. setMode(e.target.value);
  7. };
  8. return (
  9. <>
  10. <Radio.Group
  11. onChange={onChange}
  12. value={mode}
  13. style={{
  14. marginBottom: 20,
  15. }}
  16. >
  17. <Radio value="left">Left</Radio>
  18. <Radio value="right">Right</Radio>
  19. <Radio value="alternate">Alternate</Radio>
  20. </Radio.Group>
  21. <Timeline mode={mode}>
  22. <Timeline.Item label="2015-09-01">Create a services</Timeline.Item>
  23. <Timeline.Item label="2015-09-01 09:12:11">Solve initial network problems</Timeline.Item>
  24. <Timeline.Item>Technical testing</Timeline.Item>
  25. <Timeline.Item label="2015-09-01 09:12:11">Network problems being solved</Timeline.Item>
  26. </Timeline>
  27. </>
  28. );
  29. }
  30. ReactDOM.render(<TimelimeLabelDemo />, mountNode);

Timeline时间轴 - 图5

圆圈颜色

圆圈颜色,绿色用于已完成、成功状态,红色表示告警或错误状态,蓝色可表示正在进行或其他默认状态,灰色表示未完成或失效状态。

  1. import { Timeline } from 'antd';
  2. ReactDOM.render(
  3. <Timeline>
  4. <Timeline.Item color="green">Create a services site 2015-09-01</Timeline.Item>
  5. <Timeline.Item color="green">Create a services site 2015-09-01</Timeline.Item>
  6. <Timeline.Item color="red">
  7. <p>Solve initial network problems 1</p>
  8. <p>Solve initial network problems 2</p>
  9. <p>Solve initial network problems 3 2015-09-01</p>
  10. </Timeline.Item>
  11. <Timeline.Item>
  12. <p>Technical testing 1</p>
  13. <p>Technical testing 2</p>
  14. <p>Technical testing 3 2015-09-01</p>
  15. </Timeline.Item>
  16. <Timeline.Item color="gray">
  17. <p>Technical testing 1</p>
  18. <p>Technical testing 2</p>
  19. <p>Technical testing 3 2015-09-01</p>
  20. </Timeline.Item>
  21. <Timeline.Item color="gray">
  22. <p>Technical testing 1</p>
  23. <p>Technical testing 2</p>
  24. <p>Technical testing 3 2015-09-01</p>
  25. </Timeline.Item>
  26. </Timeline>,
  27. mountNode,
  28. );

Timeline时间轴 - 图6

交替展现

内容在时间轴两侧轮流出现。

  1. import { Timeline } from 'antd';
  2. import { ClockCircleOutlined } from '@ant-design/icons';
  3. ReactDOM.render(
  4. <Timeline mode="alternate">
  5. <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
  6. <Timeline.Item color="green">Solve initial network problems 2015-09-01</Timeline.Item>
  7. <Timeline.Item dot={<ClockCircleOutlined style={{ fontSize: '16px' }} />}>
  8. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque
  9. laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto
  10. beatae vitae dicta sunt explicabo.
  11. </Timeline.Item>
  12. <Timeline.Item color="red">Network problems being solved 2015-09-01</Timeline.Item>
  13. <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
  14. <Timeline.Item dot={<ClockCircleOutlined style={{ fontSize: '16px' }} />}>
  15. Technical testing 2015-09-01
  16. </Timeline.Item>
  17. </Timeline>,
  18. mountNode,
  19. );

Timeline时间轴 - 图7

右侧时间轴点

时间轴点可以在内容的右边。

  1. import { Timeline } from 'antd';
  2. import { ClockCircleOutlined } from '@ant-design/icons';
  3. ReactDOM.render(
  4. <Timeline mode="right">
  5. <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
  6. <Timeline.Item>Solve initial network problems 2015-09-01</Timeline.Item>
  7. <Timeline.Item dot={<ClockCircleOutlined style={{ fontSize: '16px' }} />} color="red">
  8. Technical testing 2015-09-01
  9. </Timeline.Item>
  10. <Timeline.Item>Network problems being solved 2015-09-01</Timeline.Item>
  11. </Timeline>,
  12. mountNode,
  13. );

API

  1. <Timeline>
  2. <Timeline.Item>创建服务现场 2015-09-01</Timeline.Item>
  3. <Timeline.Item>初步排除网络异常 2015-09-01</Timeline.Item>
  4. <Timeline.Item>技术测试异常 2015-09-01</Timeline.Item>
  5. <Timeline.Item>网络异常正在修复 2015-09-01</Timeline.Item>
  6. </Timeline>

Timeline

时间轴。

参数说明类型默认值
mode通过设置 mode 可以改变时间轴和内容的相对位置left | alternate | right-
pending指定最后一个幽灵节点是否存在或内容boolean | ReactNodefalse
pendingDot当最后一个幽灵节点存在時,指定其时间图点ReactNode<LoadingOutlined />
reverse节点排序booleanfalse

Timeline.Item

时间轴的每一个节点。

参数说明类型默认值
color指定圆圈颜色 blue, red, green, gray,或自定义的色值stringblue
dot自定义时间轴点ReactNode-
label设置标签ReactNode-
position自定义节点位置left | right-