var locat = (window.location + '').split('/'); if ('fhsms' == locat[3]) { locat = locat[0] + '//' + locat[2]; } else { locat = locat[0] + '//' + locat[2] + '/' + locat[3]; } var EDITMONTH = '';//当前编辑月份 var flag = true; $(function() { $(getTop(globalThis).hangge()); //initTables(); //mergeCell(); }); function editTable(){ if(editflag == 0){ $('#editbutton').html('编辑中'); $(".editInput").removeAttr("readonly"); editflag = 1; }else if(editflag == 1){ $('#editbutton').html('编辑'); $(".editInput").attr("readonly","readonly" ); editflag = 0; } } //合并单元格 function mergeCell(){ var pTr = $('#simple-table tbody').find('td'); var companyArr = new Array(); $.each(pTr,function(i,obj){ var name = $(obj).attr('name'); if(name != undefined) companyArr.push(name); }); //相同name去重,合并单元格 companyArr = rep(companyArr); $.each(companyArr,function(i,obj){ var td = $('#simple-table tbody').find('td[name="'+obj+'"]'); $.each(td,function(n){ var t = $(td).eq(n);//当前td var currentTr = $(t).parent();//当前td所属tr var count = $(td).length;//相同name个数 //合并单元格 if(0 == n){ $(t).attr('rowspan',obj.substring(0, 2) == "c_" ? count+1:count).css('vertical-align','middle'); }else{ $(t).remove(); } //生成序号,根据道路排序 if(obj.substring(0, 2) == "r_"){ $(currentTr).find('.num').text(n+1); } //生成合计 if(n == count -1){ //公司 if(obj.substring(0, 2) == "c_"){ var company = obj.substring(2,obj.length); var monthTd = ''; for(var i=1;i<13;i++){ monthTd += ''; monthTd += ''; monthTd += ''; } monthTd += ''; monthTd += ''; monthTd += ''; /*var sumTr = '小计'+ ''+ ''+ ''+ monthTd+ '' $(currentTr).after(sumTr);*/ } } }); }); calcutSum(); } //格式化数字 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; } //汇总统计 function calcutSum(){ var sumCell = $('#simple-table tbody').find('.sumCell'); $(sumCell).each(function(i,o){ var name = $(o).attr('name'); var sum = 0; var sumLabel = $('#simple-table tbody label[name="'+name+'"]'); $(sumLabel).each(function(n,s){ var v = $(s).text().trim(); if(typeof(v) != "undefined") sum += Number(v); }); $(o).text(numFormat(sum)); }); } //数组去重 function rep(arr){ var o={}; var new_arr = []; for(var i=0;i"+vtip+""); $(e).parent().find('.vtip').width($(e).parent().width()); } return vtip; } //校验规则 function validateFun(name,val,e){ if(val == ''){ return "该字段不能为空"; } var re = new RegExp("^(\\-|\\+)?\\d+(\\.\\d+)?$"); //是否为数字 if(!re.test(val)) return "请填写数字"; var vscale = "1";//小数位数 var arr = (val + '').split("."); if(arr.length == 2){ if(arr[1] != '' && arr[1].length > vscale) return "小数精度不超过"+vscale; } if('RATIO' == name && numFormat(val) > 100){ return "数值不能超过100"; } return ""; } $.fn.serializeObject = function(){ var o = {}; var month = ''; var a = this.serializeArray(); $.each(a,function(){ var name = this.name; var index = name.lastIndexOf("_"); month = name.substring(index+1,name.length); name = name.substring(0,index); if(o[name]){ if(!o[name].push){ o[name] = [o[name]]; } o[name].push(this.value || ''); }else{ o[name] = this.value || ''; } }); o.month = month; return o; } function save(){ var formData = $('#Form').serializeObject(); var data = new Array(); flag = true; $(varList).each(function(i,obj){ var o = {}; o.company = obj.COMPANY; o.companyId = obj.COMPANY_ID; o.year = obj.YEAR; o.road = obj.ROAD; o.roadId = obj.ROAD_ID; o.projectName = obj.PROJECT_NAME; o.month = formData.month; o.actualCost = formData.ACTUAL_COST[i]; o.payCost = formData.PAY_COST[i]; o.ratio = formData.RATIO[i]; data.push(o); var month = o.month; validateTip($("input[name='ACTUAL_COST_"+month+"']").eq(i)); validateTip($("input[name='PAY_COST_"+month+"']").eq(i)); validateTip($("input[name='RATIO_"+month+"']").eq(i)); }); if(!flag) return; $.ajax({ url : locat+'/preventionCompletion/save.do', type : "post", dataType : 'json', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, data:JSON.stringify(data), success : function(data){ if(data.msg == 'ok'){ window.location.reload(); }else{ alert('error'); } } }); } //编辑 function editMonth(month,dom){ if(EDITMONTH != '' && EDITMONTH != month){ bootbox.confirm("其他月份尚未保存,是否进行保存?", function(result) { if(result) { save(); }else{ cancle(); edit(month,dom); } }); }else{ edit(month,dom); } } //取消编辑 function cancle(){ $('#saveBtn').addClass('dispaly'); $('#cancleBtn').addClass('dispaly'); var month = EDITMONTH; $('.month_'+month).attr('width','5%'); var actualCostName = 'ACTUAL_COST_'+month; var payCostName = 'PAY_COST_'+month; var ratioName = 'RATIO_'+month; removeInput(actualCostName); removeInput(payCostName); removeInput(ratioName); EDITMONTH = ''; } function removeInput(name){ $('.'+name).css('display','block'); $('.'+name).next().remove(); $('.vtip').remove(); } //编辑 function edit(month,dom){ $('#saveBtn').removeClass('dispaly'); $('#cancleBtn').removeClass('dispaly'); EDITMONTH = month; $(dom).parent().attr('width','50%'); var actualCostName = 'ACTUAL_COST_'+month; var payCostName = 'PAY_COST_'+month; var ratioName = 'RATIO_'+month; addInput(actualCostName,6); addInput(payCostName,6); addInput(ratioName,4); } function addInput(name,maxlen){ $('.'+name).css('display','none'); $('.'+name).next().remove(); var input = ''; $('.'+name).after(input); //文本框副总 $('.'+name).each(function(i,obj){ var v = $(obj).text().trim(); $(obj).next('input').val(v); }); } //获取本网站的顶级节点,解决被其他网站iframe引入时发生的跨域问题 function getTop(obj){ var tp = obj; //alert(obj.name); if (tp.mainFrame == undefined) { tp = tp.parent; return getTop(tp); } else { return tp; } }