+(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)