1.经过一天多的时间,踏过无数bug与辛酸,最终在这个阳光明媚的清晨,突然灵机一动就写出来了,意外惊喜往往都是来得如此突然,所以任何时候,都不要放弃,加油!!!
// 生成剩余金额(随机红包算法)
randownMoney:function(){
// 填写的总额
var totalMoney=0;
// 剩余总额
var dediMoney=0;
// 未填数组
var dediList = new Array();
for (var i = 0; i < $("#redPackegeNumber").val(); i++) {
var n =i*1+1;
if($(".redPackgeMoneytwo"+n+"")[3].value==0){
dediList.push(".redPackgeMoneytwo"+n+"");
}else{
totalMoney=formatFloat(totalMoney,2)+formatFloat($(".redPackgeMoneytwo"+n+"")[3].value,2);
}
}
dediMoney=$("#redPackgeMoney").val()-totalMoney
if((formatFloat(dediMoney,2))/(dediList.length)<0.01){
layui.layer.alert("金额无法均分");
return ;
}
//未填红包生成算法
if(dediList.length>0&&dediMoney>0){
for (var i = 0; i < dediList.length; i++) {
var n =i*1+1;
if($(dediList[i])[3].value==0&&dediMoney>0&&n<dediList.length){
// 随机金额 范围[0, (剩余金额-剩余红包数量*红包最小分配金额 之内的随机数) )
var rd=formatFloat(Math.random()*(dediMoney-0.01*(dediList.length-n)),2);
if(rd<0.01){
rd=0.01;
}
$(dediList[i])[3].value=rd;
}else{
$(dediList[i])[3].value=formatFloat(dediMoney,2);
}
dediMoney=formatFloat(dediMoney-$(dediList[i])[3].value,2);
}
}else{
layui.layer.alert("都有数据或数据已满,无法生成");
}
},
//保留两位小数 四舍五入
formatFloat : function(src,pos){
return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
},