/**
* 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天以上'
});
console.log(dataValue);
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="