<script>
    layui.use(['table', 'form', 'element', 'layer', 'index', 'admin', 'laydate', 'xmSelect', 'upload'], function () {
        let admin = layui.admin;
        let form = layui.form;
        let index = layui.index;
        let laydate = layui.laydate;
        let upload = layui.upload;
        let element = layui.element;
        let xmSelect = layui.xmSelect;

        form.on('radio(receipt_type)', function (data) {
            if (data.value == 1) {
                $('#swift_code_div').hide();
            } else {
                $('#swift_code_div').show();
            }
        });

        //图片上传
        upload.render({
            elem: '.upload-img'
            , url: UploadImgUrl
            , field: 'upload'
            , data: {
                k1: k1,
                k2: k2,
                source: 1,
                cancel_time_verify: 1,
            }
            , accept: 'file'
            , exts: 'jpg|png|bmp|jpeg|zip|pdf'
            , size: 20000
            , before: function (obj) {
                layer.msg('加载中', {
                    icon: 16
                    , shade: 0.01
                });
                let item = this.item;
                obj.preview(function (index, file, result) {
                });
            }
            , done: function (res) {
                if (res.code === 200) {
                    layer.msg('上传成功', {icon: 6});
                    let item = this.item;
                    $('#' + item.attr('data-obj')).val(res.data[0]);
                    $('#certificate_url').text(res.data[0]);
                    return false;
                } else {
                    layer.msg('上传失败:' + res.message, {icon: 5});
                    return false;
                }
            }
            , error: function (res) {
                layer.msg('上传失败:' + res.message, {icon: 5});
                return false;
            }
        });

        form.on('submit(cancelAddSupplier)', function (data) {
            admin.closeThisTabs();
        });

        form.on('submit(addSupplier)', function (data) {
            admin.showLoading({
                type: 3,
            });
            let file_name = [];
            let file_url = [];
            let validity_type = [];
            let field_name = [];
            let validity_period = [];
            $('.single_file_div').each(function () {
                file_name.push($(this).find('#file_name').val());
                file_url.push($(this).find('#file_url').val());
                field_name.push($(this).find('#field_name').val());
                validity_type.push($(this).find('#validity_type').val());
                validity_period.push($(this).find('#validity_period').val());
            });
            data.field.file_name = file_name;
            data.field.file_url = file_url;
            data.field.field_name = field_name;
            data.field.validity_type = validity_type;
            data.field.validity_period = validity_period;
            data.field.apply_audit_reason = $('#apply_audit_reason').val();
            let url = '/api/supplier/AddSupplier';
            let res = ajax(url, data.field);
            if (!res) {
                layer.msg('网络错误,请重试', {icon: 6});
            } else {
                if (res.err_code === 0) {
                    layer.msg(res.err_msg, {icon: 6});
                    setTimeout(function () {
                        admin.closeThisTabs();
                        location.href = "/supplier/SupplierList"
                    }, 1000);
                } else {
                    admin.removeLoading();
                    layer.msg(res.err_msg, {icon: 5});
                }
            }
            return false;
        });

        form.on('select(apply_audit_reason_selector)', function (data) {
            $('#apply_audit_reason').val(data.value);
        });

        form.on('submit(addAndApplySupplier)', function (data) {

            //去找出附件的所有数据
            let file_name = [];
            let file_url = [];
            let validity_type = [];
            let field_name = [];
            let validity_period = [];
            let description = [];
            //只要寻找上传主区域的数据即可
            $('#attachment_upload_div').find('.single_file_div').each(function () {
                file_name.push($(this).find('#file_name').val());
                file_url.push($(this).find('#file_url').val());
                field_name.push($(this).find('#field_name').val());
                validity_type.push($(this).find('#validity_type').val());
                description.push($(this).find('#description').val());
                validity_period.push($(this).find('#validity_period').val());
            });
            data.field.file_name = file_name;
            data.field.file_url = file_url;
            data.field.description = description;
            data.field.field_name = field_name;
            data.field.validity_type = validity_type;
            data.field.validity_period = validity_period;
            data.field.apply_audit_reason = $('#apply_audit_reason').val();
            let fieldNameList = field_name;
            //提交先提示是否要转换供应商类型
            let radioObj = $('input[name="supplier_type"]');
            //已经上传品质保证协议(代理商则提示为“已经上传代理证”),是否切换为正式供应商?
            let supplierGroup = data.field.supplier_group;
            let msg;
            let obj1Checked = 0;
            let obj2Checked = 0;
            if (data.field.supplier_type === '2') {
                //如果已经上传品质保证协议,并且供应商性质不是代理商(代理商要代理证)
                if (inArray('quality_assurance_agreement', fieldNameList) && supplierGroup !== '1') {
                    msg = '已经上传品质保证协议,是否切换为正式供应商?'
                    obj1Checked = true;
                    obj2Checked = false;
                }
                if (inArray('proxy_certificate', fieldNameList) && supplierGroup === '1') {
                    msg = '该供应商为代理供应商,已经上传代理证,是否切换为正式供应商?'
                    obj1Checked = true;
                    obj2Checked = false;
                }
            } else {
                if (!inArray('quality_assurance_agreement', fieldNameList) && !inArray(supplierGroup, ['1', '4'])) {
                    msg = '未上传品质保证协议,是否切换为临时供应商?'
                    obj1Checked = false;
                    obj2Checked = true;
                }
                if (!inArray('proxy_certificate', fieldNameList) && supplierGroup === '1') {
                    msg = '该供应商为代理供应商,但是未上传代理证,是否切换为临时供应商?'
                    obj1Checked = false;
                    obj2Checked = true;
                }
            }
            if (msg) {
                layer.confirm(msg, {btn: ["确认", "取消"]},
                    function (index) {
                        if (obj1Checked !== 0) {
                            radioObj.get(0).checked = obj1Checked;
                            radioObj.get(1).checked = obj2Checked;
                            layui.form.render('radio');
                            data.field.supplier_type = obj1Checked ? 1 : 2;
                            layer.closeAll();
                        }
                        auditAndAddSupplier(data);
                    },
                    function (index) {
                        auditAndAddSupplier(data);
                    }
                );
            } else {
                auditAndAddSupplier(data);
            }

            return false;
        });

        function auditAndAddSupplier(data) {
            if (data.field.supplier_type === '2') {
                layer.open({
                    type: 1,
                    area: ['450px', '370px'], //宽高
                    content: $('#apply_audit_reason_div'),
                    btn: ['保存并申请审核', '取消'],
                    btn1: function (index, layero) {//点击保存按钮
                        if ($('#apply_audit_reason').val() === '') {
                            layer.msg('请选择申请理由', {icon: 5})
                            return false;
                        }
                        addSupplier(data);
                        layer.close(index);
                    },
                });
            } else {
                let msg = '确定直接申请审核吗?确定后会直接进入审核中的状态,审核完成前无法进行二次修改';
                //未上传品质保证协议(代理商则提示为“未上传代理证”),是否需要切换为临时供应商?
                layer.confirm(msg, function (index) {
                    addSupplier(data);
                });
            }
        }

        function addSupplier(data) {
            admin.showLoading({
                type: 3,
            });
            let url = '/api/supplier/AddSupplier?direct_apply=1';
            let res = ajax(url, data.field);
            if (!res) {
                admin.removeLoading();
                layer.msg('网络错误,请重试', {icon: 6});
            } else {
                if (res.err_code === 0) {
                    layer.msg(res.err_msg, {icon: 6});
                    setTimeout(function () {
                        admin.closeThisTabs();
                        location.href = "/supplier/SupplierList"
                    }, 1000);
                } else {
                    let errMsg = res.err_msg;
                    let msg = '';
                    admin.removeLoading();
                    $.each(errMsg.split('|'), function (index, value) {
                        msg += "<span>" + value + "</span><br>"
                    });
                    layer.msg(msg, {icon: 5})
                }
            }
        }
    });
</script>