input-number auto adjust min max value

pull/2369/head
baiyaaaaa 2017-01-12 01:52:57 +08:00 committed by 杨奕
parent bbd779c26f
commit accebb772b
2 changed files with 16 additions and 21 deletions

View File

@ -96,26 +96,20 @@
}
},
data() {
// correct the init value
let value = this.value;
if (value < this.min) {
this.$emit('input', this.min);
value = this.min;
}
if (value > this.max) {
this.$emit('input', this.max);
value = this.max;
}
return {
currentValue: value
currentValue: 0
};
},
watch: {
value(value) {
const newVal = Number(value);
if (!isNaN(newVal) && newVal <= this.max && newVal >= this.min) {
value: {
immediate: true,
handler(value) {
let newVal = Number(value);
if (isNaN(newVal)) return;
if (newVal >= this.max) newVal = this.max;
if (newVal <= this.min) newVal = this.min;
this.currentValue = newVal;
this.$emit('input', newVal);
}
}
},
@ -178,11 +172,12 @@
},
setCurrentValue(newVal) {
const oldVal = this.currentValue;
if (newVal <= this.max && newVal >= this.min && oldVal !== newVal) {
this.$emit('change', newVal, oldVal);
this.$emit('input', newVal);
this.currentValue = newVal;
}
if (newVal >= this.max) newVal = this.max;
if (newVal <= this.min) newVal = this.min;
if (oldVal === newVal) return;
this.$emit('change', newVal, oldVal);
this.$emit('input', newVal);
this.currentValue = newVal;
},
handleInput(value) {
const newVal = Number(value);

View File

@ -249,7 +249,7 @@ describe('InputNumber', () => {
const inputNumber = vm.$refs.inputNumber;
vm.value = 100;
vm.$nextTick(_ => {
expect(inputNumber.currentValue).to.be.equal(5);
expect(inputNumber.currentValue).to.be.equal(10);
vm.value = 4;
vm.$nextTick(_ => {