+(function($){ $.lie = $.lie || {version: "v1.0.0"}; $.extend($.lie, { order_service: { index:function() { // 售后申请 $('.order_service').click(function() { var order_id = $(this).data('id'); var order_pay_type = $(this).data('pay_type'); // 账期支付隐藏退款方式 // 弹出提示 layer.open({ type: 1, area: ['1200px', '700px'], title: '售后申请', content: $('.order_service_info'), btn:['确定', '取消'], yes: function(index, layero){ var service_type = $('.service_type').val(); var refund_type = $('.refund_type').val(); if (!service_type) { layer.tips('请选择售后类型', $('.service_type')); return false; } if (!refund_type && order_pay_type != 3) { layer.tips('请选择退款方式', $('.refund_type')); return false; } if (refund_type == 2) { // 支付宝 var ali_customer_name = $('.ali_customer_name').val(); var ali_refund_account = $('.ali_refund_account').val(); if (!ali_customer_name) { layer.tips('请填写客户/公司', $('.ali_customer_name')); return false; } if (!ali_refund_account) { layer.tips('请填写支付账户', $('.ali_refund_account')); return false; } } else if (refund_type == 3) { // 银行 var bank_customer_name = $('.bank_customer_name').val(); var bank_refund_account = $('.bank_refund_account').val(); var bank_name = $('.bank_name').val(); var bank_sub_name = $('.bank_sub_name').val(); if (!bank_customer_name) { layer.tips('请填写客户/公司', $('.bank_customer_name')); return false; } if (!bank_refund_account) { layer.tips('请填写银行账号', $('.bank_refund_account')); return false; } if (!bank_name) { layer.tips('请填写银行名称', $('.bank_name')); return false; } if (!bank_sub_name) { layer.tips('请填写银行支行', $('.bank_sub_name')); return false; } } var is_all_num_empty = false; // 校验全部申请数量是否为空 var is_all_price_empty = false; // 校验全部单价是否为空 var is_all_reason_empty = false; // 校验全部申请原因是否为空 var is_all_remark_empty = false; // 校验全部备注是否为空 var is_one_empty = false; // 同一行的售后数量或单价中一个为空 $('.order-service-table').find('tbody tr').each(function() { var goods_number = $(this).find('.adjust_number').val(); var goods_price = $(this).find('.adjust_price').val(); var apply_reason = $(this).find('.apply_reason').val(); var remark = $(this).find('.remark').val(); if (goods_number) is_all_num_empty = true; if (goods_price) is_all_price_empty = true; if (apply_reason) is_all_reason_empty = true; if (remark) is_all_remark_empty = true; // 单行任意一个存在,则该行所有输入框必填 if (goods_number || goods_price || apply_reason || remark) { if (!goods_number) { layer.tips('请填写数量', $(this).find('.adjust_number')); is_one_empty = true; return false; } if (!goods_price) { layer.tips('请填写单价', $(this).find('.adjust_price')); is_one_empty = true; return false; } if (!apply_reason) { layer.tips('请选择申请原因', $(this).find('.apply_reason')); is_one_empty = true; return false; } if (!remark) { layer.tips('请填写原因备注', $(this).find('.remark')); is_one_empty = true; return false; } } }) if (is_one_empty) return false; if (!is_all_num_empty) { layer.msg('请填写申请数量'); return false; } if (!is_all_price_empty) { layer.msg('请填写售后单价'); return false; } if (!is_all_reason_empty) { layer.msg('请选择申请原因'); return false; } if (!is_all_remark_empty) { layer.msg('请填写原因备注'); return false; } var datax = $('.orderServiceForm').serialize() + '&order_id=' + order_id; order_service(datax); /** 注释如下内容,暂时不需要校验原路返回 2021-1-19 */ // $.ajax({ // url : '/ajax/orderServiceCheck', // type: 'post', // data: datax, // dataType: 'json', // success: function (resp) { // var data = resp.data; // if (refund_type == 1 && !data) { // 退款方式为原路返回,且系统不满足原路返回 // layer.msg('不满足原路返回条件,请更改退款方式'); // return false; // } // if (refund_type != 1 && data) { // 退款方式非原路返回,且系统满足原路返回 // layer.confirm('此售后单满足系统自动原路返回,是否需要原路返回?', { // title: '导出数据' // ,btn: ['需要', '否,我要手工写单'] // }, function(){ // 确定 // layer.closeAll('dialog'); // 确定时关闭弹框 // datax = datax + '&refund_type=1'; // 退款方式更新为原路返回 // order_service(datax); // }, function() { // 取消 // layer.closeAll('dialog'); // 确定时关闭弹框 // order_service(datax); // }); // return false; // } // order_service(datax); // 以上条件不满足时调用 // }, // error: function (res) { // console.log(res); // } // }) }, btn2: function(index, layero){ layer.close(index); } }); }) function order_service(datax) { $.ajax({ url : '/ajax/orderServiceApply', type: 'post', data: datax, dataType: 'json', success: function (resp) { if(resp.errcode === 0){ layer.msg(resp.errmsg || '操作成功'); setTimeout(function(){ location.reload(); }, 1000); return false; } layer.alert(resp.errmsg || '网络异常', function() { location.reload(); }); return false; }, error: function (res) { console.log(res); } }) layer.msg('申请中...', {icon: 16, time: 0, shade: 0.3}); // 阻止重复提交 } // 全退 $('.orderServiceForm').find('.select-all').click(function() { $('.order-service-table').find('tbody tr').each(function() { var goods_number = parseInt($(this).find('.origin-goods-number').html()); var service_goods_number = parseInt($(this).find('.service-goods-number').html()) || 0; var single_pre_price = $(this).find('.single_pre_price').html(); var allow_num = (goods_number - service_goods_number) || ''; $(this).find('.adjust_number').val(allow_num); $(this).find('.adjust_price').val(single_pre_price); }) }) // 数量输入校验 $(document).delegate('.adjust_number', 'keyup', function() { var val = $(this).val(); if (!val) return false; if (!(/\d/.test(val)) || val <= 0) { layer.tips('只能是数字,且为正整数', $(this)); $(this).val(''); return false; } var service_type = $('.service_type').val(); // 售后类型 var fqty = $(this).parents('tr').find('.fqty').text(); if (service_type == 2) { // 出库退货 if (parseInt(val) > parseInt(fqty)) { layer.tips('不能超过订单出库数量', $(this)); $(this).val(''); return false; } } var single_pre_price = parseFloat($(this).parents('tr').find('.single_pre_price').html()); // 原订单均摊单价 var goods_number = parseInt($(this).parents('tr').find('.origin-goods-number').html()); // 原订单数量 var service_goods_number = parseInt($(this).parents('tr').find('.service-goods-number').html()) || 0; // 已售后数量 var origin_amount = single_pre_price * (goods_number - service_goods_number); // 商品可退金额 if (val > (goods_number - service_goods_number)) { layer.tips('不能超过订单可退数量', $(this)); $(this).val(''); return false; } var adjust_price = $(this).parents('tr').find('.adjust_price').val(); var adjust_amount = adjust_price * val; if (parseFloat(adjust_amount) > parseFloat(origin_amount)) { layer.tips('不能超过该条商品可退金额', $(this)); $(this).val(''); return false; } }) // 单价输入校验 $(document).delegate('.adjust_price', 'keyup', function() { var val = $(this).val(); if (!val) return false; if(!(/^\d{0,6}(\.\d{0,6})?$/g.test(val))){//判断输入是否合法,不合法强制转换 if(isNaN(parseFloat(val))){ layer.tips('只能是数字和小数组成', $(this)); $(this).val(''); return false; }else{ $(this).val(parseFloat(val).toFixed(6)); } } if (val < 0) { layer.tips('只能是正整数', $(this)); $(this).val(''); return false; } if(val > 999999.999999){ $(this).val(999999.999999); } if(val.length > 12){ $(this).val(val.slice(0, 12)); } var single_pre_price = $(this).parents('tr').find('.single_pre_price').text(); if (parseFloat(val) > parseFloat(single_pre_price)) { layer.tips('不能超过均摊单价', $(this)); $(this).val(''); return false; } }) // 单价输入校验 $(document).delegate('.adjust_price', 'blur', function() { var val = $(this).val(); if (!val) return false; if (val == 0) { layer.tips('单价不能为0', $(this)); $(this).val(''); return false; } var single_pre_price = parseFloat($(this).parents('tr').find('.single_pre_price').html()); // 原订单均摊单价 var goods_number = parseInt($(this).parents('tr').find('.origin-goods-number').html()); // 原订单数量 var service_goods_number = parseInt($(this).parents('tr').find('.service-goods-number').html()) || 0; // 已售后数量 var origin_amount = single_pre_price * (goods_number - service_goods_number); // 商品可退金额 var adjust_number = $(this).parents('tr').find('.adjust_number').val(); var adjust_amount = adjust_number * val; if (parseFloat(adjust_amount) > parseFloat(origin_amount)) { layer.tips('不能超过该条商品可退金额', $(this)); $(this).val(''); return false; } }) // 退款方式 $('.refund_type').change(function() { var val = $(this).val(); if (val == 2) { $('.alipay-info').show(); $('.bank-info').hide(); } else if (val == 3) { $('.alipay-info').hide(); $('.bank-info').show(); } else { $('.alipay-info').hide(); $('.bank-info').hide(); } }) // 批量选择申请原因 $('.batch_apply_reason').change(function() { var val = $(this).val(); if (!val) return false; $('.order-service-table').find('tbody tr').each(function() { $(this).find('.apply_reason').val(val); }) }) // 批量选择申请原因 $('.batch_remark').blur(function() { var val = $(this).val(); if (!val) return false; $('.order-service-table').find('tbody tr').each(function() { $(this).find('.remark').val(val); }) }) }, } }) })(jQuery)