// 数据校验
var formRules = {
    'returnType':{
        required:true
    },
};

var formMessages = {
    'returnType':{
        required: '请选择保证金退还形式'
    },
};

//  保证金退还形式发生改变
$('[name=returnType]').on('change', function () {
    if($('[name=returnType]:checked').val() == '1') {
        $('.returnTypeChange').show()
        $('.returnTypeRequired').removeClass('required_fileds_star')
        // formRules.remark =  {
        //     required: false
        // }
    } else {

        $('.returnTypeChange').hide()
        if($('[name=returnType]:checked').val() == '0') {
            $('.returnTypeRequired').addClass('required_fileds_star')
            // formRules.remark =  {
            //     required: true
            // }
            // formMessages.remark = {
            //     required: '请输入说明'
            // }
        }
    }
})

$(function () {
    $('[name=returnType]').change()
    // 附件相关dom
    var fileWrapperbasic = '<div class="file-wrapper"><div class="file-icon" style="color: #5AC4FC;"><div class="file-icon-image"></div></div>'+
        '<div class="content"><div class="file-name"></div><div class="file-size small text-muted"></div></div>'+
        '<div class="actions" style="width:0.5rem"><a class="btn btn-link btn-delete-file">'+
        '<em>删除</em><i class="operateIconfont operateIcon-shanchu"></i></a></div></div>';

    // 在附件元素的data上存放选择的附件数据,初始为空
    $('.addFileList').each(function(i,ele){
        $(ele).data('filearray',[]);
        $(ele).data('deletefileid',[]);
    });

    // 展示原先有的附件
    function showOriginalFile(source, insert) {
        for (var j = 0; j < $(source).length; j++) {
            var originalFileWrapper = $(fileWrapperbasic).clone();
            originalFileWrapper.find('.file-name').text($(source).eq(j).find('.originalName').val());
            originalFileWrapper.find('.file-name').attr('originalid', $(source).eq(j).find('.originalId').val());
            if (parseFloat($(source).eq(j).find('.originalSize').val()) < 1048576) {
                originalFileWrapper.find('.file-size').text(($(source).eq(j).find('.originalSize').val() / 1024).toFixed(2) + "KB");
            } else {
                originalFileWrapper.find('.file-size').text(($(source).eq(j).find('.originalSize').val() / 1024 / 1024).toFixed(2) + "MB");
            }
            ;
            var originaltype = $(source).eq(j).find('.originalType').val().toUpperCase();
            if (originaltype == '.JPG' || originaltype == '.JPEG' || originaltype == '.PNG' || originaltype == '.BMP') {
                originalFileWrapper.find('.file-icon-image').css('background-image', 'url(' + $(source).eq(j).find('.originalUrl').val() + ')');
            } else {
                originalFileWrapper.find('.file-icon-image').append('<i class="icon icon-file-pdf"></i>');
            }
            ;
            originalFileWrapper.find('.btn-delete-file').addClass('btn-delete-originalfile').removeClass("btn-delete-file");

            originalFileWrapper.find('.btn-yulan-file').attr('href', '/fileStorage/preview?fileId=' + $(source).eq(j).find('.originalId').val());
            originalFileWrapper.find('.btn-xiazai-file').attr('href', '/fileStorage/downloadFile?fileId=' + $(source).eq(j).find('.originalId').val());
            $(insert).find('.fileContent').append(originalFileWrapper)
        }
        ;
        j = null;
        if ($(insert).find('.file-wrapper').length > 0) {
            $(insert).find('.spanHolder').remove();
        }
        ;
    };

    if($('.fileInfoListOriginal').length) {
        // 展示原附件
        showOriginalFile('.fileInfoListOriginal', '.addFileList');
    }

    // 触发选择附件
    $('#refundBondForm').on("click",".fileInfoListBox .choiceFile",function(){
        if ( !window.FileReader ) {
            new $.zui.Messager('您的浏览器版本过低，请升级您的浏览器', {
                type: 'danger'
            }).show();
            return;
        };
        $(this).parent().find('.fileinput').click();
    });

    // 触发选择附件
    $('#refundBondForm').on("click",".fileInfoListBox .fileContent",function(){
        if ( !window.FileReader ) {
            new $.zui.Messager('您的浏览器版本过低，请升级您的浏览器', {
                type: 'danger'
            }).show();
            return;
        };
        if( $(this).find(".spanHolder").length>0 ){
            $(this).parent().prev().click();
        };
    });

    // 选择附件
    $("#refundBondForm").on("change",".fileInfoListBox .fileinput",function(e){
        var that = $(this);
        if(that.val() == '') {
            $(".addFileList .error").addClass('shows').show();
        }else {
            $(".addFileList .error").removeClass('shows').hide();
        }
        var choosefiles = e.target.files || e.dataTransfer.files;
        for( var i=0;i<choosefiles.length;i++ ){
            var file = e.target.files[i] || e.dataTransfer.files[i];//用于提交
            $(this).parent().data('filearray').push(file);
            fileWrapper = $(fileWrapperbasic).clone();
            var type = file.type;
            var indexof = type.indexOf("/"),fileType='';
            if( indexof != -1 ){
                var index = parseInt(indexof)+1;
                fileType = type.substring(index,type.length).toUpperCase();
            };
            fileWrapper.find('.file-name').text(file.name);
            if( parseFloat(file.size) < 1048576 ){
                fileWrapper.find('.file-size').text((file.size/1024).toFixed(2)+'KB');
            }else{
                fileWrapper.find('.file-size').text((file.size/1024/1024).toFixed(2)+'MB');
            };
            that.next().find(".fileContent").append(fileWrapper);
            // 有附件时去掉框框里的'上传附件'字样
            if( that.next().find('.file-wrapper').length>0 ){
                that.next().find('.spanHolder').remove();
            };
            detailpreview(fileType,fileWrapper,file);
        };
        i = null;
        function detailpreview(fileType,fileWrapper,file){
            var reader = new FileReader();
            reader.readAsDataURL(file);//转为base64(预览)
            reader.onload = function(e){
                e = e || window.event;
                if( fileType=='JPG' || fileType=='JPEG' || fileType=='PNG' || fileType=='BMP' || fileType=='JPG' ){
                    fileWrapper.find(".file-icon-image").css("backgroundImage",'url('+e.target.result+')')
                }else{
                    fileWrapper.find(".file-icon-image").append('<i class="icon icon-file-pdf"></i>')
                };
            };
        };
    });

    // 删除附件
    $("#refundBondForm").on("click",".btn-delete-file",function(){
        var deleteindex = $(this).parents('td').find('.btn-delete-file').index($(this));
        $(this).parents('td').data('filearray').splice(deleteindex,1);
        $(this).parents(".uploaderFile").prev().val(null);
        if( $(this).parents('td').find('.file-wrapper').length == 1 ){
            $(this).parents(".file-wrapper").before('<span class="spanHolder">上传附件</span>');
        };
        $(this).parents(".file-wrapper").remove();
        return false;
    });
    // 删除(原有的)附件
    $("#refundBondForm").on("click",".btn-delete-originalfile",function(){
        var deleteOrgindex = $(this).parents('td').find('.btn-delete-originalfile').index($(this));
        $(".fileInfoListOriginal").eq(deleteOrgindex).remove();
        $(this).parents('td').data('deletefileid').push($(this).parents('.file-wrapper').find('.file-name').attr('originalid'));
        $(this).parents(".uploaderFile").prev().val(null);
        if( $(this).parents('td').find('.file-wrapper').length == 1 ){
            $(this).parents(".file-wrapper").before('<span class="spanHolder">上传附件</span>');
        };
        $(this).parents(".file-wrapper").remove();
        return false;
    });

    //保存
    function submitFunction(e){
        var postdata = new FormData();
        postdata.append('salesContractManagementId',$("[name=businessKey]").val());
        postdata.append('returnType',$("[name=returnType]:checked").val());
        postdata.append('remark', $("[name=remark]").val());

        // 删除的附件信息
        // for( var m=0;m<$('.addFileList').data('deletefileid').length;m++ ){
        //     postdata.append('deleteFileIdList['+m+']',$('.addFileList').data('deletefileid')[m]);
        // };
        // m = null;

        if($('[name=returnType]:checked').val() == '1') {
            // 附件信息
            for( var m=0; m<$('.addFileList').data('filearray').length;m++ ){
                postdata.append(`salesContractReturnBondFile[${m}]`,$('.addFileList').data('filearray')[m]);
            };
            m = null;
            if($(".fileInfoListOriginal").length) {
                $('.fileInfoListOriginal').each(function (i, ele) {
                    postdata.append('fileIdList['+i+']',$(ele).find('.originalId').val())
                })
            }
        }else {
            if(!$("[name=remark]").val()) {
                new $.zui.Messager('请输入说明', {
                    type: 'danger'
                }).show();
                return
            }
        }

        var url = '/salesContract/returnBond',tip='保证金退还';
        $.ajax({
            url:url,
            type:'post',
            data:postdata,
            processData:false,
            contentType:false,
            success:function(data){
                if( data.success ){
                    new $.zui.Messager( tip+'合同成功', {
                        type: 'success'
                    }).show();
                    $.get('/salesContract/list',function(data){
                        $(".yk_rightcontent").empty().append(data);
                    });
                }else{
                    new $.zui.Messager(tip+'录入失败:'+data.msg, {
                        type: 'danger'
                    }).show();
                }
            },
            error:function(status){
                new $.zui.Messager(tip+'合同时发生错误:'+status, {
                    type: 'danger'
                }).show();
            }
        });
        return false;
    };


    //表单验证
    function addNewCustomer(e){
        if($('[name=returnType]:checked').val() == '1') {
            if($(".addFileList .fileinput").val() == '' && !$(".addFileList .content").length) {
                $(".addFileList .error").addClass('shows').show();
            }else {
                $(".addFileList .error").removeClass('shows').hide();
            }
        }else {
            $(".addFileList .error").removeClass('shows').hide();
        }

        $("#refundBondForm").validate({
            promptPosition : "bottomLeft",
            submitHandler : function(form) {
                if( $('.error.shows').length>0 ){
                    $('.error.shows:first').prev().focus();
                    return;
                };
                submitFunction(e);
            },
            rules: formRules,
            messages : formMessages
        });
    };

    //提交按钮
    $(".yk_addNewMsg .submitBusiness").click(addNewCustomer);

    //关闭按钮
    $(".yk_addNewMsg .btn-cancel, .newBackBtn").click(function(){
        $.get('/salesContract/list',function(data){
            $(".yk_rightcontent").empty().append(data);
        });
        return false;
    });
})
