需要循环绑定key值
import * as filters from './filters'
/* Register global filters */
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
1. 小数、整数转千分位(通用)
/**
* 小数、整数转千分位(通用)
* @param {number} num 小数、整数
* @returns {string} 格式化千分位后的数字 例: 22,111
*/
export function formatTh(num) {
if (!_.isFinite(parseFloat(num))) return '-'
if (num.toString().indexOf('.') !== -1) {
// 小数
return num.toString().replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
} else {
// 整数
return num.toString().replace(/(\d)(?=(\d{3})+$)/g, $1 => {
return $1 + ','
})
}
}
2. html转义、代码块替换
/**
* html转义
* @param {html} String html代码
* @returns {string} html
*/
export function htmlEncode(html) {
let temp = document.createElement('div')
temp.textContent !== undefined ? (temp.textContent = html) : (temp.innerText = html)
const output = temp.innerHTML
temp = null
return output
}
3. 时间显示转换
import moment from 'dayjs'
export function formatDate(date) {
// 超过7天,显示日期
if (moment(date).isBefore(moment().subtract(7, 'days'))) {
return moment(date).format('YYYY-MM0DD')
} else {
// 1小时前,xx小时前,x天前
return moment(date).local('zh-cn').form(moment())
}
}