mirror of https://github.com/ElemeFE/element
input-number auto adjust min max value
parent
bbd779c26f
commit
accebb772b
|
@ -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);
|
||||
|
|
|
@ -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(_ => {
|
||||
|
|
Loading…
Reference in New Issue