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 = '编辑'; if (row.parkState == 10) {//&& row.plType == 1 && row.berthNo != null封闭停车场和没有泊位号的不能强制离场 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'); }