2020-12-13

按照数据里面的日期进行数据格式

import {myMath} from "./mathUtils.js"; //计算和的工具
/**
 * @param {Array} dataLists | 需要格式化的数据 | [{ date:"2020-12-11",fuel_oil:232…… }……]
 * @param {Array} addField | 需要叠加的字段 | ['fuel_oil',……]
 * 
 * 根据日期("2020-12-21")格式化数据为下列格式
 * filterData = {"xx年xx日":{}}
 * mTotalData = {"xx年xx日":123456}
 */
export default function(dataLists,addField){
	let mTotalData = {};
	let filterData = {};
	
	//计算单日各项金额总计
	dataLists.map(item=>{
		let addRes = 0;
		addField.forEach((key,index)=>{
			addRes = myMath.accAdd(addRes,parseFloat(item[key]))
		})
		item.total = addRes;
		return item;
	})
	
	//格式化日期,按日期分组
	let saveFilterData = {};
	dataLists.forEach(item=>{
		let d = new Date(item.date);
		let y = d.getFullYear();
		let m = d.getMonth()+1;
		let day = d.getDate();
		m = m < 10 ? `0${m}` : m;
		let yAndM = `${y}${m}月`;
		item.mAndDay = `${m}${day}日`;
		if(!saveFilterData[yAndM]){
			saveFilterData[yAndM] = [];
			mTotalData[yAndM] = 0;
			saveFilterData[yAndM].push(item);
		} else {
			saveFilterData[yAndM].push(item);
		}
	})
	filterData = saveFilterData;
	
	//计算当月资金总计
	for (let key in saveFilterData) {
		let addRes = 0;
		saveFilterData[key].forEach(item=>{
			addRes = myMath.accAdd(addRes,parseFloat(item.total));
		})
		mTotalData[key] = addRes;
	}
	
	return {
		mTotalData,
		filterData
	}
}

对金额进行格式化为 “00.00”的形式

/**
				 * 格式化金额为00.00格式
				 * 保留两位小数 四舍五入
				 */
				$_formattingMoney(m){
					let money = m.toString();
					let dotIndex = money.indexOf('.');
					
					if(dotIndex === -1){ //没有小数
						return `${money}.00`
					}
					
					let integerNum = money.slice(0,dotIndex); //整数部分
					let decimalsNum = money.slice(dotIndex+1,money.length);//小数部分
					
					if(decimalsNum.length > 2){ //对小数部分进行四舍五入
						let frontTwo = decimalsNum.slice(0,2);
						let endAll = decimalsNum.slice(2,decimalsNum.length);
						let decimalNew = `${frontTwo}.${endAll}`;
						decimalsNum = Math.ceil(parseFloat(decimalNew));
					} else if(decimalsNum.length === 1){
						decimalsNum = `${decimalsNum}0`
					}
					
					return `${integerNum}.${decimalsNum}`
				}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值