fixed #3081
This commit is contained in:
parent
4f2dc7e328
commit
ce176e2190
2 changed files with 71 additions and 28 deletions
|
@ -1,39 +1,66 @@
|
|||
<!--<template>-->
|
||||
<!--<div>-->
|
||||
<!--<!–<Input-number :max="max" name="he" :min="-1" v-model="v1" :autofocus="autofocus"></Input-number>–>-->
|
||||
<!--<!–{{ v1 }}–>-->
|
||||
<!--<!–<div @click="c">change v1</div>–>-->
|
||||
<!--<!–<div @click="changeMax">change max</div>–>-->
|
||||
<!--<!–<Input-number disabled :max="10" :min="1" :step="1.2" v-model="v2"></Input-number>–>-->
|
||||
<!--<!–<Input-number :max="10" :min="1" v-model="obj.v"></Input-number>–>-->
|
||||
<!--<InputNumber :editable="false" :max="10" :min="1" :step="1.2" v-model="value2"></InputNumber>-->
|
||||
<!--<InputNumber :precision="1" :max="10" :min="1" :step="0.1" v-model="value1"></InputNumber>-->
|
||||
<!--</div>-->
|
||||
<!--</template>-->
|
||||
<!--<script>-->
|
||||
<!--export default {-->
|
||||
<!--props: {},-->
|
||||
<!--data () {-->
|
||||
<!--return {-->
|
||||
<!--v1: 1,-->
|
||||
<!--v2: 1,-->
|
||||
<!--max: 10,-->
|
||||
<!--autofocus: true,-->
|
||||
<!--obj: {-->
|
||||
|
||||
<!--},-->
|
||||
<!--value1: 1.0,-->
|
||||
<!--value2: 1-->
|
||||
<!--};-->
|
||||
<!--},-->
|
||||
<!--computed: {},-->
|
||||
<!--methods: {-->
|
||||
<!--c () {-->
|
||||
<!--this.v1 = 5;-->
|
||||
<!--},-->
|
||||
<!--changeMax () {-->
|
||||
<!--this.max++;-->
|
||||
<!--}-->
|
||||
<!--}-->
|
||||
<!--};-->
|
||||
<!--</script>-->
|
||||
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<!--<Input-number :max="max" name="he" :min="-1" v-model="v1" :autofocus="autofocus"></Input-number>-->
|
||||
<!--{{ v1 }}-->
|
||||
<!--<div @click="c">change v1</div>-->
|
||||
<!--<div @click="changeMax">change max</div>-->
|
||||
<!--<Input-number disabled :max="10" :min="1" :step="1.2" v-model="v2"></Input-number>-->
|
||||
<!--<Input-number :max="10" :min="1" v-model="obj.v"></Input-number>-->
|
||||
<InputNumber :editable="false" :max="10" :min="1" :step="1.2" v-model="value2"></InputNumber>
|
||||
<InputNumber :precision="1" :max="10" :min="1" :step="0.1" v-model="value1"></InputNumber>
|
||||
<InputNumber :max="1000000000" :min="1" v-model="value1" :formatter="formatter" :parser="parser" @on-change="change" style="width: 200px"></InputNumber>
|
||||
<InputNumber :max="1000000000" :min="1" v-model="value2" :formatter="formatter2" :parser="parser2" @on-change="change" style="width: 200px"></InputNumber>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: {},
|
||||
data () {
|
||||
return {
|
||||
v1: 1,
|
||||
v2: 1,
|
||||
max: 10,
|
||||
autofocus: true,
|
||||
obj: {
|
||||
|
||||
},
|
||||
value1: 1.0,
|
||||
value2: 1
|
||||
};
|
||||
value1: 1800000,
|
||||
value2: 55,
|
||||
formatter: (value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ','),
|
||||
parser: (value) => value.replace(/\$\s?|(,*)/g, ''),
|
||||
formatter2: (value) => `${value}%`,
|
||||
parser2: (value) => value.replace('%', '')
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
c () {
|
||||
this.v1 = 5;
|
||||
},
|
||||
changeMax () {
|
||||
this.max++;
|
||||
change (v) {
|
||||
console.log(v)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
@change="change"
|
||||
:readonly="readonly || !editable"
|
||||
:name="name"
|
||||
:value="precisionValue">
|
||||
:value="formatterValue">
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -113,6 +113,12 @@
|
|||
},
|
||||
elementId: {
|
||||
type: String
|
||||
},
|
||||
formatter: {
|
||||
type: Function
|
||||
},
|
||||
parser: {
|
||||
type: Function
|
||||
}
|
||||
},
|
||||
data () {
|
||||
|
@ -170,6 +176,13 @@
|
|||
precisionValue () {
|
||||
// can not display 1.0
|
||||
return this.precision ? this.currentValue.toFixed(this.precision) : this.currentValue;
|
||||
},
|
||||
formatterValue () {
|
||||
if (this.formatter) {
|
||||
return this.formatter(this.precisionValue);
|
||||
} else {
|
||||
return this.precisionValue;
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -256,6 +269,9 @@
|
|||
},
|
||||
change (event) {
|
||||
let val = event.target.value.trim();
|
||||
if (this.parser) {
|
||||
val = this.parser(val);
|
||||
}
|
||||
|
||||
if (event.type == 'input' && val.match(/^\-?\.?$|\.$/)) return; // prevent fire early if decimal. If no more input the change event will fire later
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue