vue2.0全局过滤器引用
vue2.0全局过滤器引用
1、filters.js文件内容
const filters = {
//过滤日期格式
formatDate: function (value, fmt) {
//针对ios日期展示NaN-aN-aN问题,正则替换'-'为'/'
value = !value ? value: value.toString().replace(/-/g, '/');
let getDate = !value ? new Date() : new Date(value);
let o = {
'M+': getDate.getMonth() + 1,
'd+': getDate.getDate(),
'h+': getDate.getHours(),
'm+': getDate.getMinutes(),
's+': getDate.getSeconds(),
'q+': Math.floor((getDate.getMonth() + 3) / 3),
'S': getDate.getMilliseconds()
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length))
}
for (let k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
}
}
return fmt;
},
//字典转换
dicValue: function (value, dicTypeOptions) {
if (dicTypeOptions.find(item => item.cddValue == value) != undefined) {
return dicTypeOptions.find(item => item.cddValue == value).cddName
} else {
return '其他'
}
},
//过滤金额
money: function (value) {
if (value && value != null) {
value = String(value);
var left = value.split('.')[0], right = value.split('.')[1];
right = right ? (right.length >= 2 ? '.' + right.substr(0, 2) : '.' + right + '0') : '.00';
var temp = left.split('').reverse().join('').match(/(\d{1,3})/g);
return (Number(value) < 0 ? '-' : '') + temp.join(',').split('').reverse().join('') + right;
} // 注意===在这里的使用,如果传入的value为0,if中会将其判定为boolean类型,故而要另外做===判断
else if (value === 0) {
return '0.00';
} else {
return '';
}
}
}
export default (Vue) => {
Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key])
})
}
2、main.js文件中引用
./utils/filters为filters.js文件路径
import filters from './utils/filters'
filters(Vue)