zoukankan      html  css  js  c++  java
  • 公式

        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
  • 相关阅读:
    VA插件突然不能使用,彈出“the security key for....”
    【WIN10】Segoe MDL2 Assets
    【WIN10】WIN2D——圖層
    【WIN10】WIN2D——圖像處理
    【WIN10】WIN2D——繪製文字
    【WIN10】WIN2D——基本圖形的繪製
    為你的文件夾添加“使用CMD命令打開”菜單
    【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具
    【WIN10】判斷程序運行在哪個平台
    【WIN10】使用VS生成appx安裝包,並安裝測試
  • 原文地址:https://www.cnblogs.com/pengfei25/p/9047501.html
Copyright © 2011-2022 走看看