/**
* Created by chenbiao on 2017/12/29.
*/
//收入折线echarts对象
var incomeLineChart;
//支付方式 环形图 echarts对象
var payTypePidChart;
function pageInit() {
console.log('停车收入');
//导出功能
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;
//隐藏显示 查询条件 搜索框 hide-common-style
documentBindFunc.on('click', ".ITD-search-morebtn", function () {
$(".hide-common-style").toggleClass("display-none");
});
//切换头部收入topbar
documentBindFunc.on('click', "#parkincome-toptab div", function () {
var index = $(this).index();
$(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive');
//console.log(index);
$("#parkincome-toptab").val(index);
//初始化加载收入统计
parkincomefun.getCustIncomeForParkPay();
parkincomefun.getCustIncomeForParkPayForChart();
/** 函数 表格数据 **/
parkincomefun.parkincomecreateTableData();
})
//绑定打印事件
//documentBindFunc.on('click', '.ITD-search-printbtn', function () {
//parkincomefun.printPage();
//})
var parkincomefun = {
init: function () {
commSelect.area_Pl_LinkedSelect("#parkincome-transSelecarea", "#parkincome-transSelectPark");
//初始化
/**日 时间初始化*/
$('#parkincome-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD'));
$('#parkincome-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD'));
//开始日期
$("#parkincome-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"
})
//结束日期
$("#parkincome-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"
})
/** 月 时间初始化 **/
$('#parkincome-monthdaterange-btnsta').val(moment().subtract('months', 7).format('YYYY-MM'));
$('#parkincome-monthdaterange-btnend').val(moment().subtract('months', 1).format('YYYY-MM'));
//开始日期
$("#parkincome-monthdaterange-btnsta").datetimepicker({
endDate: moment().subtract('months', 0).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"
})
//结束日期
$("#parkincome-monthdaterange-btnend").datetimepicker({
endDate: moment().subtract('months', 0).format('YYYY-MM'),
//startDate:startVal,
format: 'yyyy-mm',
weekStart: 1,
autoclose: true,
startView: 3,
minView: 3,
forceParse: false,
locale: "zh-CN",
language: 'zh-CN',
pickerPosition: "bottom-right"
})
//初始化加载收入统计
parkincomefun.getCustIncomeForParkPay();
parkincomefun.getCustIncomeForParkPayForChart();
/** 函数 表格数据 **/
parkincomefun.parkincomecreateTableData();
},
zzlEcharts: function (dataValue, totalFee) {
console.log(totalFee)
var chart = echarts.init(document.getElementById('incomereport-echarts-zffs'));
chart.setOption(
{
color: ['#1e95cd','#5fe98f','#fdc94d','#50c0f5'],
title: {
subtext: "" + totalFee,
text: '总金额',
textStyle: {
color: 'rgba(0,0,0,0.45)',
fontSize: '14',
align: 'middle',
verticalAlign: 'middle',
},
subtextStyle: {
color: '#000',
fontSize: '24',
align: 'middle',
verticalAlign: 'middle',
},
left: 'center',
top: '140',
},
tooltip: {
trigger: 'item',
// show: false,
formatter: "{a}
{b}: {c} ({d}%)"
},
series: [
{
name: '停车场收费',
hoverAnimation: false,
legendHoverLink: false,
type: 'pie',
hoverOffset: 5,
selectedOffset: 3,
radius: ['60%', '70%'],
center: ['50%', '50%'],
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
emphasis: {
show: false,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: dataValue,
itemStyle: {
normal: {
opacity: 1,
borderWidth: 2,
borderColor: '#fff'
}
}
}
]
}
);
payTypePidChart = chart;
},
ttcsfEcharts: function (dataX, dataY) {
var chart = echarts.init(document.getElementById('incomereport-echarts-ttcsf'));
var option = {
color: ['#1890FF'],
tooltip: {
trigger: 'axis'
},
legend: {
right: '2%',
top: '0',
textStyle: {
color: '#888990',
},
itemWidth: 18,
itemHeight: 10,
},
grid: {
top: '8%',
left: '2%',
right: '5%',
bottom: '5%',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: dataX,
axisLabel: {
// interval:0,
// rotate:30,
show: true,
/*formatter:function(value)
{
return value.split("").join("\n");
},*/
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:'微软雅黑'
},
},
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: 'line',
// symbol:'circle',
// smooth: true,
data: dataY,
itemStyle : {
normal : {
lineStyle:{
color:'#f0f0f2',
}
}
},
areaStyle: {
normal: {
color: '#1e95cd',
opacity: .2
}
},
lineStyle: {
normal: {
color: '#1e95cd',
width: 2,
}
}
},
]
};
console.log(JSON.stringify(option))
chart.setOption(option, true);
// 自适应
window.onresize = chart.resize;
incomeLineChart = chart;
},
//默认生成表格数据-day
parkincomecreateTableData: function () {
$('#parkincome-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: parkincometableLoadRequest,//自定义ajax加载数据
// uniqueId:'id',
columns: [
{
field: 'staticDate',
title: ' 统计时间',
width: '15%',
align: "left",
formatter: parkincomefun.staticDateFormatter
},
{
field: 'actFee',
title: ' 实收',
width: '10%',
align: "left",
sortable: true,
formatter: commonObj.moneyFormatter
},
{
field: 'orderNum',
title: ' 交易笔数',
width: '10%',
align: "left",
formatter:commonObj.replacenull
},
{
field: 'wxFee',
title: ' 微信',
width: '10%',
align: "left",
sortable: true,
formatter: commonObj.moneyFormatter
},
{
field: 'aliFee',
title: ' 支付宝',
width: '10%',
align: "left",
sortable: true,
formatter: commonObj.moneyFormatter
},
{
field: 'cashFee',
title: ' 现金',
width: '10%',
align: "left",
sortable: true,
formatter: commonObj.moneyFormatter
},
{
field: 'balanceFee',
title: ' 余额',
width: '10%',
sortable: true,
align: "left",
formatter: commonObj.moneyFormatter
},
{
field: 'arrearageFee',
title: ' 欠费金额',
width: '10%',
sortable: true,
align: "left",
formatter: commonObj.moneyFormatter
},
]
});
},
//金额处理
moneyFormatter: function (value) {
// console.log(typeof value)
if (value == 0 || value == undefined || value == null) {
return "0.00";
} else {
return (value / 100).toFixed(2);
}
},
staticDateFormatter: function (value) {
// console.log(typeof value)
if (value == 0 || value == undefined || value == null) {
return '-';
} else {
var queryType = $('#queryType').attr('data-value');
if (1 == queryType) {
return DateUtils.long2String(value, 1);
} else {
return DateUtils.long2String(value, 13);
}
}
},
/*获取查询参数*/
parkincomegetQueryParam: function () {
var plAreaBlockIds = JSON.parse($("#parkincome-transSelecarea").val());
var plNos = JSON.parse($("#parkincome-transSelectPark").val());
if (plNos.length < 1) {
plNos.push("-1X");
}
var queryType = $('#queryType').attr('data-value');
var beginTime = null;
var endTime = null;
if (queryType == '1') {
var dateValue1 = $("#parkincome-daydaterange-btnsta").val();
var dateValue2 = $("#parkincome-daydaterange-btnend").val();
beginTime = dateValue1 + " 00:00:00";
endTime = dateValue2 + " 23:59:59";
} else {
var beginTimeQ = $("#parkincome-monthdaterange-btnsta").val();
var endTimeQ = $("#parkincome-monthdaterange-btnend").val();
beginTime = beginTimeQ + "-01 00:00:00";
var dates = endTimeQ.split("-");
if (dates[1] == '02') {
endTime = endTimeQ + "-28 23:59:59";
} else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07'
|| dates[1] == '08' || dates[1] == '10' || dates[1] == '12') {
endTime = endTimeQ + "-31 23:59:59";
} else {
endTime = endTimeQ + "-30 23:59:59";
}
}
beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/"));
endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/"));
var req = {
sysCode: sysComm.sysCode,
plAreaBlockIds: plAreaBlockIds,
plNos: plNos,
type: queryType,
beginTime: beginTime,
endTime: endTime
};
return req;
},
//查询停车场收费折线图
getCustIncomeForParkPayForChart: function () {
var req = parkincomefun.parkincomegetQueryParam();
req.baseRequest = {
pageNum: 1,
pageSize: 0
};
var index = $("#parkincome-toptab").val();
//console.log(index);
var url = dataUrl.util.queryIncomeStatisticForPark();
if (1 == index) {
url = dataUrl.util.queryIncomeStatisticForVipCard();
} else if (2 == index) {
url = dataUrl.util.queryIncomeStatisticForBack();
}
var opt = {
method: 'POST',
url: url,
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
console.log(res);
var dataX = [];
var dataY = [];
if (res.code = "8888") {
var data = res.data;
var queryType = $('#queryType').attr('data-value');
var beginTime = null;
var endTime = null;
if (queryType == '1') {
beginTime = $("#parkincome-daydaterange-btnsta").val();
endTime = $("#parkincome-daydaterange-btnend").val();
} else {
beginTime = $("#parkincome-monthdaterange-btnsta").val();
endTime = $("#parkincome-monthdaterange-btnend").val();
}
var beginTimeArray = beginTime.split("-");
var endTimeArray = endTime.split("-");
if (queryType == '1') {
dataX.push(beginTime);
//按天的页面
var length = getDayNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1
for (var i = 1; i < length; i++) {
dataX.push(addDate(req.beginTime, 1));
}
} else {
dataX.push(beginTimeArray[0] + '-' + beginTimeArray[1])
//按月的页面
var length = getMonthNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1
for (var i = 0; i < length; i++) {
for (var i = 1; i < length; i++) {
var tempDate = new Date(addMonth(req.beginTime, 1).replace(/-/g, "/"));
tempDate = tempDate.getFullYear() + '-' + getFormatDate(tempDate.getMonth() + 1);
dataX.push(tempDate);
}
}
}
if (data.rows != null && data.rows.length > 0) {
$.each(dataX, function (index, staticTimeStr) {
var flag = false;
$.each(data.rows, function (index, ajaxData) {
if (staticTimeStr == parkincomefun.staticDateFormatter(ajaxData.staticDate)) {
flag = true;
dataY.push(parkincomefun.moneyFormatter(ajaxData.actFee));
}
})
if (!flag) {
dataY.push(0);
}
})
} else {
$.each(dataX, function () {
dataY.push(0);
})
}
parkincomefun.ttcsfEcharts(dataX, dataY);
} else {
}
}
};
sysAjax(opt);
},
//查询支付方式收费饼图
getCustIncomeForParkPay: function () {
var req = parkincomefun.parkincomegetQueryParam();
req.groupType = 100;
req.baseRequest = {
pageNum: 1,
pageSize: 0
};
var index = $("#parkincome-toptab").val();
//console.log(index);
var url = dataUrl.util.queryIncomeStatisticForPark();
if (1 == index) {
url = dataUrl.util.queryIncomeStatisticForVipCard();
} else if (2 == index) {
url = dataUrl.util.queryIncomeStatisticForBack();
}
var opt = {
method: 'POST',
url: url,
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 dataValue = [];
var totalFee = 0;
if (data.rows != null && data.rows.length > 0) {
var data = data.rows[0];
var dataali = {name: "支付宝", value: parkincomefun.moneyFormatter(data.aliFee),};
var datawx = {name: "微信", value: parkincomefun.moneyFormatter(data.wxFee)};
var datacash = {name: "现金", value: parkincomefun.moneyFormatter(data.cashFee)};
var databalance = {name: "余额", value: parkincomefun.moneyFormatter(data.balanceFee),selected:true,};
dataValue.push(dataali);
dataValue.push(datawx);
dataValue.push(datacash);
dataValue.push(databalance);
totalFee = data.aliFee + data.wxFee + data.cashFee + data.balanceFee;
console.log(totalFee)
totalFee = parkincomefun.moneyFormatter(totalFee);
} else {
var dataali = {name: "支付宝", value: 0};
var datawx = {name: "微信", value: 0};
var datacash = {name: "现金", value: 0};
var databalance = {name: "余额", value: 0};
dataValue.push(dataali);
dataValue.push(datawx);
dataValue.push(datacash);
dataValue.push(databalance);
}
console.log(dataValue);
parkincomefun.zzlEcharts(dataValue, totalFee);
} else {
}
}
};
sysAjax(opt);
},
//打印页面
printPage: function () {
//标题头
$('#print-title').text($('#parkincome-toptab div.ITD-graynav-topbaractive').text() + '报表');
$('#print-park').text($('#parkincome-transSelecarea').find("option:selected").text() + ' ' + $('#parkincome-transSelectPark').find("option:selected").text())
var startDateStr;
var endDateStr;
if ($('.parkincome-choosedateday').hasClass('display-none')) {
//按照月检索的
//开始时间月份框
startDateStr = $("#parkincome-monthdaterange-btnsta").val();
//结束时间月份框
endDateStr = $("#parkincome-monthdaterange-btnend").val();
} else {
//按照日检索的
//开始时间日期框
startDateStr = $("#parkincome-daydaterange-btnsta").val();
//结束时间日期框
endDateStr = $("#parkincome-daydaterange-btnend").val();
}
$('#print-select-date').text(startDateStr + ' - ' + endDateStr);
//获取收入折线图图表
var incomeLinePng = incomeLineChart.getDataURL();
$('#incomereport-echarts-ttcsf-print').attr('src', incomeLinePng);
//获取支付方式图表
var payTypePng = payTypePidChart.getDataURL();
$('#incomereport-echarts-zffs-print').attr('src', payTypePng);
//开始请求数据
var req = parkincomefun.parkincomegetQueryParam();
//条件查询
req.baseRequest = {
pageNum: 1,
pageSize: 1000
};
req.sysCode = sysComm.sysCode;
var index = $("#parkincome-toptab").val();
//console.log(index);
var url = dataUrl.util.queryIncomeStatisticForPark();
if (1 == index) {
url = dataUrl.util.queryIncomeStatisticForVipCard();
} else if (2 == index) {
url = dataUrl.util.queryIncomeStatisticForBack();
}
$('#table-print-body').empty();
var opt = {
method: 'post',
url: url,
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
console.log('print:');
console.log(res);
var html = '';
$.each(res.data.rows, function (index, row) {
html += '