<tbody> <tr id="demoR" style="display: none"> <td> <input type='checkbox' name='ckb_r' data-id="-1"/> </td> <td> <input name="expenseRList[-1].settleObjId" type="text" style="width:220px" data_name='settleObj' rp_flag='R' /> <!-- <select name="expenseRList[-1].settleObjId" style="width:150px"> --> <%-- <option value="${requestScope.companyModel.companyId}" >${requestScope.companyModel.companyCname}</option> --%> <!-- </select> --> </td> <td> <e:Select name="expenseRList[-1].chargeId" queryName="${applicationScope.bacQuery.CHARGEITEM}" textField="chargeCname" valueField="chargeId" selectValue="" attribute="style='width:150px' datatype='*'"/><span class="Validform_checktip"></span> </td> <!-- <td> --> <!-- <input type="text" style="width:81%" value="" name="expenseRList[-1].chargeRate"> --> <!-- </td> --> <td> <e:Select name="expenseRList[-1].chargeUnit" queryName="${applicationScope.bacQuery.CHARGEUNIT}" textField="unitCname" valueField="unitId" selectValue="" attribute="style='width:100px' datatype='*'"/><span class="Validform_checktip"></span> </td> <td> <input id="countR-1" changeR-id="-1" type="text" style="width:81%" value="" name="expenseRList[-1].count" datatype="n"><span class="Validform_checktip"></span> </td> <td> <e:Select id="expenseRCurrency-1" name="expenseRList[-1].currency" queryName="${applicationScope.bacQuery.CURRENCY}" textField="curMeaning" valueField="curCode" selectValue="${requestScope.valueOfCurrency }" attribute="style='width:100px' datatype='*' onchange='caculateAmount()'"/><span class="Validform_checktip"></span> </td> <td> <input id="unitPriceR-1" changeR-id="-1" type="text" style="width:91%" value="" name="expenseRList[-1].unitPrice" datatype="/^[+]?\d+(\.\d+)?$/" errormsg="请填写数字"><span class="Validform_checktip"></span> </td> <td> <input id="amountR-1" type="text" style="width:81%" value="0" name="expenseRList[-1].amount" readonly data='1' dataname='amountR' datacur='USD'> </td> <input type="hidden" name="expenseRList[-1].rpFlag" value="R" /> <input id="r-1" type="hidden" name="expenseRList[-1].modelState" value="" /> <input id="rId-1" type="hidden" name="expenseRList[-1].expenseId" value="" /> </tr> <c:forEach var="item" items="${requestScope.expenseModel.expenseRListShow}" varStatus="status"> <tr> <td> <input type='checkbox' name='ckb_r' data-id="${status.index}"/> </td> <td> <input name="expenseRList[${status.index}].settleObjId" type="text" style="width:220px" data_name='settleObj' settleObj_id="${item.settleObjId}" settleObj_name="${item.settleObjName}"/> <%-- <select name="expenseRList[${status.index}].settleObjId" style="width:150px"> --%> <%-- <option value="${requestScope.companyModel.companyId}" >${requestScope.companyModel.companyCname}</option> --%> <!-- </select> --> </td> <td> <e:Select name="expenseRList[${status.index}].chargeId" queryName="${applicationScope.bacQuery.CHARGEITEM}" textField="chargeCname" valueField="chargeId" selectValue="${item.chargeId}" attribute="style='width:150px' datatype='*'"/><span class="Validform_checktip"></span> </td> <!-- <td> --> <%-- <input type="text" style="width:81%" value="${item.chargeRate}" name="expenseRList[${status.index}].chargeRate" onkeyup="value=value.replace(/[^\-?\d.]/g,'')" onafterpaste="this.value=this.value.replace(/[^\-?\d.]/g,'')"> --%> <!-- </td> --> <td> <e:Select name="expenseRList[${status.index}].chargeUnit" queryName="${applicationScope.bacQuery.CHARGEUNIT}" textField="unitCname" valueField="unitId" selectValue="${item.chargeUnit}" attribute="style='width:100px' datatype='*'"/><span class="Validform_checktip"></span> </td> <td> <input id="countR${status.index}" changeR-id="${status.index}" type="text" style="width:81%" value="<f:formatNumber value="${item.count}" pattern="###,###" />" name="expenseRList[${status.index}].count" datatype="n" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') "><span class="Validform_checktip" ></span> </td> <td> <e:Select id="expenseRCurrency${status.index}" name="expenseRList[${status.index}].currency" queryName="${applicationScope.bacQuery.CURRENCY}" textField="curMeaning" valueField="curCode" selectValue="${item.currency}" attribute="style='width:100px' datatype='*' onchange='caculateAmount()'" /><span class="Validform_checktip"></span> </td> <td> <input id="unitPriceR${status.index}" changeR-id="${status.index}" type="text" style="width:91%" value="${item.unitPrice}" name="expenseRList[${status.index}].unitPrice" datatype="/^[+]?\d+(\.\d+)?$/" errormsg="请填写数字" onkeyup="value=value.replace(/[^\-?\d.]/g,'')" onafterpaste="this.value=this.value.replace(/[^\-?\d.]/g,'')" ><span class="Validform_checktip" ></span> </td> <td> <input id="amountR${status.index}" type="text" style="width:81%" value="${item.amount}" name="expenseRList[${status.index}].amount" readonly data='${item.amount}' dataname='amountR' datacur='${item.currency}'> </td> <input type=hidden name="expenseRList[${status.index}].rpFlag" value="R" /> <input id="r${status.index}" type=hidden name="expenseRList[${status.index}].modelState" value="" /> <input id="rId${status.index}" type="hidden" name="expenseRList[${status.index}].expenseId" value="${item.expenseId}" /> </tr> </c:forEach> </tbody>
$('#RUSD').attr("disabled",true);
$('#RCNY').attr("disabled",true);
$('#PUSD').attr("disabled",true);
$('#PCNY').attr("disabled",true);
$('#ProfitUSD').attr("disabled",true);
$('#ProfitCNY').attr("disabled",true);
$('#totalCNY').attr("disabled",true);
$(function(){
caculateAmount();
})
$("input[dataname='amountR']").change(function(){
caculateAmount();
});
$("input[dataname='amountP']").change(function(){
caculateAmount();
});
function caculateAmount(){ var RBoxs=$("input[dataname='amountR']"); var PBoxs=$("input[dataname='amountP']"); var r_usdAmount=0; var r_cnyAmount=0; var p_usdAmount=0; var p_cnyAmount=0; var profit_usdAmount=0; var profit_cnyAmount=0; var total_cnyAmount=0; var R = 0; var P = 0; var indexR = 0; var indexP = 0; var rate = 0; var rateURL="${pageContext.request.contextPath}/rest/bacCurrencyRateService/getNewRate.json"; $.post(rateURL,function(result){ rate = result.data; RBoxs.each(function(){ if((indexR++)==0){ //跳过demoR }else{ var amount=$(this).val(); var cur=$("#expenseRCurrency"+(R++)).val(); var floatAmount=parseFloat(amount); if(!floatAmount)floatAmount=0; if(cur=='USD'){ r_usdAmount+=floatAmount; }else if(cur=='CNY'){ r_cnyAmount+=floatAmount; } } }); PBoxs.each(function(){ if((indexP++)==0){ //跳过demoP }else{ var amount=$(this).val(); var cur=$("#expensePCurrency"+(P++)).val(); var floatAmount=parseFloat(amount); if(!floatAmount)floatAmount=0; if(cur=='USD'){ p_usdAmount+=floatAmount; }else if(cur=='CNY'){ p_cnyAmount+=floatAmount; } }; }); profit_usdAmount=r_usdAmount-p_usdAmount; profit_cnyAmount=r_cnyAmount-p_cnyAmount; total_cnyAmount=profit_usdAmount*rate+profit_cnyAmount; $('#RUSD').val(fmoney(r_usdAmount,2)); $('#RCNY').val(fmoney(r_cnyAmount,2)); $('#PUSD').val(fmoney(p_usdAmount,2)); $('#PCNY').val(fmoney(p_cnyAmount,2)); $('#ProfitUSD').val(fmoney(profit_usdAmount,2)); $('#ProfitCNY').val(fmoney(profit_cnyAmount,2)); $('#totalCNY').val(fmoney(total_cnyAmount,2)); },"json"); } function fmoney(s, n) //s:传入的float数字 ,n:希望返回小数点几位 { if(s==null)return ''; n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; t = ""; for(i = 0; i < l.length; i ++ ) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); } return t.split("").reverse().join("") + "." + r; }