// 是否需要审核发生改变
$('[name=approval]').on('change', function () {
    if($('[name=approval]:checked').val() == '1') {
        $('.approvalChange').show()

        $('[name=addGoods]').change()
    }else {
        $('.approvalChange').hide()
        $('.addGoodsChange').hide()
    }
})
// 是否新增货物发生改变
$('[name=addGoods]').on('change', function (params) {
    if($('[name=addGoods]:checked').val() == '1') {
        $('.addGoodsChange').show()
    }else {
        $('.addGoodsChange').hide()
    }
})

$(function () {
    // 贸理通V3.1需求 是否需要审核 -默认值
    if(!$('[name=approval]:checked').val()) {
        $('[name=approval]').get(1).checked = true
    }
   if(!$('[name=addGoods]:checked').val()) {
    $('[name=addGoods]').get(1).checked = true
   }
    $('[name=approval]').change()
    $('[name=addGoods]').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');
    }

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

    // 触发选择附件
    $('#contractEntryForm').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();
        };
    });

    // 选择附件
    $("#contractEntryForm").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>')
                };
            };
        };
    });

    // 删除附件
    $("#contractEntryForm").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;
    });
    // 删除(原有的)附件
    $("#contractEntryForm").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;
    });

    if($(".paymentListTbodyBack").length) {
        $(".paymentListTbody:first").remove();
    }

    // 排序-付款条件
    function sortReceiptInfo(){
        $(".paymentListTbody").each(function(i,ele){
            $(ele).find('td:first span').text(i+1);
        });
        $('.paymentTable .negativeInformationReduce').show();
        // if( $(".paymentListTbody").length <= 1 ){
        //     $('.paymentTable .negativeInformationReduce').hide();
        // }else{
        //     $('.paymentTable .negativeInformationReduce').show();
        // };
    };
    sortReceiptInfo();



    // 排序-货物
    function sortIGoodsnfo(){
        $(".goodsListTbody").each(function(i,ele){
            $(ele).find('td:first span').text(i);
        });
        if( $(".goodsListTbody").length <= 1 ){
            $('.goodsTable .negativeInformationReduce').hide();
        }else{
            $('.goodsTable .negativeInformationReduce').show();
        };
    };
    sortIGoodsnfo();


    $("#contractEntryForm").on('click','.goodsTable #addGoods',function(){
        var supplierTrClone = $(".goodsListTbody:first").clone();
        supplierTrClone.find('.negativeInformationReduce').show();
        supplierTrClone.find('.error').hide();
        supplierTrClone.find('input').val('');
        supplierTrClone.find('select').val('');
        supplierTrClone.show();
        $('.goodsListTable').append(supplierTrClone);
        sortIGoodsnfo();
    });


    // 删除行
    $("#contractEntryForm").on('click','.goodsTable .negativeInformationReduce',function(){
        $(this).parents('.goodsListTbody').remove();
        sortIGoodsnfo();
    });

    //导入
    $("#importButton").click(function () {
        $('#importFile').click();
    })

    $("#contractEntryForm").on("change","#importFile",function(e){
        var that = $(this);
        var file = e.target.files[0] || e.dataTransfer.files[0];//用于提交
        var postData = new FormData();
        postData.append('file',file);
        m = null;
        $.ajax({
            url:'/salesContract/doImportGoodsInfo',
            type:'post',
            data:postData,
            processData:false,
            contentType:false,
            success:function(data){
                if( data.success ){
                    for (var n=0; n<data.data.length; n++) {

                        var supplierTrClone1 = $(".goodsListTbody:first").clone();
                        supplierTrClone1.show();
                        supplierTrClone1.find('td').eq(1).find('input').val(data.data[n].goodsName)
                        supplierTrClone1.find('td').eq(2).find('input').val(data.data[n].goodsFactory)
                        supplierTrClone1.find('td').eq(3).find('input').val(data.data[n].modelNumber)
                        supplierTrClone1.find('td').eq(4).find('input').val(data.data[n].units)
                        supplierTrClone1.find('td').eq(5).find('input').val(data.data[n].quantity)
                        supplierTrClone1.find('td').eq(6).find('select').val(data.data[n].clearPrice)
                        supplierTrClone1.find('td').eq(7).find('input').val(data.data[n].salesPrice)
                        supplierTrClone1.find('td').eq(8).find('input').val(data.data[n].remark)
                        supplierTrClone1.find('.error').hide();

                        $('.goodsListTable').append(supplierTrClone1);
                        $("#importFile").val('')
                    }
                    n=null;
                    sortIGoodsnfo();
                }else{
                    new $.zui.Messager('导入失败:'+data.msg, {
                        type: 'danger'
                    }).show();
                }
            },
            error:function(status){
                new $.zui.Messager('导入时发生错误:'+status, {
                    type: 'danger'
                }).show();
            }
        });
        return false;
    });
    function downloadSubmit() {
        window.open('/salesContract/downloadFile')
        // var postdata = new FormData();
        // $.ajax({
        //     url: '/acceptance/downloadFile',
        //     type: 'post',
        //     data: postdata,
        //     processData: false,
        //     contentType: false,
        //     success: function(data){
        //         downloadFileByBase64(data.data, '下载货物模板.xlsx')
        //     },
        //     error: function(status){
        //         console.log(status, '下载模板失败')
        //     }
        // })
    }
    $('#downloadFileTemp').on('click',function (){
        downloadSubmit()
    })

    //保存
    function submitFunction(e){
        var postdata = new FormData();
        postdata.append('taskId',$("[name=taskId]").val());
        postdata.append('businessKey',$("[name=businessKey]").val());
        postdata.append('salesContractSupplementInfo.supplementContractNumber',$("[name=supplementContractNumber]").val());

        postdata.append('salesContractSupplementInfo.approval',$("[name=approval]:checked").val());
        postdata.append('salesContractSupplementInfo.remark', $("[name=remark]").val());
        postdata.append('salesContractSupplementInfo.id', $("[name=salesContractSupplementInfoId]").val());

        if($("[name=approval]:checked").val() == '1') {
            postdata.append('salesContractSupplementInfo.addGoods', $("[name=addGoods]:checked").val());
        }
        //货物信息
        if($('[name=addGoods]:checked').val() == '1') {
            postdata.append('salesContractSupplementInfo.addGoods',$("[name=addGoods]:checked").val());
            for(var i=1;i<$(".goodsListTbody").length;i++) {
                postdata.append('goodsInfoList['+(i-1)+'].goodsName',$(".goodsListTbody").eq(i).find('td').eq(1).find('input').val());
                postdata.append('goodsInfoList['+(i-1)+'].goodsFactory',$(".goodsListTbody").eq(i).find('td').eq(2).find('input').val());
                postdata.append('goodsInfoList['+(i-1)+'].modelNumber',$(".goodsListTbody").eq(i).find('td').eq(3).find('input').val());
                postdata.append('goodsInfoList['+(i-1)+'].units',$(".goodsListTbody").eq(i).find('td').eq(4).find('input').val());
                postdata.append('goodsInfoList['+(i-1)+'].quantity',$(".goodsListTbody").eq(i).find('td').eq(5).find('input').val());
                postdata.append('goodsInfoList['+(i-1)+'].clearPrice',$(".goodsListTbody").eq(i).find('td').eq(6).find('select').val());
                postdata.append('goodsInfoList['+(i-1)+'].salesPrice',$(".goodsListTbody").eq(i).find('td').eq(7).find('input').val());
                postdata.append('goodsInfoList['+(i-1)+'].remark',$(".goodsListTbody").eq(i).find('td').eq(8).find('input').val());
            }
            i=null;
        }

        let file = $('.addFileList').data('filearray')
        if(!file.length && !$(".fileInfoListOriginal").length) {
            new $.zui.Messager('请上传附件', {
                type: 'danger'
            }).show();
            return
        }

        // 附件信息
        for( let m=0; m<$('.addFileList').data('filearray').length;m++ ){
            postdata.append(`salesContractChangeFile[${m}]`,$('.addFileList').data('filearray')[m]);
        };
        // 删除的附件信息
        for( let i=0; i<$('.addFileList').data('deletefileid').length; i++ ){
            postdata.append('deleteFiles['+i+']',$('.addFileList').data('deletefileid')[i]);
        };

        if($(".fileInfoListOriginal").length) {
            $('.fileInfoListOriginal').each(function (i, ele) {
                postdata.append('fileIdList['+i+']',$(ele).find('.originalId').val())
            })
        }
        var url = '/salesContractChange/doChange',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;
    };

    var formRules = {
        'approval':{
            required:true
        },
        'addGoods': {
            required: true
        },
        'file':{
            required:true
        },
        'supplementContractNumber':{
            required:true
        },
        'contractNumber':{
            required:true
        },
        'contractPeriod':{
            required:true
        },
        'contractPlanAmountType':{
            required:true
        },
        'contractPlanAmount':{
            required:true,
        },
        'checkOperator':{
            required:true
        },
        'settlementOperator':{
            required:true
        },
        'deliveryDate':{
            required:true
        },
        'signDate':{
            required:true
        },
        'firstSettleDate':{
            required:true,
        },
        'settleCycleMethodDict':{
            required:true
        },
        'settleCycle':{
            required:true
        },
        'planPaybackDays':{
            required:true
        },
        'estimatePayBackDays':{
            required:true,
        },
        'retention':{
            required:true
        },
        'retentionPercent':{
            required:true
        },
        'limit':{
            required:true
        },
        'retentionLimit':{
            required:true,
        },
        'releaseMethodDict':{
            required:true
        },
        'releaseDate':{
            required:true
        },
        'releaseDays':{
            required:true
        },

    };

    var formMessages = {
        'approval':{
            required: '请选择是否需要审核'
        },
        'addGoods': {
            required: '请选择是否新增货物'
        },
        'contractNumber':{
            required:'请输入合同编号'
        },
        'contractPeriod':{
            required:'请输入合同期限'
        },
        'contractPlanAmountType':{
            required:'请选择合同约定金额类型'
        },
        'contractPlanAmount':{
            required:'请输入合同约定金额',
        },
        'checkOperator':{
            required:'请输入验收经办人'
        },
        'settlementOperator':{
            required:'请输入结算经办人'
        },
        'deliveryDate':{
            required:'请输入发货时间'
        },
        'signDate':{
            required:'请输入签收时间'
        },
        'firstSettleDate':{
            required:'请选择第一次结算时间',
        },
        'settleCycleMethodDict':{
            required:'请选择结算周期方式'
        },
        'settleCycle':{
            required:'请输入结算周期'
        },
        'planPaybackDays':{
            required:'请输入约定回款时间'
        },
        'estimatePayBackDays':{
            required:'请输入预估回款时间',
        },
        'retention':{
            required:'请选择是否有质保金'
        },
        'retentionPercent':{
            required:'请输入质保金比例'
        },
        'limit':{
            required:'请选择质保金是否有上限'
        },
        'retentionLimit':{
            required:'请输入质保金上限',
        },
        'releaseMethodDict':{
            required:'请选择质保金释放时间'
        },
        'releaseDate':{
            required:'请选择释放日期'
        },
        'releaseDays':{
            required:'请输入释放天数'
        },
        'supplementContractNumber': {
            required:'请输入补充合同编号'
        }
    };


    //表单验证
    function addNewCustomer(e){

        // if($(".addFileList .fileinput").val() == '' && !$(".addFileList .content").length) {
        //     $(".addFileList .error").addClass('shows').show();
        // }else {
        //     $(".addFileList .error").removeClass('shows').hide();
        // }
        $("#contractEntryForm").validate({
            promptPosition : "bottomLeft",
            submitHandler : function(form) {

                //货物必填验证
                if($('[name=addGoods]:checked').val() == '1') {
                    if($(".goodsListTable .goodsListTbody").length) {
                        $('.goodsListTable .validInput').change();
                    }else {
                        new $.zui.Messager('请添加货物信息。' , {
                            type: 'danger'
                        }).show();
                        return false;
                    }
                }

                if( $('.error.shows').length>0 ){
                    $('.error.shows:first').prev().focus();
                    return;
                };
                submitFunction(e);
            },
            rules:formRules,
            messages : formMessages
        });
    };


    //货物必填验证
    $(".goodsListTable").on("change",".validInput",function(e){
        if($(this).parent().parent().attr('display') !== 'none') {
            if($(this).val() == '') {
                $(this).next().addClass('shows').show();
            }else {
                $(this).next().removeClass('shows').hide();
            }
        }

    })

    $(".goodsListTable").on("change", ".goodsListTbody .definePrice", function (event) {
        if($(this).val() == '1') {
            $(this).parent().parent().find('td').eq(7).find('input').addClass('validInput')
        }else {
            $(this).parent().parent().find('td').eq(7).find('input').removeClass('validInput')
            $(this).parent().parent().find('td').eq(7).find('.shows').hide()
        }
    })

    $(".goodsListTable .goodsListTbody .definePrice").change()
    //提交按钮
    $(".yk_addNewMsg .submitBusiness").click(addNewCustomer);

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