# Stepper 步进器


# 引入

在 app.json 或 index.json 中引入组件,详细介绍见快速上手

"usingComponents": {
  "lin-stepper": "/dist/stepper/index"
}

# 基础用法

通过value设置输入值,可以通过change事件监听到输入值的变化

代码示例
<lin-stepper value="{ { 2 }}" bind:change="onChange" />
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 步长设置

通过step属性设置每次点击增加或减少按钮时变化的值,默认为1

代码示例
<lin-stepper value="{ { 1 }}" step="2" bind:change="onChange" />
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 限制输入范围

通过minmax属性限制输入值的范围

代码示例
<lin-stepper value="{ { 5 }}" min="5" max="8" bind:change="onChange" />
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 限制输入整数

设置integer属性后,输入框将限制只能输入整数

代码示例
<lin-stepper value="{ { 1 }}" integer bind:change="onChange" />
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 禁用输入框

通过设置disableInput属性来禁用步进器的输入框

代码示例
<lin-stepper value="{ { 1 }}" disableInput />
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 禁用状态

通过设置disabled属性来禁用步进器,禁用状态下无法点击按钮或修改输入框

代码示例
<lin-stepper value="{ { 1 }}" disabled />
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 固定小数位数

通过设置decimal-length属性可以保留固定的小数位数

代码示例
<lin-stepper
  value="{ { 1 }}"
  step="0.2"
  decimal-length="{ { 1 }}"
  bind:change="onChange"
/>
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 自定义大小

通过input-width属性设置输入框宽度,通过button-size属性设置按钮大小和输入框高度

代码示例
<lin-stepper
  value="{ { 1 }}"
  buttonFontSize="30px"
  input-width="40px"
  button-size="32px"
  bind:change="onChange"
/>
Page({
  onChange(event) {
    wx.showToast({
      icon: "none",
      title: `当前值:${event.detail}`,
    });
  },
});

# 异步变更

如果需要异步地修改输入框的值,可以设置async-change属性,并在change事件中手动修改value

代码示例
<lin-stepper value="{ { value }}" async-change bind:change="onChange1" />
Page({
  data: {
    value: 1,
  },
  onChange1(event) {
    setTimeout(() => {
      this.setData({
        value: event.detail,
      });
    }, 3000);
  },
});

# 属性

参数 说明 类型 可选值 默认值
name 在表单内提交时的标识符 String
value 输入值 Number
min 最小值 Number 1
max 最大值 Number
step 步长 Number 1
integer 是否只允许输入整数 Boolean false
disabled 是否禁用 Boolean false
decimalLength 固定显示的小数位数 Number
inputWidth 输入框宽度,默认单位为 px String, Number 64rpx
buttonSize 按钮大小,默认单位为 px,输入框高度会和按钮大小保持一致 String, Number 56rpx
buttonFontSize 按钮字体大小 String, Number 40rpx
inputFontSize 输入框字体大小 String, Number 30rpx
disableInput 是否禁用输入框 Boolean false
showPlus 是否显示增加按钮 Boolean true
showMinus 是否显示减少按钮 Boolean true
disablePlus 是否禁用增加按钮 Boolean false
disableMinus 是否禁用减少按钮 Boolean false
asyncChange 是否开启异步变更,开启后需要手动控制输入值 Boolean false
longPress 是否开启长按手势 Boolean true

# 事件

事件名 说明 参数
bind:overlimit 点击不可用的按钮时触发 {type:'minus'
bind:minus 点击减少按钮时触发
bind:plus 点击增加按钮时触发
bind:blur 输入框失焦时触发 输入框的值
bind:focus 输入框聚焦时触发 输入框的值
bind:change 当绑定值变化时触发的事件 输入框的值

# 外部样式类

类名 说明
custom-class 根节点样式类
input-class 输入框样式类
plus-class 加号按钮样式类
minus-class 减号按钮样式类