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