el-table里边的el-input框只能输入两位小数,并计算合计

<template #default="scope">
 <el-input
   v-if="scope.row.pid != 0"
   v-model="scope.row.amount"
   type="text"
   placeholder="请输入"
   @input="limitInput(scope.row)"
 ></el-input>
</template>
function limitInput(row) {
  let val = row.amount
  // if (!val) {
  //   return
  // }
  let str = val.replace(/[^\d.]/g, '')
  let relZero = /^0{2}$/ //开头连续多个0只保留一个
  //开头连续多个0只保留一个 & 只允许输入一个小数点 & 小数点后输入最多输入两位小数
  if (
    relZero.test(str) ||
    str.split('.').length > 2 ||
    (str.split('.').length == 2 && str.split('.')[1].length > 2)
  ) {
    str = str.slice(0, -1)
  }
  if (/^\.$/.test(str)) {
    //开头输入小数点自动补充0
    str = '0.'
  }
  if (/^[0]+[1-9]+$/.test(str)) {
    //首位为0+非零数字,去掉首位0
    str = str.substring(1)
  }
  row.amount = str
  console.log(row.amount)
  let total = 0
  tableData.value.forEach((item) => {
    if (item.amount) {
      total = total + Number(item.amount)
    }
  })
  if (total == 0) {
    formData.value.amount = undefined
  } else {
    formData.value.amount = total.toFixed(2)
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值