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;
}