const MoneyFormat = {
  /**
   * 功能描述：格式化金额字段
   * 使用方式
   * {{item.bidAmount | moneyFormat}}
   *
   * @param number 金额
   * @param places 小数点位数
   * @param symbol 货币符号
   * @param thousand 千分位符号
   * @param decimal
   * @returns {string}
   */
  moneyFormat (number, places, symbol, thousand, decimal) {
    number = number || 0
    places = !isNaN(places = Math.abs(places)) ? places : 2
    symbol = symbol !== undefined ? symbol : '¥' // 货币单位
    thousand = thousand || ',' // 千分位分割符
    decimal = decimal || '.' // 小数位分割符
    const negative = number < 0 ? '-' : ''
    const i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + ''
    const j = i.length > 3 ? i.length % 3 : 0
    return symbol + negative + (j ? i.substr(0, j) + thousand : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : '')
  },

  // 全局安装器
  install (Vue) {
    Vue.filter('moneyFormat', this.moneyFormat)
  }
}

export default MoneyFormat
