/** * Created by mac on 18/5/17. */ 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'); 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'); 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'); reportDateTag=3; tabFunction(reportDateTag); } }); //切换tcb事件 function tabFunction(reportDateTag){ fun.durationParkTotal(); fun.durationParkForDist(); fun.createTableData(); } var fun= { init: function () { fun.dayDate(); fun.weekDate(); fun.monthDate(); fun.durationParkTotal(); fun.durationParkForDist(); fun.createTableData(); $("#index_username").text(fn.getUserAccount()); }, dayDate:function() { $('#durationpark-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); $('#durationpark-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() { $('#durationpark-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD')+'-'+moment().subtract('days', 1).format('YYYY-MM-DD')) $('#durationpark-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD')+' 至 '+moment().subtract('days', 1).format('YYYY-MM-DD')); }, monthDate:function() { $('#durationpark-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); $('#durationpark-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" }) }, //数据初始化 initDatas:function(){ $("[id^='out']").text(0); $("[id^='in']").text(0); $("[id^='park']").text(0); $("[id^='berth']").text(0); $("[id^='total']").text(0); $("[id^='avg']").text(0); }, //汇总查询 durationParkTotal:function(reportTabTag){ //初始化 fun.initDatas(); var req = fun.getQueryParam(); var reportDate=""; var reportTabTag=reportDateTag; if(reportTabTag==1){ reportDate=$("#durationpark-daydaterange-btnsta").val(); }else if(reportTabTag==2){ var reportDateStr=$("#durationpark-weekdaterange-btnsta").attr('data-text'); reportDate=reportDateStr.substring(11,21); }else if(reportTabTag==3){ reportDate=$("#durationpark-monthdaterange-btnsta").val(); } var reportTabTagName = ""; if("1" ==reportTabTag){ reportTabTagName="日"; }else if("2" ==reportTabTag){ reportTabTagName="周"; }else{ reportTabTagName="月"; } var opt = { method: 'post', url: dataUrl.util.queryParkDurationForTotal(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if("8888" == res.code){ var data = res.data; console.log(data) var orgName=''; if(data!=null && data.length>0 && data[0].orgName != null){ orgName = data[0].orgName; } $("#orgName").val(orgName); $("#orgNameTitle").text(orgName+" 停车时长统计"+reportTabTagName+"报"); if(reportTabTagName=='周'){ $("#reportDateTitle").text($("#durationpark-weekdaterange-btnsta").html()) }else{ $("#reportDateTitle").text(reportDate); } //开始渲染汇总数据 var totalDuration=0; var totalParkingTimes=0; var parkNum=0; var berthNum=0; //明细 $.each(data,function(index,row){ if(row.plType==1){ totalDuration+=row.totalDuration; totalParkingTimes+=row.totalParkingTimes; parkNum+=row.parkNum; berthNum+=row.berthNum; $("#outParkDuration").text(fun.durationTimeFormatter(row.totalDuration)); $("#outParkingTimes").text(fun.numberFormatter(row.totalParkingTimes)); $("#outParkNum").text(fun.numberFormatter(row.parkNum)); $("#outBerthNum").text(fun.numberFormatter(row.berthNum)); $("#outAvgTimesDuration").text(fun.durationTimeFormatter(row.totalDuration/row.totalParkingTimes)); $("#outAvgBerthParkDuration").text(fun.durationTimeFormatter(row.totalDuration/row.berthNum)); } else if(row.plType==2){ totalDuration+=row.totalDuration; totalParkingTimes+=row.totalParkingTimes; parkNum+=row.parkNum; berthNum+=row.berthNum; $("#inParkDuration").text(fun.durationTimeFormatter(row.totalDuration)); $("#inParkingTimes").text(fun.numberFormatter(row.totalParkingTimes)); $("#inParkNum").text(fun.numberFormatter(row.parkNum)); $("#inBerthNum").text(fun.numberFormatter(row.berthNum)); $("#inAvgTimesDuration").text(fun.durationTimeFormatter(row.totalDuration/row.totalParkingTimes)); $("#inAvgBerthParkDuration").text(fun.durationTimeFormatter(row.totalDuration/row.berthNum)); } $("#totalDuration").text(fun.durationTimeFormatter(totalDuration)); $("#totalParkingTimes").text(fun.numberFormatter(totalParkingTimes)); $("#parkNum").text(fun.numberFormatter(parkNum)); $("#berthNum").text(fun.numberFormatter(berthNum)); $("#avgTimesDuration").text(fun.durationTimeFormatter(totalDuration/totalParkingTimes)); $("#avgBerthParkDuration").text(fun.durationTimeFormatter(totalDuration/berthNum)); }); } } }; sysAjax(opt); }, //停车时长分布查询 durationParkForDist:function(){ //初始化 var req = fun.getQueryParam(); var opt = { method: 'post', url: dataUrl.util.queryParkDurationDistribute(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if("8888" == res.code){ var data = res.data; if(data != null && data.length > 0){ fun.drawDurationParkList(data); }else if(data== null || data.length ==0){ $("#min15").text('0'); $("#min30").text('0'); $("#hour1").text('0'); $("#hour6").text('0'); $("#hour12").text('0'); $("#hour24").text('0'); $("#day1").text('0'); } } } }; sysAjax(opt); }, drawDurationParkList:function(data){ var min15=0; var min30=0; var hour1=0; var hour6=0; var hour12=0; var hour24=0; var day1=0; //明细 console.log(data) $.each(data,function(index,row){ if(row.plType==1){ min15+=row.min15; min30+=row.min30; hour1+=row.hour1; hour6+=row.hour6; hour12+=row.hour12; hour24+=row.hour24; day1+=row.day1; $("#outmin15").text(fun.numberFormatter(row.min15)); $("#outmin30").text(fun.numberFormatter(row.min30)); $("#outhour1").text(fun.numberFormatter(row.hour1)); $("#outhour6").text(fun.numberFormatter(row.hour6)); $("#outhour12").text(fun.numberFormatter(row.hour12)); $("#outhour24").text(fun.numberFormatter(row.hour24)); $("#outday1").text(fun.numberFormatter(row.day1)); } else if(row.plType==2){ min15+=row.min15; min30+=row.min30; hour1+=row.hour1; hour6+=row.hour6; hour12+=row.hour12; hour24+=row.hour24; day1+=row.day1; $("#inmin15").text(fun.numberFormatter(row.min15)); $("#inmin30").text(fun.numberFormatter(row.min30)); $("#inhour1").text(fun.numberFormatter(row.hour1)); $("#inhour6").text(fun.numberFormatter(row.hour6)); $("#inhour12").text(fun.numberFormatter(row.hour12)); $("#inhour24").text(fun.numberFormatter(row.hour24)); $("#inday1").text(fun.numberFormatter(row.day1)); } $("#min15").text(fun.numberFormatter(min15)); $("#min30").text(fun.numberFormatter(min30)); $("#hour1").text(fun.numberFormatter(hour1)); $("#hour6").text(fun.numberFormatter(hour6)); $("#hour12").text(fun.numberFormatter(hour12)); $("#hour24").text(fun.numberFormatter(hour24)); $("#day1").text(fun.numberFormatter(day1)); }); var dataValue = []; dataValue.push({ value:min15, name:'0-15m' }); dataValue.push({ value:min30, name:'15-30m' }); dataValue.push({ value:hour1, name:'30m-1h' }); dataValue.push({ value:hour6, name:'1-6h' }); dataValue.push({ value:hour12, name:'6-12h' }); dataValue.push({ value:hour24, name:'12-24h' }); dataValue.push({ value:day1, name:'1天以上' }); fun.drawDurationParkChart(dataValue); }, //图表数据渲染 drawDurationParkChart:function (dataValue) { var srzbechartsPie = echarts.init(document.getElementById('durationport-echart')); srzboption = { color:['#1E95CD','#5fe98f','#fdc94d','#50c0f5','#ffc0f5','#50c0ff','#50fff5'], title: { // subtext: "" + totalFee, // text: '总计', textStyle: { color: '#c2c2c2', fontSize: '14', align: 'middle', verticalAlign: 'middle', }, subtextStyle: { color: '#000', fontSize: '24', align: 'middle', verticalAlign: 'middle', }, left: 'center', top: '60', }, tooltip: { trigger: 'item', formatter: "{a}
{b}: {c}次 ({d}%)" }, legend: { show:false, selectedMode:false, orient: 'horizontal', bottom: '0', icon:'circle', data:['0-15m','15-30m','30m-1h','1-6h','6-12h','12-24h','1天以上'] }, series: [ { name:'停车时长占比', type:'pie', radius: ['60%', '70%'], center: ['50%', '50%'], hoverAnimation: false, avoidLabelOverlap: false, legendHoverLink: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: false, textStyle: { fontSize: '14', } } }, labelLine: { normal: { show: false } }, data:dataValue } ] } srzbechartsPie.setOption(srzboption, true); window.srzbechartsPie=srzbechartsPie; //自适应 window.onresize = function(){ srzbechartsPie.resize(); }; }, createTableData: 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: tableLoadRequest,//自定义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 =''+topNo+''; return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 }else if(topNo==2){ operStr =''+topNo+''; return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 }else if(topNo==3){ operStr =''+topNo+''; return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 }else {*/ operStr =''+topNo+''; return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 // } } }, { field: 'plName', title: '车场名称', width: '25%', align: "left", formatter:commonObj.replacenull }, { field: 'plType', title: '车场类型', width: '25%', align: "left", formatter: fun.plTypeFormatter }, { field: 'totalDuration', title: '总停车时长', width: '25%', align: "left", formatter: fun.durationTimeFormatter }, { field: 'berthNum', title: '泊位数量', width: '20%', align: "left", formatter: commonObj.numberFormatter }, { field: 'avgBerthDuration', title: '泊位平均时长', width: '20%', align: "left", formatter: fun.durationTimeFormatter }, { field: 'totalParkingTimes', title: '总停车次数', width: '20%', align: "left", formatter: commonObj.numberFormatter }, { field: 'avgTimesDuration', title: '次均停车时长', width: '20%', align: "left", formatter: fun.durationTimeFormatter }, ] }); }, //停车场类型 plTypeFormatter: function (value) { if (value == undefined || value == null) { return ''; } else if(value==1){ return "路侧"; }else if(value==2){ return "封闭"; } }, // //停车时长处理 // durationTimeFormatter: function (value) { // if(isNaN(value) || value == null || value == 0){ // return "0秒"; // } // var DateTimes = ""; // var days = parseInt(value / ( 60 * 60 * 24)); // var hours = parseInt((value % ( 60 * 60 * 24)) / (60 * 60)); // var minutes = parseInt((value % ( 60 * 60)) /60); // var seconds = parseInt(value % 60); // if(days>0){ // DateTimes= days + "天" + hours + "小时" + minutes + "分钟"+ seconds + "秒"; // }else if(hours>0){ // DateTimes=hours + "小时" + minutes + "分钟"+ seconds + "秒"; // }else if(minutes>0){ // DateTimes=minutes + "分钟"+ seconds + "秒"; // }else{ // DateTimes=seconds + "秒"; // } // return DateTimes; // }, //停车时长处理(带单位传true) durationTimeFormatter: function (value,flag) { var unit = ""; if(flag){ unit = "小时"; } if(isNaN(value) || value == null || value == 0){ return "0"+unit; } var str = ""; var hours = (value/ (60 * 60)).toFixed(1); return hours+unit; }, //数量处理 numberFormatter: function (value) { if (value == 0 || value == undefined || value == null) { return 0; } else { return value; } }, /*获取查询参数*/ getQueryParam: 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"); } if(reportDateTag==1){ var reportDate=$("#durationpark-daydaterange-btnsta").val(); }else if(reportDateTag==2){ var reportDate=$("#durationpark-weekdaterange-btnsta").attr('data-text'); reportDate=reportDate.substring(11,21); }else if(reportDateTag==3){ var reportDate=$("#durationpark-monthdaterange-btnsta").val(); } var req = { sysCode: sysComm.sysCode, plNos: plNos, reportDate: reportDate, reportTabTag:reportDateTag }; return req; }, }; fun.init(); //查询按钮 documentBindFunc.on('click','#durationpark-billQueryBnt',function(){ fun.durationParkTotal(); fun.durationParkForDist(); fun.createTableData(); }); //打印 documentBindFunc.on('click','#durationParkPrint',function(){ var req = fun.getQueryParam(); var userName = fn.getUserName(); var orgId = fn.getOrgId(); var orgName = $("#orgName").val(); //begin调用打印 var url = dataUrl.util.queryParkDurationPrint(); var openUrl = "";//弹出窗口的url 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+=""; html+=""; html+=""; html+=""; html+=""; html+=""; html+="
"; html += "