Skip to content

步骤条

TuiSteps 用于引导用户按照流程完成任务的导航条。 它清晰地展示了当前任务的进度、已完成的步骤以及后续的待办事项。支持丰富的外观定制和状态管理。

基础用法

数据驱动模式 (Data Mode)

这是最简洁的用法。通过 options 属性传入步骤配置数组,无需手动书写 DOM 结构。

html
<script setup>
import { ref } from 'vue';

const activeStep = ref(0);

const stepsData = [
  { title: '步骤一', description: '完成基本信息填写', icon: 'tui-icon ti-user' },
  { title: '步骤二', description: '上传相关附件材料' },
  { title: '步骤三', description: '等待审核结果' }
];

const next = () => {
  if (activeStep.value++ > 2) activeStep.value = 0;
};
</script>

<template>
  <TuiSteps :active="activeStep" :options="stepsData" />
  <TuiButton @click="next">下一步</TuiButton>
</template>

组件插槽模式 (Slot Mode)

使用 <TuiStep> 子组件进行构建。这种方式提供了更高的灵活性,适合需要对单个步骤进行特殊处理的场景。

html
<template>
  <TuiSteps :active="1">
    <TuiStep title="已完成" description="此步骤已结束" />
    <TuiStep title="进行中" description="当前正在处理..." />
    <TuiStep title="待处理" icon="tui-icon ti-settings" />
  </TuiSteps>
</template>

垂直布局

设置 direction="vertical" 即可启用垂直步骤条。

注意

在垂直模式下,通常需要给容器或组件设置一个固定的高度,以便内容能够正确撑开。

html
<template>
  <div style="height: 300px;">
    <TuiSteps direction="vertical" :active="1">
      <TuiStep title="下单" description="2023-12-01 12:00" />
      <TuiStep title="出库" description="2023-12-02 08:00" />
      <TuiStep title="运输" description="运输中..." />
      <TuiStep title="签收" />
    </TuiSteps>
  </div>
</template>

简单模式

设置 simpletrue 可以开启简洁风格。 简单模式下,标题和图标会水平排列,通常用于空间有限或不需要展示详细描述的场景。

  • simple: 开启简单模式。
  • simpleWithBG: 是否显示灰色背景条(默认为 true)。
html
<template>
  <TuiSteps :active="1" simple :options="stepsData" />

  <TuiSteps :active="1" simple :simpleWithBG="false" :options="stepsData" />
</template>

状态管理

TuiSteps 提供了强大的状态控制逻辑:

  1. 全局状态控制:
    • processStatus: 当前进行中步骤的状态 (默认 process)。
    • finishStatus: 已完成步骤的状态 (默认 finish,通常表现为成功色)。
  2. 单步状态覆盖:
    • 在单个 step 数据中指定 status,可强制覆盖该步骤的状态(如显示 Error 或 Warning)。
html
<template>
  <TuiSteps :active="1" processStatus="error">
    <TuiStep title="步骤1" />
    <TuiStep title="步骤2 (出错)" description="校验失败" />
    <TuiStep title="步骤3" />
  </TuiSteps>

  <TuiSteps :active="2">
    <TuiStep title="步骤1" />
    <TuiStep title="步骤2" status="warning" description="部分完成" />
    <TuiStep title="步骤3" />
  </TuiSteps>
</template>

API 参考

TuiSteps Props

属性名类型默认值说明
activeNumber0当前激活步骤的索引(从0开始)。
directionString'horizontal'显示方向。可选:'horizontal', 'vertical'
optionsArray[]数据源数组。对象结构见下方 TuiStep Props。
simpleBooleanfalse是否启用简洁模式。
simpleWithBGBooleantrue简洁模式下是否显示背景。
processStatusString'process'当前步骤的状态。可选:wait, process, finish, error, success, warning
finishStatusString'finish'已完成步骤的状态。通常设为 successfinish
descriptionLinesNumber2描述文本的最大显示行数(超出省略)。

TuiStep Props (或 Options 对象字段)

属性名类型默认值说明
titleString''标题。
descriptionString''描述文本。
iconString''图标类名。
statusString''强制状态。若设置,将忽略 active 索引计算出的状态。可选:wait, process, finish, error, success, warning