Post

filter 全局使用金额

main.js

1
2
3
4
5
/* 过滤器 */
import * as filters from "@/filter";
Object.keys(filters).forEach((key) => {
  Vue.filter(key, filters[key]);
});

filter.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//定义number_format方法
function number_format(number, decimals, dec_point, thousands_sep) {
  decimals = 2; //这里默认设置保留两位小数,也可以注释这句采用传入的参数
  /*
   * 参数说明:
   * number:要格式化的数字
   * decimals:保留几位小数
   * dec_point:小数点符号
   * thousands_sep:千分位符号
   * */
  number = (number + "").replace(/[^0-9+-Ee.]/g, "");
  var n = !isFinite(+number) ? 0 : +number,
    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
    sep = typeof thousands_sep === "undefined" ? "," : thousands_sep,
    dec = typeof dec_point === "undefined" ? "." : dec_point;
  var s = n.toString().split(".");
  var re = /(-?\d+)(\d{3})/;
  while (re.test(s[0])) {
    s[0] = s[0].replace(re, "$1" + sep + "$2");
  }
  if ((s[1] || "").length < prec) {
    s[1] = s[1] || "";
    s[1] += new Array(prec - s[1].length + 1).join("0");
  } else {
    s[1] = s[1].substring(0, prec); //小数点位数超出长度时截取前面的位数
  }
  return s.join(dec);
}
export {
  number_format, //通过此处导出方法
};

使用

1
2
3
4

import { number_format } from "@/filter";

This post is licensed under CC BY 4.0 by the author.