var fun = {
init: function () {
fun.timeInit();
fun.createTableData();
},
timeInit: function () {
//进场时间初始化
$('#parkmanage-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD'));
$('#parkmanage-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD'));
//开始日期
$("#parkmanage-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,
clearBtn: true, //添加清除按钮,可选值:true/false
locale: "zh-CN",
language: 'zh-CN',
pickerPosition: "bottom-right"
})
//结束日期
$("#parkmanage-daterange-btnend").datetimepicker({
endDate: moment().subtract('days', 0).format('YYYY-MM-DD'),
//startDate:startVal,
format: 'yyyy-mm-dd',
weekStart: 1,
autoclose: true,
clearBtn: true, //添加清除按钮,可选值:true/false
startView: 2,
minView: 2,
forceParse: false,
locale: "zh-CN",
language: 'zh-CN',
pickerPosition: "bottom-right"
})
},
//生成表格数据
createTableData: function () {
$('#recordtable').bootstrapTable('destroy').bootstrapTable({
striped: true,//表格显示条纹
pagination: true, //启动分页
pageNumber: 1, //当前第几页
pageSize: 10, //每页显示的记录数
pageList: [10, 15, 20], //记录数可选列表
sidePagination: 'server',//表示服务端分页
queryParamsType: 'limit',
method: 'POST',//请求方法
paginationPreText: '<',
paginationNextText: '>',
// fixedColumns:true,
// fixedNumber:1,
// leftFixedColumns: true,
// leftFixedNumber: 1,
ajax: tableLoadRequest,//自定义ajax加载数据
// uniqueId:'id',
columns: [
{
field: 'carNumber',
title: '车牌号',
width: '10%',
align: "left",
formatter: function (value, row, index) {
return '
' + commonClass.cutString(value, 8) + '
';
},
},
{field: 'parkName', title: '车场名称', width: '20%', align: "left"},
{
field: 'parkInTime',
title: '进场时间',
width: '20%',
align: "left",
formatter: commonObj.timeFormatter
},
{
field: 'parkOutTime',
title: '出场时间',
width: '20%',
align: "left",
formatter: commonObj.timeFormatter
},
{
field: 'orderTotalFees',
title: '应收',
width: '10%',
align: "left",
formatter: commonObj.moneyFormatter
},
{
field: 'orderActFees',
title: '实收',
width: '10%',
align: "left",
formatter: commonObj.moneyFormatter
},
{
field: '',
title: '操作',
width: '10%',
align: 'left',
formatter: fun.operFormater
}
]
});
},
/*获取查询参数*/
getQueryParam: function () {
var parks = fn.getParkLot();
var plNos = [-1];
$.each(parks, function (index, item) {
plNos.push(item.code);
});
/*进场开始时间*/
var beginInTime = null;
/*进场结束*/
var endInTime = null;
/*解析时间*/
var times1 = $('#parkmanage-daterange-btnsta').val();
var times2 = $('#parkmanage-daterange-btnend').val();
if (null != times1 && times1.trim().length > 0) {
beginInTime = times1;
}
if (null != times2 && times2.trim().length > 0) {
endInTime = times2;
}
/*车牌号*/
var carNum = $('#carNumber').val();
carNum = carNum == null || carNum.length == 0 ? null : carNum.trim();
var parkStatus = null;
var data_parkState = $('#parkmanage-toptab div.ITD-graynav-topbaractive').data('parkstate');
if (data_parkState == 'all') {
parkStatus = null;
}
if (data_parkState == 'in') {
parkStatus = JSON.parse('[10]');
}
if (data_parkState == 'out') {
parkStatus = JSON.parse('[20]');
}
var req = {
plNos: plNos,
beginInTime: beginInTime,
endInTime: endInTime,
parkStatus: parkStatus,
carNum: carNum
};
return req;
},
//操作
operFormater: function (value, row, index) {
var html = '编辑';
return html;
},
}
fun.init();
//查询 「」
documentBindFunc.on('click', "#parkmanage_queryBtn", function () {
fun.createTableData();
});
/**
* 自定义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.queryParkOrderForFinance(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
console.log(res.data);
params.success(res.data);
$("[data-toggle='tooltip']").tooltip({
delay: {show: 500, hide: 100},
});
}
}
};
sysAjax(opt);
}
//切换 搜索部分 是否生效
documentBindFunc.on('click', "#parkmanage-toptab div.ITD-graynav-topbar", function () {
var index = $(this).index();
$(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive');
//console.log(index);
//切换完后,调用查询表格
fun.createTableData();
});
// 编辑
documentBindFunc.on('click', ".relMsg", function () {
$('.parkingCont').addClass('display-none');
var orderId = $(this).attr('data-index');
// 支付明细
console.log(orderId);
var req = {
orderId: orderId
};
req.sysCode = sysComm.sysCode;
var opt = {
method: 'post',
url: dataUrl.util.queryExpenseRecordByOrderId(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
// console.log("支出明细" + JSON.stringify(res.data));
$('#records_detail').empty();
var orderData = res.data.orderParkQueryDTO;
var detailData = res.data.expenseRecordDetailDTOList;
var totalFee = commonObj.moneyFormatter(orderData.orderTotalFee) + '元';
var actFee = commonObj.moneyFormatter(orderData.orderActFee) + '元';
var refundActFee = commonObj.moneyFormatter(orderData.refundActFee) + '元';
var arrearageFee = commonObj.moneyFormatter(orderData.arrearageFee) + '元';
var backActFee = commonObj.moneyFormatter(orderData.backActFee) + '元';
var discountFee = commonObj.moneyFormatter(orderData.orderDicountFee) + '元'
$('#handle_moneytop').attr('title', totalFee);
$('#handle_moneytop').text(totalFee);
$('#handle_moneybot').attr('title', actFee);
$('#handle_moneybot').text(actFee);
$('#handle_rdismoneytop').attr('title', arrearageFee);
$('#handle_rdismoneytop').text(arrearageFee);
$('#handle_rovermoneybot').attr('title', backActFee);
$('#handle_rovermoneybot').text(backActFee);
$('#handle_rarrmoneytop').attr('title', discountFee);
$('#handle_rarrmoneytop').text(discountFee);
$('#handle_rrefmoneybot').attr('title', refundActFee);
$('#handle_rrefmoneybot').text(refundActFee);
//遍历 消费明细
if (null != detailData && detailData.length != 0) {
//数据长度
var detailDataNum = detailData.length;
var html = '';
$.each(detailData, function (index, item) {
//
var createTime = DateUtils.long2String(item.createTime, 11);
var payFinishTime = item.payFinishTime == 0 ? '-' : DateUtils.long2String(item.payFinishTime, 11);
//支付方式[字典表:PAY_TYPE]-- -1:未知(创建时还不清楚支付方式)1:支付宝 2:微信 3:银联
// 4:微信公众号 5:个人账户 6:现金 7:IC卡
var payType = item.payType;
var payTypeStr;
var payTypeIcon;
switch (payType) {
case null:
payTypeStr = '未支付';
payTypeIcon = 'msgxj-ico';
break;
case 1:
payTypeStr = '支付宝';
payTypeIcon = 'msgalipay-ico';
break;
case 2:
payTypeStr = '微信';
payTypeIcon = 'msgwx-ico';
break;
case 3:
payTypeStr = '银联';
payTypeIcon = 'msgxj-ico';
break;
case 4:
payTypeStr = '微信';
payTypeIcon = 'msgwx-ico';
break;
case 5:
payTypeStr = '余额';
payTypeIcon = 'msgyy-ico';
break;
case 6:
payTypeStr = '现金';
payTypeIcon = 'msgxj-ico';
break;
case 7:
payTypeStr = 'IC卡';
payTypeIcon = 'msgxj-ico';
break;
default:
payTypeStr = '未知';
payTypeIcon = 'msgxj-ico';
}
var actFee = commonObj.moneyFormatter(item.actFee);
var terminal = item.terminalSource;
var terminalStr;
//终端来源[字典表:TERMINAL_SOURCE]:1:任你听 2:pda 3:微信公共号 4:云平台,5:道闸',
switch (terminal) {
case null:
terminalStr = '-';
break;
case 1:
terminalStr = 'APP';
break;
case 2:
terminalStr = 'PDA';
break;
case 3:
terminalStr = '微信公众号';
break;
case 4:
terminalStr = '云平台';
break;
case 5:
terminalStr = '道闸';
break;
case 6:
terminalStr = '企业APP';
break;
case 7:
terminalStr = 'H5支付';
break;
default:
terminalStr = '未知';
}
var status = item.status == null ? '-' : item.status;
var statusStr;
var statusIcon;
//订单状态[字典表:ORDER_STATE]:-50:已取消,10:待核算,20:待支付,30:支付中,
// 40:支付完成,50:已完成,52:欠费逃逸, 53:已补缴 60:退款中 70:退款成功
switch (status) {
case -50:
statusStr = '失败';
statusIcon = 'detail_falseIco';
break;
case 10:
statusStr = '失败';
statusIcon = 'detail_falseIco';
break;
case 20:
statusStr = '失败';
statusIcon = 'detail_falseIco';
break;
case 30:
statusStr = '失败';
statusIcon = 'detail_falseIco';
break;
case 40:
statusStr = '成功';
statusIcon = 'detail_trueIco';
break;
case 50:
statusStr = '成功';
statusIcon = 'detail_trueIco';
break;
case 52:
statusStr = '失败';
statusIcon = 'detail_falseIco';
break;
case 53:
statusStr = '成功';
statusIcon = 'detail_trueIco';
break;
case 60:
statusStr = '失败';
statusIcon = 'detail_falseIco';
break;
case 70:
statusStr = '成功';
statusIcon = 'detail_trueIco';
break;
case 80:
statusStr = '正在退款';
statusIcon = 'detail_falseIco';
break;
default:
statusStr = '失败';
statusIcon = 'detail_falseIco';
}
var type = item.type == null ? '-' : item.type;
var typeStr;
var buttonStr;
var buttonClass;
//支付单类型[字典表:PAY_ORDER_TYPE]:-100:停车欠费单,-200:停车退费单,101:停车付款单,102:停车预付单,103:停车补缴单,104:共享车位;201:余额充值单,202:押金充值;301:会员卡购买单,302:会员卡续费
switch (type) {
case 101:
typeStr = '停车付款';
buttonStr = '退款';
buttonClass = 'detail_drawBtn';
break;
case 102:
typeStr = '停车预付';
buttonStr = '退款';
buttonClass = 'detail_drawBtn';
break;
case 103:
typeStr = '停车补缴';
buttonStr = '-----';
buttonClass = '';
break;
case -100:
typeStr = '停车欠费';
buttonStr = '修改';
buttonClass = 'detail_reviseBtn';
statusStr = '未支付';
break;
case -200:
typeStr = '停车退费';
buttonStr = '-----';
buttonClass = '';
break;
default:
typeStr = '未知';
}
if (status == 53) {//已补缴
typeStr = '欠费已补缴';
buttonStr = '-----';
buttonClass = '';
statusStr = '已补缴';
}
if (status == -50 || status == 10 || status == 20 ||
status == 30 || status == 60 || status == 70) {//失败的或者已经退款的
buttonStr = '-----';
buttonClass = '';
}
var operId = item.operId == null ? '-' : item.operId;
var operName = item.operName == null ? '-' : item.operName;
// var lineHtml = '';
//
// if (detailDataNum != 1) {
//
// if (index == 0) {
// //第一个,只有下线
// lineHtml =
// ' ';
// } else if (index == (detailDataNum - 1)) {
// //最后一个,只有上线
// lineHtml =
// ' ';
// } else {
// //中间的 上线、下线都有
// lineHtml =
// ' ' +
// ' ';
// }
// }
html += '' +
'
' +
'
' + createTime + '
' +
'
' +
'
' +
'
' +
'
' +
'
' + payTypeStr + ':' + actFee + '元
' +
'
' +
'
' + typeStr + '
' +
'
' +
'
' +
'
' +
'
状态:' + statusStr + '
' +
'
渠道:' + terminalStr + '
' +
'
操作人:' + operName + '
' +
'
' +
'
' +
'
' +
'
' + buttonStr + '
' +
'
' +
'
' +
'
';
});
$('#records_detail').append(html);
} else {
var nullhtml = '暂无支出明细信息
';
$('#records_detail').append(nullhtml);
}
//显示
$('.records_handle').removeClass('display-none');
} else {
$('#records_alertmodel').modal('show');
$('.ITD-alertmodel-contentmsg').text('查询订单支出明细失败');
// 支付明细
$('.records_handle').addClass('display-none');
$('.parkingCont').removeClass('display-none');
fun.createTableData();
}
}
};
sysAjax(opt);
});
//强制离场 弹窗
documentBindFunc.on('click', '.outMsg', function () {
$('#force_error').addClass('display-none').text('');
var plType = $(this).attr('data-plType');
console.log(plType);
$('#park_arrearage_div').hide();
if (plType == 2) {//封闭停车场不计费
$('#park_out0').attr('disabled', false);//性别初始化
$("#outMsg").html("确认强制离场?");
} else {
$('#park_out0').attr('disabled', false);//性别初始化
$("#outMsg").html("确认强制离场?");
}
$('#park_out1').parent().addClass('checked');//性别初始化
$('#park_out1')[0].checked = true;//性别初始化
$('#park_out0').parent().removeClass('checked');//性别初始化
$('#parking_forcemodel').data('pltype', plType);
$('#parking_forcemodel').modal('show');
var orderId = $(this).attr('data-index');
$('#parking_forcemodel').val(orderId);
});
documentBindFunc.on('change', "input:radio[name='park_out']", function () {
var isBilling = $(this).val();
var pltype = $('#parking_forcemodel').data('pltype');
$('#park_arrearage').val(0);
if (isBilling == 1 && pltype == 2) {
$('#park_arrearage_div').show();
} else {
$('#park_arrearage_div').hide();
}
});
//强制离场 确定
documentBindFunc.on('click', '#parking_forcesubmit', function () {
//ajax success
var outParkType = $("input[name='park_out']:checked").val();
var orderId = $('#parking_forcemodel').val();
var arrearageFee = $('#park_arrearage').val();
var pltype = $('#parking_forcemodel').data('pltype');
//欠费金额默认为0
arrearageFee = arrearageFee <0?0:arrearageFee;
arrearageFee = arrearageFee*100;
if(outParkType == 1 && pltype == 2 ){
//如果是计费出场,且为封闭车场的话,修改为3
outParkType =3;
if(arrearageFee==''||arrearageFee==undefined||arrearageFee==null){
$('#force_error').removeClass('display-none').text('欠费金额不能为空');
return false;
}
}
var req = {
orderId: orderId,
outParkType: outParkType,
arrearageFee:arrearageFee
};
console.log(req);
req.sysCode = sysComm.sysCode;
var opt = {
method: 'post',
url: dataUrl.util.outParkForOrderPark(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
$('#parking_forcemodel').modal('hide');
$('.ITD-alertmodel-contentmsg').text('强制出场成功!');
$('#records_alertmodel').modal('show')
setTimeout(function () {
$('.ITD-alertmodel-contentmsg').text('');
$('#records_alertmodel').modal('hide')
}, 2000);
$("#recordtable").bootstrapTable('refresh');
} else {
$('#parking_forcemodel').modal('hide');
$('.ITD-alertmodel-contentmsg').text(res.msg);
$('#records_alertmodel').modal('show')
setTimeout(function () {
$('.ITD-alertmodel-contentmsg').text('');
$('#records_alertmodel').modal('hide')
}, 2000);
$("#recordtable").bootstrapTable('refresh');
}
}
}
sysAjax(opt);
});
// return 返回
documentBindFunc.on('click', ".returnLastbtn", function () {
// 支付明细
$('.records_handle').addClass('display-none');
$('.parkingCont').removeClass('display-none');
});
//欠费 修改
documentBindFunc.on('click', ".detail_reviseBtn", function () {
// parking_regmodel
$('#parking_regmodel').val('');
var orderId = $(this).attr('data-orderId');
var data = $(this).attr('data-row');
data = JSON.parse(data);
data.orderId = orderId;
console.log(data);
$('#parking_regmodel').val(data);
$('#tolltorsum').text(commonObj.moneyFormatter(data.actFee));
$('#recharge_error').addClass('display-none').text('');
$('#tolltor_amount').val('');
$('#parking_regmodel').modal('show');
});
//提交 欠费 修改
documentBindFunc.on('click', "#recharge_submit", function () {
var chargerFee = $('#tolltor_amount').val();
if (chargerFee == '' || chargerFee == undefined || chargerFee == null || isNaN(chargerFee)) {
$('#recharge_error').removeClass('display-none').text('请输入欠费金额');
return;
}
/*if(parseFloat(chargerFee)<=0){
$('#recharge_error').removeClass('display-none').text('修改后金额不能小于0');
return;
}*/
$('#recharge_error').addClass('display-none').text('');
var row = $('#parking_regmodel').val();
var req = {
orderId: row.rltOrderId,
arrearageFee: chargerFee * 100
};
req.sysCode = sysComm.sysCode;
var opt = {
method: 'post',
url: dataUrl.util.updateArrearageRecordByOrderId(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
$('#parking_regmodel').modal('hide');
$('.ITD-alertmodel-contentmsg').text('修改成功!');
$('#records_alertmodel').modal('show')
setTimeout(function () {
$('.ITD-alertmodel-contentmsg').text('');
$('#records_alertmodel').modal('hide')
}, 2000);
$(".returnLastbtn").click();
fun.createTableData();
} else {
$('#recharge_error').removeClass('display-none').text(res.msg);
}
}
}
sysAjax(opt);
});
//退款 弹窗
documentBindFunc.on('click', ".detail_drawBtn", function () {
// parking_regmodel
$('#parking_reimmodel').val('');
$('#rechargereim_submit').removeAttr('disabled');
var orderId = $(this).attr('data-orderId');
var data = $(this).attr('data-row');
data = JSON.parse(data);
data.orderId = orderId;
console.log(data);
$('#parking_reimmodel').val(data);
$('#reim_error').addClass('display-none').text('');
$("#tolltorsumreim").text(commonObj.moneyFormatter(data.actFee));
$('#tolltor_amountreim').val('');
//查询已经退款的金额
var req = {
payOrderid: data.rltOrderId,
};
req.sysCode = sysComm.sysCode;
var opt = {
method: 'post',
url: dataUrl.util.queryRefundFeeByPayOrderId(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
$("#al_tolltorsum").text(commonObj.moneyFormatter(res.data.allRefundFee));
$('#parking_reimmodel').modal('show');
} else {
$('#reim_error').removeClass('display-none').text(res.msg);
}
}
}
sysAjax(opt);
});
//提交 退款
documentBindFunc.on('click', "#rechargereim_submit", function () {
$('#rechargereim_submit').attr('disabled', 'disabled');
var sumreim = parseFloat($.trim($("#tolltorsumreim").text()));
var al_tolltorsum = parseFloat($.trim($("#al_tolltorsum").text()));
var chargerFee = parseFloat($.trim($('#tolltor_amountreim').val()));
if (chargerFee == '' || chargerFee == undefined || chargerFee == null || isNaN(chargerFee)) {
$('#reim_error').removeClass('display-none').text('请输入大于0的退款金额');
return;
}
if (chargerFee < 0) {
$('#reim_error').removeClass('display-none').text('退款金额需大于0');
return;
}
if (chargerFee > (sumreim - al_tolltorsum)) {
$('#reim_error').removeClass('display-none').text('退款金额不能大于支付金额减已退金额');
return;
}
$('#reim_error').addClass('display-none').text('');
var row = $('#parking_reimmodel').val();
var req = {
payOrderType: row.type,
rltOrderId: row.orderId,
rltPayOrderId: row.rltOrderId,
refundTotalFee: chargerFee * 100,
orderActFee: row.actFee,
orderTotalFee: row.actFee,
terminalSource: 4,
payType: row.payType,
payFinishTime: row.payFinishTime,
appId: 'no_app_id',
saveOrUpdateFlg: 1
};
req.sysCode = sysComm.sysCode;
var opt = {
method: 'post',
url: dataUrl.util.saveUpdateOrderRefund(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
$('#parking_reimmodel').modal('hide');
$('.ITD-alertmodel-contentmsg').text('退款申请已提交!');
$('#records_alertmodel').modal('show');
setTimeout(function () {
$('.ITD-alertmodel-contentmsg').text('');
$('#records_alertmodel').modal('hide');
}, 2000);
$(".returnLastbtn").click();
fun.createTableData();
} else {
$('#reim_error').removeClass('display-none').text(res.msg);
}
}
}
sysAjax(opt);
});
//用户只能输入正数与小数
function checkInputText(obj) {
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g, "");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g, ".");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g, "");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
//只能输入两个小数
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}