Timeline 时间线
可视化地呈现时间流信息,支持多种布局模式和自定义样式。
基础用法
默认 left 模式,节点在左侧,内容在右侧的卡片中。
项目立项
完成需求评审与技术方案设计
第一阶段开发
完成核心功能模块开发与单元测试
第二阶段开发
完成辅助功能与前后端联调
测试与上线
通过集成测试,正式发布 v1.0
vue
<my-timeline :items="items" />
const items = [
{ timestamp: '2026-07-28', title: '项目立项', content: '完成需求评审与技术方案设计' },
{ timestamp: '2026-08-05', title: '第一阶段开发', content: '完成核心功能模块开发' },
{ timestamp: '2026-09-01', title: '测试与上线', content: '通过集成测试,正式发布 v1.0' },
]右侧模式
mode="right" 将节点放在右侧,内容放在左侧。
项目立项
完成需求评审与技术方案设计
第一阶段开发
完成核心功能模块开发与单元测试
第二阶段开发
完成辅助功能与前后端联调
测试与上线
通过集成测试,正式发布 v1.0
vue
<my-timeline :items="items" mode="right" />交替模式
mode="alternate" 让节点左右交替排布,适合空间较宽的展示场景。
公司成立
在北京中关村创立,初始团队 5 人
A 轮融资
获得知名风投 5000 万 A 轮投资
产品发布
核心产品正式发布,首月用户突破 10 万
B 轮融资
完成 2 亿 B 轮融资,团队扩张至 200 人
国际化
进入海外市场,覆盖 30+ 国家和地区
vue
<my-timeline :items="items" mode="alternate" />反向排序
reverse 属性反转时间线顺序,从最新到最旧排列。
排列:正序|倒序
项目立项
完成需求评审与技术方案设计
第一阶段开发
完成核心功能模块开发与单元测试
第二阶段开发
完成辅助功能与前后端联调
测试与上线
通过集成测试,正式发布 v1.0
vue
<my-timeline :items="items" reverse />自定义节点颜色
通过 item.color 为每个节点设置独立颜色。
提交订单
订单已提交,等待商家确认
商家接单
商家已确认订单,正在备货
骑手取货
骑手已到达商家取货
正在配送
骑手正在配送途中,请保持电话畅通
已签收
订单已签收,感谢您的购买
vue
const items = [
{ timestamp: '09:30', title: '提交订单', content: '...', color: '#67c23a' },
{ timestamp: '10:15', title: '商家接单', content: '...' },
{ timestamp: '11:00', title: '骑手取货', content: '...', color: '#e6a23c' },
]自定义时间戳
通过 #timestamp 插槽自定义时间戳的渲染内容。
项目立项
完成需求评审与技术方案设计
第一阶段开发
完成核心功能模块开发与单元测试
第二阶段开发
完成辅助功能与前后端联调
测试与上线
通过集成测试,正式发布 v1.0
vue
<my-timeline :items="items">
<template #timestamp="{ item, index }">
<span>
<svg>...</svg>
{{ item.timestamp }}
<span v-if="index === 0">最新</span>
</span>
</template>
</my-timeline>组件结构
根元素 .my-timeline 包含多个 .my-timeline__item,每个时间线条目由节点区(圆点 + 连接线)和内容卡片(时间戳、标题、描述)组成,通过 .is-left / .is-right 控制布局方向。
CSS 类名
| 类名 | 说明 |
|---|---|
.my-timeline | 根元素 |
.my-timeline--left | 左侧模式 |
.my-timeline--right | 右侧模式 |
.my-timeline--alternate | 交替模式 |
.my-timeline__item | 时间线条目 |
.my-timeline__item.is-left | 左对齐布局 |
.my-timeline__item.is-right | 右对齐布局 |
.my-timeline__node | 节点区域(圆点 + 连接线容器) |
.my-timeline__dot | 圆点 |
.my-timeline__line | 连接线 |
.my-timeline__card | 内容卡片 |
.my-timeline__timestamp | 时间戳文字 |
.my-timeline__title | 标题文字 |
.my-timeline__desc | 描述文字 |
.my-timeline__spacer | 交替模式占位块 |
API
Timeline Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| items | 时间线列表 | TimelineItem[] | [] |
| mode | 排列模式 | 'left' | 'right' | 'alternate' | 'left' |
| reverse | 反向排序(从新到旧) | boolean | false |
Timeline Slots
| 名称 | 说明 | 作用域 |
|---|---|---|
| dot | 自定义节点内容 | { item, index } |
| timestamp | 自定义时间戳 | { item, index } |
TimelineItem
ts
interface TimelineItem {
title: string
timestamp?: string
content?: string
color?: string // 节点颜色
}