filters -- 价格保留两位小数过滤器

首先定义一个公共js 并导出 格式化方法:

 export function money(val) {
    if (val) {
      val = val.toString().replace(/\$|\,/g,'');
    }
    if(isNaN(val)) {
      val = "0";  
    } 
    let sign = (val == (val = Math.abs(val)));
    val = Math.floor(val*100+0.50000000001);
    let cents = val%100;
    val = Math.floor(val/100).toString();
    if(cents<10) {
       cents = "0" + cents
    }
    for (var i = 0; i < Math.floor((val.length-(1+i))/3); i++) {
        val = val.substring(0,val.length-(4*i+3)) + val.substring(val.length-(4*i+3));
    }
    return (((sign)?'':'-') + val + '.' + cents);
}

其次,在需要用到过滤器的页面 引入该方法

import { money } from '../../../utils/util'

并定义filters 接收该方法

  filters:{
        getMoney:money
    },

在页面上直接 {{参数 | 过滤器定义方法}} 如下:

<el-table-column prop="consumptionAmount" label="使用金额">
   <template slot-scope="scope">
       <div v-if="scope.row.consumptionAmount!=null">¥{{scope.row.consumptionAmount | getMoney}}</div>
       <div v-else></div>
   </template>
</el-table-column>

过滤器的使用方式大概就是这样了~~

posted @ 2020-10-19 13:41  巫小婆  阅读(166)  评论(0编辑  收藏  举报