//导出功能 window.downloadFile = function (sUrl) { //iOS devices do not support downloading. We have to inform user about this. if (/(iP)/g.test(navigator.userAgent)) { alert('Your device does not support files downloading. Please try again in desktop browser.'); return false; } //If in Chrome or Safari - download via virtual link click if (window.downloadFile.isChrome || window.downloadFile.isSafari) { //Creating new link node. var link = document.createElement('a'); link.href = sUrl; if (link.download !== undefined) { //Set HTML5 download attribute. This will prevent file from opening if supported. var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); link.download = fileName; } //Dispatching click event. if (document.createEvent) { var e = document.createEvent('MouseEvents'); e.initEvent('click', true, true); link.dispatchEvent(e); return true; } } // Force file download (whether supported by server). if (sUrl.indexOf('?') === -1) { sUrl += '?download'; } window.open(sUrl, '_self'); return true; } window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; var casauditfun= { init:function () { //办事处初始化 //停车场初始化 casauditfun.initParkBlock(); //收费员初始化 $('#casaudit-person').selectpicker('render'); //块下拉框变化,停车场下拉框变化 casauditfun.queryBlockChange(); //停车场下拉框变化,收费员下拉框变化 casauditfun.queryParkChange(); /** 时间初始化 **/ $('#casaudit-daterange-btnsta').val(moment().subtract('days',0).format('YYYY-MM-DD')); $('#casaudit-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); //开始日期 $("#casaudit-daterange-btnsta").datetimepicker({ endDate: moment().subtract('days', 0).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" }) //结束日期 $("#casaudit-daterange-btnend").datetimepicker({ endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), //startDate:startVal, format: 'yyyy-mm-dd', weekStart: 1, autoclose: true, startView: 2, minView: 2, forceParse: false, locale: "zh-CN", language: 'zh-CN', pickerPosition: "bottom-right" }) //饼图 统计 queryPdaAndEqpTypeNums(); //柱形图 echarts queryInputNumsByTimes(); //折线图 echarts queryEqpAndPdaTimesForLine(); // table casauditfun.casauditcreateTableData(); }, //导出函数 exportEqpInOutParkAllStatisticExcel:function(){ //校验日期 var req = casauditfun.getQueryParam(); var datesta = $("#casaudit-daterange-btnsta").val(); var dateend = $("#casaudit-daterange-btnend").val(); var beginTime = datesta+" 00:00:00"; var endTime=dateend+" 23:59:59"; var plBlockIds = JSON.parse($("#casaudit-plAreaBlockIds").val()); var plnos = $("#casaudit-parkIds").val(); var plNos = new Array(); if(plnos==null||plnos==''){ plNos.push("-1X"); } else{ plNos = JSON.parse(plnos); } var chargerCodes = JSON.parse($("#casaudit-plAreaBlockIds").val()); var url = dataUrl.util.exportEqpAndPdaReportTimeList() + '?chargerCodes=' + req.chargerCodes + '&entryType=' + req.entryType + '&inOutState=' + req.inOutState + '&plNos=' + req.plNos + '&plBlockIds=' + req.plBlockIds + '&beginTime=' + beginTime + '&endTime=' + endTime +'&sysCode='+sysComm.sysCode; window.downloadFile(url); }, //停车区域-块 initParkBlock: function () { var data = fn.getParkBlock(); var html = ''; var htmls = ''; var blockIds = [-1]; for (var i = 0; i < data.length; i++) { blockIds.push(data[i].code); html += ""; } var blockIdsStr = JSON.stringify(blockIds); htmls = '' + html; $("#casaudit-plAreaBlockIds").empty(); $("#casaudit-plAreaBlockIds").append(htmls); $('#casaudit-plAreaBlockIds').selectpicker('render'); //加载下拉框 casauditfun.initParkSelect(); }, //根据块信息查询停车场信息 initParkSelect:function(){ //停车场下拉框 var data = casauditfun.getParkingLotMsg(); var htmls = ''; var html = ''; var plNos = []; for (var i = 0; i < data.length; i++) { plNos.push(data[i].plNo); html += ""; } var plnosStr = JSON.stringify(plNos); htmls = '' + html; $("#casaudit-parkIds").empty(); $("#casaudit-parkIds").append(htmls); $('#casaudit-parkIds').selectpicker('refresh'); /*$("#parkIds1").empty(); $("#parkIds1").append(htmls); $('#parkIds1').selectpicker('refresh');*/ //收费员初始化 casauditfun.initChargerSelect(); }, //根据停车场编号查询收费员信息 initChargerSelect:function(){ //停车场下拉框 var data = casauditfun.getChargerMsg(); var htmls = ''; var html = ''; var chargerCodes = []; for (var i = 0; i < data.length; i++) { chargerCodes.push(data[i].chargerCode); html += ""; } var chargerCodesStr = JSON.stringify(chargerCodes); htmls = '' + html; $("#casaudit-person").empty(); $("#casaudit-person").append(htmls); $('#casaudit-person').selectpicker('refresh'); }, getParkingLotMsg:function(){ var plAreaBlockIds; plAreaBlockIds = JSON.parse($("#casaudit-plAreaBlockIds").val()); var parkLot = ""; var req = { sysCode:sysComm.sysCode, areaBlockIds: plAreaBlockIds }; var opt = { async: false, data:JSON.stringify(req), method: "POST", //contentType:"application/x-www-form-urlencoded; charset=UTF-8", url: dataUrl.util.getParkListByBlockIds(), success: function (res) { if (res.code == '8888') { parkLot = JSON.stringify(res.data); } } } sysAjax(opt); return JSON.parse(parkLot); }, getChargerMsg:function(){ // var plNos; // plNos = JSON.parse($("#casaudit-parkIds").val()); // var plNo = ""; // if (plNos.length > 1) { // plNo = ""; // } else { // plNo = plNos[0]; // } var chargers = ""; var req = { baseRequest:{pageNum: 1, pageSize: 0}, plNo: null, parkAreaCode: "", groupCode: "", onduty: "", status: "", nameOrNo: "", orgId:fn.getOrgId(), sysCode: sysComm.sysCode }; var opt = { async: false, data:JSON.stringify(req), method: "POST", url: dataUrl.util.queryCashierListInfo(), success: function (res) { if (res.code == '8888') { chargers = JSON.stringify(res.data.rows); } } } sysAjax(opt); return JSON.parse(chargers); }, //块改变查询停车场 queryBlockChange:function(){ $("#casaudit-plAreaBlockIds").change(function(){ casauditfun.initParkSelect(); }); }, //停车场改变查询收费员 queryParkChange:function(){ $("#casaudit-parkIds").change(function(){ // casauditfun.initChargerSelect(); }); }, /*获取查询参数*/ getQueryParam: function() { var plBlockIds = JSON.parse($("#casaudit-plAreaBlockIds").val()); var plNos = []; var plnos = $("#casaudit-parkIds").val(); if(plnos==null||plnos==''){ plNos.push("-1X"); } else{ plNos = JSON.parse(plnos); } var chargerCodes = []; var chargercodes = $("#casaudit-person").val(); if(chargercodes==null||chargercodes==''){ chargerCodes.push("-1X"); } else{ chargerCodes = JSON.parse(chargercodes); } if(chargerCodes.length > 1){ chargerCodes = []; } var datesta = $("#casaudit-daterange-btnsta").val(); var dateend = $("#casaudit-daterange-btnend").val(); var beginTime = datesta+" 00:00:00"; var endTime=dateend+" 23:59:59"; //进出场状态 进场-1 出场-0 全部--1 var inOutState = $("#cashieraudit-toptab .ITD-graynav-topbaractive").attr('value'); if(inOutState == null || inOutState==''){ inOutState = -1; } //折线图 0-按小时统计 1-按天统计 var timeType = 1;//默认按天 if(datesta == dateend){//按小时 timeType = 0; } //详情列表 0-未录入 1-录入 -1-全部 var entryType = -1; entryType = $("#tab-btn-wrap .tabAction").attr('value'); var req = { sysCode: sysComm.sysCode, plBlockIds: plBlockIds, plNos: plNos, chargerCodes:chargerCodes, beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), inOutState:inOutState, timeType:timeType, entryType:entryType, inType:1, outType:1 }; return req; }, lineecharts:function (data) { var eqpTimes=[]; var pdaTimes=[]; var staticTime=[]; var timeType = casauditfun.getQueryParam().timeType; if(data != null && data.length > 0){ $.each(data, function(index,item) { eqpTimes.push(item.eqpTimes); pdaTimes.push(item.pdaTimes); if(timeType == 0){ staticTime.push((item.staticTime).substr(10,12)+':00'); }else{ staticTime.push((item.staticTime).substr(5,10)); } }); } var incomeecharts = echarts.init(document.getElementById('cashieraudit-line-echarts')); var incomeoption = { color:['#1e95cd','#5fe98f'], tooltip: { trigger: 'axis' }, 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', boundaryGap: true, data:staticTime, axisLabel: { // interval:2, show: true, textStyle: { color: 'rgba(0,0,0,0.5)', fontSize:'12px', fontFamily:'微软雅黑' } }, // splitNumber:10, // minInterval:2, axisTick: { show: false, }, splitLine:{ lineStyle:{ color:'rgba(0,0,0,0.1)', } }, axisLine: { show: true, lineStyle: { color: 'rgba(0,0,0,0.1)', // width: 1,//这里是为了突出显示加上的 } }, }, yAxis: { type: 'value', axisLabel: { show: true, 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)', } } }, series: [ { name: '设备上报次数', type: 'line', // symbol:'none', // smooth:true, data:eqpTimes, // data:[4,1,6,2,9,4,1,6,2,9,8,1], itemStyle : { normal : { lineStyle:{ color:'#f0f0f2', } } }, areaStyle: { normal: { color: '#1e95cd', opacity:.2 } }, lineStyle: { normal: { color:'#1e95cd', width:2, } } }, { name: '设备录入次数', type: 'line', // symbol:'none', // smooth:true, data:pdaTimes, // data:[43,13,26,24,93,4,1,6,2,9,8,1], itemStyle : { normal : { lineStyle:{ color:'#f0f0f2', } } }, areaStyle: { normal: { color: '#5fe98f', opacity:.2 } }, lineStyle: { normal: { color:'#5fe98f', width:2, } } }, ] }; incomeecharts.setOption(incomeoption, true); }, //饼图 统计 casauditPDAandGeodata:function (data) { var eqpTimes = (data.eqpTimes == null ? 0 : data.eqpTimes); var pdaTimes = (data.pdaTimes == null ? 0 : data.pdaTimes); var pdaRate = (pdaTimes*100/eqpTimes).toFixed(0); if(isNaN(pdaRate)){ pdaRate = 0; } $("#pdaRate").html(pdaRate+'%'); var parlAllchart = echarts.init(document.getElementById('casaudit-parkAll-chart')); // 指定图表的配置项和数据 var topleftoption = { color:['rgba(254,200,77,1)','#5fe98f',], tooltip: { trigger: 'item', formatter: "{a}
{b}: {c} ({d}%)" }, // legend: { // orient: 'vertical', // right:'1%', // top:'3%', // selectedMode:false, // textStyle: { // color: 'rgba(0,0,0,0.5)', // fontSize:'12px', // fontFamily:'微软雅黑' // }, // itemWidth:16, // itemHeight:10, // data:['一致','不一致'] // }, series: [ { name:'设备上报与设备录入信息', type:'pie', radius: ['60%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: false, } }, labelLine: { normal: { show: false } }, data:[ {value:eqpTimes-pdaTimes, name:'设备未录入次数'}, {value:pdaTimes, name:'设备录入次数'}, ] } ] }; parlAllchart.setOption(topleftoption,true); parlAllchart.resize(); }, //柱形图 echarts casauditRecordNum:function (data) { var lineecharts = echarts.init(document.getElementById('casaudit-topright-echarts')); var lineoption = { color:['#1e95cd'], tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, legend: { itemHeight:10, right: '10', top:'0', data: ['5分钟','10分钟','20分钟','30分钟','30分钟以上'] //data: ['大华','华赛','烽火'] }, grid: { top: '13%', left: '1%', right: '2%', bottom: '2%', containLabel: true }, xAxis : [ { type : 'category', data: ['5分钟','10分钟','20分钟','30分钟','30分钟以上'], axisLabel: { // interval:2, 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 }, } ], yAxis: { type: 'value', axisLabel: { show: true, textStyle: { color: 'rgba(0,0,0,0.5)', fontSize:'12px', fontFamily:'微软雅黑' } }, axisTick: { show: false, }, splitLine:{ lineStyle:{ color:'rgba(0,0,0,0.1)', } }, axisLine: { show: true, lineStyle: { color: 'rgba(0,0,0,0.1)', // width: 1,//这里是为了突出显示加上的 } }, }, series : [ { name:'录入次数', type:'bar', barWidth: '20%', itemStyle : { normal : { lineStyle:{ color:'#f0f0f2', } } }, areaStyle: { normal: { color: '#1e95cd', opacity: .2 } }, lineStyle: { normal: { color: '#1e95cd', width: 2, } }, data:[data.fiveMinNums, data.tenMinNums, data.twentyMinNums, data.thirtyMinNums, data.overThirtyMinNums] } ], }; lineecharts.setOption(lineoption,true); lineecharts.resize(); }, //默认生成表格数据 casauditcreateTableData: function() { $('#casauditrecordtable').bootstrapTable('destroy').bootstrapTable({ striped: true, //表格显示条纹 pagination: true, //启动分页 pageNumber: 1, //当前第几页 // showColumns: true, pageSize: 10, //每页显示的记录数 pageList: [10, 15, 20], //记录数可选列表 sidePagination: 'server', //表示服务端分页 queryParamsType: 'limit', method: 'POST', //请求方法 // fixedColumns:true, // fixedNumber:1, // leftFixedColumns: true, // leftFixedNumber: 2, // selectItemName: 'personCustName', paginationPreText: '<', paginationNextText: '>', ajax: casaudittableLoadRequest, //自定义ajax加载数据 uniqueId: 'id', rowStyle:casauditfun.markTheTable, columns: [ { field: 'plName', title: '车场名称', width: '10%', visible: true, align: 'left', formatter:commonObj.replacenull }, { field: 'parkAreaName', title: '泊位区间', width: '10%', visible: true, align: 'left', formatter:commonObj.replacenull }, { field: 'eqpNo', title: '设备编码', width: '10%', visible: true, align: 'left', formatter:commonObj.replacenull }, { field: 'eqpReportTime', title: '设备上报时间', width: '10%', visible: true, align: 'left', formatter:commonObj.timeFormatter, }, { field: 'pdaReportTime', title: '设备录入时间', width: '10%', align: 'left', formatter:commonObj.timeFormatter, }, { field: 'berthNo', title: '泊位编号', width: '5%', align: 'left', formatter:commonObj.replacenull }, { field: 'chargerName', title: '收费员', width: '10%', align: 'left', formatter:commonObj.replacenull }, { field: 'timeDuration', title: '间隔时间', width: '10%', align: 'left', formatter:casauditfun.formatSeconds, }, ] }); }, markTheTable:function (value,row, index) { //这里有5个取值代表5中颜色['active', 'success', 'info', 'warning', 'danger']; var strclass = ""; if (value.timeDuration == null || value.timeDuration > 15*60 || value.pdaReportTime == null) { strclass = 'danger'; } else { strclass = ''; } return { classes: strclass } }, formatSeconds:function(value) { if(value == null){ return "-"; } var theTime = parseInt(value);// 秒 var theTime1 = 0;// 分 var theTime2 = 0;// 小时 var theTime3 = 0;//天 if (theTime < 60) { return theTime + '秒'; } if (theTime > 60) { theTime1 = parseInt(theTime / 60); theTime = parseInt(theTime % 60); } if (theTime1 > 60) { theTime2 = parseInt(theTime1 / 60); theTime1 = parseInt(theTime1 % 60); } if (theTime2 > 24) { theTime3 = parseInt(theTime2 / 24); theTime2 = parseInt(theTime2 % 24); } var result = ''; if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { result = parseInt(theTime) + "秒" } if (theTime > 0) { result = "" + parseInt(theTime) + "秒" + result; } if (theTime1 > 0) { result = "" + parseInt(theTime1) + "分钟" + result; } if (theTime2 > 0) { result = "" + parseInt(theTime2) + "小时" + result; } if (theTime3 > 0) { result = "" + parseInt(theTime3) + "天" + result; } return result; }, isOnlineFormatter:function(value){ if(value==null){ return ""; } else if(value == "0"){ return "在线"; } else if(value == "1"){ return "离线"; } else{ return "故障"; } }, }; casauditfun.init(); //切换 搜索部分 是否生效 documentBindFunc.on('click', "#cashieraudit-toptab div.ITD-graynav-topbar", function () { var index = $(this).index(); $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); //切换完后,查询echarts 表格数据 $("#casaudit-qerBtn").click(); }); //切换 录入 未录入 documentBindFunc.on('click','#tab-btn-wrap li',function () { var _index = $(this).index(); if(_index==0){ // cllEcharts(chartData); }else if(_index==1){ // zylEcharts(chartData); } $(this).addClass('tabAction').siblings().removeClass('tabAction'); casauditfun.casauditcreateTableData() }); //查询按钮 $(document).on('click', '#casaudit-qerBtn', function() { // var datesta = $("#casaudit-daterange-btnsta").val(); // var dateend = $("#casaudit-daterange-btnend").val(); // var beginTime = datesta+" 00:00:00"; // var endTime=dateend+" 23:59:59"; // // beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); //饼图 统计 queryPdaAndEqpTypeNums(); //柱形图 echarts queryInputNumsByTimes(); //折线图 echarts queryEqpAndPdaTimesForLine(); // table casauditfun.casauditcreateTableData(); }); //饼图ajax function queryPdaAndEqpTypeNums(){ var req = casauditfun.getQueryParam(); var opt = { method: 'post', url: dataUrl.util.queryPdaAndEqpTypeNums(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(res) { console.log("图1:",res); if(res.code == '8888') { var data = res.data; casauditfun.casauditPDAandGeodata(data); } else{ return; } } }; sysAjax(opt); } //柱状图图ajax function queryInputNumsByTimes(){ var req = casauditfun.getQueryParam(); var opt = { method: 'post', url: dataUrl.util.queryInputNumsByTimes(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(res) { console.log("图2:",res); if(res.code == '8888') { var data = res.data; casauditfun.casauditRecordNum(data); } else{ return; } } }; sysAjax(opt); } //折线图ajax function queryEqpAndPdaTimesForLine(){ var req = casauditfun.getQueryParam(); var opt = { method: 'post', url: dataUrl.util.queryEqpAndPdaTimesForLine(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(res) { console.log("图3:",res); if(res.code == '8888') { var data = res.data; casauditfun.lineecharts(data); } else{ return; } } }; sysAjax(opt); } /** * 自定义table AJAX请求 * @param {Object} params */ function casaudittableLoadRequest(params) { var req = casauditfun.getQueryParam(); //设置请求参数 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.queryEqpAndPdaReportTimeList(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(res) { console.log("图4:",res); if(res.code == '8888') { params.success(res.data); } else{ } } }; sysAjax(opt); } //导出 var InterValObj; //timer变量,控制时间 var count = 8; //间隔函数,1秒执行 var curCount;//当前剩余秒数 function sendMessage() { curCount = count; //设置button效果,开始计时 $("#exportPark").attr("disabled", "true"); $(".ITD-export-btn").css("width", "138px"); $("#exportPark").val(curCount + "秒后可再次导出"); InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 } //timer处理函数 function SetRemainTime() { if (curCount == 0) { window.clearInterval(InterValObj);//停止计时器 $("#exportPark").removeAttr("disabled");//启用按钮 $(".ITD-export-btn").css("width", "72px"); $("#exportPark").val("导出"); } else { curCount--; $("#exportPark").val(curCount + "秒后可再次导出"); } } //导出excle documentBindFunc.on('click','#exportPark',function (){ //获取table所有行数据 var parkLot = $("#casauditrecordtable").bootstrapTable('getData'); //获取table总条数 var numTotal = $("#casauditrecordtable").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(); casauditfun.exportEqpInOutParkAllStatisticExcel(); });