var locat = (window.location+'').split('/'); $(function(){if('fhsms'== locat[3]){locat = locat[0]+'//'+locat[2];}else{locat = locat[0]+'//'+locat[2]+'/'+locat[3];};}); $(getTop(globalThis).hangge()); var pd_TABLETYPE = $('#pd_TABLETYPE').html(); var subtable = $('#subtable').html(); var pd_COMPANY = $("#pd_COMPANY").html(); var pd_COMPANY_ID = $("#pd_COMPANY_ID").html(); var pd_YEAR = $("#pd_YEAR").html(); var pd_mode = $("#pd_mode").html(); var editflag = 0; var validateJsonData = new Object(); function tableInit(){ //小计行的总计列 // setTotalCell(0); $('#simple-table tbody .edittr').each(function(index,e){ //行内总计 setRowSumCell(e); //百分比初始化 setTrPercentCell(e); }); //小计行的总计列 var totalcells = $('#simple-table .totaltr .sumCell'); for(var i=0; i保存成功!", buttons: { "button" : { "label" : "确定", "className" : "btn-sm btn-success", "callback" : function(){ //var selfhref = self.location.href; self.location.href; } } } }); } }); }else{ getTop(globalThis).hangge(); bootbox.dialog({ message: "仍有数据不符合要求!", buttons: { "button" : { "label" : "确定", "className" : "btn-sm btn-success", "callback" : function(){ //var selfhref = self.location.href; self.location.href; } } } }); } } function dataResult(){ var mapArry = $('#simple-table form').serializeArray(); var dataArry = []; var cellcount = 55; var recordcount = $('#simple-table .edittr').length; for(var i=0; i.percentCell").each(function(index,e){ var num1,num2; if($(tr).find("td>."+$(e).attr("num1"))[0].tagName == "INPUT") num1 = $(tr).find("td>."+$(e).attr("num1")).val(); else if($(tr).find("td>."+$(e).attr("num1"))[0].tagName == "SPAN") num1 = $(tr).find("td>."+$(e).attr("num1")).html(); if($(tr).find("td>."+$(e).attr("num2"))[0].tagName == "INPUT") num2 = $(tr).find("td>."+$(e).attr("num2")).val(); else if($(tr).find("td>."+$(e).attr("num2"))[0].tagName == "SPAN") num2 = $(tr).find("td>."+$(e).attr("num2")).html(); var result = percentage(num1, num2); if(e.tagName == "INPUT") $(e).val(result); else if(e.tagName == "SPAN") $(e).html(result); }); } function setRowSumCell(tr){ $(tr).find("td>.rowSumCell").each(function(index,e){ var totalvalue = 0; var sumtype = $(e).attr('class').split(' ')[1] + '_'; for(var i=1; i<13; i++){ var editcellval =""; if(sumtype=="PLAN_COST_"){ editcellval = $(tr).find("td>."+sumtype+i).html(); } else{ editcellval = $(tr).find("td>."+sumtype+i).val(); } if(typeof(editcellval) != "undefined") totalvalue += Number(editcellval); } $(e).html(numFormat(totalvalue) + ''); }); } function setUnitTotalCell(tr){ $(tr).find("td>.unitTotalCell").each(function(index,e){ var num1 = $(tr).find("td>."+$(e).attr("num1")).val(); var num2 = $(tr).find("td>."+$(e).attr("num2")).val(); var result = unitTotal(num1, num2); $(e).val(result); }); } function percentage(num1, num2){ var percent = ""; if(!isNaN(Number(num1)) && !isNaN(Number(num2)) && Number(num2) != "0" && num1 != '') percent = Math.round(Number(num1) / Number(num2) * 100) ; return percent; } function unitTotal(num1, num2){ var unitTotal = ""; if(!isNaN(Number(num1)) && !isNaN(Number(num2)) && Number(num1) != "0" && Number(num2) != "0") unitTotal = Number(num1) * Number(num2); if(!isNaN(Number(unitTotal)) && Number(unitTotal) != "0") unitTotal = numFormat(unitTotal); return unitTotal; } function numFormat(num){ if(!isNaN(Number(num)) && Number(num) != "0"){ if(num<10) num = Number(num).toFixed(1); else num = Math.round(Number(num)); } return num; } //获取校验json function getValidateJson(){ $.ajax({ type : "get", url : locat + "/annualDailyComp/getValidateJson.do?TABLETYPE=" + pd_TABLETYPE, dataType : 'json', success : function(data){ Object.assign(validateJsonData,data.map,data.submap); } }); } //校验规则 function validateFun(name,val,e){ if(name){ if(name.indexOf('ACTUAL_COST') == 0) name = 'ACTUAL_COST'; else if(name.indexOf('PAY_COST') == 0) name = 'PAY_COST'; else if(name.indexOf('PLAN_COST') == 0) name = 'PLAN_COST'; var vtype = validateJsonData[name].type; var vlength = validateJsonData[name].length; var vscale = validateJsonData[name].scale; var vnotnull = validateJsonData[name].notnull; if(val != ""){ if(vtype == 'decimal'){ var re = new RegExp("^(\\-|\\+)?\\d+(\\.\\d+)?$"); //是否为数字 if(!re.test(val)) return "请填写数字"; //小数位数 if(vscale == "1") $(e).val(numFormat(val)); if(vscale != "1"){ if(val.split(".").length = 2){ if(val.split(".")[1].length > vscale) return "小数精度不超过"+vscale; } // re = new RegExp("/^\\d+(\\.\\d{1,"+vscale+"})?$/"); // if(!re.test(val)) return "小数精度不超过"+vscale; } } //长度 if(val.length > vlength) return "长度超长"; //分报告名称不能重复 if(name == 'ITEM_NAME'){ for(var i=0; i<$('.ITEM_NAME').length; i++){ if($('.ITEM_NAME')[i] != e && $('.ITEM_NAME').eq(i).val() == val) return "该字段不能重复"; } } }else{ if(vnotnull == '1') return "该字段不能为空"; //分报告名称非空校验 if(name == 'ITEM_NAME'){ if($(e).parent().parent().find('>td>.UNIT').val()!='' ||$(e).parent().parent().find('>td>.UNIT_PRICE').val()!='' ||$(e).parent().parent().find('>td>.NUMBER').val()!=''){ return "该字段不能为空"; } } } //分报告名称非空校验 if(name == 'UNIT'||name == 'UNIT_PRICE'||name == 'NUMBER'){ $(e).parent().parent().find('>td>.ITEM_NAME').parent().find('.vtip').remove(); if($(e).parent().parent().find('>td>.UNIT').val()!='' ||$(e).parent().parent().find('>td>.UNIT_PRICE').val()!='' ||$(e).parent().parent().find('>td>.NUMBER').val()!=''){ validateTip($(e).parent().parent().find('>td>.ITEM_NAME')[0]); } } } return ""; } //校验提示 function validateTip(e){ $(e).val($(e).val().trim()); $(e).parent().find('.vtip').remove(); var vtip = validateFun($(e).attr('name'),$(e).val(),e); if(vtip != ""){ $(e).parent().append("
"+vtip+"
"); $(e).parent().find('.vtip').width($(e).parent().width()); } } //删除 function del(){ if($('.ace:checked').length > 0){ var roads=[],pnames=[]; $('.ace:checked').each(function(index,e){ roads.push($(e).parent().parent().parent().find('[name="ROAD_ID"]').val()); pnames.push($(e).parent().parent().parent().find('[name="PROJECT_NAME"]').val()); }); bootbox.confirm("确定要删除吗?", function(result) { if(result) { $.ajax({ type : "get", url : locat+'/test/deleteData.do?COMPANY_ID='+pd_COMPANY_ID+'&YEAR='+pd_YEAR+'&roads='+roads.join(',')+'&pnames='+pnames.join(',')+'&TABLETYPE='+pd_TABLETYPE, dataType : 'json', success : function(data){ if("success" == data.msg){ location.reload(true); }else if("false" == data.msg){ getTop(globalThis).hangge(); bootbox.dialog({ message: "删除失败!", buttons: { "button" : { "label" : "确定", "className" : "btn-sm btn-success" } } }); } } }); } }); } } $(function(){ tableInit(); getValidateJson(); }); //获取本网站的顶级节点,解决被其他网站iframe引入时发生的跨域问题 function getTop(obj){ var tp = obj; //alert(obj.name); if (tp.mainFrame == undefined) { tp = tp.parent; return getTop(tp); } else { return tp; } }