/**
 * 初始化人才类别变更详情对话框
 */
var TalentTypeChangeInfoDlg = {
    talentTypeChangeInfoData: {},
    validateFields: {
        talentId: {validators: {notEmpty: {message: '申报对象不能为空'}}},
        newTalentArrange: {validators: {notEmpty: {message: '新人才层次不能为空'}}},
        newIdentifyCondition: {validators: {notEmpty: {message: '新人才认定条件不能为空'}}},
        newIdentifyConditionName: {
            validators: {
                notEmpty: {
                    message: '新人才认得条件名称不能为空'
                }
            }
        }
    }
};

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

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

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

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

/**
 * 收集数据
 */
TalentTypeChangeInfoDlg.collectData = function () {
    this
            .set('id')
            .set('type')
            .set('talentId')
            .set('talentName')
            .set('idCard')
            .set('enterpriseId')
            .set('enterpriseName')
            .set('oldTalentArrange')
            .set('oldIdentifyCondition')
            .set('oldIdentifyGetTime')
            .set('oldIdentifyOutTime')
            .set('oldIdentifyConditionName')
            .set('oldIdentifyMonth')
            .set('oldCertificateNO')
            .set('oldCertificateOutTime')
            .set('oldIntroductionMode')
            .set('newTalentArrange')
            .set('newIdentifyCondition')
            .set('newIdentifyGetTime')
            .set('newIdentifyConditionName')
            .set('newIdentifyMonth')
            .set('newCertificateNO')
            .set('newCertificateOutTime')
            .set('newIntroductionMode')
            .set('source');

}



//点击按钮初始化
TalentTypeChangeInfoDlg.talentInfoDetail = function () {
    var type = $("#type").val();
    var talentId = $("#talentId").val();
    if (Feng.isEmptyStr(talentId)) {
        talentId = $("#talentId").attr("value");
    }
    var ajax = new $ax(Feng.ctxPath + "/enterprise/talent/detail/id/" + talentId, function (data) {
        $("#enterpriseId").val(data.enterpriseId);
        $("#talentName").val(data.name);
        $("#idCard").val(data.card_number);
        $("#enterpriseName").val(data.enterpriseName);
        $("#oldSource").val(data.source);
        $("#oldTalentType").val(data.talent_type);
        $("#oldTalentArrange").val(data.talent_arrange);
        $("#oldIdentifyConditionCategory").val(data.talent_arrange_category);
        $("#oldIdentifyCondition").val(data.talent_condition);
        $("#oldIdentifyConditionName").val(data.identifyConditionName);
        $("#oldAnnualSalary").val(data.annual_salary);
        $("#oldIdentifyGetTime").val(data.identifyGetTime);
        $("#oldIdentifyOutTime").val(data.identifyExpireTime);
        $("#oldCertificateNO").val(data.certificateNo);
        $("#oldCertificateStartTime").val(data.certificateGetTime);
        $("#oldCertificateOutTime").val(data.certificateExpireTime);
        $("#oldIdentifyMonth").val(data.identifyMonth);
        $("#oldIntroductionMode").val(data.import_way);
        if (data.enterpriseType == 1) {
            var hide = [1, 2];
            if (data.isMatchZhiren == 1) {
                hide = [3, 4, 5];
            }
            for (var i in hide) {
                $("#newSource option[value=" + hide[i] + "]").css("display", "none");
            }
            //toastr.success("符合晋江市现代产业体系人才补充认定标准的无需填写‘新泉州高层次人才证书发证日期’及‘新泉州高层次人才证书的有效期’。");
        }
    }, function (data) {
        Feng.error("查询失败!" + data.responseJSON.message + "!");
    });
    ajax.set();
    ajax.start();
}
TalentTypeChangeInfoDlg.sourceChange = function (isNew) {
    if (isNew) {
        var source = $("#newSource").val();
        $("#newFromCity").parent().parent().attr("style", "display:none");
        $("#newFromCounty").parent().parent().attr("style", "display:none");
        if (source == 3) {
            $("#newFromCity").parent().parent().attr("style", "display:block");
            $("#newFromCounty").val("");
        }
        if (source == 4) {
            $("#newFromCounty").parent().parent().attr("style", "display:block");
            $("#newFromCity").val("");
        }
        if (source == 5) {
            $("#newFromCity").val("");
            $("#newFromCounty").val("");
        }
        $("#newTalentArrange").val("");
        $("#newTalentArrangeCategory").html("<option value=''>---请选择---</option>");
        $("#newIdentifyCondition").html("<option value=''>---请选择---</option>");
        $("#newIdentifyCondition").trigger('chosen:updated');
        TalentTypeChangeInfoDlg.isNewSalary = false;
        $("#newAnnualSalary").parent().parent().css("display", "none");
        //$("#newTalentArrange").val("").trigger("change");
    } else {
        var source = $("#oldSource").val();
        $("#oldFromCity").parent().parent().attr("style", "display:none");
        $("#oldFromCounty").parent().parent().attr("style", "display:none");
        if (source == 3) {
            $("#oldFromCity").parent().parent().attr("style", "display:block");
            $("#oldFromCounty").val("");
        }
        if (source == 4) {
            $("#oldFromCounty").parent().parent().attr("style", "display:block");
            $("#oldFromCity").val("");
        }
        if (source == 5) {
            $("#oldFromCity").val("");
            $("#oldFromCounty").val("");
        }
        $("#oldTalentArrange").val("");
        $("#oldIdentifyConditionCategory").html("<option value=''>---请选择---</option>");
        $("#oldIdentifyCondition").html("<option value=''>---请选择---</option>");
        $("#oldIdentifyCondition").trigger('chosen:updated');
        TalentTypeChangeInfoDlg.isOldSalary = false;
        $("#oldAnnualSalary").parent().parent().css("display", "none");
        //$("#oldTalentArrange").val("").trigger("change");
    }
}

