# Stepper
The stepper consists of an increase button, a decrease button and an input box, which are used to input and adjust numbers within a certain range.
# Code Demo
# Basic usage
Set the input value through value
, and you can listen to the change of the input value through the change
event.
<press-stepper :value="1" @change="onChange" />
export default {
methods: {
onChange(val) {
console. log(val);
},
}
};
# Step size setting
Use the step
attribute to set the value that changes each time the increase or decrease button is clicked, and the default is 1
.
<press-stepper :value="1" step="2" />
# Limit input range
Limit the range of input values via the min
and max
attributes.
<press-stepper :value="5" min="5" max="8" />
# Restrict input to integers
After setting the integer
attribute, the input box will be limited to only integers.
<press-stepper :value="1" integer />
# Disabled state
Disable the stepper by setting the disabled
attribute. In the disabled state, you cannot click the button or modify the input box.
<press-stepper :value="1" disabled />
# Disable long press
By setting the long-press
attribute to determine whether the stepper enables the long press gesture.
<press-stepper :value="1" :long-press="false" />
# Fixed decimal places
A fixed number of decimal places can be preserved by setting the decimal-length
property.
<press-stepper :value="1" step="0.2" :decimal-length="1" />
# Asynchronous changes
If you need to modify the value of the input box asynchronously, you can set the async-change
attribute and manually modify value
in the change
event.
<press-stepper :value="value" async-change @change="onChange" />
export default {
data() {
return {
value: 1,
}
},
methods: {
onChange(value) {
setTimeout(() => {
this.value = value;
}, 500);
}
},
};
# Custom size
Set the width of the input box through the input-width
attribute, and set the size of the button and the height of the input box through the button-size
attribute.
<press-stepper :value="1" input-width="40px" button-size="32px" />
# API
# Props
Parameter | Description | Type | Default |
---|---|---|---|
name | Identifier when submitted within the form | string | - |
value | input value | string | number | minimum value |
min | minimum value | string | number | 1 |
max | maximum value | string | number | - |
step | step size | string | number | 1 |
integer | whether only integers are allowed | boolean | false |
disabled | Whether to disable | boolean | false |
disable-input | Whether to disable the input box | boolean | false |
async-change | Whether to enable asynchronous change, after enabling it, you need to manually control the input value | boolean | false |
input-width | input box width, the default unit is px | string | number | 32px |
button-size | The button size, the default unit is px , the height of the input box will be consistent with the button size | string | number | 28px |
show-plus | Whether to show the add button | boolean | true |
show-minus | Whether to show the minus button | boolean | true |
decimal-length | fixed number of decimal places | number | - |
theme | Style style, optional value is round | string | - |
disable-plus | Whether to disable the add button | boolean | - |
disable-minus | Whether to disable the minus button | boolean | - |
long-press | Whether to enable long press gestures | boolean | true |
always-embed | Force the input to be in the same layer state, and the input will switch to a non-same layer state when it is in focus by default (only valid under iOS) | boolean | false |
# Events
Event Name | Description | Callback Parameters |
---|---|---|
@change | Event triggered when the bound value changes | event.detail: the current input value |
@overlimit | Triggered when an unavailable button is clicked | - |
@plus | Fired when the add button is clicked | - |
@minus | Fired when the minus button is clicked | - |
@focus | Triggered when the input box is focused | - |
@blur | Triggered when the input box is out of focus | - |
# Slot
Name | Description |
---|---|
plus | plus button |
minus | minus button |
# External style classes
class name | description |
---|---|
custom-class | root node style class |
input-class | input box style class |
plus-class | plus button style class |
minus-class | Minus button style class |