$(function () { //绑定删除按钮删除当前行 bindDeleteBtn(); //绑定收入和采购成本的输入框【都有税率】 bindChangeableInput(); $("#saveDraft").click(function () { $("#saveDraft").attr('disabled',true); var message = verifyProjectContributionProfitRate(); if (message) { $("#saveDraft").attr('disabled',false); layuiAlert(message); return ; } console.log(message); var startTime = $("#startDate").val(); var endTime = $("#endDate").val(); if (startTime > endTime) { $("#saveDraft").attr('disabled',false); window.confirm('开始日期应早于结束日期'); return; } $("#pmsForm").attr("action",base+"/project/budgetEditSave"); $("#pmsForm").submit(); $("#saveDraft").attr('disabled',false); }); $("#saveApprove").click(function () { $("#saveApprove").attr('disabled',true); var message = verifyProjectContributionProfitRate(); if (message) { $("#saveApprove").attr('disabled',false); layuiAlert(message); return; } var startTime = $("#startDate").val(); var endTime = $("#endDate").val(); if (startTime > endTime) { $("#saveApprove").attr('disabled',false); window.confirm('开始日期应早于结束日期'); return; } $("#pmsForm").attr("action",base+"/project/budgetEditSaveAndApprove"); $("#pmsForm").submit(); $("#saveApprove").attr('disabled',false); }); }); /** * 一维数组变二维数组 * @param list * @param elementsPerSubArray * @returns {Array} */ function arrayToMatrix(list, elementsPerSubArray) { var matrix = [], i, k; for (i = 0, k = -1; i < list.length; i++) { if (i % elementsPerSubArray === 0) { k++; matrix[k] = []; } matrix[k].push(list[i]); } return matrix; } /** * 根据映射关系将数组变为对象 * @param arr 一行数据 * @param mapArr 映射数组 * @param keepBlank 如果有空的并且不保留空就返回空,废弃这一行 * @returns {*} */ function arr2Object(arr, mapArr, keepBlank) { var obj = {}; for (var i = 0; i < mapArr.length; i++) { if(!arr[i] && !keepBlank){ return null; } obj[mapArr[i]]=arr[i]; } return obj; } function arr2ObjectVerify(line, arr, detailPropertyArr, detailProperty) { var obj = {}; for (var i = 0; i < detailPropertyArr.length; i++) { var o = detailProperty[detailPropertyArr[i]]; //空但是要求非空 if(!arr[i] && o[0]){ layuiAlert("第 "+(line+1)+" 行的 "+o[1]+" 不允许为空"); return null; } obj[detailPropertyArr[i]]=arr[i]; } return obj; } /** * 收集收入明细的数据,因为动态添加的行modal无法识别,所以自己来收集 * @returns {Array} */ function collectData(className) { var a= []; $("." + className).each(function (t) { a.push($(this).val()); }); return a; } /** * 绑定每一行的删除事件,删除当前的一行tr */ function bindDeleteBtn() { $(".am-modal-line-delete").click(function () { //删除自己对应的tr $(this).parent().parent().remove(); }); } /** * 将页面收集到的数据转换为ajax请求的数据【一维数组转换为对象数组】 * @param data * @param detailPropertyArr * @param keepBlank * @returns {Array} */ function convertDetail(data,detailPropertyArr, keepBlank) { var arr = arrayToMatrix(data,detailPropertyArr.length); var details = []; for (var i=0;i