TalentTypeChangeInfoDlg.isNewSalary = false;
TalentTypeChangeInfoDlg.isOldSalary = false;
TalentTypeChangeInfoDlg.getLayerCatdByLayer = function (isNew) {
    var type = $("#type").val();
    var sourceElem = isNew ? "newSource" : "oldSource";
    var arrangeElem = isNew ? "newTalentArrange" : "oldTalentArrange";
    var conditionElem = isNew ? "newIdentifyCondition" : "oldIdentifyCondition";
    var catElem = isNew ? "newIdentifyConditionCategory" : "oldIdentifyConditionCategory";
    var source = $("#" + sourceElem).val();
    if (type == 1) {
        if (source == "" || typeof source == "undefined") {
            $("#" + arrangeElem).val("");
            return;
        }
        $("#" + conditionElem).html("<option value=''>---请选择---</option>");
        var level = $("#" + arrangeElem).val();
        Feng.addAjaxSelect({
            "id": catElem,
            "displayCode": "code",
            "displayName": "name",
            "type": "GET",
            "url": Feng.ctxPath + "/common/api/getLayerCatsByLayer/level/" + level
        });
        var layerFilter = function () {
            let allowedCats = [];
            switch (source) {
                case "1":
                case "3":
                    allowedCats = ["A+", "A", "B", "C"];
                    break;
                case "2":
                case "4":
                    allowedCats = ["A1", "B1", "C1", "D1", "E1"];
                    break;
                case "5":
                    allowedCats = ["A+", "A1", "A2", "A", "B", "B1", "B2", "C", "C1", "C2", "D", "D1", "D2", "E", "E1", "E2", "F", "G"];
                    break;
            }
            for (var i = 0; i < $("#" + catElem + " option").length; i++) {
                if (allowedCats.indexOf($("#" + catElem + " option").eq(i).val()) == -1) {
                    $("#" + catElem + " option").eq(i).css("display", "none");
                }
            }
        }();
    } else if (type == 6) {
        $("#" + conditionElem).html("<option value=''>---请选择---</option>");
        var level = $("#" + arrangeElem).val();
        Feng.addAjaxSelect({
            "id": catElem,
            "displayCode": "code",
            "displayName": "name",
            "type": "GET",
            "url": Feng.ctxPath + "/common/api/getLayerCatsByLayer/level/" + level
        });
    } else {
        var level = $("#" + arrangeElem).val();
        Feng.addAjaxSelect({
            "id": conditionElem,
            "displayCode": "id",
            "displayName": "name",
            "type": "GET",
            "url": Feng.ctxPath + "/common/api/findIdentifyConditionByLevel/level/" + level + "/showAll/1"
        });
    }
    $("#" + conditionElem).trigger("chosen:updated");

    TalentTypeChangeInfoDlg.displaySalary(isNew);
}
TalentTypeChangeInfoDlg.displaySalary = function (isNew) {
    if (isNew) {
        if (!TalentTypeChangeInfoDlg.isNewSalary || $("#newIdentifyCondition").val() == "" || $("#newIdentifyCondition").val() == "---请选择---") {
            $("#newAnnualSalary").parent().parent().css("display", "none");
        } else {
            $("#newAnnualSalary").parent().parent().css("display", "block");
        }
    } else {
        if (!TalentTypeChangeInfoDlg.isOldSalary || $("#oldIdentifyCondition").val() == "" || $("#oldIdentifyCondition").val() == "---请选择---") {
            $("#oldAnnualSalary").parent().parent().css("display", "none");
        } else {
            $("#oldAnnualSalary").parent().parent().css("display", "block");
        }
    }
}
/**
 * 获取人才认定
 */
