codecamp

支付宝小程序扩展组件 步骤条·Steps

根据步骤显示的进度条。

扫码体验

示例代码

{
 "defaultTitle": "Steps",
 "usingComponents": {
   "steps": "mini-ali-ui/es/steps/index"
 }
}
<steps 
  className="demo-steps-class"
  activeIndex="{{activeIndex}}"
  failIndex="{{failIndex}}"
  items="{{items}}"
>
  <view slot="title_2" style="color: green; font-weight: bold;">titile 的内容</view>
</steps>
<steps 
  className="demo-steps-class"
  activeIndex="{{activeIndex}}"
  failIndex="{{failIndex}}"
  horizHighlight="{{true}}"
  items="{{items2}}"
>
  <view slot="title_2" style="color: green; font-weight: bold;">titile 的内容</view>
  <view slot="desc_4">当前 item 没有 <text style="color: green;">description</text> 时,使用 slot 内容。</view>
</steps>
<steps 
  className="demo-steps-class"
  direction="vertical"
  failIndex="{{failIndex}}"
  activeIndex="{{activeIndex}}"
  items="{{items2}}"
  size="{{size}}"
  showStepNumber="{{showNumberSteps}}"
>
  <view slot="title_2" style="color: green; font-weight: bold;">titile 的内容</view>
  <view slot="desc_4">当前 item 没有 <text style="color: green;">description</text> 时,使用 slot 内容。</view>
</steps>
<view class="demo-btn-container">
  <button class="demo-btn" onTap="preStep">上一步</button>
  <button class="demo-btn" onTap="nextStep">下一步</button>
</view>
<view class="demo-btn-container">
  <button class="demo-btn" onTap="setFailIndex">设置错误项</button>
  <button class="demo-btn" onTap="cancelFailIndex">取消错误项</button>
</view>
<view class="demo-btn-container">
  <button class="demo-btn" onTap="setIconSizeAdd">设置图标大小+</button>
  <button class="demo-btn" onTap="setIconSizeReduce">设置图标大小-</button>
</view>
<button type="primary" onTap="showNumberList">以{{!showNumberSteps?'数字':'图片/icon'}}方式展示步骤序列</button>
Page({
  data: {
    activeIndex: 1,
    failIndex: 0,
    size: 0,
    items: [{
      title: '步骤1',
    }, {
      title: '步骤2',
    }, {
      title: '步骤3',
    }],
    items2: [{
      title: '步骤1',
      description: '这是步骤1的描述文档,文字足够多的时候会换行,设置了成功的icon',
      activeIcon: 'https://i.alipayobjects.com/common/favicon/favicon.ico',
      size: 20,
    }, {
      title: '步骤2 如果标题足够长的话也会换行的',
      description: '这是步骤2,同时设置了两种状态的icon',
      icon: 'https://gw.alipayobjects.com/mdn/miniProgram_mendian/afts/img/A*lVojToO-qZIAAAAAAAAAAABjAQAAAQ/original',
      activeIcon: 'https://i.alipayobjects.com/common/favicon/favicon.ico',
    }, {
      title: '步骤3',
      description: '这是步骤3',
    }, {
      title: '步骤4',
    }],
    showNumberSteps: true,
  },
  nextStep() {
    this.setData({
      activeIndex: this.data.activeIndex + 1,
    });
  },
  preStep() {
    this.setData({
      activeIndex: this.data.activeIndex - 1,
    });
  },
  setFailIndex() {
    this.setData({
      failIndex: 3,
    });
  },
  cancelFailIndex() {
    this.setData({
      failIndex: 0,
    });
  },
  setIconSizeAdd() {
    this.setData({
      size: this.data.size < 30 && this.data.size > 14 ? this.data.size + 1 : 15,
    });
  },
  setIconSizeReduce() {
    this.setData({
      size: this.data.size > 15 ? this.data.size - 1 : 15,
    });
  },
  showNumberList() {
    this.setData({
      showNumberSteps: !this.data.showNumberSteps,
    });
  },
});
.demo-steps-class {
  margin: 20px 0;
  border-bottom: 1px solid #e5e5e5;
}
.demo-btn-container {
  display: flex;
  justify-content: space-between;
  margin: 20px;
}
.demo-btn {
  width: 47%;
}

属性

属性 类型 默认值 描述 必填 最低版本
className String - 最外层覆盖样式。 false -
activeIndex Number 1 当前激活步骤。 true -
failIndex Number 0 当前失败步骤(只在 vertical 模式下生效)。 false -
direction String horizontal 显示方向,可选值:vertical、horizontal。 false -
size Number 0 统一的 icon 大小,单位为 px。 false -
items Array[{title, description, icon, activeIcon, size}] [] 步骤详情。 true -
showStepNumber Boolean false 是否以数字序列展示步骤 icon。 false 1.1.2
horizHighlight Boolean false 用于控制水平方向是否启用高亮展示 title。 false 1.1.3

slot

steps 组件中的 slot 插槽可根据具体的步骤数设置,如有 4 个步骤点,那么可插入 4 个 slot。

slot 名称的格式为:desc_1desc_2desc_n...以此类推,将 n 修改为指定 items 的序列即可。如下列代码将会第 4 个 items 中没有 description 值的时候显示 slot 内容。为了满足需求,当 title 部分没有值时,也可以通过类似方式插入 slot 内容。水平方向与垂直方向的 steps 组件都可以使用这两个 slot。

<view slot="title_2" style="color: green; font-weight: bold;">titile 的内容</view>
<view slot="desc_4">当前 item 没有 <text style="color: green;">description</text> 时,使用 slot 内容。</view>

下表中的 n 代表从 1 开始累加的数字



| slotName | 说明 |
| -------- | ---------------------------------- |
| desc_n | 当无 description 值时可展示的 slot |
| title_n | 当无 title 值时可展示的 slot |

items

属性 类型 默认值 描述 必填
items.title String - 步骤详情标题 true
items.description String - 步骤详情描述 true
items.icon String - 尚未到达步骤的icon(只在vertical模式下生效) true
items.activeIcon String - 已到达步骤的icon(只在vertical模式下生效) true
items.size Number - 已到达步骤icon的图标大小,单位为px(只在vertical模式下生效) true

Bug & Tip

  • 当 showStepNumber 为 true 时将会忽略 items 属性中 icon 相关属性,仅以数字序列方式展示;
  • slot 中的数字与 items 的序列相对应,将会在 items 属性中没有 description 时展示;
支付宝小程序扩展组件 宫格·Grid
支付宝小程序扩展组件 页脚·Footer
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }