Доработка NumInput

This commit is contained in:
Book Pauk
2020-02-19 15:11:15 +07:00
parent c3395e1eff
commit d57f266789

View File

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