TalentTypeChangeInfoDlg.getIdentifyCondition = function (isNew) {
    if (isNew) {
        var level = $("#newTalentArrange").val();
        var cat = $("#newIdentifyConditionCategory").val();
        Feng.addAjaxSelect({
            "id": "newIdentifyCondition",
            "displayCode": "id",
            "displayName": "name",
            "type": "GET",
            "url": Feng.ctxPath + "/common/api/findIdentifyConditionByLevel/level/" + level + "/cat/" + cat + "/showAll/1"
        });
        $("#newIdentifyCondition").trigger('chosen:updated');
    } else {
        var level = $("#oldTalentArrange").val();
        var cat = $("#oldIdentifyConditionCategory").val();
        Feng.addAjaxSelect({
            "id": "oldIdentifyCondition",
            "displayCode": "id",
            "displayName": "name",
            "type": "GET",
            "url": Feng.ctxPath + "/common/api/findIdentifyConditionByLevel/level/" + level + "/cat/" + cat + "/showAll/1"
        });
        $("#oldIdentifyCondition").trigger('chosen:updated');
    }
    TalentTypeChangeInfoDlg.displaySalary(isNew);
}

TalentTypeChangeInfoDlg.getIdentifyNeedsFileTypes = function (isNew) {
    var type = $("#type").val();
    if (isNew) {
        var source = $("#newSource").val();
        if (type == 1 && (source == "" || typeof source == "undefined")) {
            //layer.alert("请先选择申报来源");
            $("#newIdentifyCondition").val("");
            $("#newIdentifyCondition").trigger('chosen:updated');
            return;
        }
    } else {
        var source = $("#oldSource").val();
        if (type == 1 && (source == "" || typeof source == "undefined")) {
            //layer.alert("请先选择申报来源");
            $("#oldIdentifyCondition").val("");
            $("#oldIdentifyCondition").trigger('chosen:updated');
            return;
        }
    }
    TalentTypeChangeInfoDlg.ajaxGetConditionFile(source, isNew);

    TalentTypeChangeInfoDlg.displaySalary(isNew);
}

TalentTypeChangeInfoDlg.ajaxGetConditionFile = function (source, isNew) {
    var condition = isNew ? $("#newIdentifyCondition option:selected").val() : $("#oldIdentifyCondition option:selected").val();
    if (condition != "") {
        var ajax = new $ax("/common/api/getTalentCondtionUploadFile", function (data) {
            if (data == null || data.length == 0) {
                return;
            }
            if (typeof data.info != "undefined" && data.info.isSalary == 1) {
                if (isNew) {
                    TalentTypeChangeInfoDlg.isNewSalary = true;
                    $("#newAnnualSalary").parent().parent().css("display", "block");
                } else {
                    TalentTypeChangeInfoDlg.isOldSalary = true;
                    $("#oldAnnualSalary").parent().parent().css("display", "block");
                }
            } else {
                if (isNew) {
                    TalentTypeChangeInfoDlg.isNewSalary = false;
                } else {
                    TalentTypeChangeInfoDlg.isOldSalary = false;
                }
            }
        }, function (data) {
            Feng.error("查询失败!" + data.responseJSON.message + "!");
        });
        var queryData = {};
        queryData["talent_condition"] = condition;
        ajax.set(queryData);
        ajax.start();
    }
}


