|
@@ -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)
|