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;
}
View Code
转载于:https://www.cnblogs.com/pengfei25/p/9047501.html
相关资源:microsoft公式3.0