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 paramOption = { tabletype : '', category : '', //用title值 scale : '', //用title值 hasScale : 0, //0不根据规模分组 1根据 datatype : 1, //1计划 2完成情况 startYear : '', endYear : '', companys : '' }; var titleOption = { //可重置 tabletype : ['日常养护','预防养护','修复养护','专项养护','应急养护','试验检测项目','科研项目','设备大修','预备费'], category : ['路基','路面','桥梁','桥涵','涵洞通道','桥隧','隧道','交安设施','沿线设施','绿化','其他','清扫保洁','巡查检查','养护车辆设备','应急保通'], scale : ['大修','中修','小修'], //不可重置 daily_category : ['路基','路面','桥梁','涵洞通道','隧道','交安设施','沿线设施','绿化','清扫保洁','巡查检查','养护车辆设备','应急保通'], prevention_category : ['路基','路面','桥涵','隧道'], repair_category : ['路基','路面','桥涵','隧道','交安设施','沿线设施','绿化','其他'], special_category : ['路基','路面','桥涵','隧道','交安设施','沿线设施','绿化','其他'], emergency_category : ['路基','路面','桥涵','隧道','交安设施','沿线设施','绿化','其他'], test_category : ['路基','路面','桥涵','隧道','交安设施','沿线设施','其他'], scientific_category : ['路基','路面','桥隧','其他'], equipment_category : [], reserve_category : [] }; var valueOption = { //可重置 tabletype : ['daily','prevention','repair','special','emergency','test','scientific','equipment','reserve'], category : ['subgrade','pavement','bridge','bridgeAndCulvert','culvert','bridgeAndTunnel','tunnel','safe','line','green','other','clean','patrol','car','emergency'], scale : ['max','mid','min'], //不可重置 daily_category : ['subgrade','pavement','bridge','culvert','tunnel','safe','line','green','clean','patrol','car','emergency'], prevention_category : ['subgrade','pavement','bridgeAndCulvert','tunnel'], repair_category : ['subgrade','pavement','bridgeAndCulvert','tunnel','safe','line','green','other'], special_category : ['subgrade','pavement','bridgeAndCulvert','tunnel','safe','line','green','other'], emergency_category : ['subgrade','pavement','bridgeAndCulvert','tunnel','safe','line','green','other'], test_category : ['subgrade','pavement','bridgeAndCulvert','tunnel','safe','line','other'], scientific_category : ['subgrade','pavement','bridgeAndTunnel','other'], //无类别 equipment_category : ['noCategory'], reserve_category : ['noCategory'] }; var tableOption = {}; //重置表格参数 function resetTableOption(){ tableOption = { title : [], colspan : [], value : ['index','company','road'], daily_category_title : [], prevention_category_title : [], repair_category_title : [], special_category_title : [], emergency_category_title : [], test_category_title : [], scientific_category_title : [], equipment_category_title : [], reserve_category_title : [], daily_category_val : [], prevention_category_val : [], repair_category_val : [], special_category_val : [], emergency_category_val : [], test_category_val : [], scientific_category_val : [], equipment_category_val : [], reserve_category_val : [] }; } //项目类型包含'预防养护','修复养护'以外的类型是,规模禁止选择 function setScaleDisabledInit(){ $('.tabletype[type="checkbox"]').change(function(){ //tabletype titleOption valueOption.tabletype = []; $.each($('.tabletype[type="checkbox"]:checked'),function(){ valueOption.tabletype.push($(this).val()); }); if(valueOption.tabletype.indexOf('daily')>-1 || valueOption.tabletype.indexOf('special')>-1 || valueOption.tabletype.indexOf('emergency')>-1 || valueOption.tabletype.indexOf('test')>-1 || valueOption.tabletype.indexOf('scientific')>-1 || valueOption.tabletype.indexOf('equipment')>-1 || valueOption.tabletype.indexOf('reserve')>-1){ $('.scale').prop('disabled',true); }else{ $('.scale').prop('disabled',false); } }) } //设置参数 function setParam(){ //tabletype titleOption //如果没选项目类型 默认全选 valueOption.tabletype = []; titleOption.tabletype = []; if($('.tabletype[type="checkbox"]:checked').length > 0){ $.each($('.tabletype[type="checkbox"]:checked'),function(){ valueOption.tabletype.push($(this).val()); titleOption.tabletype.push($(this).parent().text()); }); }else{ $.each($('.tabletype[type="checkbox"]'),function(){ valueOption.tabletype.push($(this).val()); titleOption.tabletype.push($(this).parent().text()); }); } //category valueOption titleOption valueOption.category = []; titleOption.category = []; if($('.category[type="checkbox"]:checked').length > 0){ $.each($('.category[type="checkbox"]:checked'),function(){ valueOption.category.push($(this).val()); titleOption.category.push($(this).parent().text()); }); }else{ $.each($('.category[type="checkbox"]'),function(){ valueOption.category.push($(this).val()); titleOption.category.push($(this).parent().text()); }); } //scale valueOption titleOption valueOption.scale = []; titleOption.scale = []; if(!$('.scale').prop('disabled')){ $.each($('.scale:checked'),function(){ valueOption.scale.push($(this).val()); titleOption.scale.push($(this).parent().text()); }); }; //设置查询所需参数 paramOption.tabletype = valueOption.tabletype?valueOption.tabletype.join(','):''; paramOption.category = titleOption.category?titleOption.category.join(','):''; paramOption.scale = titleOption.scale?titleOption.scale.join(','):''; if(paramOption.scale.length > 0) paramOption.hasScale = 1; else paramOption.hasScale = 0; paramOption.datatype = $('#datatype option:selected').val(); paramOption.startYear = $('#startYear').val(); paramOption.endYear = $('#endYear').val(); paramOption.companys = $('#companys').val()?$('#companys').val().join(','):''; } //设置表格所需参数 function setTableOption(d){ var curr_tabletype,allCategory_val,allCategory_title; resetTableOption(); //重置表格参数 tableOption.title = []; tableOption.colspan = []; tableOption.value = ['index','COMPANY','ROAD']; //各项目类型的类别不同,找出选中类别中,各项目类型中存在的类别 for(var i=0; i -1){ //无类别项目直接加入'noCategory'值 tableOption[curr_tabletype+'_category_val'].push('noCategory'); }else{ for(var j=0; j -1){ tableOption[curr_tabletype+'_category_val'].push(allCategory_val[j]); tableOption[curr_tabletype+'_category_title'].push(allCategory_title[j]); } } } } //根据各项目类别设置th、td、colspan等相关参数 var th1 = [],th2 = [],th3 = [],thcol1 = [],thcol2 = []; for(var i=0; i 0){ //第一行加项目类型 th1.push(titleOption.tabletype[i]); if(paramOption.hasScale == 0){ //不需要根据规模统计,无第二行 //项目类型colspan为 类别数 thcol1.push(allCategory_val.length); //在第三行放入类别 th3 = th3.concat(allCategory_title); //数据行 项目_类别 for(var lb=0; lbthead').html(''); $('#dataTable>tbody').html(''); //根据表格参数出th行 var thRowspan = 3; if(paramOption.hasScale == 0) thRowspan = 2; for(var i=0; i 0){ var eachtr = ''; if(i==0) eachtr = '序号' + '道路名称 '; for(var j=0; j 0) eachtr += ' colspan="'+ tableOption.colspan[i][j] +'"'; eachtr += '>' + tableOption.title[i][j] + ''; } eachtr += ''; $('#dataTable>thead').append(eachtr); } } //根据表格参数出td行 /*******test*******/ /*var eachtdtr = ''; for(var j=0; j'; } eachtdtr += ''; $('#dataTable>tbody').append(eachtdtr);*/ /*******test*******/ var data = d.data; var companyData = d.companyData; var totalData = d.totalData; var indexno = 1; var currowspan = 0; //相同公司记录数,index 有合计行的要加1 var hasCompanySum = false; for(var i=0; i'; else eachtdtr += ''; eachtdtr += indexno; eachtdtr += ''; indexno++; } }else if(tableOption.value[j] == 'COMPANY'){ if(data[i].num == '1'){ if(data[i].flag == 1) eachtdtr += ''; else eachtdtr += ''; eachtdtr += data[i].COMPANY; eachtdtr += ''; } }else{ eachtdtr += ''; if(data[i][tableOption.value[j]]) eachtdtr += data[i][tableOption.value[j]]; eachtdtr += ''; } } eachtdtr += ''; $('#dataTable>tbody').append(eachtdtr); //公司合计行 if(data[i].flag == 1 && hasCompanySum){ var conpanySumTr = '小计'; for(var j=3; jtbody').append(conpanySumTr); } } //总计行 if(data.length > 0){ var totalSumTr = '累计'; for(var j=3; jtbody').append(totalSumTr); } } function toSearch(){ var tabletypeNum = $('.tabletype[type="checkbox"]:checked').length; var categoryNum = $('.category[type="checkbox"]:checked').length; if(tabletypeNum == 0){ bootbox.dialog({ message: "请选择项目类型!", buttons: { "button" : { "label" : "确定", "className" : "btn-sm btn-success" } } }); }else if(categoryNum == 0){ bootbox.dialog({ message: "请选择类别!", buttons: { "button" : { "label" : "确定", "className" : "btn-sm btn-success" } } }); }else{ setParam(); $('#dataTable').html(''); $.ajax({ type : "get", url : locat + '/compStats/getData.do', data: paramOption, dataType : 'json', success : function(data){ setTableOption(data); } }); } } //时间控件初始化 function datepickerInit(){ $('.date-picker').datepicker({ autoclose: true, format: 'yyyy', startView: 'years', maxViewMode:'years', minViewMode:'years' }); $('#startYear').datepicker({ endDate : new Date() }).on('changeDate',function(e){ var startTime = e.date; $('#endYear').datepicker('setStartDate',startTime); }); $('#endYear').datepicker({ endDate : new Date() }).on('changeDate',function(e){ var endTime = e.date; $('#startYear').datepicker('setEndDate',endTime); }); } function selectAll(e){ $('.'+e.classList[3]+'[type="checkbox"]').prop('checked',true); if(e.classList[3] == 'tabletype') $('.scale').prop('disabled',true); } function selectNone(e){ $('.'+e.classList[3]+'[type="checkbox"]').prop('checked',false); if(e.classList[3] == 'tabletype') $('.scale').prop('disabled',true); } $(function() { $('#dataContainer').height($('html').height()-140); $('.tabletype[type="checkbox"]').prop('checked',true); $('.category[type="checkbox"]').prop('checked',true); $('.scale').prop('disabled',true); datepickerInit(); setScaleDisabledInit(); toSearch(); })