/**
 * 初始化人才认定申报详情对话框
 */
var locked = false;
var TalentInfoInfoDlg = {
    talentInfoInfoData : {},
    validateFields: {
        enterpriseId: {validators: {notEmpty: {message: '所属企业不能为空' }}},
        companyName :{validators: {notEmpty: {message: '所属企业不能为空' }}},
        type : {validators: {notEmpty: {message: '人才类别不能为空' }}},
        name: {validators: {notEmpty: {message: '姓名不能为空'}}},
        nation: {validators: {notEmpty: {message: '民族不能为空'}}},
        provinceCode: {validators: {notEmpty: {message: '户籍省份不能为空'}}},
        cityCode: {validators: {notEmpty: {message: '户籍市不能为空'}}},
        address: {validators: {notEmpty: {message: '现居地址不能为空'}}},
        highEducation: {validators: {notEmpty: {message: '最高学历不能为空'}}},
        major: {validators: {notEmpty: {message: '专业不能为空'}}},
        phone: {
            validators: {
                notEmpty: {
                    message: '手机号码不能为空'
                },
                regexp :{
                    regexp:/0?(13|14|15|17|18|19)[0-9]{9}/,
                    message:"手机号码格式不正确"
                }
            }
        },
        bank: {
            validators: {
                notEmpty: {
                    message: '开户银行不能为空'
                },
                regexp :{
                    regexp: /^[\u4e00-\u9fa5]*银行$/,
                    message:"开户银行格式不正确"
                }
            }
        },
        bankAccount: {validators: {notEmpty: {message: '银行账号不能为空'}}},
        entryTime: {validators: {notEmpty: {message: '入职时间不能为空'}}},
        endTime: {validators: {notEmpty: {message: '工作合同结束时间不能为空'}}},
        identifyCondition: {validators: {notEmpty: {message: '认定条件不能为空'}}},
        identifyConditionName: {validators: {notEmpty: {message: '认定条件名称不能为空'}}},
        type: {validators: {notEmpty: {message: '人才类别不能为空'}}},
        cardType:{validators:{notEmpty:{message:'证件类型不能为空'}}},
        idCard: {validators: {notEmpty: {message: '证件号码不能为空'}}},
        sex: {validators: {notEmpty: {message: '性别不能为空'}}},
        nationality: {validators: {notEmpty: {message: '国籍/地区不能为空'}}},
        birthday: {validators: {notEmpty: {message: '出生日期不能为空'}}},
        politics: {validators: {notEmpty: {message: '政治面貌不能为空'}}},
        graduateSchool: {validators: {notEmpty: {message: '毕业学校不能为空'}}},
        post: {validators: {notEmpty: {message: '职务不能为空'}}},
        email: {

            validators: {
                notEmpty: {
                    message: '电子邮箱不能为空'
                },
                emailAddress:{
                    message:"电子邮箱格式不正确"
                }
            }
        },
        bankNetwork:{
            validators: {
                notEmpty: {
                    message: '开户银行网点不能为空'
                },
                regexp :{
                    regexp: /^[\u4e00-\u9fa5]*银行[\u4e00-\u9fa5]*省?[\u4e00-\u9fa5]+市[\u4e00-\u9fa5]*$/,
                    message:"开户银行格式不正确"
                }
            }
        },
        introductionMode:{
            validators: {
                notEmpty: {
                    message: '引进方式不能为空'
                }
            }
        },
        startTime: {validators: {notEmpty: {message: '工作合同开始时间不能为空'}}},
        talentArrange: {validators: {notEmpty: {message: '人才层次不能为空'}}},
        identifyGetTime: {validators: {notEmpty: {message: '认定条件证书取得时间不能为空'}}},
        breakFaith: {validators: {notEmpty: {message: '是否曾被相关主管部门列为失信个人不能为空'}}},
        mainHonours: {validators: {notEmpty: {message: '主要业绩及取得的荣誉不能为空'}}},
        educationAndResume: {validators: {notEmpty: {message: '教育背景及工作简历不能为空'}}}
    }
};

