devicereport.js 12.9 KB


var reportDateTag=1;
$('#devicereport-toptab li').on('click',function () {
    var _index = $(this).index()
    switch (_index){
        case 0:
            $('.parkincome-choosedatemonth').addClass('display-none');
            $('.parkincome-choosedateweek').addClass('display-none');
            $('.parkincome-choosedateday').removeClass('display-none');
            $('#devicereport-toptab li').eq(0).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive');

            var reportDate=$("#incomepark-daydaterange-btnsta").val();
            $('#eqpDate').text(reportDate);
            reportDateTag=1;
            tabFunction(reportDateTag);
            break;
        case 1:
            $('.parkincome-choosedateday').addClass('display-none');
            $('.parkincome-choosedatemonth').addClass('display-none');
            $('.parkincome-choosedateweek').removeClass('display-none');
            $('#devicereport-toptab li').eq(1).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive');

            var reportDate=$("#incomepark-weekdaterange-btnsta").html();
            $('#eqpDate').text(reportDate);
            reportDateTag=2;
            tabFunction(reportDateTag);
            break;
        case 2:
            $('.parkincome-choosedateday').addClass('display-none');
            $('.parkincome-choosedateweek').addClass('display-none');
            $('.parkincome-choosedatemonth').removeClass('display-none');
            $('#devicereport-toptab li').eq(2).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive');

            var reportDate=$("#incomepark-monthdaterange-btnsta").val();
            $('#eqpDate').text(reportDate);
            reportDateTag=3;
            tabFunction(reportDateTag);
            break;
    }
});
//切换tcb事件
function tabFunction(reportDateTag){
    fun.ltsrcreateTableData();
    fun.initEqpOnlineRateTotalData();
}
var fun= {
    init: function () {
        fun.dayDate();
        fun.weekDate();
        fun.monthDate();
        fun.ltsrcreateTableData();
        fun.initEqpOnlineRateTotalData();
        fun.queryBtnFunction();
        fun.ptintBtnFunction();

        var reportDate=$("#incomepark-daydaterange-btnsta").val();
        $('#eqpDate').text(reportDate);
    },
    dayDate:function() {
        $('#incomepark-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD'));
        $('#incomepark-daydaterange-btnsta').datetimepicker({
            endDate: moment().subtract('days', 1).format('YYYY-MM-DD'),
            format: 'yyyy-mm-dd',
            autoclose: true,
            startView: 2,
            //maxDate:moment().subtract('months', 3),
            minView: 2,
            forceParse: false,
            locale: "zh-CN",
            language: 'zh-CN',
            pickerPosition: "bottom-right"
        })
    },
    weekDate:function() {
      $('#incomepark-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD')+'-'+moment().subtract('days', 1).format('YYYY-MM-DD'))
        $('#incomepark-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD')+' 至 '+moment().subtract('days', 1).format('YYYY-MM-DD'));

    },

    monthDate:function() {
        $('#incomepark-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM'));
        $('#incomepark-monthdaterange-btnsta').datetimepicker({
            endDate: moment().subtract('months', 1).format('YYYY-MM'),
            format: 'yyyy-mm',
            autoclose: true,
            startView: 3,
            //maxDate:moment().subtract('months', 3),
            minView: 3,
            forceParse: false,
            locale: "zh-CN",
            language: 'zh-CN',
            pickerPosition: "bottom-right"
        })
    },
    ltsrcreateTableData: function () {
        $('#devicereport-table').bootstrapTable('destroy').bootstrapTable({
            striped: true,//表格显示条纹
            pagination: true, //启动分页
            pageNumber: 1, //当前第几页
            pageSize: 10,  //每页显示的记录数
            pageList: [10, 15, 20],  //记录数可选列表
            sidePagination: 'server',//表示服务端分页
            queryParamsType: 'limit',
            sortable: true,                     //是否启用排序
            sortOrder: "asc",
            method: 'POST',//请求方法
            paginationPreText: '<',
            paginationNextText: '>',
            ajax: eqpOnlineRateparktableLoadRequest,//自定义ajax加载数据
            // uniqueId:'id',
            columns: [
                {
                    field: 'number',
                    title: '序号',
                    width: '15%',
                    align: "left",
                    formatter:function(value,row,index){
                        //return index+1; //序号正序排序从1开始
                        var pageSize=$('#devicereport-table').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
                        var pageNumber=$('#devicereport-table').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
                        var operStr='';
                        var topNo=pageSize * (pageNumber - 1) + index + 1;
                        if(topNo==1){
                            operStr ='<span class="ITD-popNo-one">'+topNo+'</span>';
                            return operStr;    //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号
                        }else if(topNo==2){
                            operStr ='<span class="ITD-popNo-two">'+topNo+'</span>';
                            return operStr;    //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号
                        }else if(topNo==3){
                            operStr ='<span class="ITD-popNo-three">'+topNo+'</span>';
                            return operStr;    //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号
                        }else {
                            operStr ='<span class="ITD-popNo-origin">'+topNo+'</span>';
                            return operStr;    //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号
                        }
                    }
                },
                {
                    field: 'plName',
                    title: '车场名称',
                    width: '25%',
                    align: "left",
                    formatter:commonObj.replacenull
                },

                {
                    field: 'berthNum',
                    title: '泊位数量',
                    width: '20%',
                    align: "left",
                    formatter:commonObj.replacenull
                },
                {
                    field: 'eqpNum',
                    title: '地磁数量',
                    width: '20%',
                    align: "left",
                    formatter:commonObj.replacenull

                },
                {
                    field: 'eqpOnlineRate',
                    title: '地磁平均在线率',
                    width: '20%',
                    align: "left",
                    formatter: fun.eqpOnlineRateFormatter
                },

            ]
        });
    },
    //地磁平均在线率
    eqpOnlineRateFormatter: function (value) {
        if (value==null||value==undefined||value=='') {
            return "-";
        }
        return (value*100).toFixed(2)+'%';
    },
    /*获取查询参数*/
    eqpOnlineRateparkgetQueryParam: function () {

        var data = fn.getParkLot();
        var plNos = [];
        for (var i = 0; i < data.length; i++) {
            plNos.push(data[i].code);

        }
        if (plNos.length < 1) {
            plNos.push("-1X");
        }
        var _index = $('#devicereport-toptab').find("li.ITD-graynav-topbaractive").attr('reportdatetabtag');
        var reportTabTag=_index;
        if(reportTabTag==1){
            var reportDate=$("#incomepark-daydaterange-btnsta").val();
        }else if(reportTabTag==2){
            var reportDate=$("#incomepark-weekdaterange-btnsta").attr('data-text');
            reportDate=reportDate.substring(11,21);
        }else if(reportTabTag==3){
            var reportDate=$("#incomepark-monthdaterange-btnsta").val();
        }
        var req = {
            sysCode: sysComm.sysCode,
            plNos: plNos,
            reportDate: reportDate,
            reportTabTag:reportTabTag

        };
        return req;

    },
    // 加载设备在线率所有统计
    initEqpOnlineRateTotalData:function(){
        var req=fun.eqpOnlineRateparkgetQueryParam();
        //条件查询
        req.baseRequest = {
            pageNum: 1,
            pageSize: 0
        };

        var reportTabTag=reportDateTag;
        var reportTabTagName = "";
        if("1" ==reportTabTag){
            reportTabTagName="日";
        }else if("2" ==reportTabTag){
            reportTabTagName="周";
        }else{
            reportTabTagName="月";
        }


        req.sysCode = sysComm.sysCode;
        var opt = {
            method: 'post',
            url: dataUrl.util.queryEqpOnlineRateTotal(),
            data: JSON.stringify(req),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (res) {
                console.log(res);
                if (res.code == '8888') {
                    var data=res.data;
                    if(data !=null){

                        var orgName='';
                        if(data.orgName != null){
                            orgName = data.orgName;
                        }
                        $("#orgName").val(orgName);
                        $("#eqpTitle").text(orgName+" 设备统计"+reportTabTagName+"报");


                        $("#plNum").text(data.plNum);
                        $("#berthNum").text(data.berthNum);
                        $("#eqpNum").text(data.eqpNum);
                        $("#eqpOnlineRate").text(data.eqpOnlineRate.toFixed(2));
                    }
                }
            }
        };
        sysAjax(opt);

    },
    /**
     * 查询按钮事件
     */
    queryBtnFunction:function () {
        $('#eqpOnlineRateQueryBnt').on('click',function () {
            fun.ltsrcreateTableData();
            fun.initEqpOnlineRateTotalData();
        })
    },
    /**
     * 打印按钮事件
     */
    ptintBtnFunction:function () {
        $('#eqpOnlineRateBtn').on('click',function () {
            var req = fun.eqpOnlineRateparkgetQueryParam();
            var userName = fn.getUserName();
            var orgName = $("#orgName").val();
            var url = dataUrl.util.queryEqpOnlineRatePrint();

            var iWidth=800; //弹出窗口的宽度;
            var iHeight=800; //弹出窗口的高度;
            var iTop = (window.screen.availHeight-80-iHeight)/2; //获得窗口的垂直位置;
            var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置;
            var win= window.open('',"设备在线率报表","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",location=no,resizable=no");

            var html="<html><head></head><body><form action='"+url+"' method='get' id='eqpOnlineRatePrint' accept-charset='UTF-8'>";
            html+="<input type='hidden' name='reportDate' value='"+req.reportDate+"'/>";
            html+="<input type='hidden' name='orgId' value='"+fn.getOrgId()+"'/>";
            html+="<input type='hidden' name='orgName' value='"+orgName+"'/>";
            html+="<input type='hidden' name='reportTabTag' value='"+req.reportTabTag+"'/>";
            html+="<input type='hidden' name='plNos' value='"+req.plNos+"'/>";
            html+="<input type='hidden' name='userName' value='"+userName+"'/>";

            html+="</form>";
            html += "</form><script type='text/javascript'>document.getElementById('eqpOnlineRatePrint').submit();";
            html += "<\/script></body></html>".toString().replace(/^.+?\*|\\(?=\/)|\*.+?$/gi, "");
            win.document.write(html);

        })
    }

};
fun.init();
/**
 * 默认table 函数
 * 自定义table AJAX请求
 * @param {Object} params
 */
function eqpOnlineRateparktableLoadRequest(params) {
    var req = fun.eqpOnlineRateparkgetQueryParam();

    //设置请求参数
    var pageNum = (params.data.offset / params.data.limit) + 1;

    //条件查询
    req.baseRequest = {
        pageNum: pageNum,
        pageSize: params.data.limit
    };
    req.sysCode = sysComm.sysCode;

    var opt = {
        method: 'post',
        url: dataUrl.util.queryEqpOnlineRateForPage(),
        data: JSON.stringify(req),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (res) {
            console.log(res);
            if (res.code == '8888') {
                params.success(res.data);
            }
        }
    };
    sysAjax(opt);
}