mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
feat: migrate Stepper component
This commit is contained in:
parent
a7f67ee227
commit
0ed0337de0
@ -55,4 +55,5 @@ module.exports = [
|
|||||||
'number-keyboard',
|
'number-keyboard',
|
||||||
'password-input',
|
'password-input',
|
||||||
'search',
|
'search',
|
||||||
|
'stepper',
|
||||||
];
|
];
|
||||||
|
@ -47,6 +47,8 @@ Vant 遵循 [Semver](https://semver.org/lang/zh-CN/) 语义化版本规范。
|
|||||||
- Field
|
- Field
|
||||||
- Radio
|
- Radio
|
||||||
- RadioGroup
|
- RadioGroup
|
||||||
|
- Search
|
||||||
|
- Stepper
|
||||||
- Switch
|
- Switch
|
||||||
- Sidebar
|
- Sidebar
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ export default {
|
|||||||
### Async Change
|
### Async Change
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<van-stepper :value="value" async-change @change="onChange" />
|
<van-stepper :model-value="value" async-change @change="onChange" />
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
@ -94,7 +94,7 @@ export default {
|
|||||||
如果需要异步地修改输入框的值,可以设置`async-change`属性,并在`change`事件中手动修改`value`
|
如果需要异步地修改输入框的值,可以设置`async-change`属性,并在`change`事件中手动修改`value`
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<van-stepper :value="value" async-change @change="onChange" />
|
<van-stepper :model-value="value" async-change @change="onChange" />
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
</van-cell>
|
</van-cell>
|
||||||
|
|
||||||
<van-cell center :title="t('asyncChange')">
|
<van-cell center :title="t('asyncChange')">
|
||||||
<van-stepper :value="stepper6" async-change @change="onChange" />
|
<van-stepper :model-value="stepper6" async-change @change="onChange" />
|
||||||
</van-cell>
|
</van-cell>
|
||||||
|
|
||||||
<van-cell v-if="!isWeapp" center :title="t('roundTheme')">
|
<van-cell v-if="!isWeapp" center :title="t('roundTheme')">
|
||||||
|
@ -24,10 +24,10 @@ export default createComponent({
|
|||||||
mixins: [FieldMixin],
|
mixins: [FieldMixin],
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
value: null,
|
|
||||||
theme: String,
|
theme: String,
|
||||||
integer: Boolean,
|
integer: Boolean,
|
||||||
disabled: Boolean,
|
disabled: Boolean,
|
||||||
|
modelValue: null,
|
||||||
allowEmpty: Boolean,
|
allowEmpty: Boolean,
|
||||||
inputWidth: [Number, String],
|
inputWidth: [Number, String],
|
||||||
buttonSize: [Number, String],
|
buttonSize: [Number, String],
|
||||||
@ -71,12 +71,24 @@ export default createComponent({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
emits: [
|
||||||
|
'plus',
|
||||||
|
'blur',
|
||||||
|
'minus',
|
||||||
|
'focus',
|
||||||
|
'change',
|
||||||
|
'overlimit',
|
||||||
|
'update:modelValue',
|
||||||
|
],
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
const defaultValue = isDef(this.value) ? this.value : this.defaultValue;
|
const defaultValue = isDef(this.modelValue)
|
||||||
|
? this.value
|
||||||
|
: this.defaultValue;
|
||||||
const value = this.format(defaultValue);
|
const value = this.format(defaultValue);
|
||||||
|
|
||||||
if (!equal(value, this.value)) {
|
if (!equal(value, this.modelValue)) {
|
||||||
this.$emit('input', value);
|
this.$emit('update:modelValue', value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -129,14 +141,14 @@ export default createComponent({
|
|||||||
integer: 'check',
|
integer: 'check',
|
||||||
decimalLength: 'check',
|
decimalLength: 'check',
|
||||||
|
|
||||||
value(val) {
|
modelValue(val) {
|
||||||
if (!equal(val, this.currentValue)) {
|
if (!equal(val, this.currentValue)) {
|
||||||
this.currentValue = this.format(val);
|
this.currentValue = this.format(val);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
currentValue(val) {
|
currentValue(val) {
|
||||||
this.$emit('input', val);
|
this.$emit('update:modelValue', val);
|
||||||
this.$emit('change', val, { name: this.name });
|
this.$emit('change', val, { name: this.name });
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -194,7 +206,7 @@ export default createComponent({
|
|||||||
|
|
||||||
emitChange(value) {
|
emitChange(value) {
|
||||||
if (this.asyncChange) {
|
if (this.asyncChange) {
|
||||||
this.$emit('input', value);
|
this.$emit('update:modelValue', value);
|
||||||
this.$emit('change', value, { name: this.name });
|
this.$emit('change', value, { name: this.name });
|
||||||
} else {
|
} else {
|
||||||
this.currentValue = value;
|
this.currentValue = value;
|
||||||
@ -272,20 +284,18 @@ export default createComponent({
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const createListeners = (type) => ({
|
const createListeners = (type) => ({
|
||||||
on: {
|
onClick: (e) => {
|
||||||
click: (e) => {
|
|
||||||
// disable double tap scrolling on mobile safari
|
// disable double tap scrolling on mobile safari
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.onChange();
|
this.onChange();
|
||||||
},
|
},
|
||||||
touchstart: () => {
|
onTouchstart: () => {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.onTouchStart();
|
this.onTouchStart();
|
||||||
},
|
},
|
||||||
touchend: this.onTouchEnd,
|
onTouchend: this.onTouchEnd,
|
||||||
touchcancel: this.onTouchEnd,
|
onTouchcancel: this.onTouchEnd,
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -163,10 +163,10 @@ module.exports = {
|
|||||||
path: 'slider',
|
path: 'slider',
|
||||||
title: 'Slider 滑块',
|
title: 'Slider 滑块',
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// path: 'stepper',
|
path: 'stepper',
|
||||||
// title: 'Stepper 步进器',
|
title: 'Stepper 步进器',
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
path: 'switch',
|
path: 'switch',
|
||||||
title: 'Switch 开关',
|
title: 'Switch 开关',
|
||||||
@ -497,10 +497,10 @@ module.exports = {
|
|||||||
path: 'slider',
|
path: 'slider',
|
||||||
title: 'Slider',
|
title: 'Slider',
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// path: 'stepper',
|
path: 'stepper',
|
||||||
// title: 'Stepper',
|
title: 'Stepper',
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
path: 'switch',
|
path: 'switch',
|
||||||
title: 'Switch',
|
title: 'Switch',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user