Timeline 时间线
用于按时间或步骤顺序展示事件进展。
何时使用
- 展示项目、审批、任务、运维事件等按时间或顺序推进的记录。
- 展示阶段性状态,并用节点颜色、图标或线型强调关键事件。
- 需要比 Steps 更偏历史记录和详情描述的场景。
基础用法
2026-05-28
创建文档站2026-05-29
补齐组件示例2026-06-02
审查 Timelinevue
<template>
<x-timeline>
<x-timeline-item label="2026-05-28">创建文档站</x-timeline-item>
<x-timeline-item label="2026-05-29" dot-color="#0f766e">补齐组件示例</x-timeline-item>
<x-timeline-item label="2026-06-02">审查 Timeline</x-timeline-item>
</x-timeline>
</template>倒序展示
09:30
提交需求11:00
完成评审16:20
发布修复vue
<template>
<x-button size="mini" @click="reverseTimeline = !reverseTimeline">
{{ reverseTimeline ? '恢复正序' : '切换倒序' }}
</x-button>
<x-timeline :reverse="reverseTimeline">
<x-timeline-item label="09:30">提交需求</x-timeline-item>
<x-timeline-item label="11:00">完成评审</x-timeline-item>
<x-timeline-item label="16:20">发布修复</x-timeline-item>
</x-timeline>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const reverseTimeline = ref(false);
</script>轴线样式
阶段一
确认范围阶段二
开发联调阶段三
灰度发布检查点
自动化校验检查点
人工验收vue
<template>
<x-timeline line-type="dashed">
<x-timeline-item label="阶段一">确认范围</x-timeline-item>
<x-timeline-item label="阶段二">开发联调</x-timeline-item>
<x-timeline-item label="阶段三">灰度发布</x-timeline-item>
</x-timeline>
<x-timeline line-type="dotted">
<x-timeline-item label="检查点">自动化校验</x-timeline-item>
<x-timeline-item label="检查点">人工验收</x-timeline-item>
</x-timeline>
</template>节点颜色
成功
构建通过当前
等待复查失败
发现阻塞问题vue
<template>
<x-button size="mini" @click="toggleDotColor">切换当前节点颜色</x-button>
<x-timeline>
<x-timeline-item label="成功" dot-color="#16a34a">构建通过</x-timeline-item>
<x-timeline-item label="当前" :dot-color="dynamicDotColor">等待复查</x-timeline-item>
<x-timeline-item label="失败" dot-color="#dc2626">发现阻塞问题</x-timeline-item>
</x-timeline>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const dynamicDotColor = ref('#0f766e');
const toggleDotColor = () => {
dynamicDotColor.value = dynamicDotColor.value === '#0f766e' ? '#dc2626' : '#0f766e';
};
</script>自定义图标
已创建
任务已进入队列处理中
正在处理异常分支 完成
等待最终确认vue
<template>
<x-timeline>
<x-timeline-item label="已创建" dot-color="#16a34a">任务已进入队列</x-timeline-item>
<x-timeline-item label="处理中">
<template #dot>
<span class="timeline-demo-dot-icon">!</span>
</template>
正在处理异常分支
</x-timeline-item>
<x-timeline-item label="完成">等待最终确认</x-timeline-item>
</x-timeline>
</template>
<style scoped>
.timeline-demo-dot-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border: 1px solid rgb(245 158 11 / 28%);
border-radius: 50%;
color: #f59e0b;
font-size: 10px;
font-weight: 700;
line-height: 1;
background: #fff;
box-shadow: 0 0 0 3px rgb(245 158 11 / 12%);
box-sizing: border-box;
}
</style>节点类型
已完成
构建通过待处理
等待审批异常
发现风险 vue
<template>
<x-timeline>
<x-timeline-item label="已完成" dot-color="#16a34a">构建通过</x-timeline-item>
<x-timeline-item label="待处理" dot-type="hollow">等待审批</x-timeline-item>
<x-timeline-item label="异常">
<template #dot>
<span class="timeline-demo-dot-icon">!</span>
</template>
发现风险
</x-timeline-item>
</x-timeline>
</template>单项轴线
阶段一
确认范围阶段二
等待联调阶段三
发布完成vue
<template>
<x-timeline>
<x-timeline-item label="阶段一" line-type="dashed">确认范围</x-timeline-item>
<x-timeline-item label="阶段二" line-color="#f59e0b">等待联调</x-timeline-item>
<x-timeline-item label="阶段三">发布完成</x-timeline-item>
</x-timeline>
</template>幽灵节点
09:30
提交任务10:00
完成处理同步中
vue
<template>
<x-timeline pending="同步中">
<x-timeline-item label="09:30">提交任务</x-timeline-item>
<x-timeline-item label="10:00">完成处理</x-timeline-item>
</x-timeline>
</template>自定义幽灵节点
创建
提交申请审批
主管复核等待确认
vue
<template>
<x-timeline pending="等待确认">
<template #dot>
<span class="timeline-demo-pending-dot"></span>
</template>
<x-timeline-item label="创建">提交申请</x-timeline-item>
<x-timeline-item label="审批">主管复核</x-timeline-item>
</x-timeline>
</template>展示模式
需求
确认范围开发
实现能力验证
构建检查09:00
提交10:30
复核15:00
完成vue
<template>
<x-timeline mode="alternate">
<x-timeline-item label="需求">确认范围</x-timeline-item>
<x-timeline-item label="开发">实现能力</x-timeline-item>
<x-timeline-item label="验证" position="right">构建检查</x-timeline-item>
</x-timeline>
<x-timeline mode="right">
<x-timeline-item label="09:00">提交</x-timeline-item>
<x-timeline-item label="10:30">复核</x-timeline-item>
<x-timeline-item label="15:00">完成</x-timeline-item>
</x-timeline>
</template>横向时间线
需求
确认范围开发
实现能力验证
构建检查vue
<template>
<x-timeline direction="horizontal" mode="alternate" pending>
<x-timeline-item label="需求">确认范围</x-timeline-item>
<x-timeline-item label="开发">实现能力</x-timeline-item>
<x-timeline-item label="验证">构建检查</x-timeline-item>
</x-timeline>
</template>标签位置
确认范围
2026-06-01
实现改造
2026-06-02
完成验证
2026-06-03
vue
<template>
<x-timeline label-position="relative">
<x-timeline-item label="2026-06-01">确认范围</x-timeline-item>
<x-timeline-item label="2026-06-02">实现改造</x-timeline-item>
<x-timeline-item label="2026-06-03">完成验证</x-timeline-item>
</x-timeline>
</template>标签和描述
需求
收集业务侧变更范围和验收标准。
开发
实现组件修复,并同步文档示例。
验证
执行构建和文档站构建。
vue
<template>
<x-timeline>
<x-timeline-item label="需求">
<template #description>收集业务侧变更范围和验收标准。</template>
</x-timeline-item>
<x-timeline-item>
<template #label>开发</template>
<template #description>实现组件修复,并同步文档示例。</template>
</x-timeline-item>
<x-timeline-item label="验证">
<template #description>执行构建和文档站构建。</template>
</x-timeline-item>
</x-timeline>
</template>按需导入
ts
import { Timeline, TimelineItem } from 'x-next';Timeline Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
reverse | 是否倒序展示 | boolean | false |
lineType | 轴线样式 | 'dotted' | 'dashed' | 'solid' | 'solid' |
direction | 时间线方向 | 'vertical' | 'horizontal' | 'vertical' |
mode | 展示模式 | 'left' | 'right' | 'top' | 'bottom' | 'alternate' | 'left' |
pending | 是否展示幽灵节点,传入字符串时作为节点内容展示 | boolean | string | - |
labelPosition | 标签文本位置 | 'same' | 'relative' | 'same' |
Timeline Slots
| 插槽名 | 说明 |
|---|---|
default | 时间线节点列表 |
dot | 自定义幽灵节点 |
TimelineItem Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
label | 标签文本 | string | - |
dotColor | 时间点颜色 | CSSProperties['color'] | - |
dotType | 时间点类型 | 'solid' | 'hollow' | 'solid' |
lineType | 当前节点后的轴线样式 | 'dotted' | 'dashed' | 'solid' | 跟随 Timeline.lineType |
lineColor | 当前节点后的轴线颜色 | CSSProperties['color'] | - |
position | 交替模式下的单项位置 | 'left' | 'right' | 'top' | 'bottom' | 自动计算 |
TimelineItem Slots
| 插槽名 | 说明 |
|---|---|
default | 时间线内容 |
dot | 自定义时间点节点,优先级高于 icon |
icon | 自定义时间点图标,兼容旧用法 |
label | 自定义标签 |
description | 自定义描述,未传入默认插槽时展示 |
已知限制
- 暂未提供 Timeline 专项自动化测试,交付前需通过文档构建和截图复查。