Steps 步骤

示例

尺寸及方向

可选的 ui 属性值:s / m / vertical / label-vertical

Current step

Size

Direction

在 GitHub 上编辑此页编辑
<template>
<article>
  <section>
    <h4>Current step</h4>
    <veui-number-input
      v-model="current"
      :min="1"
      :max="steps.length"
      :step="1"
    />
  </section>
  <section>
    <h4>Size</h4>
    <veui-radio
      v-for="({ value, label }) in sizeList"
      :key="value"
      v-model="size"
      :value="value"
    >
      {{ label }}
    </veui-radio>
  </section>
  <section>
    <h4>Direction</h4>
    <veui-radio
      v-for="({ value, label }) in directionList"
      :key="value"
      v-model="direction"
      :value="value"
    >
      {{ label }}
    </veui-radio>
  </section>
  <section>
    <veui-steps
      :ui="ui"
      :steps="steps"
      :current="current - 1"
    />
  </section>
</article>
</template>

<script>
import { Steps, NumberInput, Radio } from 'veui'

export default {
  components: {
    'veui-steps': Steps,
    'veui-number-input': NumberInput,
    'veui-radio': Radio
  },
  data () {
    return {
      current: 1,
      size: 'm',
      direction: '',
      vertical: false,
      sizeList: [
        {
          label: 's',
          value: 's'
        },
        {
          label: 'm',
          value: 'm'
        }
      ],
      directionList: [
        {
          label: 'vertical',
          value: 'vertical'
        },
        {
          label: 'label-vertical',
          value: 'label-vertical'
        },
        {
          label: 'default',
          value: ''
        }
      ],
      steps: [
        { label: 'Step 1', desc: '填写信息' },
        { label: 'Step 2', desc: '验证身份' },
        { label: 'Step 3', desc: '注册成功' }
      ]
    }
  },
  computed: {
    ui () {
      return [
        this.size,
        this.direction
      ].join(' ')
    }
  }
}
</script>

<style lang="less" scoped>
h4 {
  margin: 0 0 10px;
}

section {
  margin-bottom: 10px;
}

section + section {
  margin-top: 20px;
}

.veui-radio {
  margin-right: 20px;
}
</style>

步骤状态

可以通过设置 steps 属性数据项的 status 自动值定义步骤状态,若步骤出错,可设置为 error

Current step

在 GitHub 上编辑此页编辑
<template>
<article>
  <section>
    <h4>Current step</h4>
    <veui-number-input
      v-model="current"
      :min="1"
      :max="steps.length"
      :step="1"
    />
  </section>
  <section>
    <veui-steps
      :steps="steps"
      :current="current - 1"
    />
  </section>
</article>
</template>

<script>
import { Steps, NumberInput } from 'veui'

export default {
  components: {
    'veui-steps': Steps,
    'veui-number-input': NumberInput
  },
  data () {
    return {
      current: 2,
      steps: [
        { label: 'Step 1', desc: '填写信息' },
        { label: 'Step 2', desc: '验证身份', status: 'error' },
        { label: 'Step 3', desc: '注册成功' }
      ]
    }
  }
}
</script>

<style lang="less" scoped>
h4 {
  margin: 0 0 10px;
}

section {
  margin-bottom: 10px;
}

section + section {
  margin-top: 20px;
}
</style>

API

属性

名称类型默认值描述
uistring=-

预设样式。

描述
s小尺寸样式。
m中尺寸样式。
vertical纵向样式。
label-vertical文案纵向样式。
stepsArray-

步骤数据源。类型为 { label, desc, to, status }

名称类型
labelstring步骤标题。
descstring步骤描述。
tostring | Object步骤链接。类型见 Link 组件的 to 属性。
statusstring步骤状态。可选值为默认和 error
currentnumber-当前步骤的索引值。

插槽

名称描述
default

整个步骤项内容。

默认内容:序号/完成图标、步骤标题、描述等内容。

名称类型描述
labelstring步骤标题。同 steps 属性中项目的 label 字段。
descstring步骤描述。同 steps 属性中项目的 desc 字段。
tostring | Object步骤链接。同 steps 属性中项目的 to 字段。
statusstring步骤状态。同 steps 属性中项目的 status 字段。
indexnumber步骤索引值。

另外,steps 内数据项中除了上面描述的字段之外的其它字段也会自动通过 v-bind 进行绑定到作用域参数上。

index序号部分内容,默认显示从 1 开始的序号,已完成的步骤显示完成图标,出错的步骤显示出错图标。位于 default 插槽内部,作用域参数同 default 插槽。
label步骤标题部分内容,默认显示 steps 中项目的 label 字段。位于 default 插槽内部,作用域参数同 default 插槽。
desc步骤描述部分内容,默认显示 steps 中项目的 desc 字段。位于 default 插槽内部,作用域参数同 default 插槽。

事件

名称描述
click任意步骤被点击后触发,回调参数为 (index: number, event: Event)。其中 index 为被点击步骤的索引值,event 为相应的原生事件对象。

图标

名称描述
success已成功完成的步骤。
error出错的步骤。
在 GitHub 上编辑此页编辑