【vue】常用管道记录

一、保留N位小数(四舍五入)管道

输入保留位数与是否增加正号(默认否),不为数值则直接返回,若为数值则四舍五入后去除末尾0并拼接原单位至数值末尾。
(1)管道文件代码

Vue.filter('reserveDecimal', function(value, num, sign = false) {
  return decimalUtil.reserveDecimal(value, num, sign);
})

(2)工具类文件代码

reserveDecimal(value, num, sign) {
	if (_.isUndefined(value) || _.isNull(value)) {
		return value;
	}
	if (typeof(value) != 'number' && typeof(value) != 'string') {
		return value;
	}
	var reg =/[\u4e00-\u9fa5]/g;
	let strList = String(value).match(reg);
	let result = Number(String(value).replace(reg, ""));
	if (Number.isNaN(result) || result == 0) {
		return value;
	}
	result = String(parseFloat(value).toFixed(num));
	if (result.indexOf('.') != -1) {
		for(let n = result.length - 1; n >= 0; n --) {
			if (result[n] == '0') {
				result = result.substring(0, result.length - 1);
			}else if (result[n] == '.'){
				result = result.substring(0, result.length - 1);
				break;
			} else {
				break;
			}
		}
	}
	if (sign && Number(result) > 0) {
		result = '+' + result;
	}
	if (strList != null && strList.length != 0) {
		for (let item of strList) {
			result += item;
		}
	}
	return result;
}

二、日期格式化管道

输入格式,默认为yyyy-MM-dd。
(1)管道文件代码

Vue.filter('dateFormatter', function(value, format = 'yyyy-MM-dd') {
  if (!value) {
    return value;
  }
  if (new Date(Date.parse(value.replace(/-/g, '/'))) == 'Invalid Date'){
    return value;
  }
  return util.format.formatStrTime(value, format);
})

(2)工具类文件代码

formatStrTime: function (dateStr, format = 'yyyy-MM-dd HH:mm:ss') {
	let date = new Date(Date.parse(dateStr.replace(/-/g, '/')));
	return dateFormat(format, date);
},
export const dateFormat = (fmt, date) => {
	let ret;
	const opt = {
		'y+': date.getFullYear().toString(),
    	'M+': (date.getMonth() + 1).toString(),
   		'd+': date.getDate().toString(), 
    	'H+': date.getHours().toString(),
    	'm+': date.getMinutes().toString(), 
    	's+': date.getSeconds().toString()
	}
  	for (let k in opt) {
    	ret = new RegExp('(' + k + ')').exec(fmt);
    	if (ret) {
    		fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0')));
    	}
    }
  	return fmt;
}
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布熬夜了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值