问题场景:
- InputNumber组件在设置
precision
精度后,每次输入都会自动填充导致光标后移,影响输入体验。
<InputNumber :precision="2" :min="0.01" style="width:100%" v-model="value"/>
期待效果:
- 如输入1.22就直接输入而不是出现输入1,变为1.00的情况。
原因:
- 在iView的InputNumber组件中,对数字精度
precision
的验证是直接用toFixed(2)
以后的值替换的,才导致每次输入都会被新值所覆盖
解决:
iView.InputNumber.computed.precisionValue = function () {
let arr = (this.currentValue + '').split('.')
if (this.precision && arr[1] && this.precision < arr[1].length)
return this.currentValue.toFixed(this.precision)
return this.currentValue;
};