123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- 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 += '<td class="center"><span class="sumCell" name="'+company+'_ACTUAL_COST_'+i+'"></span></td>';
- monthTd += '<td class="center"><span class="sumCell" name="'+company+'_PAY_COST_'+i+'"></span></td>';
- monthTd += '<td class="center"><span class="sumCell" name="'+company+'_RATIO_'+i+'"></span></td>';
- }
- monthTd += '<td class="center"><span class="sumCell" name="'+company+'_ACTUAL_COST"></span></td>';
- monthTd += '<td class="center"><span class="sumCell" name="'+company+'_PAY_COST"></span></td>';
- monthTd += '<td class="center"><span class="sumCell" name="'+company+'_RATIO"></span></td>';
-
- /*var sumTr = '<tr class="totaltr"><td colspan="6" class="center">小计</td>'+
- '<td class="center"><span class="sumCell" name="'+company+'_PROJECT_COST"></span></td>'+
- '<td class="center"><span class="sumCell" name="'+company+'_AUDIT_FEE"></span></td>'+
- '<td></td>'+
- monthTd+
- '</tr>'
- $(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<arr.length;i++){
- var k=arr[i];
- if(!o[k]){
- o[k]=true;
- new_arr.push(k);
- }
- }
- return new_arr;
- }
- //初始化表格数据
- function initTables(){
- //数据初始化
- $(varList).each(function(i,obj){
- var companyId = obj.COMPANY_ID;
- var roadId = obj.ROAD_ID;
- var year = obj.YEAR;
- var projectName = obj.PROJECT_NAME;
- var tr = $('#simple-table tbody').find('tr').eq(i);
- $(monthRoadList).each(function(n,o){
- var o_companyId = o.COMPANY_ID;
- var o_roadId = o.ROAD_ID;
- var o_year = o.YEAR;
- var month = o.MONTH;
- var o_projectName = o.PROJECT_NAME;
- if(companyId == o_companyId && roadId == o_roadId && year == o_year && projectName == o_projectName){
- $(tr).find('label[class="editInput ACTUAL_COST_'+month+'"]').text(o.ACTUAL_COST).parent().attr('title',o.ACTUAL_COST);
- $(tr).find('label[class="editInput PAY_COST_'+month+'"]').text(o.PAY_COST).parent().attr('title',o.PAY_COST);
- $(tr).find('label[class="editInput RATIO_'+month+'"]').text(o.RATIO).parent().attr('title',o.RATIO);
- }
- });
- $(sumRoadList).each(function(n,o){
- var o_companyId = o.COMPANY_ID;
- var o_roadId = o.ROAD_ID;
- if(companyId == o_companyId && roadId == o_roadId){
- $(tr).find('label[name="'+companyId+'_ACTUAL_COST"]').text(o.SUM_ACTUAL_COST).parent().attr('title',o.SUM_ACTUAL_COST);;
- $(tr).find('label[name="'+companyId+'_PAY_COST"]').text(o.SUM_PAY_COST).parent().attr('title',o.SUM_PAY_COST);;
- $(tr).find('label[name="'+companyId+'_RATIO"]').text(o.SUM_RATIO).parent().attr('title',o.SUM_RATIO);;
- }
- });
- });
- }
- function editValue(e){
- validateTip(e);
- }
- //校验提示
- function validateTip(e){
- if($(e).val() != '')
- $(e).val($(e).val().trim());
- $(e).parent().find('.vtip').remove();
-
- var name = $(e).attr('name');
- var index = name.lastIndexOf("_");
- name = name.substring(0,index);
-
- var vtip = validateFun(name,$(e).val(),e);
- if(vtip != ""){
- flag = false;
- $(e).parent().append("<div class='vtip'>"+vtip+"</div>");
- $(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 = '<input onblur="editValue(this)" name="'+name+'" class="editInput" type="text" style="width:50px" maxlength = '+maxlen+'/>';
- $('.'+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;
- }
- }
|