+(function($){ $.lie = $.lie || {version: "v1.0.0"}; $.extend($.lie, { refund:{ index:function(){ $.lie.droplist($('.droplist')); // 特殊字符编码 function specialCode(chr) { switch (chr) { case '!': return '%21'; break; case '"': return '%22'; break; case '#': return '%23'; break; case '$': return '%24'; break; case '%': return '%25'; break; case '&': return '%26'; break; case '\'': return '%27'; break; case '(': return '%28'; break; case ')': return '%29'; break; case '*': return '%2A'; break; case '+': return '%2B'; break; case ',': return '%2C'; break; case '/': return '%2F'; break; case ':': return '%3A'; break; case ';': return '%3B'; break; case '<': return '%3C'; break; case '=': return '%3D'; break; case '>': return '%3E'; break; case '?': return '%3F'; break; case '@': return '%40'; break; case '[': return '%5B'; break; case ']': return '%5D'; break; case '\\': return '%5C'; break; case '|': return '%7C'; break; default: return ''; break; } } // 查找特殊字符 function specialStr(str) { var reg = new RegExp("[!\"#$%&'()*+,/:;<=>?@\\[\\]\\|]"); var len = str.length; var rs = ''; for (var i = 0; i < len; i++) { var val = str.substr(i, 1); if (reg.test(val)) { rs = rs + specialCode(val);; } else { rs = rs + val; } } return rs; } // 搜索、导出条件 function refundCommon(url) { var order_sn = $('input[name="order_sn"]').val(), sku_name = $('input[name="sku_name"]').val(), apply_status = $('#apply_status').val() ? $('#apply_status').val() : '', order_payment_mode = $('#order_payment_mode').val() ? $('#order_payment_mode').val() : '', time_start = $('input[name="time_start"]').val(), time_end = $('input[name="time_end"]').val(), order_goods_type = $('input[name="order_goods_type"]').val(); if (url == '/refund_export' || url == '/refund_self_export') { if (!order_sn && !sku_name && !apply_status && !order_payment_mode && !time_start && !time_end) { layer.msg('请选择筛选条件,再导出!'); return false; } } var listUrl = url; listUrl += '?order_sn=' + order_sn; if (sku_name) { listUrl += '&sku_name=' + specialStr(sku_name); } if (order_payment_mode) { listUrl += '&order_payment_mode=' + order_payment_mode; } if (apply_status) { listUrl += '&apply_status=' + apply_status; } if(time_start){ time_start = Date.parse(time_start) / 1000; listUrl += '&time_start='+time_start; } if(time_end){ time_end = Date.parse(time_end) / 1000 + (24*60*60-1); listUrl += '&time_end='+time_end; } if (!order_sn && !sku_name && !apply_status && !order_payment_mode && !time_start && !time_end) { listUrl = url; } location.href = listUrl; } // 搜索 $('.search_refund_order').click(function(){ var order_goods_type = $('input[name="order_goods_type"]').val(); if (order_goods_type == 1) { refundCommon('/refund_order'); } else { refundCommon('/refund_self_order'); } }) // 导出订单 $('.refund_order_export').click(function() { var order_goods_type = $('input[name="order_goods_type"]').val(); if (order_goods_type == 1) { refundCommon('/refund_export'); } else { refundCommon('/refund_self_export'); } }) // 自营退款列表取消申请 $('.cancel-refund').click(function() { var rid = $(this).data('rid'); layer.open({ title : '取消申请', content: '确定取消退款申请吗?', btn: ['确定', '取消'], btn1: function () { $.ajax({ url : 'ajax/cancelSelfRefund', type: 'post', data: {refund_id: rid}, dataType: 'json', success: function (resp) { if (resp.errcode == 0) { location.reload(); return false; } layer.msg(resp.errmsg); }, error: function (err) { console.log(err) } }) }, btn2:function(index){ layer.close(index); } }) }) }, index_new:function(){ $.lie.droplist($('.droplist')); // 特殊字符编码 function specialCode(chr) { switch (chr) { case '!': return '%21'; break; case '"': return '%22'; break; case '#': return '%23'; break; case '$': return '%24'; break; case '%': return '%25'; break; case '&': return '%26'; break; case '\'': return '%27'; break; case '(': return '%28'; break; case ')': return '%29'; break; case '*': return '%2A'; break; case '+': return '%2B'; break; case ',': return '%2C'; break; case '/': return '%2F'; break; case ':': return '%3A'; break; case ';': return '%3B'; break; case '<': return '%3C'; break; case '=': return '%3D'; break; case '>': return '%3E'; break; case '?': return '%3F'; break; case '@': return '%40'; break; case '[': return '%5B'; break; case ']': return '%5D'; break; case '\\': return '%5C'; break; case '|': return '%7C'; break; default: return ''; break; } } // 查找特殊字符 function specialStr(str) { var reg = new RegExp("[!\"#$%&'()*+,/:;<=>?@\\[\\]\\|]"); var len = str.length; var rs = ''; for (var i = 0; i < len; i++) { var val = str.substr(i, 1); if (reg.test(val)) { rs = rs + specialCode(val);; } else { rs = rs + val; } } return rs; } // 搜索、导出条件 function refundCommon(url) { var order_sn = $('input[name="order_sn"]').val(), sku_name = $('input[name="sku_name"]').val(), apply_status = $('#apply_status').val() ? $('#apply_status').val() : '', order_payment_mode = $('#order_payment_mode').val() ? $('#order_payment_mode').val() : '', time_start = $('input[name="time_start"]').val(), time_end = $('input[name="time_end"]').val(), order_goods_type = $('input[name="order_goods_type"]').val(), sale_id = $('#sale_id').val() ? $('#sale_id').val() : ''; if (url == '/return_export' || url == '/self_return_export') { if (!order_sn && !sku_name && !apply_status && !order_payment_mode && !time_start && !time_end) { layer.msg('请选择筛选条件,再导出!'); return false; } } if (!order_sn && !sku_name && !apply_status && !order_payment_mode && !time_start && !time_end) { location.href = url; } var listUrl = url; listUrl += '?order_sn=' + order_sn; if (sku_name) { listUrl += '&sku_name=' + specialStr(sku_name); } if (order_payment_mode) { listUrl += '&order_payment_mode=' + order_payment_mode; } if (apply_status) { listUrl += '&apply_status=' + apply_status; } if(time_start){ time_start = Date.parse(time_start) / 1000; listUrl += '&time_start='+time_start; } if(time_end){ time_end = Date.parse(time_end) / 1000 + (24*60*60-1); listUrl += '&time_end='+time_end; } if (sale_id) { listUrl += '&sale_id=' + sale_id; } listUrl += '&order_goods_type='+order_goods_type; location.href = listUrl; } // 搜索 $('.search_return_order').click(function(){ var order_goods_type = $('input[name="order_goods_type"]').val(); if (order_goods_type == 1) { refundCommon('/return_list'); } else { refundCommon('/self_return_list'); } }) // 导出订单 $('.export_return_order').click(function() { var order_goods_type = $('input[name="order_goods_type"]').val(); if (order_goods_type == 1) { refundCommon('/return_export'); } else { refundCommon('/self_return_export'); } }) // 填写物流信息 $('.return-shipping').click(function() { var return_id = $(this).data('id'); var shipping_section = ''; shipping_section += '<div class="form-group">'+ '<select name="shipping_id" class="shipping_id" style="width: 100%;margin-bottom: 20px;">'+ '<option value="">请选择快递公司</option>'; for(var i in shippings_info) { shipping_section += '<option value="'+i+'">'+shippings_info[i]+'</option>'; } shipping_section += '<input type="text" class="express_no" name="express_no" value="" style="width:100%;" placeholder="请填写快递单号" />'+ '</select>'+ '</div>'; layer.open({ area: ['400px'] ,title: '填写物流信息' ,content: shipping_section ,btn:['确定', '取消'] ,yes: function(index, layero){ var shipping_id = $('.shipping_id').val(); var express_no = $('.express_no').val(); if(!shipping_id){ layer.tips('请选择快递公司',$('.shipping_id')); return false; } if(!express_no){ layer.tips('快递单号不能为空',$('.express_no')); return false; } $.ajax({ url: '/ajax/returnShipping', type: 'post', data: {return_id:return_id, shipping_id:shipping_id, shipping_sn:express_no}, dataType:'json', success: function(resp) { if(resp.err_code === 0){ layer.msg(resp.err_msg || '操作成功'); setTimeout(function(){ location.reload(); }, 1000); } else { layer.alert(resp.err_msg || '网络异常'); } }, error: function(err) { console.log(err) } }) } ,btn2: function(index, layero){ layer.close(index); } }); }) }, refund:function() { // 正整数输入框限制 $('.int_num').off().on('keyup', function(){ var val = $(this).val(); if(!val) return false; if (!(/^[1-9]\d*$/g.test(val))) { layer.msg('只能是正整数'); $(this).val(''); } if($(this).val().length > 9){ $(this).val($(this).val().slice(0, 9)); } }); // 填写退货数量 $('.return_num').keyup(function() { var removal_number = parseInt($(this).parents('tr').find('.removal_number').val()); // 出库数量 var single_pre_price = parseFloat($(this).parents('tr').find('.single_pre_price').val()); // 均摊单价 var val = $(this).val(); // 退货数量 if (val > removal_number) { layer.msg('不能超过出库数量'); $(this).val(''); } // 退款小计 var single_amount = parseFloat(single_pre_price * val).toFixed(4); $(this).parents('tr').find('.single_return_amount').text(currency_sign + single_amount); // 退款总额 var return_total = 0; $('.return-table').find('tbody tr').each(function(){ var num = parseInt($(this).find('.return_num').val()) || 0; var price = parseFloat($(this).find('.single_pre_price').val()) || 0; return_total += parseFloat(num * price); }); return_total = return_total.toFixed(2); $('.return_amount').val(return_total); $('.return_amount_val').text(currency_sign + return_total); }) // 提交表单 $('.returnApply').click(function() { var return_way = $('.return_way:checked').val(); var goods_count = 0; // 商品数量 // var return_eq_true = []; // 退货数量与出库数量相等 var return_empty = []; // 退货数量为空 // 判断是否选择退货方式 if (return_way == null) { layer.msg('请选择退货方式'); return false; } // 表单退货数量 $('.return-table').find('tbody tr').each(function(){ var num = parseInt($(this).find('.return_num').val()); var removal_number = parseInt($(this).find('.removal_number').val()); // 为空标记 if (!num) return_empty.push(0); // 数量等于出库数量标记 // if (num == removal_number) return_eq_true.push(1); goods_count++; }); if (return_empty.length == goods_count) { layer.msg('请填写退货数量'); return false; } // if (return_eq_true.length == goods_count) { // layer.msg('不能选择全部退货数量,请检查数量'); // return false; // } var order_id = $('input[name=order_id]').val(); var refund_reason = $('.refund_reason').val(); if (!refund_reason) { layer.msg('请选择退货原因'); return false; } var pay_id = $('input[name=pay_id]').val(); // 若为线下转账,则银行信息必填 if (pay_id == 0) { var bank_account = $('.bank_account').val(); var bank_name = $('.bank_name').val(); var bank_sub_name = $('.bank_sub_name').val(); var bank_user = $('.bank_user').val(); if(!bank_account || !bank_name || !bank_sub_name || !bank_user) { layer.msg('订单为线下转账,银行信息必填'); return false; } } // 判断创建或编辑 var return_id = $('.return_id').val(); if (return_id) { var content = '确认修改退货申请?'; var url = '/return_edit/' + order_id + '?return_id=' + return_id; } else { var content = '确认提交退货申请?'; var url = '/return/' + order_id; } layer.open({ title: '提示信息', content: content, btn: ['确认', '取消'], yes: function(index, layero){ $.ajax({ url : url, type: 'post', data: $('#returnForm').serialize(), dataType: 'json', success: function (resp) { if(resp.errcode === 0){ // 跳转地址 var order_goods_type = $('.order_goods_type').val(); if (order_goods_type == 1) { var redirect_url = '/return_list'; } else { var redirect_url = '/self_return_list'; } layer.msg(resp.errmsg || '操作成功'); setTimeout(function(){ location.href = redirect_url; // 退货列表 }, 1000); } else { layer.alert(resp.errmsg || '网络异常'); } }, error: function (res) { console.log(res); } }) layer.msg('退货申请中...', {icon: 16, time: 0, shade: 0.3}); // 阻止重复提交 }, btn2: function(index, layero){ layer.close(index); } }); }) }, details:function() { // 打印退货单 $('.return-print').click(function() { console.log(11) $('#return-info').printArea(); }) // 审核通过 / 驳回 $('.return-check').click(function() { var return_id = $(this).data('id'); var type = $(this).data('type'); var title = ''; var content = ''; var data = {return_id: return_id, type: type}; if (type == 2) { // 审核通过 title = '审核退货单'; content = '确定审核通过吗?'; } else { // 驳回 title = '驳回退货单'; content = '<div><textarea name="refuse_reason" class="form-control" id="refuse_reason" cols="30" rows="5" placeholder="填写驳回原因"></textarea></div>'; } layer.open({ title: title, content: content, btn: ['确定', '取消'], yes: function() { if (type == -2) { var refuse_reason = $('#refuse_reason').val(); if (!refuse_reason) { layer.tips('驳回原因不能为空', $('#refuse_reason')); return false; } data.refuse_reason = refuse_reason; } $.ajax({ url: '/ajax/returnCheck', type: 'post', data: data, success: function(resp){ if (resp.err_code == 0) { layer.msg(resp.err_msg); setTimeout(function(){ location.reload(); }, 1000); return false; } layer.alert(resp.err_msg); }, error: function(err) { console.log(err) } }) } }) }) } } }); })(jQuery)