var treeCode = $.query.get("treeCode"); var companyCode = user.region; $(document).ready(function(){ // 初始化时间 initTimeFormate('yyyy-mm', 'yyyy-MM', 3); //切换年月日 tabToggle(); //加载树 initTree(); //点击查询 doSearch(); loadOptionData(); }); /** * 根据查询条件显示内容 */ function doSearch(){ $('#searchBtn').click(function(){ loadOptionData(); }); $('#exportExcel').click(function(){ var fileName=$("#systemtime").val()+"同比环比对比分析报表" publicExport(fileName); }); } var treeNameArr;//选中的树节点code和name的对象 var selectArr=[];//选中的code的数组(没有拆分的) var codes=[];//选中的code的数组(有拆分的) function loadOptionData(){ $('#tbl').css('opacity',0.2); treeNameArr={}; selectArr=[]; codes=[]; var param={}; var typeIndex = $('#timeGroup .active').val();//0,1,2 var typeArr = ['day','month','year']; var _treeCode = $.fn.zTree.getZTreeObj("treeDemo").getCheckedNodes(true).reduce(function (o, v, i) { //if(!v.isParent){ if (!!o) {o += ";"} o += v.code; //判断拆分公式 if(v.code.indexOf("[")!==-1){ codes=codes.concat(formulaToCode(v.code)); }else{ codes.push(v.code); } treeNameArr[v.code]=v; selectArr.push(v.code); //} return o; }, ''); //param.startDate = $("#systemtime").val().replace(/-/g,""); param.Year=$("#systemtime").val().split("-")[0]; param.Month=$("#systemtime").val().split("-")[1]; param.flag=79; param.itemType=codes.join(";"); console.log(codes); if(param.itemType==""||param.itemType.length==0){ /*显示没有数据的div*/ $("#noData").show(); $("#tbl").html(""); return ; }else{ $("#noData").hide(); } //得到当前选中月份的天数 switch (typeIndex) { case "0"://日 break; case "1"://月 var startDate=$("#systemtime").val().replace("-",""); var thisDays = getDaysInMonth(startDate.substr(0,4),startDate.substr(4,2)); //var url='KwhAnalyse_findMonthReport.action'; var url='EnergyTotal_findGetByYearMonth.action'; getMonthYear(param,url,thisDays,1); break; case "2"://年 break; } } function showTable(){ var timer=setInterval(function(){ var opacity=parseFloat($('#tbl').css('opacity'))+0.1; $('#tbl').css('opacity',opacity); if(opacity>=1){ clearInterval(timer); } },50) } function getDay(tableData,_url,thisDays,type){ //处理查询的数据,数据请求(日表) $.post(_url, tableData, function (res) { var rowData=res.resultList; for(var i=0;i<rowData.length;i++){ rowData[i]=eval("("+rowData[i]+")"); rowData[i].name = treeNameArr[rowData[i].sname]; rowData[i].date = rowData[i].time; rowData[i].data=!!rowData[i].data?Number(rowData[i].data).toFixed(2):0; } initTableData(rowData,thisDays,type); showTable(); }, 'json'); } /* *得到本月、上月、去年同期的数组 */ function getMonthArr(){ var arr=[]; var smonth=new Date($("#systemtime").val()).getTime(),_i;//本月 for(var i=smonth;i>smonth-2419200000*2;i-=2419200000){ arr.push(new Date(i).getFullYear()+"-"+add0((new Date(i).getMonth()+1))); } arr.push(new Date(new Date(arr[0]).getTime()-2419200000*12).getFullYear()+"-"+add0((new Date(arr[0]).getMonth()+1)));//去年同期 return arr; } function getMonthYear(tableData,_url,thisDays,type) { var monthArr=getMonthArr();//得到本月、上月、去年同期的数组 //处理查询的数据,数据请求(日表) $.post(_url, tableData, function (res) { var rowData=res.list; for(var i=0;i<rowData.length;i++){ rowData[i]=eval("("+rowData[i]+")"); } res.listall=evalFormulaToRes(treeNameArr,rowData); initTableData(res.listall,thisDays,type,monthArr); showTable(); }, 'json'); } function initTableData(rowData,_thisDays,type,monthArr){ $("#tbl").html(""); var dataObj={},stbl="",htbl=""; for(var i=0;i<rowData.length;i++){ rowData[i].data=!!rowData[i].data?Number(rowData[i].data).toFixed(2):0; if(dataObj[rowData[i].sname]){ dataObj[rowData[i].sname][rowData[i].year+"-"+add0(rowData[i].date)]=rowData[i].data; }else{ dataObj[rowData[i].sname]={}; dataObj[rowData[i].sname][rowData[i].year+"-"+add0(rowData[i].date)]=rowData[i].data; dataObj[rowData[i].sname]["name"]=treeNameArr[rowData[i].sname].name; } } //拼接表头 htbl= '<thead> '+ '<tr class="yel"> '+ '<th>设备名称</th> '+ '<th>单位</th> '+ '<th>'+monthArr[0]+'</th> '+ '<th>'+monthArr[1]+'</th> '+ '<th>'+monthArr[2]+'</th> '+ '<th>较上月</th> '+ '<th>较去年同期</th> '+ '<th>较上月+百分比</th> '+ '<th>较去年同期+百分比</th> '+ '</tr> '+ '</thead>'; $("#tbl").append(htbl); //遍历选中的code for(var j=0;j<selectArr.length;j++){ var rows=dataObj[selectArr[j]],unitName=""; if(rows){ var thisVal=!!rows[monthArr[0]]?rows[monthArr[0]]:"-";//本月 var lastVal=!!rows[monthArr[1]]?rows[monthArr[1]]:"-";//上月 var lastyVal=!!rows[monthArr[2]]?rows[monthArr[2]]:"-";//去年同期 //获得单位 var unitLit=getUnit().reduce(function(o,v,i){ o[v.id]=v.text; return o; },{}); if(unitLit[treeNameArr[selectArr[j]].unit]){ unitName=unitLit[treeNameArr[selectArr[j]].unit]; }else{ unitName=""; } stbl="<tr> "+ "<td>"+rows.name+"</td> "+ "<td>"+unitName+"</td> "+ "<td>"+thisVal+"</td> "+ "<td>"+lastVal+"</td> "+ "<td>"+lastyVal+"</td> "+ "<td>"+subVal(thisVal,lastVal)+"</td> "+ "<td>"+subVal(thisVal,lastyVal)+"</td> "+ "<td>"+getVal(thisVal,lastVal)+"</td> "+ "<td>"+getVal(thisVal,lastyVal)+"</td> "+ "</tr>"; $("#tbl").append(stbl); } } } function getVal(data1,data2){ if(data1==""||data2==""||isNaN(data1)||isNaN(data2)){return 0} if(data1==0||data2==0){ return 0; }else{ return Number((data2-data1)/data2*100).toFixed(2); } } function subVal(data1,data2){ if(isNaN(data1)){data1=0} if(isNaN(data2)){data2=0} return Number(data1-data2).toFixed(2); } /** * 判断是否存在 */ function fun_IsExists(newAry,name){ var flag=false; var index=-1; for(var i=0;i<newAry.length;i++){ if(newAry[i].name==name){ index=i; flag=true; } } return { index:index, flag:flag } } /** * 初始化树 */ function initTree() { getTreeCodeAll(companyCode,treeCode); var zTreeObj = $.fn.zTree.getZTreeObj("treeDemo"); //选中第一个 var zTreeObj = $.fn.zTree.getZTreeObj("treeDemo"); var el=zTreeObj.getNodes()[0]; while(el.isParent){ zTreeObj.expandNode(el, true, false, false); el=el.children[0]; } //zTreeObj.expandNode(el, true, false, false); if(!!el.code){ zTreeObj.checkNode(el) }else{ } } /** * 初始化时间插件 */ function initTimeFormate(format1, format2, view, end) { format1 = !!format1 ? format1 : "yyyy-mm-dd"; format2 = !!format2 ? format2 : "yyyy-MM-dd"; view = !!view ? view : 2; var selector = end ? $("#systemtime_end") : $("#systemtime"); selector.datetimepicker('remove'); selector.datetimepicker({ language:"zh", format: format1, autoclose: true, startView: view, minView: end ? 2 : view }).on("click", function () { selector.datetimepicker('show'); }); selector.val(new Date().Format(format2)); } /** * 年月日tab切换 */ function tabToggle(){ $('#timeGroup').children('button').click(function() { $('#timeGroup').children('button').removeClass("active"); $(this).addClass("active"); var index=$(this).index(); if(index==0){ initTimeFormate(); }else if(index==1){ initTimeFormate('yyyy-mm', 'yyyy-MM', 3); }else{ initTimeFormate('yyyy', 'yyyy', 4); } loadOptionData(); }); } //获取单位 function getUnit(){ var unitList= []; $.ajaxSetup({ async : false }); $.post("Filter_listUnit.action", { }, function(data, statusText) { dataList = data.resultList; if (dataList!=null && data.resultList.length > 0) { for ( var i = 0; i < dataList.length; i++) { dataList[i] = eval('('+dataList[i]+')'); var datajson={id:"",text:""};//[{text:'年',id:'0'},{text:'月',id:'1'},{text:'周',id:'2'}]; datajson.id=dataList[i].id; datajson.text=dataList[i].text; unitList.push(datajson); } } }, "json"); $.ajaxSetup({async : true}); return unitList; }