diff --git a/packages/common/style/var.less b/packages/common/style/var.less
index dc52cfb1..358e6155 100644
--- a/packages/common/style/var.less
+++ b/packages/common/style/var.less
@@ -111,3 +111,9 @@
// Search
@search-background-color: #f7f8fA;
+
+// Stepper
+@stepper-background-color: #f2f3f5;
+@stepper-button-disabled-color: #f7f8fa;
+@stepper-border-radius: 4px;
+@stepper-input-disabled-color: #f2f3f5;
diff --git a/packages/stepper/index.less b/packages/stepper/index.less
index c20f39e8..3b19a08f 100644
--- a/packages/stepper/index.less
+++ b/packages/stepper/index.less
@@ -3,33 +3,17 @@
.van-stepper {
font-size: 0;
- &__minus,
- &__plus,
- &__input-wrapper {
- display: inline-block;
- vertical-align: middle;
- background-color: @white;
- }
-
- &__minus {
- border-radius: 2px 0 0 2px;
-
- &::after {
- display: none;
- }
- }
-
- &__plus {
- border-radius: 0 2px 2px 0;
- }
-
&__minus,
&__plus {
position: relative;
- width: 40px;
- height: 30px;
+ display: inline-block;
+ width: 28px;
+ height: 28px;
padding: 5px;
- border: 1px solid @border-color;
+ margin: 1px;
+ vertical-align: middle;
+ background-color: @stepper-background-color;
+ border: 0;
box-sizing: border-box;
&::before {
@@ -50,7 +34,7 @@
bottom: 0;
left: 0;
margin: auto;
- background-color: @gray-darker;
+ background-color: @text-color;
content: '';
}
@@ -59,7 +43,7 @@
}
&--disabled {
- background-color: @background-color;
+ background-color: @stepper-button-disabled-color;
&::before,
&::after {
@@ -68,36 +52,42 @@
}
&--disabled&--hover {
- background-color: @background-color;
+ background-color: @stepper-button-disabled-color;
}
}
- &__input-wrapper {
- position: relative;
- width: 35px;
- height: 30px;
- padding: 1px;
- font-size: 14px;
- color: @gray-darker;
- text-align: center;
- border: 1px solid @border-color;
- border-width: 1px 0;
- border-radius: 0;
- box-sizing: border-box;
+ &__minus {
+ border-radius: @stepper-border-radius 0 0 @stepper-border-radius;
- &--disabled {
- color: @gray;
- background-color: @background-color;
+ &::after {
+ display: none;
}
}
+ &__plus {
+ border-radius: 0 @stepper-border-radius @stepper-border-radius 0;
+ }
+
&__input {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 100%;
- min-height: 0; // reset wechat default min height
- transform: translate3d(-50%, -50%, 0);
- appearance: none;
+ display: inline-block;
+ width: 30px;
+ height: 26px;
+ padding: 1px;
+ margin: 1px;
+ font-size: 14px;
+ color: @text-color;
+ text-align: center;
+ vertical-align: middle;
+ background-color: @stepper-background-color;
+ border: 0;
+ border-width: 1px 0;
+ border-radius: 0;
+ box-sizing: content-box;
+ -webkit-appearance: none;
+
+ &--disabled {
+ color: @gray;
+ background-color: @stepper-input-disabled-color;
+ }
}
}
diff --git a/packages/stepper/index.ts b/packages/stepper/index.ts
index 40b1d0dd..5289dc3d 100644
--- a/packages/stepper/index.ts
+++ b/packages/stepper/index.ts
@@ -1,9 +1,5 @@
import { VantComponent } from '../common/component';
-// Note that the bitwise operators and shift operators operate on 32-bit ints
-// so in that case, the max safe integer is 2^31-1, or 2147483647
-const MAX = 2147483647;
-
VantComponent({
field: true,
@@ -25,7 +21,7 @@ VantComponent({
},
max: {
type: null,
- value: MAX
+ value: Number.MAX_SAFE_INTEGER
},
step: {
type: null,
@@ -45,10 +41,14 @@ VantComponent({
watch: {
value(value) {
- if (value !== '') {
- this.set({
- value: this.range(value)
- });
+ if (value === '') {
+ return;
+ }
+
+ const newValue = this.range(value);
+
+ if (typeof newValue === 'number' && value !== newValue) {
+ this.set({ value: newValue });
}
}
},
@@ -64,12 +64,6 @@ VantComponent({
},
methods: {
- onClickWrapper() {
- if (!this.data.focus) {
- this.setData({ focus: true });
- }
- },
-
onFocus(event: Weapp.Event) {
this.$emit('focus', event.detail);
},
diff --git a/packages/stepper/index.wxml b/packages/stepper/index.wxml
index b14e1fc4..923b5545 100644
--- a/packages/stepper/index.wxml
+++ b/packages/stepper/index.wxml
@@ -1,24 +1,24 @@
+
+
-
-
-
+