主要利用formatter、和parser;两个属性对输入的数据进行切割和转换。该组件可以自定义小数点前后的位数和转成货币格式。
基于Vue2和Ant-Design-Vue封装的后台系统,其中包括很多常用组件和方法:Smile Admin
formatter:指定输入框展示值的格式
parser:指定从 formatter 里转换回数字的方式
precision:限制小数位数(在这个组件中是为了自动补零,始终保持小数点后两位。但是要和data中decimalPlaces这个属性保持一致)
##HTML
inputNumberF、inputNumberP、onChange在下面
<a-input-number
v-model="newMoney"
:formatter="inputNumberF"
:parser="inputNumberP"
:precision="2"
@change="onChange"
/>
## data中可以自定义小数点前位数,和小数点后几位,符号可以为空。
data() {
return {
// 旧值
oldMoney: null,
// 新的值
newMoney: null,
// 整数位
integralDigits: 6,
// 小数位
decimalPlaces: 2,
// 符号 ¥
symbol: '¥'
}
},
## 后期同学可以放到一些公共文件夹中(我一般都是新建一个utils文件夹),然后引入也是一样可以的。
methods: {
inputNumberF(value){
let res = this.regHandel(value)
let val = value.replace(res.reg, res.gs)
if(this.symbol != ''){
return `${
this.symbol} ${
val}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}else{
return val.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}
},
inputNumberP(value){
let res = this.regHandel(value)
let reg2 = null
if(this.symbol != ''){
reg2 = new RegExp(