var timer; var feefun = { init: function () { commSelect.area_Pl_LinkedSelect("#fee-transSelecarea", "#fee-transSelectPark"); //初始化 /**日 时间初始化*/ $('#parkingfee-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); $('#parkingfee-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); //开始日期 $("#parkingfee-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" }) //结束日期 $("#parkingfee-daydaterange-btnend").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" }) /** 小时 时间初始化 **/ $('#fee-monthdaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); $('#fee-monthdaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); //开始日期 $("#fee-monthdaterange-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" }); //结束日期 $("#fee-monthdaterange-btnend").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" }) /** 函数 表格数据 **/ feefun.feecreateTableData(); chartsInit(); }, //默认生成表格数据 feecreateTableData: function () { $('#fee-billtable').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: feetableLoadRequest,//自定义ajax加载数据 // uniqueId:'id', columns: [ { field: 'staticTimeStr', title: '统计时间', width: '20%', align: "left", formatter: commonObj.replacenull // formatter: function (value, row, index) { // if (feefun.isDayPage()) { // //按照天 // var date = new Date(parseInt(row.statisticEndTime)); // return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); // } // return value; // // } }, { field: 'plName', title: '车场名称', width: '20%', align: "left", formatter: commonObj.replacenull }, { field: 'totalBerths', title: '泊位数', width: '20%', align: "left", sortable: true, formatter: commonObj.replacenull }, { field: 'vehicleFlow', title: '进场车辆数', width: '10%', align: "left", formatter: commonObj.replacenull, sortable: true }, { field: 'outParkCount', title: '出场车辆数', width: '10%', align: "left", formatter: commonObj.replacenull, sortable: true }, { field: 'freeRatio', title: '占用率', width: '15%', align: "left", sortable: true, formatter: function (value) { return ((1 - value) * 100).toFixed(2); } }, { field: 'unitTurnoverRatio', title: '周转次数', width: '15%', align: "left", // sortable: true, formatter:function (value) { if(value==null || value ==undefined){ return '-'; }else{ return value.toFixed(2); } } }, ] }); }, /*获取查询参数*/ feegetQueryParam: function () { var plNos = JSON.parse($("#fee-transSelectPark").val()); var req = { plNos: plNos, sysCode: sysComm.sysCode } if (feefun.isDayPage()) { //按天的页面 var dates1 = $("#parkingfee-daydaterange-btnsta").val(); var dates2 = $("#parkingfee-daydaterange-btnend").val(); req.beginTime = dates1; req.endTime = dates2; req.timeType = 1; } else { //按小时的页面 var dates1 = $("#fee-monthdaterange-btnsta").val(); var dates2 = $("#fee-monthdaterange-btnend").val(); req.beginTime = dates1; req.endTime = dates2; req.timeType = 4; } //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 // var temp = { // rows: params.limit, //页面大小 // page: (params.offset / params.limit) + 1, //页码 // sort: params.sort, //排序列名 // sortOrder: params.order //排位命令(desc,asc) // }; return req; }, //是否日报页面 isDayPage: function () { return $('#queryType').attr('data-value')=='1'; } }; //默认页面初始执行函数 feefun.init(); /** * 默认table 函数 * 自定义table AJAX请求 * @param {Object} params */ function feetableLoadRequest(params) { var req = feefun.feegetQueryParam(); //设置请求参数 var pageNum = (params.data.offset / params.data.limit) + 1; //条件查询 req.baseRequest = { pageNum: pageNum, pageSize: params.data.limit, sortOrder:params.data.order,//排序 sortName:params.data.sort,//排序字段 }; var urlStr = dataUrl.util.queryCarFlowByDayForListForPage(); // if(req.queryKind==4){ // urlStr = dataUrl.util.queryCarFlowByMonthForListForPage(); // } var opt = { method: 'post', url: urlStr, data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { params.success(res.data); console.log(res.data) } } }; sysAjax(opt); } //隐藏显示 查询条件 搜索框 hide-common-style documentBindFunc.on('click', ".ITD-search-morebtn", function () { $(".hide-common-style").toggleClass("display-none"); }); //日月切换 点击事件 //日 点击 documentBindFunc.on('click', '#parkingfee-checkStyle1', function () { $('.parkingfee-choosedateday').removeClass('display-none'); $('.parkingfee-choosedatemonth').addClass('display-none'); $('#queryType').attr('data-value', '1'); }); //月 点击 documentBindFunc.on('click', '#parkingfee-checkStyle0', function () { $('.parkingfee-choosedatemonth').removeClass('display-none'); $('.parkingfee-choosedateday').addClass('display-none'); $('#queryType').attr('data-value', '2'); }); //点击查询事件 documentBindFunc.on('click', '#fee-billQueryBnt', function () { window.clearTimeout(timer); feefun.feecreateTableData(); chartsInit(); }); //导出 var InterValObj; //timer变量,控制时间 var count = 8; //间隔函数,1秒执行 var curCount;//当前剩余秒数 function sendMessage() { curCount = count; //设置button效果,开始计时 $("#reportBtn").attr("disabled", "true"); $(".ITD-export-btn").css("width", "138px"); $("#reportBtn").val(curCount + "秒后可再次导出"); InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 } //timer处理函数 function SetRemainTime() { if (curCount == 0) { window.clearInterval(InterValObj);//停止计时器 $("#reportBtn").removeAttr("disabled");//启用按钮 $(".ITD-export-btn").css("width", "72px"); $("#reportBtn").val("导出"); } else { curCount--; $("#reportBtn").val(curCount + "秒后可再次导出"); } } //导出excle documentBindFunc.on('click','#reportBtn',function (){ //获取table所有行数据 var parkLot = $("#fee-billtable").bootstrapTable('getData'); //获取table总条数 var numTotal = $("#fee-billtable").bootstrapTable('getOptions').totalRows; //提示 无数据不导出 if(parkLot.length<1){ $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); $('#ITD-tipsmodel').modal('show'); setTimeout(function () { $('.ITD-alertmodel-contentmsg').text(''); $('#ITD-tipsmodel').modal('hide'); },3000); return false; } //超1万条 缩短查询范围 if(numTotal>10000){ $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); $('#ITD-tipsmodel').modal('show'); setTimeout(function () { $('.ITD-alertmodel-contentmsg').text(''); $('#ITD-tipsmodel').modal('hide'); },3000); return false; } //执行倒计时函数 sendMessage(); //导出函数 exportTabel(); }); /** * 图表数据 */ function chartsInit() { var dataSizeArray = []; var req = feefun.feegetQueryParam(); var beginTime = new Date(req.beginTime.replace(/-/g, "/")); var endTimeArray = new Date(req.endTime.replace(/-/g, "/")); var beginTimeArray = req.beginTime.split("-"); var endTimeArray = req.endTime.split("-"); if (req.timeType == 1) { dataSizeArray.push(req.beginTime) //按天的页面 var length = getDayNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 for (var i = 1; i < length; i++) { dataSizeArray.push(addDate(beginTime, 1)); } } else { for(var i = 0 ; i<24;i++){ if(i<10){ dataSizeArray.push("0"+i+":00") }else{ dataSizeArray.push(i+":00") } } } //查询数据 var opt = { method: 'post', url: dataUrl.util.queryCarFlowChartByDayOrMonth(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { var data = res.data; var result = []; $.each(dataSizeArray, function (index, staticTimeStr) { var flag = false; $.each(data, function (index, ajaxData) { if (staticTimeStr == ajaxData.staticTimeStr) { flag = true; result.push(ajaxData); } }) if (!flag) { var tempData = { "staticTimeStr": staticTimeStr, "vehicleFlow": 0, "outParkCount": 0, "freeRatio": 1, "turnoverRatio": 0 }; result.push(tempData); } }) chartHandel(result); } } }; sysAjax(opt); } // 日期,在原有日期基础上,增加days天数,默认增加1天 function addDate(date, days) { if (days == undefined || days == '') { days = 1; } date.setDate(date.getDate() + days); var month = date.getMonth() + 1; var day = date.getDate(); return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); } // 日期,在原有日期基础上,增加days天数,默认增加1天 function addMonth(date, months) { if (months == undefined || months == '') { months = 1; } date.setMonth(date.getMonth() + months); var month = date.getMonth() + 1; var day = date.getDate(); return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); } // 日期月份/天的显示,如果是1位数,则在前面加上'0' function getFormatDate(arg) { if (arg == undefined || arg == '') { return ''; } var re = arg + ''; if (re.length < 2) { re = '0' + re; } return re; } //计算月数差 function getMonthNumber(date1, date2) { //默认格式为"20030303",根据自己需要改格式和方法 var year1 = date1.substr(0, 4); var year2 = date2.substr(0, 4); var month1 = date1.substr(4, 2); var month2 = date2.substr(4, 2); var len = (year2 - year1) * 12 + (month2 - month1); return len; } //计算天数差 function getDayNumber(date1, date2) { //默认格式为"20030303",根据自己需要改格式和方法 var year1 = date1.substr(0, 4); var year2 = date2.substr(0, 4); var month1 = date1.substr(4, 2); var month2 = date2.substr(4, 2); // www.jquerycn.cn var day1 = date1.substr(6, 2); var day2 = date2.substr(6, 2); temp1 = year1 + "/" + month1 + "/" + day1; temp2 = year2 + "/" + month2 + "/" + day2; var dateaa = new Date(temp1); var datebb = new Date(temp2); var date = datebb.getTime() - dateaa.getTime(); var time = Math.floor(date / (1000 * 60 * 60 * 24)); return time; } function chartHandel(resData) { var xData = []; var inCarData = []; var outCarData = []; $.each(resData, function (index, item) { xData.push(item.staticTimeStr); inCarData.push(item.vehicleFlow); outCarData.push(item.outParkCount); }) //车流量及占用率变化趋势 echarts var myChart = echarts.init(document.getElementById('cll-echarts')); var option = { // color:['#1E95CD','#fedb33','#3fc2a5'], tooltip: { trigger: 'axis', axisPointer: { type: 'cross', label: { // backgroundColor: 'rgba(0,0,0,0.5)' } } }, legend: { right: '2%', top: '0', textStyle: { color: '#888990', }, itemWidth: 18, itemHeight: 10, data: ['进场', '出场'] }, grid: { top: '13%', left: '1%', right: '2%', bottom: '2%', containLabel: true }, xAxis: [ { type: 'category', axisLabel: { show: true, textStyle: { color: 'rgba(0,0,0,0.5)', fontSize:'12px', fontFamily:'微软雅黑' } }, splitLine:{ lineStyle:{ color:'rgba(0,0,0,0.1)', } }, axisLine: { show: true, lineStyle: { color: 'rgba(0,0,0,0.1)', // width: 1,//这里是为了突出显示加上的 } }, axisTick: { show: false }, data: xData // data: [3,3,4,6,6,3] }, ], yAxis: [ { type: 'value', scale: true, axisLabel: { formatter: '{value} %', textStyle: { color: 'rgba(0,0,0,0.5)', fontSize:'12px', fontFamily:'微软雅黑' } }, axisLabel: { //调整y轴的lable textStyle: { color: 'rgba(0,0,0,0.5)', } }, axisTick: { show: false }, axisLine: { lineStyle: { color: 'rgba(0,0,0,0.1)', width: 1,//这里是为了突出显示加上的 } }, splitLine:{ lineStyle:{ // type:'dashed', color:'rgba(0,0,0,0.1)', } } }, // { // type: 'value', // scale: true, // axisLabel: { //调整y轴的lable // textStyle: { // color: '#888990', // } // }, // axisTick: { // show: false // }, // // axisLine: { // show: false // }, // }, ], series: [ { name: '进场', type: 'line', lineStyle: { normal: { color: '#50c0f5' } }, itemStyle: { normal: { color: '#50c0f5' } }, data: inCarData // data: [3,32,2,3,24,33] }, { name: '出场', type: 'line', lineStyle: { normal: { color: '#5fe890' } }, itemStyle: { normal: { color: '#5fe890' } }, data: outCarData // data: [3,5,7,8,23,43] }, ] }; myChart.setOption(option); //浏览器滚动 echart自适应 window.onresize = function () { myChart.resize(); }; } function exportTabel() { var req = feefun.feegetQueryParam(); console.log(req) var form = document.createElement("form"); form.style.display = 'none'; form.action = dataUrl.util.exportCarFlowForList(); form.method = "post"; document.body.appendChild(form); var input = document.createElement("input"); input.name = "plNosStr"; input.value = JSON.stringify(req.plNos); form.appendChild(input); var input1 = document.createElement("input"); input1.name = "startTimeStr"; input1.value = req.beginTime; form.appendChild(input1); var input2 = document.createElement("input"); input2.name = "endTimeStr"; input2.value = req.endTime; form.appendChild(input2); var input3 = document.createElement("input"); input3.name = "timeType"; input3.value = req.timeType; form.appendChild(input3); form.submit(); }