//初始化附件类别表单
TalentTypeChangeInfoDlg.initFileTable = function () {
    var queryData = {};
    queryData['type'] = $("#type").val();
    queryData['project'] = CONFIG.project_levelchange;
    queryData["source"] = $("#newSource").val();
    queryData["talent_condition"] = $("#newIdentifyCondition option:selected").val();
    queryData['checkState'] = $("#checkState").val();
    queryData['isMix'] = 1;
    $("#fileTable").bootstrapTable({
        url: Feng.ctxPath + "/common/api/findCommonFileType",
        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: TalentTypeChangeInfoDlg.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 + "/common/api/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: 20%;font-weight: bold;padding-top: 5px;">预览</li>';
                for (var key in data) {
                    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: 20%;">' + imgStr + '</li>\n';
                }
                html = html + '</ul>';
                $detail.html(html);
                $(".imgs").viewer({
                    // toolbar:false,
                    fullscreen: false
                });
            }, function (data) {
                Feng.error("查询失败!" + data.responseJSON.message + "!");
            });
            var queryData = {};
            queryData["mainId"] = $("#id").val();
            queryData["fileTypeId"] = row.id;
            ajax.set(queryData);
            ajax.start();
        }
    });

}

//校验是否保存基础信息
TalentTypeChangeInfoDlg.validId = function () {
    var id = $("#id").val();
    if (id != null && id != '') {
        $("#fileLi").removeAttr("style");
    } else {
        $("#fileLi").attr("style", "pointer-events: none");
    }
}


/**
 * 初始化表格的列
 */
TalentTypeChangeInfoDlg.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=\"TalentTypeChangeInfoDlg.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'},
    ]
};


TalentTypeChangeInfoDlg.downloadFile = function (id, type) {
    window.location.href = Feng.ctxPath + "/api/common/downloadFile?id=" + id + "&type=" + type;
}



$(function () {
    Feng.initValidator("talentTypeForm", TalentTypeChangeInfoDlg.validateFields);
    var arr = [
        {"name": "oldTalentArrange", "code": "talent_arrange"},
        {"name": "newTalentArrange", "code": "talent_arrange"},
        {"name": "oldIntroductionMode", "code": "import_way"},
        {"name": "newIntroductionMode", "code": "import_way"},
        {"name": "oldSource", "code": "source"},
        {"name": "newSource", "code": "source"}];
    Feng.findChildDictBatch(JSON.stringify(arr));
    var id = $("#id").val();
    //加载福建省泉州的地级市
    Feng.addAjaxSelect({
        "id": "oldFromCity",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": "/common/tool/findChildAreaByCode/code/35/no/350500"
    });
    //加载福建省泉州的县市区
    Feng.addAjaxSelect({
        "id": "oldFromCounty",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": "/common/tool/findChildAreaByCode/code/3505/no/350582"
    });
    //加载福建省泉州的县
    Feng.addAjaxSelect({
        "id": "newFromCity",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": "/common/tool/findChildAreaByCode/code/35/no/350500"
    });
    //加载福建省泉州的县
    Feng.addAjaxSelect({
        "id": "newFromCounty",
        "displayCode": "code",
        "displayName": "name",
        "type": "GET",
        "url": "/common/tool/findChildAreaByCode/code/3505/no/350582"
    });
    var url = (id == null || id == '') ? "/enterprise/talent/findTalentInfoInLibrary/type/" + CONFIG.project_levelchange : "/enterprise/talent/findTalentInfoByChangeId/type/" + CONFIG.project_levelchange + "/id/" + id;
    Feng.addAjaxSelect({
        "id": 'talentId',
        "displayCode": "id",
        "displayName": "name",
        "type": "GET",
        "url": Feng.ctxPath + url
    });
    if (id != null && id != '') {
        $("select").each(function () {
            $(this).val($(this).attr("value")).trigger("change");
        });
    }
    $("#newIdentifyCondition").on('chosen:ready', function (e, params) {
        $(".chosen-container-single .chosen-single").css("padding", "4px 0px 0px 4px");
    });
    $("#newIdentifyCondition").chosen({
        search_contains: true,       //关键字模糊搜索。设置为true，只要选项包含搜索词就会显示；设置为false，则要求从选项开头开始匹配
        disable_search: false,
        width: "100%",
        enable_split_word_search: true,
        rtl: true
    });
    TalentTypeChangeInfoDlg.validId();
});
