Skip to content
On this page

Steps 步骤条

vue
<template>
  <ta-group title="基础用法">
    <ta-steps v-model:activeIndex="stepIndex">
      <ta-step v-for="(item, index) in steps" :key="index" :title="item.title">
        {{ item.content }}
      </ta-step>
    </ta-steps>
  </ta-group>
  <ta-group title="小点模式">
    <ta-steps v-model:activeIndex="stepIndex" dot>
      <ta-step v-for="(item, index) in steps" :key="index" :title="item.title">
        {{ item.content }}
      </ta-step>
    </ta-steps>
  </ta-group>
  <ta-group title="自定义图标">
    <ta-steps v-model:activeIndex="stepIndex">
      <ta-step v-for="(item, index) in steps" :key="index" :title="item.title">
        <template #step="{ finish, active }">
          <ta-icon v-if="finish" icon="CheckOutlined"></ta-icon>
          <ta-icon v-else-if="active" icon="LoadingOutlined" spin></ta-icon>
        </template>
        {{ item.content }}
      </ta-step>
    </ta-steps>
  </ta-group>
  <ta-group title="横向">
    <ta-steps v-model:activeIndex="stepIndex" horizontal>
      <ta-step v-for="(item, index) in steps" :key="index" :title="item.title">
        {{ item.content }}
      </ta-step>
    </ta-steps>
  </ta-group>
  <ta-group title="横向(不要标题 & 小点)">
    <ta-steps :activeIndex="1" horizontal dot>
      <ta-step v-for="(item, index) in orderSteps" :key="index">{{ item.content }}</ta-step>
    </ta-steps>
  </ta-group>
  <ta-group title="Slot title">
    <ta-steps>
      <ta-step title="【珠海市】快件已送达【正方云创园】,感谢您使用中通快递">
        2021-04-13 12:42:57
      </ta-step>
      <ta-step>
        <template #title>
          【珠海市】【珠海一部】快递小哥正在派件(<a href="tel:10000">10000</a>
        </template>
        2021-04-13 11:22:16
      </ta-step>
      <ta-step title="【珠海市】快件离开【珠海中心】已发往【珠海一部】">
        2021-04-13 09:04:03
      </ta-step>
    </ta-steps>
  </ta-group>
  <ta-fixed>
    <div class="exp-steps-next">
      <ta-button @click="stepIndex = (stepIndex + 1) % steps.length" type="primary">
        下一步
      </ta-button>
    </div>
  </ta-fixed>
</template>

<script lang="ts">
import { defineComponent, ref } from 'vue'

export default defineComponent({
  name: 'ExpSteps',
  setup() {
    const stepIndex = ref(1)

    return {
      stepIndex,
      steps: [
        {
          title: '已完成',
          content: '这一步过了哈'
        },
        {
          title: '进行中',
          content: '目前到这一步'
        },
        {
          title: '待处理',
          content: '还没到这一步'
        }
      ],

      orderSteps: [
        {
          content: '买家下单'
        },
        {
          content: '商家接单'
        },
        {
          content: '商家发货'
        },
        {
          content: '买家提货'
        },
        {
          content: '交易完成'
        }
      ]
    }
  }
})
</script>

Import

js
import { TaSteps, TaStep } from 'tantalum-ui-mobile'

具体的引入方式可以参考引入组件

Steps

Steps Props

属性类型默认值必填说明
active-indexnumber0当前步骤对应的索引值
dotbooleanfalse是否开启小点样式

Steps Slots

#default

注:其中只可放置 Step 组件,否则会导致未定义的行为。

vue
<ta-steps>
  <ta-step title="成功获得0.01元收益">搞半天就这点?</ta-step>
  <ta-step title="十天后到账">0.01元还要十天到账?</ta-step>
  <ta-step title="爱要不要">不要了,滚。</ta-step>
</ta-steps>

Step

Step Props

属性类型默认值必填说明
titlestring步骤子项标题

Step Slots

内容(#default)

vue
<ta-step title="标题">自定义内容</ta-step>

标题(#title)

vue
<ta-step>
  <template #title>
  【珠海市】【珠海一部】快递小哥正在派件(<a href="tel:10000">10000</a>
  </template>
  2021-04-13 11:22:16
</ta-step>

注:优先级高于 Props title

步骤标(#step)

vue
<ta-step>
  <template #step="{ finish, index, active }">
    <ta-icon v-if="finish" icon="CheckOutlined"></ta-icon>
  </template>
</ta-step>

注:只推荐写入 text 和 Icon 组件,其他元素或组件可能会导致未定义的行为。