var fun = {
init:function(){
fun.queryParkRealTimeDatasByPlNos();
fun.initPark();
fun.createTableData();
},
//初始化停车场下拉框
initPark: function () {
var data = fn.getParkLot();
$("#caryard_parkIds").empty();
var html = '';
plNos = [];
for (var i = 0; i < data.length; i++) {
plNos.push(data[i].code);
html += "";
}
var plnosStr = JSON.stringify(plNos);
html = '' + html;
$("#caryard_parkIds").append(html);
$('#caryard_parkIds').selectpicker('render');
},
/*获取查询参数*/
getQueryParam: function() {
//停车场
var plnos = JSON.parse($("#caryard_parkIds").val());
var plType = $('#caryard_parkTypes').val();
var filterPark = fn.getParkLot();
var filterPlNos = [];
for (var i = 0; i < filterPark.length; i++) {
if(filterPark[i].type == plType || plType == '-1'){
filterPlNos.push(filterPark[i].code);
}
}
var resultPlNos = [];
$.each(plnos,function (index,item) {
console.log(item)
console.log(filterPlNos.indexOf(item))
if(filterPlNos.indexOf(item)>=0){
resultPlNos.push(item);
}
})
if(resultPlNos.length == 0){
resultPlNos.push('X');
}
var req = {
plNos: resultPlNos,
};
return req;
},
//占用率
rateEchart: function (chartRate, berthNum, useBerthNum) {
console.log(chartRate);
console.log(berthNum);
console.log(useBerthNum);
var chart = echarts.init(document.getElementById('caryard-parking-echart'));
var option = {
title: {
text: chartRate + '%',
textStyle: {
color: '#000',
fontSize: '18',
align: 'center',
fontFamily: '微软雅黑'
},
top: '60',
left: 'center'
},
legendHoverLink: false,
series: [
{
name: '',
type: 'pie',
radius: '65%',
center: ['50%', '50%'],
legendHoverLink: false,
avoidLabelOverlap: false,
startAngle: 180,
hoverAnimation: false,
label: {normal: {show: false}},
data: [
{
value: 50,
name: '',
itemStyle: {normal: {color: '#edf7fb'}, emphasis: {color: '#edf7fb'}},
label: {normal: {show: false}}
},
{
value: 50,
name: '',
itemStyle: {normal: {color: '#edf7fb'}, emphasis: {color: '#edf7fb'}},
label: {normal: {show: false}}
}
]
},
{
name: '具体比例',
type: 'pie',
radius: ['75%', '85%'],
//radius: ['50%', '50%'],
center: ['50%', '50%'],
legendHoverLink: false,
avoidLabelOverlap: false,
hoverAnimation: false,
// hoverOffset:0,
startAngle: 180,
color: ['#5fe98f', '#cccc'],
label: {
normal: {
show: false,
position: 'inside',
formatter: '{c}%'
},
emphasis: {
show: false,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: [
{
value: useBerthNum,
name: '20~25岁',
itemStyle: {normal: {color: '#5fe98f'}, emphasis: {color: '#5fe98f'}},
label: {normal: {show: false}}
},
{
value: (berthNum-useBerthNum),
name: '25~30岁',
itemStyle: {normal: {color: '#cccc'}, emphasis: {color: '#cccc'}},
label: {normal: {show: false}}
},
// {
// value: 25,
// name: '20~25岁',
// itemStyle: {normal: {color: '#5fe98f'}, emphasis: {color: '#5fe98f'}},
// label: {normal: {show: false}}
// },
// {
// value: 5,
// name: '25~30岁',
// itemStyle: {normal: {color: '#cccc'}, emphasis: {color: '#cccc'}},
// label: {normal: {show: false}}
// },
// {value:4, name:'',itemStyle:{normal:{color:'#fff'},emphasis:{color:'#fff'}}, label:{normal: {show: false}}}
]
}
]
};
chart.setOption(option, true);
//自适应
/* window.onresize = function(){
chart.resize();
};*/
},
//利用率
usageEchart: function (xTimeDatas,occupyDatas) {
var mychart = echarts.init(document.getElementById('berth-usage-echart'));
var option = {
color: ['#5fe98f'],
animationDuration:2000,
tooltip : {
trigger: 'axis',
textStyle:{
fontSize:'12px'
},
padding:[10,10,10,10],
formatter: function (params) {
//return params[0].value+'%'
return (params[0].value*100).toFixed(2) +'%'
},
},
grid: {
top: '10%',
left: '2%',
right: '2%',
bottom: '0%',
containLabel: true
},
// legend: {
// top: '0',
// right: '24',
//
// },
xAxis: {
type: 'category',
boundaryGap: true,
data: xTimeDatas,
// nameGap:'2',
// boundaryGap:['2%','2%'],
axisLabel: {
// interval:0,
show: true,
textStyle: {
color: 'rgba(0,0,0,0.8)',
fontSize: '12px',
fontFamily: '微软雅黑'
},
},
// splitNumber:2,
// // 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',
splitNumber: 2,
// minInterval:2,
axisLabel: {
show: true,
textStyle: {
color: 'rgba(0,0,0,0.8)',
fontSize: '12px',
fontFamily: '微软雅黑'
},
formatter: function (value) {
return value*100 +'%'
},
},
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: '24小时泊位占用率',
type: 'line',
data: occupyDatas,
symbol: 'circle',
symbolSize: 10,
itemStyle: {
normal: {
lineStyle: {
color: '#f0f0f2',
}
}
},
areaStyle: {
normal: {
color: '#effdf4'
}
},
lineStyle: {
normal: {
color: '#5fe98f',
width: 2,
}
}
},
]
};
mychart.setOption(option, true);
// 自适应
window.onresize = mychart.resize;
},
queryParkRealTimeDatasByPlNos: function () {
var data = fn.getParkLot();
var plNos = [];
var openParkCount = 0;
var closeParkCount = 0;
var allParkCount = data.length;
var berthsNum = 0;
for (var i = 0; i < data.length; i++) {
plNos.push(data[i].code);
if (parseInt(data[i].type) == 1) {
openParkCount += 1;
} else {
closeParkCount += 1;
}
berthsNum += parseInt(data[i].berthsNum);
}
$("#allParkCount").text(allParkCount);
$("#openParkCount").text(openParkCount);
$("#closeParkCount").text(closeParkCount);
if (plNos.length < 1) {
plNos.push("-1X");
}
var req = {
sysCode: sysComm.sysCode,
plNos: plNos
};
var opt = {
method: 'post',
url: dataUrl.util.queryParkRealTimeDatasByPlNos(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
var data = res.data;
var berthFreeNum = data.berthFreeNum;
var berthNum = data.berthNum;
var parkIncome = data.parkIncome;
var allIncome=data.allIncome;
var useBerthNum = parseInt(berthNum) - parseInt(berthFreeNum);
var rate = (useBerthNum * 100 / berthNum).toFixed(2);
var parkOnLinePayNum=data.parkOnLinePayNum==null?0:data.parkOnLinePayNum;
var parkOffLinePayNum=data.parkOffLinePayNum==null?0:data.parkOffLinePayNum;
var vipPayNum=data.vipCardChargeNum==null?0:data.vipCardChargeNum;
$("#allParkBerthNum").text(berthsNum);
$("#allFreeBerthNum").text(berthFreeNum);
$("#incomeCount").text(parkOnLinePayNum+parkOffLinePayNum+vipPayNum);
$("#parkIncome").text(fun.money(allIncome));
if(isNaN(rate)){
rate = 0;
}
$("#rate").text(rate);
}
}
};
sysAjax(opt);
},
money:function (value) {
if(value==null || value==undefined || value =="0.00"){
return 0.00;
}else{
return (value/100).toFixed(2);
}
},
//生成表格数据
createTableData: function () {
$('#recordtable').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: 3,
//rightFixedColumns: true,
//rightFixedNumber: 1,
// selectItemName: 'personCustName',
paginationPreText: '<',
paginationNextText: '>',
ajax: tableLoadRequest, //自定义ajax加载数据
uniqueId: 'id',
columns: [
{
field: 'plName',
title: '车场基本信息',
width: '10%',
visible: true,
align: "left",
formatter: function (value, row, index) {
// console.log(row.plNo)
if(row.plAddress==null||row.plAddress==undefined||row.plAddress==''){
row.plAddress = '-'
}
if(value==null||value==undefined||value==''){
value = '-'
}
return '
' + value + '
' +
'' + row.plAddress + '
'
}
},
{
field: 'carNumber',
title: '泊位信息',
width: '10%',
align: "left",
formatter: function (value, row, index) {
var berthNum = row.berthNum;
var freeBerthNum = row.berthFreeNum;
if(freeBerthNum==undefined || freeBerthNum ==null || freeBerthNum==""){
freeBerthNum = 0;
}
if(berthNum==undefined || berthNum ==null || berthNum==""){
berthNum = 0;
}
var useBerthNum = berthNum - freeBerthNum;
console.log(berthNum+','+freeBerthNum)
var rate = 0;
if(berthNum!=undefined && berthNum !=null && berthNum!=0){
rate=useBerthNum * 100 / berthNum;
}
if(berthNum == 0){
rate = 100;
}
if (rate < 40) {
return '占用' + useBerthNum + '个充足
总共' + berthNum + '个 占用率 : ' + rate.toFixed(2) + '%
'
} else if (rate >= 40 && rate <= 60) {
return '占用' + useBerthNum + '个平衡
总共' + berthNum + '个 占用率 : ' + rate.toFixed(2) + '%
'
} else {
return '占用' + useBerthNum + '个紧张
总共' + berthNum + '个 占用率 : ' + rate.toFixed(2) + '%
'
}
}
},
{
field: 'cardType',
title: '车流量',
width: '10%',
align: "left",
formatter: function (value, row, index) {
var incarNum = row.inCarNum;
if(incarNum==undefined || incarNum ==null || incarNum==""){
incarNum = 0;
}
var outCarNum = row.outCarNum;
if(outCarNum==undefined || outCarNum ==null || outCarNum==""){
outCarNum = 0;
}
return '入场:' + incarNum + '辆
' +
'出场:' + outCarNum + '辆
'
}
},
{
field: 'num',
title: '设备信息',
width: '10%',
align: "left",
formatter: function (value, row, index) {
var onlinePDACount = row.onlinePDACount == null ? 0 : row.onlinePDACount;
var allPDACount = row.allPDACount == null ? 0 : row.allPDACount;
var onlineEqpCount = row.onlineEqpCount == null ? 0 : row.onlineEqpCount;
var allEqpCount = row.allEqpCount == null ? 0 : row.allEqpCount;
var signInTollCollector = row.signInTollCollector == null ? 0 : row.signInTollCollector;
return '地磁:在线' + onlineEqpCount + '/' + allEqpCount + '
' +
'PDA:在线' + signInTollCollector + '
'
}
},
{
field: 'price',
title: '人员信息',
width: '10%',
align: "left",
formatter: function (value, row, index) {
var allTollCollector = row.allTollCollector == null ? 0 : row.allTollCollector;
var signInTollCollector = row.signInTollCollector == null ? 0 : row.signInTollCollector;
return '收费员:
' +
'应签到:' + allTollCollector + '人 实签到:' + signInTollCollector + '人
'
}
},
]
});
},
alertIfo: function (plNo, plName) {
plNo = $("#dataplno").val();
//初始化
$("#basePlName").text('');
$("#basePlType").text('');
$("#baseDeviceType").text('');
$("#baseBerthNum").text('0个');
$("#baseInOutNum").text("2出2入");
$("#baseBusiCircle").text('');
$("#baseAddress").text('');
$("#baseParkImg").empty();
$("#baseMaxCarTwo").text('0');
$("#baseMaxCarThree").text('0');
$("#baseMaxCarFirst").text('0');
$("#baseSmallCarFirst").text('0');
$("#baseSmallCarTwo").text('0');
$("#baseSmallCarThree").text('0');
var req = {
sysCode: sysComm.sysCode,
pklNo: plNo
};
var getParkLotEqpCountChart = {
method: "post",
url: dataUrl.util.queryParkingBaseInfo(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
var result = res.data;
console.log(result);
$("[data-toggle='tooltip']").tooltip({
delay: {show: 500, hide: 100},
});
//停车类型
var parkType;
var eqpName;
if (1 == result.plType) {
parkType = '路侧';
eqpName = '地磁';
} else if (2 == result.plType) {
parkType = '封闭';
eqpName = '道闸';
} else {
parkType = '未知';
eqpName = '地磁';
}
//商圈属性1:商场、2:医院、3:小区、4:学校、5:写字楼、6:景区、7:交通场站、8:其他
var busiCircle;
if (1 == result.busiCircle) {
busiCircle = '商场'
} else if (2 == result.busiCircle) {
busiCircle = '医院'
} else if (3 == result.busiCircle) {
busiCircle = '小区'
} else if (4 == result.busiCircle) {
busiCircle = '学校'
} else if (5 == result.busiCircle) {
busiCircle = '写字楼'
} else if (6 == result.busiCircle) {
busiCircle = '景区'
} else if (7 == result.busiCircle) {
busiCircle = '交通场站'
} else {
busiCircle = '其他'
}
$("#basePlName").text(result.plName);
$("#basePlType").text(parkType);
$("#baseDeviceType").text(eqpName);
$("#baseBerthNum").text(result.plBerthNum + '个');
$("#baseInOutNum").text((result.plExitNum == null ? 0 : result.plExitNum) + "出" + (result.plEntranceNum == null ? 0 : result.plEntranceNum) + "入");
$("#baseBusiCircle").text(busiCircle);
$("#baseAddress").text(result.plAddress);
// photoList
var photos = result.picUrls;
var html = '';
$.each(photos, function (index, item) {
html += "
";
});
html += '';
$("#baseParkImg").html(html);
var plRate=result.plRate;
if(plRate==null || plRate==undefined || plRate==''||plRate==='[]'){
$("#plRate").empty();
var htmlnew=''+
''+
// ''+
'暂未配置
'+
'暂未配置
'+
'';
$("#plRate").html(htmlnew);
}else{
plRate = JSON.parse(plRate);
console.log(plRate);
$("#plRate").empty();
var htmlnew='';
for(var index in plRate){
htmlnew += ''+
''+
// ''+
''+plRate[index].standard+'
'+
''+plRate[index].standardInfo+'
'+
'';
}
$("#plRate").html(htmlnew);
$("[data-toggle='tooltip']").tooltip({
delay: {show: 500, hide: 100},
});
}
}
}
};
sysAjax(getParkLotEqpCountChart);
// $('#m_r_bar li').eq(0).click();
$('#caryard_alertmodel').modal('show');
},
//根据停车场编码获取车位信息
getBerthInfoByPlNo: function (plNo) {
//数据初始化
$('#allBerthNum').text('');
$('#freeBerthNum').text('');
$('#useBerthNum').text('');
$('#caryard-berth-ifo-main').html('');
//判断是否为封闭停车场
var plTypeStr = $("#basePlType").text();
if(plTypeStr == '封闭'){
plNo = $("#dataplno").val();
var plName = $("#dataplname").val();
$("#parkDataPlName").text(plName);
/**1、查询实时停车场数据 **/
var plNos = [];
plNos.push(plNo);
var req = {
sysCode: sysComm.sysCode,
plNos: plNos
};
var opt = {
method: 'post',
url: dataUrl.util.queryParkRealTimeDatasByPlNos(),
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;
var berthFreeNum = data.berthFreeNum;
var berthNum = data.berthNum;
var useBerthNum = parseInt(berthNum) - parseInt(berthFreeNum);
$('#allBerthNum').text(berthNum);
$('#freeBerthNum').text(berthFreeNum);
$('#useBerthNum').text(useBerthNum);
$('#caryard-berth-ifo-main').html('封闭停车场暂无泊位数据
');
}
}
};
sysAjax(opt);
return;
}
plNo = $("#dataplno").val();
var allBerths = 0;
var freeBerths = 0;
var req = {
baseRequest: {
pageNum: 1,
pageSize: 0
},
sysCode: sysComm.sysCode,
plNo: plNo
}
var opt = {
method: 'post',
url: dataUrl.util.queryBerthByBerthForPage(),
data: JSON.stringify(req),
success: function (res) {
if (res.code == '8888') {
var data = res.data.rows;
$('#caryard-berth-ifo-main').empty();
var _html = '';
// var allBerthData=[];
var freeBerthData = [];
var useBerthData = [];
if (data != null && data.length > 0) {
for (var m = data.length - 1; m >= 0; m--) {
allBerths += 1;
// allBerthData.push(data[m].berthNo);
if (parseInt(data[m].isOccupy) == 2) {
freeBerths += 1;
freeBerthData.push(data[m].berthNo);
} else if (parseInt(data[m].isOccupy) == 1) {
useBerthData.push(data[m].berthNo);
}
}
}
$('#allBerthNum').text(allBerths);
$('#freeBerthNum').text(freeBerths);
$('#useBerthNum').text(parseInt(allBerths) - parseInt(freeBerths));
var number = data.length;
var num = Math.ceil(number / 9);
console.log(num);
// var number = 45;
// var num = Math.ceil(number/15);
// $('#caryard-berth-ifo-main').empty();
// var _html = '';
for(var i=0;i';
if(i==(num-1)){
var newNum=parseInt(data.length-9*i);
for(var k=newNum-1;k>=0;k--){
if (parseInt(data[number-1-k].isOccupy) == 2) {
_html += '' + data[number-1-k].berthNo + '
';
} else if (parseInt(data[number-1-k].isOccupy) == 1) {
_html += '' + data[number-1-k].berthNo + '
';
}
}
}else{
for(var j=0;j<9;j++){
if (parseInt(data[9*i+j].isOccupy) == 2) {
_html += '' + data[9*i+j].berthNo + '
';
} else if (parseInt(data[9*i+j].isOccupy) == 1) {
_html += '' + data[9*i+j].berthNo + '
';
}
}
}
_html += '';
}
// for(var i=0;i';
// for (var m = data.length - 1-15; m >= 0; m--) {
// if (parseInt(data[m].isOccupy) == 2) {
// _html += '' + data[m].berthNo + '
';
// } else if (parseInt(data[m].isOccupy) == 1) {
// _html += '' + data[m].berthNo + '
';
// }
// }
// _html += '';
// }else{
//
// }
// }
//for(var i=0;i= 0; m--) {
// if (parseInt(data[m].isOccupy) == 2) {
// _html += '' + data[m].berthNo + '
';
// } else {
// _html += '' + data[m].berthNo + '
';
// }
// }
// //}
// }
//}
// for (var i = 0; i < num; i++) {
// _html += '';
// if (i != (num - 1)) {
// for (var k = 0; k < useBerthData.length; k++) {
// _html += '' + useBerthData[k] + '
';
// }
// } else {
// for (var j = 0; j < freeBerthData.length; j++) {
// _html += '' + freeBerthData[j] + '
';
// }
// }
//
// _html += '';
// }
//
$('#caryard-berth-ifo-main').html(_html);
}
}
}
sysAjax(opt);
},
turnOverRateOccupyCarFlowLineCharts:function () {
var plNos = [];
var plNo = $("#dataplno").val();
plNos.push(plNo);
if (plNos.length < 1) {
plNos.push("-1X");
}
var req = {
sysCode: sysComm.sysCode,
plNos: plNos,
}
var opt = {
method: 'post',
url: dataUrl.util.queryTodayVehicleFlowOccupyRateAndTurnOver(),
async: false,
data: JSON.stringify(req),
success: function (res) {
if (res.code == '8888') {
//获取数据成功
var data = res.data;
var xAxisData = [];
var seriesData = [];
var time = new Date().getHours() + 1;
for (var i = 0; i < time; i++) {
var item = data[i];
var hour = item.hour + '';
if (hour.length == 1) {
hour = '0' + hour;
}
hour += ':00';
xAxisData.push(hour);
seriesData.push(item.avgTurnoverRate.toFixed(2));
}
}
}
}
sysAjax(opt);
},
loadParkDatas: function (plNo) {
plNo = $("#dataplno").val();
var plName = $("#dataplname").val();
$("#parkDataPlName").text(plName);
/**1、查询实时停车场数据 **/
var plNos = [];
plNos.push(plNo);
var req = {
sysCode: sysComm.sysCode,
plNos: plNos
};
var opt = {
method: 'post',
url: dataUrl.util.queryParkRealTimeDatasByPlNos(),
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;
var berthFreeNum = data.berthFreeNum;
var berthNum = data.berthNum;
var useBerthNum = parseInt(berthNum) - parseInt(berthFreeNum);
var rate = 0;
if(berthNum!=undefined && berthNum !=null && berthNum!=0){
rate = parseInt(useBerthNum * 100 / berthNum);
}
$("#parkDataFreeBerthNum").text(berthNum);
var parkDataAllIncome = data.allIncome;
$("#parkDataAllIncome").text(fun.money(parkDataAllIncome));
var parkOnLinePayNum=data.parkOnLinePayNum==null?0:data.parkOnLinePayNum;
var parkOffLinePayNum=data.parkOffLinePayNum==null?0:data.parkOffLinePayNum;
var vipPayNum=data.vipCardChargeNum==null?0:data.vipCardChargeNum;
$("#parkDataIncomeCount").text(parkOnLinePayNum+parkOffLinePayNum+vipPayNum);
/**今日交易 **/
var parkIncome = data.parkIncome;
var parkWxIncome=data.parkWxIncome;
var parkAliIncome = data.parkAliIncome;
var parkCashIncome=data.parkCashIncome;
var parkBalanceIncome = data.parkBalanceIncome;
if(parseInt(parkIncome)==0){
var wxRate=0;
var aliRate=0;
var cashRate=0;
var otherRate=0;
}else{
var wxRate=parseInt(parkWxIncome*100/parkIncome);
var aliRate=parseInt(parkAliIncome*100/parkIncome);
var cashRate=parseInt(parkCashIncome*100/parkIncome);
var otherRate=parseInt(parkBalanceIncome*100/parkIncome);
}
$("#wxRate").css("width",wxRate+'%');
$("#aliRate").css("width",aliRate+'%');
$("#cashRate").css("width",cashRate+'%');
$("#otherRate").css("width",otherRate+'%');
/**占用率 **/
fun.rateEchart(rate, berthNum, useBerthNum);
}
}
};
sysAjax(opt);
//2左下角设备状态
$("#eqpInfo").empty();
//初始化
$("#eqpInfo").html('岗亭服务器' +
'' +
' 无 ' +
'地磁' +
'' +
' 无 ' +
'视频桩' +
'' +
' 无 ' +
'地锁' +
'' +
' 无 ' +
'网关' +
'' +
' 无 ' +
'道闸' +
'' +
' 无 ' +
'PDA' +
'' +
' 无 ');
fun.queryParkData(plNo);
},
queryParkData:function (plNo) {
var occupydData=getOccupyXDatas();
var req = {
sysCode: sysComm.sysCode,
pklNo: plNo,
};
var opttwo={
method: "post",
url: dataUrl.util.queryParkingdatas(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: true,
success: function (res) {
console.log(res);
if (res.code == '8888') {
var parkDatas = res.data;
//console.log(displayCountry);
//1-地磁;2-视频桩;3-地锁,4-网关,5-中继器等' 9-PDA
var eqpType = [0, 1, 2, 3, 4, 5, 9];
$.each(parkDatas.deviceVoList, function (index, item) {
var sub = eqpType.indexOf(item.type);
if (sub != -1) {
var html = $("#eqpInfo").find('li').eq(sub).html();
html = html.replace("无", "在线");
if (item.onlineCount < item.allCount) {
html = html.replace("ITD-common-color000", "color-status-abnormal").replace("在线", "故障");
}
$("#eqpInfo").find('li').eq(sub).html(html);
}
});
if(parkDatas.statisList != null && (parkDatas.statisList).length >0){
$.each(parkDatas.statisList, function (index, item) {
var curDate = new Date();
curDate.setTime(item.statisticEndTime);
for(inData in occupydData.xTimeDatas){
if(occupydData.xTimeDatas[inData] == (curDate.getHours()+':00')){
occupydData.occupyDatas[inData]=(1-(item.freeRatio < 0 ? 0 : item.freeRatio)).toFixed(2);
occupydData.turnOverDatas[inData]=item.turnoverRatio < 0 ? 0 : (item.turnoverRatio).toFixed(2);
}
}
});
//第一、二个数后台未返回,补零
//occupydData.occupyDatas[0]=0;
//occupydData.turnOverDatas[0]=0;
}
// console.log(occupydData.xTimeDatas);
// console.log(occupydData.occupyDatas);
/**24小时利用率 **/
fun.usageEchart(occupydData.xTimeDatas,occupydData.occupyDatas);
}
}};
sysAjax(opttwo);
},
};
fun.init();
//查询 事件
documentBindFunc.on('click', '#caryard_queryBtn', function () {
fun.createTableData();
});
setInterval(function () {
fun.queryParkRealTimeDatasByPlNos();
},commonObj.refreshDataTime);
/*弹窗js---------------------------------------------------------------------------*/
//上下滚动播报
(function ($) {
$.fn.myScroll = function (options) {
//榛樿閰嶇疆
var defaults = {
speed: 40,
rowHeight: 24 //姣忚鐨勯珮搴�
};
var opts = $.extend({}, defaults, options), intId = [];
function marquee(obj, step) {
obj.find("ul").animate({
marginTop: '-=1'
}, 0, function () {
var s = Math.abs(parseInt($(this).css("margin-top")));
if (s >= step) {
$(this).find("li").slice(0, 1).appendTo($(this));
$(this).css("margin-top", 0);
}
});
}
this.each(function (i) {
var sh = opts["rowHeight"], speed = opts["speed"], _this = $(this);
intId[i] = setInterval(function () {
if (_this.find("ul").height() <= _this.height()) {
clearInterval(intId[i]);
} else {
marquee(_this, sh);
}
}, speed);
_this.hover(function () {
clearInterval(intId[i]);
}, function () {
intId[i] = setInterval(function () {
if (_this.find("ul").height() <= _this.height()) {
clearInterval(intId[i]);
} else {
marquee(_this, sh);
}
}, speed);
});
});
}
})(jQuery);
$("div.list_lh").myScroll({
speed: 40, //数值越大,速度越慢
rowHeight: 28 //li的高度
});
// $(document).delegate('.info-alert', 'click', function () {
// // var plNo = $(this).attr("dataplno");
// // var plName = $(this).attr("dataplname");
// // console.log(plNo);
// // $("#dataplno").val(plNo);
// // $("#dataplname").val(plName);
// // $('#ITD-alert-tab-wrap li').eq(0).click();
// // fun.alertIfo();
// });
$('#recordtable').on('click-row.bs.table', function (e, row, element)
{
//$(element).css({"color":"blue","font-size":"16px;"});
console.log(row);
var plNo = row.plNo;
var plName = row.plName;
console.log(plNo);
$("#dataplno").val(plNo);
$("#dataplname").val(plName);
$('#ITD-alert-tab-wrap li').eq(0).click();
});
/**
*弹窗切换
**/
$('#ITD-alert-tab-wrap li').on('click', function () {
var _index = $(this).index();
$('#ITD-alert-tab-wrap>li').eq(_index).addClass('ITD-alert-tab-active').siblings().removeClass('ITD-alert-tab-active');
$('#ITD-alertcon-tab-wrap>li').eq(_index).removeClass('display-none').siblings().addClass('display-none');
if (0 == _index) {
fun.alertIfo();
} else if (1 == _index) {
fun.getBerthInfoByPlNo();
} else {
console.log(33333);
fun.loadParkDatas();
}
});
/**
* 自定义table AJAX请求
* @param {Object} params
*/
function tableLoadRequest(params) {
var req = fun.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.queryParkinglotBasicFactsByPlNos(),
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);
}
//导出
var InterValObj; //timer变量,控制时间
var count = 8; //间隔函数,1秒执行
var curCount;//当前剩余秒数
function sendMessage() {
curCount = count;
//设置button效果,开始计时
$("#caryardReport").attr("disabled", "true");
$(".ITD-export-btn").css("width", "138px");
$("#caryardReport").val(curCount + "秒后可再次导出");
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
}
//timer处理函数
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止计时器
$("#caryardReport").removeAttr("disabled");//启用按钮
$(".ITD-export-btn").css("width", "72px");
$("#caryardReport").val("导出");
}
else {
curCount--;
$("#caryardReport").val(curCount + "秒后可再次导出");
}
}
//导出excle
documentBindFunc.on('click','#caryardReport',function (){
//获取table所有行数据
var parkLot = $("#recordtable").bootstrapTable('getData');
//获取table总条数
var numTotal = $("#recordtable").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;
}
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();
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 plNos = fun.getQueryParam().plNos;
var url = dataUrl.util.exportParkinglotBasicFactsByPlNos();
var form = caryardForm(url, plNos);
console.log(form);
form.submit();
});
function caryardForm(url,plNos){
var form = document.createElement("form");
form.style.display='none';;
form.action = url;
form.method="post";
document.body.appendChild(form);
var input = document.createElement("input");
//input.type = "hidden";
input.name = "plNos";
input.value = plNos;
form.appendChild(input);
return form;
}
//费率转换
function parsePlRate(plRate) {
if (null == plRate) {
return [];
}
var plRateData = JSON.parse(plRate);
console.log(plRateData);
var result = [];
var patrn = /\d+(\.\d+)?/g;
$.each(plRateData, function (index, item) {
var temp = item.standard;
var data = {};
data.carType = temp.substring(0, temp.indexOf(":"));
var nums = temp.match(patrn);
data.first = nums[0];//第一小时10元
data.second = nums[1];//后1.5元/半小时
temp = item.standardInfo;
nums = temp.match(patrn);
data.third = nums[0];//24小时
data.four = nums[1];//60元
result.push(data);
})
return result;
}
//5、24小时占用率x时间轴获取
function getOccupyXDatas(){
var occupyDatas=[];
var turnOverDatas=[];
var xTimeDatas=[];
var curDate = new Date();
for (var i=0;i<24;i++){
curDate.setTime(curDate.getTime()+60*60*1000);
xTimeDatas.push(curDate.getHours()+':00');
occupyDatas[i]=0;
turnOverDatas[i]=0;
}
var occupydData={
occupyDatas:occupyDatas,
turnOverDatas:turnOverDatas,
xTimeDatas:xTimeDatas
}
return occupydData;
}