公共方法:
/** 小写金额转大写金额 */dealBigMoney(n) {if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) { return '数据非法' }let unit = '千百拾亿千百拾万千百拾元角分'; let str = ''n += '00'const p = n.indexOf('.')if (p >= 0) {n = n.substring(0, p) + n.substr(p + 1, 2)unit = unit.substr(unit.length - n.length)}for (var i = 0; i < n.length; i++) { str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i) }return str.replace(/零(仟|佰|拾|角)/g, '零').replace(/(零)+/g, '零').replace(/零(万|亿|元)/g, '$1').replace(/(亿)万|壹(拾)/g, '$1$2').replace(/^元零?|零分/g, '').replace(/元$/g, '元')}
调用方法 注意这里需要是number类型,如果是后端返回的字符串,转化后,金额会非常离谱。
// 有两位小数的 row.capitalMoney = this.dealBigMoney(Number(row.money).toFixed(2))row.capitalMoreMoney = this.dealBigMoney(row.moreMoney)