Доработка NumInput
This commit is contained in:
@@ -50,6 +50,7 @@ const NumInputProps = Vue.extend({
|
|||||||
min: { type: Number, default: -Number.MAX_VALUE },
|
min: { type: Number, default: -Number.MAX_VALUE },
|
||||||
max: { type: Number, default: Number.MAX_VALUE },
|
max: { type: Number, default: Number.MAX_VALUE },
|
||||||
step: { type: Number, default: 1 },
|
step: { type: Number, default: 1 },
|
||||||
|
digits: { type: Number, default: 0 },
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -58,7 +59,7 @@ export default @Component({
|
|||||||
filteredValue: function(newValue) {
|
filteredValue: function(newValue) {
|
||||||
if (this.validate(newValue)) {
|
if (this.validate(newValue)) {
|
||||||
this.error = false;
|
this.error = false;
|
||||||
this.$emit('input', Number.parseFloat(newValue));
|
this.$emit('input', this.string2number(newValue));
|
||||||
} else {
|
} else {
|
||||||
this.error = true;
|
this.error = true;
|
||||||
}
|
}
|
||||||
@@ -73,12 +74,15 @@ class NumInput extends NumInputProps {
|
|||||||
error = false;
|
error = false;
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.mask = '#'.repeat(this.max.toString().length);
|
|
||||||
this.filteredValue = this.value;
|
this.filteredValue = this.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string2number(value) {
|
||||||
|
return parseFloat(Number.parseFloat(value).toFixed(this.digits));
|
||||||
|
}
|
||||||
|
|
||||||
validate(value) {
|
validate(value) {
|
||||||
let n = Number.parseFloat(value);
|
let n = this.string2number(value);
|
||||||
if (isNaN(n))
|
if (isNaN(n))
|
||||||
return false;
|
return false;
|
||||||
if (n < this.min)
|
if (n < this.min)
|
||||||
|
|||||||
Reference in New Issue
Block a user