/**
 * 清除数据
 */
TalentInfoInfoDlg.clearData = function() {
    this.talentInfoInfoData = {};
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
TalentInfoInfoDlg.set = function(key, val) {
    this.talentInfoInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
TalentInfoInfoDlg.get = function(key) {
    return $("#" + key).val();
}

/**
 * 关闭此对话框
 */
TalentInfoInfoDlg.close = function() {
    parent.layer.close(window.parent.TalentInfo.layerIndex);
}

/**
 * 收集数据
 */
TalentInfoInfoDlg.collectData = function() {
    this
        .set('id')
        .set('enterpriseId')
        .set('type')
        .set('idCard')
        .set('cardType')
        .set('name')
        .set('sex')
        .set('nation')
        .set('nationality')
        .set('provinceCode')
        .set('cityCode')
        .set('countyCode')
        .set('birthday')
        .set('address')
        .set('politics')
        .set('highEducation')
        .set('graduateSchool')
        .set('major')
        .set('post')
        .set('phone')
        .set('email')
        .set('bank')
        .set('bankNetwork')
        .set('bankAccount')
        .set('bankNumber')
        .set('entryTime')
        .set('startTime')
        .set('endTime')
        .set('talentArrange')
        .set('identifyCondition')
        .set('identifyGetTime')
        .set('identifyConditionName')
        .set('breakFaith')
        .set('educationAndResume')
        .set('mainHonours')
        .set('industryField')
        .set('title')
        .set('professionalQualifications')
        .set('studyAbroad')
        .set('studyAbroadCountry')
        .set('studyAbroadTime')
        .set('description');
    this.talentInfoInfoData["provinceName"] = $("#provinceCode").find("option:selected").text();
    this.talentInfoInfoData["cityName"] = $("#cityCode").find("option:selected").text();
    this.talentInfoInfoData["countyName"] = $("#countyCode").find("option:selected").text();
}

/**
 * 验证数据
 */
TalentInfoInfoDlg.validate = function () {
    $('#talentInfoForm').data("bootstrapValidator").resetForm();
    $('#talentInfoForm').bootstrapValidator('validate');
    return $("#talentInfoForm").data('bootstrapValidator').isValid();
}


/**
 * 提交添加
 */
TalentInfoInfoDlg.addSubmit = function() {
    this.clearData();
    this.collectData();
    if(!TalentInfoInfoDlg.validate()){
        return ;
    }
    var id = $('#id').val();
    $("#provinceName").val($("#provinceCode").find("option:selected").text());
    $("#cityName").val($("#cityCode").find("option:selected").text());
    if($("#countyCode").val()!=null && $("#countyCode").val()!=''){
        $("#countyName").val($("#countyCode").find("option:selected").text());
    }
    if(id!=null && id!=''){
        if(!TalentInfoInfoDlg.validateIsEdit())return;
    }
    $("select").each(function () {
        $(this).removeAttr("disabled");
    });
    if(locked){
        return ;
    }
    locked = true;
    $("#talentInfoForm")[0].submit();

}

//回调
TalentInfoInfoDlg.infoCallback = function (data){
    locked = false;
    TalentInfoInfoDlg.setNoChangeField();
    Feng.info(data.msg);
    if (data.code == 200) {
        window.parent.TalentInfo.table.refresh();
        $("#id").val(data.obj.id);
        $("#fileLi").removeAttr("style");
        $("#checkState").val(data.obj.checkState);
    }
}


/**
 * 获取人才认定
 */
TalentInfoInfoDlg.getIdentifyCondition = function() {
    var level = $("#talentArrange").val();
    var type = $("#type").val();
    if(level==null||level==''){
        $("#identifyCondition").empty();
        $("#identifyCondition").trigger('chosen:updated');
        return;
    }
    if(type==null||type==''){
        Feng.info("请先选择人才类别");
        return ;
    }
    Feng.addAjaxSelect({
        "id": "identifyCondition",
        "displayCode": "id",
        "displayName": "name",
        "type": "GET",
        "url": Feng.ctxPath + "/api/common/findIdentifyConditionByLevel?talentLevel="+level+"&type="+type
    });
    $("#identifyCondition").trigger('chosen:updated');
}

TalentInfoInfoDlg.bankChange = function () {
    var bank = $("#bank").val();
    if($.trim(bank)=='中国工商银行'){
        $("#bankNumber").val('102391050013');
    }else {
        $("#bankNumber").val('');
    }
}


/**
 * 加载市
 */
TalentInfoInfoDlg.afterSelectProvince = function () {
    var province = $("#provinceCode").val();
    $("#cityCode").empty();
    $("#countyCode").empty();
    if(province==null||province==''){
        return;
    }
    Feng.addAjaxSelect({
        "id": "cityCode",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": Feng.ctxPath + "/api/commonLocation/findCityByProvinceSelect/"+province
    });
}
/**
 * 加载县
 */
TalentInfoInfoDlg.afterSelectCity = function (){
    var city = $("#cityCode").val();
    $("#countyCode").empty();
    if(city==null||city==''){
        return;
    }
    Feng.addAjaxSelect({
        "id": "countyCode",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": Feng.ctxPath + "/api/commonLocation/findCountyByCitySelect/"+city
    });
}
//初始化附件类别表单
TalentInfoInfoDlg.initFileTable = function (){
    var queryData = {};
    queryData['project'] = CONFIG.project_rcrd;
    queryData['type'] = $("#type").val();
    $("#fileTable").bootstrapTable({
        url: Feng.ctxPath + "/api/talentInfo/findUnCommonFileType",
        method: 'POST',
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        search: false,					// 是否显示表格搜索，此搜索是客户端搜索，不会进服务端
        showRefresh: false,				// 是否显示刷新按钮
        clickToSelect: true,			// 是否启用点击选中行
        singleSelect: true,				// 设置True 将禁止多选
        striped: true,  				// 是否显示行间隔色
        escape: true,
        pagination: false,   			// 设置为 true 会在表格底部显示分页条
        paginationHAlign: "left",
        paginationDetailHAlign: "right",
        sidePagination: "server",   	// 设置在哪里进行分页，可选值为 'client' 或者 'server'
        showColumns: false,
        detailView: true,               //是否显示父子表
        pageList: [10, 30, 50],
        queryParams: function (params) {
            return $.extend(queryData,params)
        },
        rowStyle: function (row, index) {
            return {classes:"info"};
        },
        columns: TalentInfoInfoDlg.initFileTypeColumn(),
        onPostBody: function () {
            $("td.uitd_showTip").bind("mouseover", function () {
                var htm = $(this).html();
                $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show');
            });
        },
        onLoadSuccess: function (data) {
            $("#fileTable").bootstrapTable('expandAllRows');
        },
        onExpandRow: function (index, row, $detail) {
            var ajax = new $ax(Feng.ctxPath + "/api/talentInfo/listTalentFile", function (data) {
                if(data==null||data.length==0){
                    return;
                }
                var html = '<ul class="imgs"><li style="width: 80%;font-weight: bold;padding-top: 5px;">附件原名</li><li style="width: 10%;font-weight: bold;padding-top: 5px;">预览</li><li style="width: 10%;font-weight: bold;padding-top: 5px;">操作</li>';
                var files = $("#files").val();
                var checkState = $("#checkState").val();
                for(var key in data){
                    var btn = "";
                    if(checkState!=10 || (checkState==10 && files.indexOf(row.id)!=-1)){
                        btn = "<button type=\'button\' onclick=\"TalentInfoInfoDlg.checkFile(this,'"+row.fState+"','"+row.id+"','"+data[key].id+"')\" style=\'margin-right: 10px\' class=\"btn btn-xs btn-info\">" +
                            "<i class=\"fa fa-paste\"></i>修改" +
                            "</button>" +
                            "<button type='button' onclick=\"TalentInfoInfoDlg.deleteFile('"+data[key].id+"','"+row.fState+"')\" class=\"btn btn-xs btn-danger\">" +
                            "<i class=\"fa fa-times\"></i>删除" +
                            "</button>";
                    }else{
                        btn = "";
                    }
                    var sn = data[key].url.lastIndexOf(".");
                    var suffix = data[key].url.substring(sn+1,data[key].url.length);
                    var imgStr = "";
                    if(suffix=="pdf"||suffix=="PDF"){
                        imgStr = "<button type='button'  onclick=\"Feng.showPdf('"+data[key].url+"','"+data[key].id+"','"+data[key].orignName+"')\" class=\"btn btn-xs btn-danger\"><i class=\"fa fa-file-pdf-o\" aria-hidden=\"true\"></i></button>";
                    }else if(suffix == "xlsx" || suffix=="XLSX" || suffix == 'xls' || suffix == 'XLS'){
                        imgStr = "<button type='button'  onclick=\"Feng.showExcel('"+data[key].url+"','"+data[key].id+"','"+data[key].orignName+"')\" class=\"btn btn-xs btn-danger\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></button>";
                    }else{
                        imgStr = '<img class=\"imgUrl\"  src=\"'+data[key].url+'\" style=\"width:25px;height:25px;\">';
                    }
                    html = html + '<li style="display: none">'+data[key].id+'</li>\n'+
                        '<li style="width: 80%;padding-top: 5px;">'+data[key].orignName+'</li>\n'+
                        '<li style="width: 10%;">'+imgStr+'</li>\n'+
                        '<li style="width: 10%;padding-top: 2px;">'+btn+'</li>';
                }
                html = html + '</ul>';
                $detail.html(html);
                $(".imgs").viewer({ fullscreen:false});
            }, function (data) {
                Feng.error("查询失败!" + data.responseJSON.message + "!");
            });
            var queryData = {};
            queryData["mainId"] = $("#id").val();
            queryData["fileTypeId"] = row.id;
            ajax.set(queryData);
            ajax.start();
        }
    });

}

//校验是否保存基础信息
TalentInfoInfoDlg.validId = function (){
    var id = $("#id").val();
    if(id!=null && id!=''){
        $("#fileLi").removeAttr("style");
    }else{
        $("#fileLi").attr("style","pointer-events: none");
    }
}
//选择附件并显示附件名
TalentInfoInfoDlg.checkFile = function (content,state,fileTypeId,fileId){
    if(!TalentInfoInfoDlg.validateIsEdit())return;
    $("#upload_file ").unbind("change");
    $("#upload_file ").change(function () {
        TalentInfoInfoDlg.upload(fileTypeId,fileId);
    });
    $('#upload_file').val("");
    $('#upload_file').click()
}
//上传附件
TalentInfoInfoDlg.upload = function (fileTypeId,fileId){
    var id = $("#id").val();
    if(id==null || id==''){
        Feng.info("请先添加基本信息并保存后再试");
        return ;
    }
    if(!TalentInfoInfoDlg.validateIsEdit())return;
    if(fileId!=null&&fileId!='null'){
        $("#fileId").val(fileId)
    }else{
        $("#fileId").val("");
    }
    $("#mainId").val(id);
    $("#fileTypeId").val(fileTypeId);
    var index = layer.load(0, {shade: false,time:0});
    $("#index").val(index);
    $("#uploadForm").submit();
}
//删除附件
TalentInfoInfoDlg.deleteFile = function (id,state){
    if(!TalentInfoInfoDlg.validateIsEdit())return;
    var operation = function() {
        var ajax = new $ax(Feng.ctxPath + "/api/talentInfo/deleteFile", function (data) {
            if(data.code=200){
                Feng.success(data.msg);
                $("#fileTable").bootstrapTable("refresh", {});
            }else{
                Feng.error(data.msg);
            }
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("id", id);
        ajax.set("type",1);
        ajax.start();
    }
    Feng.confirm("删除后无法恢复，确认删除吗?", operation);
}

/**
 * 提交审核
 */
TalentInfoInfoDlg.submitToCheck = function(){
    var id = $("#id").val();
    if(id==null || id==""){
        Feng.info("请先填写基础信息并上传附件");
        return ;
    }
    if(!TalentInfoInfoDlg.validateIsEdit())return;
    var operation = function() {
        var ajax = new $ax(Feng.ctxPath + "/api/talentInfo/submitToCheck", function (data) {
            if(data.code==200){
                Feng.success(data.msg);
                // $("#checkState").val(data.obj);
                window.parent.TalentInfo.table.refresh();
                TalentInfoInfoDlg.close();
            }else{
                Feng.error(data.msg);
            }
        }, function (data) {
            Feng.error("提交审核失败!" + data.responseJSON.message + "!");
        });
        ajax.set("id", id);
        ajax.start();
    }
    Feng.confirm("请确认基础信息已核对无误，相应附件已上传，一旦提交，无法修改", operation);
}

/**
 * 校验是否可以修改/提交审核
 */
TalentInfoInfoDlg.validateIsEdit = function (){
    var checkState = $("#checkState").val();
    if(checkState != 1 && checkState != 5 && checkState != 10){
        if(checkState==-1){
            Feng.error("您的申报审核不通过，无法再修改");
            return false;
        }else if(checkState>=35){
            Feng.error("您的申报已审核通过，无法再修改");
            return false;
        }else{
            Feng.error("您的申报正在审核中，请耐心等待");
            return false;
        }
    }
    return true;
}

/**
 * 初始化表格的列
 */
TalentInfoInfoDlg.initFileTypeColumn = function () {
    return [
        {field: 'selectItem', checkbox:false,visible:false},
        {title: '名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:"30%",'class': 'uitd_showTip',
            formatter : function(value,row,index){
                if(row.must==1){
                    return '<i class="fa fa-paste"></i><span style="font-weight:bold;color:red;font-size:14px;font-family:宋体"> * </span> '+ value;
                }if(row.must==2){
                    return '<i class="fa fa-paste"></i>'+value;
                }
            }
        },
        {title: '模板', field: 'templateUrl', visible: true, align: 'center', valign: 'middle',width:"8%",
            formatter : function(value,row,index){
                if(value==null||value==''||value=='null'){
                    return '无';
                }
                return "<button type='button' onclick=\"TalentInfoInfoDlg.downloadFile('"+row.id+"',3)\" style='margin-right: 10px' class=\"btn btn-xs btn-primary\">" +
                    "<i class=\"fa fa-download\"></i>下载" +
                    "</button>";
            }
        },
        {title: '备注', field: 'description', visible: true, align: 'center', valign: 'middle',width:"52%",'class': 'uitd_showTip'},
        {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle',width:"10%",
            formatter : function(value,row,index){
                var files = $("#files").val();
                var checkState = $("#checkState").val();
                if(checkState!=10 || files.indexOf(value)!=-1){
                    return "<button type='button' onclick=\"TalentInfoInfoDlg.checkFile(this,'"+row.fState+"','"+value+"','"+null+"')\" style='margin-right: 10px' class=\"btn btn-xs btn-info\">" +
                        "<i class=\"fa fa-upload\"></i>上传" +
                        "</button>" ;
                }else{
                    return "审核通过，无法添加" ;
                }

            }
        }
    ]
};

//回调
TalentInfoInfoDlg.callBack = function (data){
    layer.close(data.obj);
    Feng.info(data.msg);
    if (data.code == 200) {
        $("#fileTable").bootstrapTable("refresh", {});
    }
}
TalentInfoInfoDlg.downloadFile = function (id,type){
    window.location.href = Feng.ctxPath + "/api/common/downloadFile?id=" + id + "&type="+type;
}
//设置不可修改的字段
TalentInfoInfoDlg.setNoChangeField = function () {
    var checkState = $("#checkState").val();
    var fields = $("#fields").val();
    if(checkState==10){
        $("input,textarea").each(function () {
            $(this).attr("readonly","readonly");
        });
        $("select").each(function () {
            $(this).attr("disabled","disabled");
        });
        if(fields!=null && fields!=''){
            var arr = fields.split(",");
            for(var key in arr){
                var name = $("#" + arr[key]).prop("tagName");
                if(name=='select' || name=='SELECT'){
                    $("#" + arr[key]).removeAttr("disabled");
                }if(name=="input" || name=='textarea' || name=="INPUT" || name=='TEXTAREA'){
                    $("#" + arr[key]).removeAttr("readonly");
                }
            }
        }
    }
}

$(function() {
    $('#talentInfoForm').bootstrapValidator({
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        container: 'tooltip',
        group:'.rowGroup',
        fields: TalentInfoInfoDlg.validateFields,
        live: 'enabled',
        message: '该字段不能为空'
    }).on('error.field.bv', function(e, data) {
        // Get the tooltip
        var $parent = data.element.parents('.form-group-sm'),
            $icon   = $parent.find('.form-control-feedback[data-bv-icon-for="' + data.field + '"]'),
            title   = $icon.data('bs.tooltip').getTitle();
        $icon.tooltip('destroy').tooltip({
            html: true,
            placement: 'right',
            title: title,
            container: 'body'
        });
    });
    //批量加载字典表数据
    var arr = [
        {"name":"nation","code":"un_nation"},
        {"name":"talentArrange","code":"un_talentLevel"},
        {"name":"nationality","code":"un_nationality"},
        {"name":"talentType","code":"un_jbt_talentType"},
        {"name":"politics","code":"un_political"},
        {"name":"highEducation","code":"un_education"},
        {"name":"introductionMode","code":"un_introduction_mode"},
        {"name":"industryField","code":"un_industryField"},
        {"name":"address","code":"un_street"}];
    Feng.findChildDictBatch(JSON.stringify(arr));
    //加载省份
    Feng.addAjaxSelect({
        "id": "provinceCode",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": Feng.ctxPath + "/api/commonLocation/getProvinceSelect"
    });
    //批量加载时间控件
    $(".date").each(function(){
        laydate.render({
            elem: this
            ,type: 'date'
            ,trigger: 'click'
        });
    });
    var id = $("#id").val();
    if(id!=null && id!=''){
        $("select").each(function () {
            $(this).val($(this).attr("value")).trigger("change");
        });
        Feng.getCheckLog("logTable",{"type":CONFIG.project_rcrd,"mainId":id,"typeFileId":"","active":1})
    }
    $("#address").val($("#address").attr("value"));
    $("#provinceCode").val($("#provinceCode").attr("value"));
    TalentInfoInfoDlg.afterSelectProvince();
    $("#cityCode").val($("#cityCode").attr("value"));
    TalentInfoInfoDlg.afterSelectCity();
    $("#countyCode").val($("#countyCode").attr("value"));
    $("#talentArrange").val($("#talentArrange").attr("value"));
    TalentInfoInfoDlg.getIdentifyCondition();
    $("#talentArrange").val($("#talentArrange").attr("value"));
    $("#identifyCondition").val($("#identifyCondition").attr("value"));
    TalentInfoInfoDlg.validId();
    $("#photo").change(function (e) {
        var tag = e.target;
        var file = tag.files[0];
        var imgSrc;
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function() {
            imgSrc = this.result;
            $("#photoImg").attr("src", imgSrc);
        };
    });
    TalentInfoInfoDlg.setNoChangeField();
    $("#identifyCondition").on('chosen:ready', function(e, params) {
        $(".chosen-container-single .chosen-single").css("padding","4px 0px 0px 4px");
    });
    $("#identifyCondition").chosen({
        no_results_text: "没有找到结果！",
        width:'100%',
        search_contains:true,       //关键字模糊搜索。设置为true，只要选项包含搜索词就会显示；设置为false，则要求从选项开头开始匹配
        disable_search: false,
        enable_split_word_search: true,
        rtl:true
    });
});


