对vue表格数据进行格式化—阿拉伯数字转中文

需求


<el-table :data="tableData">
  <el-table-column prop="number" label="份数" />     
</el-table>

此时number字段内容只是一个阿拉伯数字,我想作一些转换:

1--->第一份

方法


Table-column提供了一个方法
image.png

解决


我给formatter属性绑定了转换方法toChinesNum

<el-table-column prop="number" label="份数" :formatter="toChinesNum"/>  

接着只需在methods上定义toChinesNum方法:

toChinesNum(row,column){
  let num=row[column.property] //row[column.property]获取字段内容
  
  num = parseInt(num);
  let changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; 
  let unit = ["", "十", "百", "千", "万"];
  let getWan = (temp) => {
    let strArr = temp.toString().split("").reverse();
    let newNum = "";
    for (var i = 0; i < strArr.length; i++) {
      newNum = (i == 0 && strArr[i] == 0 ? "" : (i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? "" : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i]))) + newNum;
    }
    return newNum;
  }
  let overWan = Math.floor(num / 10000);
  let noWan = num % 10000;
  if (noWan.toString().length < 4) noWan = "0" + noWan;
  
  let chinanum=overWan ? getWan(overWan) + "万" + getWan(noWan) : getWan(num);
  return `第${chinanum}份`
},

阿拉伯数字转化为中文数字的方法参考了这篇博文

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值