/**
 * 初始化人才认定申报详情对话框
 */
var locked = false;
var TalentInfoInfoDlg = {
    talentInfoInfoData: {},
};

/**
 * 初始化表格的列
 */
TalentInfoInfoDlg.initFileTypeColumn = function () {
    return [
        {field: 'selectItem', checkbox: false, visible: false},
        {title: '名称', field: 'name', visible: true, align: 'center', valign: 'middle', width: "70%", 'class': 'uitd_showTip',
            formatter: function (value, row, index) {
                let str = '<div class="word-wrap">';
                let highlights_by_api = ["crz"];
                let description = row.description;
                if (highlights_by_api.indexOf(row.api) > -1) {
                    value = '<span style="font-weight:bold;color:red;">' + value + '</span>';
                    description = '<span style="font-weight:bold;color:red;">' + description + '</span>';
                }
                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;
                }
                str = str + '<br /><span id="desc_' + row.rel + '">' + description + '</span></div>'
                return str;
            }
        },
        {title: '模板', field: 'templateUrl', visible: true, align: 'center', valign: 'middle', width: "10%",
            formatter: function (value, row, index) {
                if (value == null || value == '' || value == 'null') {
                    return '无';
                }
                return "<button type='button' onclick=\"TalentInfoInfoDlg.downloadFile('" + row.id + "',5)\" style='margin-right: 10px' class=\"btn btn-xs btn-primary\">" +
                        "<i class=\"fa fa-download\"></i>下载" +
                        "</button>";
            }
        },
        {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle', width: "20%",
            formatter: function (value, row, index) {
                return "";
            }
        }
    ]
};

TalentInfoInfoDlg.initFileTable = function () {
    var ajax = new $ax("/common/api/findCommonFileType", function (data) {
        if (data == null || data.length == 0) {
            return;
        }
        var datas = new Array();
        for (var i = 0; i < $(".fileTable").length; i++) {
            datas.push([]);//创建空的多维数组，等下用来存每个附件表的各自的列
        }
        var enterpriseTag = $("#enterprise_tag").val();
        for (var k in data["rows"]) {
            if (data["rows"][k].enterprise_tag != "" && data["rows"][k].enterprise_tag != null && data["rows"][k].enterprise_tag.indexOf(enterpriseTag) == -1) {
                continue;
            }
            var rel = data["rows"][k].rel;
            if ($("#" + rel).length > 0) {
                var tableIndex = 0;
                if ($("#" + rel).parents(".table").length > 0) {
                    tableIndex = $("#" + rel).parents(".table").find("table.fileTable").index(".fileTable");
                } else {
                    tableIndex = $("#" + rel).parents(".row").next(".row").find("table.fileTable").index(".fileTable");
                }
                data["rows"][k].tableIndex = tableIndex;
                data["rows"][k].trIndex = datas[tableIndex].length;
                datas[tableIndex].push(data["rows"][k]);
                if (data["rows"][k].option) {
                    //指定了选项
                    if (rel == "birthday") {
                        let age = 0;
                        if ($("#" + rel).val()) {
                            let birthDate = new Date($("#" + rel).val());//生日日期
                            let birthYear = birthDate.getFullYear();
                            let birthMonth = birthDate.getMonth() + 1;
                            let currentDate = new Date();//当前日期
                            let currentYear = currentDate.getFullYear();
                            let currentMonth = currentDate.getMonth() + 1;
                            age = (currentYear * 12 + currentMonth - birthYear * 12 - birthMonth) / 12;
                        }
                        if (age < data["rows"][k].option)
                            data["rows"][k].hidden = true;
                    } else {
                        let selectVal = $("#" + rel).data("value").toString();
                        let options = data["rows"][k].option.split(",");
                        if (options.indexOf(selectVal) == -1) {
                            data["rows"][k].hidden = true;
                        }
                    }
                }
            } else {
                if (data["rows"][k].isConditionFile) {
                    var tableIndex = 0;
                    if ($("#talent_condition_rel").parents(".table").length > 0) {
                        tableIndex = $("#talent_condition_rel").parents(".table").find("table.fileTable").index(".fileTable");
                    } else {
                        tableIndex = $("#talent_condition_rel").parents(".row").next(".row").find("table.fileTable").index(".fileTable");
                    }
                    data["rows"][k].tableIndex = tableIndex;
                    data["rows"][k].trIndex = datas[tableIndex].length;
                    datas[tableIndex].push(data["rows"][k]);//放入人才条件后面的附件表
                } else {
                    var tableIndex = $(".fileTable").length - 2;
                    data["rows"][k].tableIndex = tableIndex;
                    data["rows"][k].trIndex = datas[tableIndex].length;
                    datas[$(".fileTable").length - 2].push(data["rows"][k]);//没有归属，放入最后一个附件表
                }
            }
        }
        for (var i = 0; i < $(".fileTable").length; i++) {
            var that = $(".fileTable").eq(i);
            that.bootstrapTable({
                columns: TalentInfoInfoDlg.initFileTypeColumn(),
                data: datas[i],
                showHeader: false,
                rowStyle: function (row, index) {
                    return {classes: ""};
                },
                onPostBody: function (data) {
                    for (var k in data) {
                        var files = data[k].files;
                        var html = '<ul class="imgs"><li style="width: 70%;font-weight: bold;padding-top: 5px;">附件原名</li><li style="width: 10%;font-weight: bold;padding-top: 5px;">预览</li><li style="width: 20%;font-weight: bold;padding-top: 5px;">操作</li>';
                        for (var key in files) {
                            var sn = files[key].url.lastIndexOf(".");
                            var suffix = files[key].ext;//files[key].url.substring(sn + 1, files[key].url.length);
                            var imgStr = "";
                            if (suffix == "pdf" || suffix == "PDF") {
                                imgStr = "<button type='button'  onclick=\"Feng.showPdf('" + files[key].url + "','" + files[key].id + "','" + files[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('" + files[key].url + "','" + files[key].id + "','" + files[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\" onclick="Feng.showImg(this)" src=\"' + files[key].url + '\" style=\"width:25px;height:25px;\">';
                            }

                            html += '<li data-id="' + files[key].id + '">\n\
                                    <div><input type="hidden" name="uploadFiles[]" value="' + files[key].id + '"></div>\n' +
                                    '<div style="width: 70%;">' + files[key].orignName + '</div>\n' +
                                    '<div style="width: 10%;">' + imgStr + '</div>\n' +
                                    '<div style="width: 20%;"></div>\n\
                                    </li>';
                        }
                        html = html + '</ul>';
                        that.find("tr[data-index='" + k + "']").attr("data-rel", data[k]["rel"]);
                        that.find("tr[data-index='" + k + "']").attr("data-option", data[k]["option"]);
                        that.find("tr[data-index='" + k + "']").after('<tr class="detail-view"><td colspan="5">' + html + '</td></tr>');
                        if (typeof data[k].hidden != "undefined") {
                            that.find("tr[data-index='" + k + "']").css("display", "none");
                            that.find("tr[data-index='" + k + "']").next("tr.detail-view").css("display", "none");
                        }
                    }
                    $("td.uitd_showTip").bind("mouseover", function () {
                        var htm = $(this).html();
                        $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show');
                    });
                },
            });
        }
    }, function (data) {
        Feng.error("查询失败!" + data.responseJSON.message + "!");
    });
    var queryData = {};
    queryData["mainId"] = $("#id").val();
    queryData['project'] = CONFIG.project_rcrd;
    queryData['type'] = $("#type").val();
    queryData["source"] = $("#source").val();
    queryData["talent_condition"] = $("#talent_condition").val();
    queryData['checkState'] = $("#checkState").val();
    ajax.set(queryData);
    ajax.start();
}

/**
 * 显示初审审核模态框
 */
TalentInfoInfoDlg.showFirstCheckModal = function () {
    var ajax = new $ax("/enterprise/talent/validateIsCheck", function (data) {
        if (data.code == 200) {
            layer.open({
                type: 1,
                id: "neewFieldFormModel",
                title: '审核',
                area: ['800px', '450px'], //宽高
                fix: false, //不固定
                shade: 0,
                maxmin: true,
                content: TalentInfoInfoDlg.creatFieldCheckModal(),
                btn: ['<i class="fa fa-save"></i>&nbsp;&nbsp;提交', '<i class="fa fa-eraser"></i>&nbsp;&nbsp;关闭'],
                btnAlign: 'c',
                zIndex: layer.zIndex,
                success: function (layero, index) {
                    layer.setTop(layero);
                    var obj = data.obj.talentInfo;
                    var fileList = data.obj.fileList;
                    if (typeof data.obj.fieldList != "undefined" && data.obj.fieldList.length > 0) {
                        var fieldList = data.obj.fieldList;
                        var html1 = '';
                        for (var key in fieldList) {
                            html1 = html1 + '<li style="float:left;margin:0 10px 10px 0;"><input type="checkbox" value="' + fieldList[key]["key"] + '"><span>' + fieldList[key]["value"] + '</span></li>';
                        }
                    }
                    var html2 = '';
                    for (var key in fileList) {
                        html2 = html2 + '<ul><li style="width: 100%"><input type="checkbox" value="' + fileList[key].id + '"><span>' + fileList[key].name + '</span></li></ul>';
                    }
                    $("#field_info ul").css("overflow", "hidden").empty().append(html1);
                    $("#field_file").css("overflow", "hidden").empty().append(html2);
                    $("#firstCheckForm")[0].reset();
                    $("#checkStateFirstModal").val(data.obj.check.checkState);
                    $("#checkStateFirstModal").trigger("change");
                    $("#checkMsgFirst").val(data.obj.check.msg);
                    if (obj.fields != null && obj.fields != '') {
                        $("#field_info input").each(function () {
                            for (var key in obj.fields) {
                                if ($(this).val() == obj.fields[key]) {
                                    this.checked = true;
                                }
                            }
                        });
                    }
                    if (obj.files != null && obj.files != '') {
                        $("#field_file input").each(function () {
                            for (var key in obj.files) {
                                if ($(this).val() == obj.files[key]) {
                                    this.checked = true;
                                }
                            }
                        });
                    }
                },
                yes: function (index, layero) {
                    TalentInfoInfoDlg.firstCheck(index);
                }
            });
        } else {
            Feng.error(data.msg);
        }
    }, function (data) {
        Feng.error("校验失败!" + data.responseJSON.message + "!");
    });
    ajax.setData({"id": $("#id").val()})
    ajax.start();
}


/**
 * 初审提交
 */
TalentInfoInfoDlg.firstCheck = function (i) {
    var checkState = $("#checkStateFirstModal").val();
    var checkMsg = $("#checkMsgFirst").val();
    if (checkState == null || checkState == '') {
        Feng.info("请选择审核状态");
        return;
    }
    if (checkMsg == null || checkMsg == '') {
        Feng.info("请填写审核意见");
        return;
    }
    var fields = '';
    var files = '';
    $("#field_info li input").each(function (index) {
        if ($(this).is(":checked")) {
            fields = fields + $(this).val() + ",";
        }
    });
    $("#field_file li input").each(function (index) {
        if ($(this).is(":checked")) {
            files = files + $(this).val() + ",";
        }
    });
    if (checkState == 2 && fields == '' && files == '') {
        Feng.info("请选择可修改的字段或附件！");
        return;
    }
    if (locked)
        return;
    locked = true;
    var ajax = new $ax("/enterprise/talent/check", function (data) {
        if (data.code == 200) {
            // $("#firstModal").modal("hide");
            layer.close(i);
            Feng.success(data.msg);
        } else {
            Feng.error(data.msg);
        }
        locked = false;
    }, function (data) {
        Feng.error("提交审核失败!" + data.responseJSON.message + "!");
        locked = false;
    });
    ajax.setData({"id": $("#id").val(), "checkState": checkState, "checkMsg": checkMsg,
        "fields": fields, "files": files})
    ajax.start();
}


TalentInfoInfoDlg.submitCheck = function () {
    var operation = function () {
        var ajax = new $ax(Feng.ctxPath + "/enterprise/talent/submitCheck", function (data) {
            if (data.code == 200) {
                Feng.success(data.msg);
                window.parent.TalentInfo.table.refresh();
                TalentInfoInfoDlg.close();
            } else {
                Feng.error(data.msg);
            }
        }, function (data) {
            Feng.error("提交审核失败!" + data.responseJSON.message + "!");
        });
        ajax.setData({"id": $("#id").val()});
        ajax.start();
    }
    Feng.confirm("一旦提交无法修改，是否审核完毕且无误?", operation);
}

TalentInfoInfoDlg.creatFieldCheckModal = function () {
    return '<form id="firstCheckForm">\n' +
            '                    <div class="form-group" style="margin: 10px;">\n' +
            '                        <label for="checkState" class="control-label">审核状态</label>\n' +
            '                        <select class="form-control" id="checkStateFirstModal" onchange="TalentInfoInfoDlg.toggleField()">\n' +
            '                            <option value="">请选择</option>\n' +
            '                            <option value="3">审核通过</option>\n' +
            '                            <option value="2">审核驳回</option>\n' +
            '                        </select>\n' +
            '                    </div>\n' +
            '                    <div class="form-group" style="margin: 10px;">\n' +
            '                        <label for="checkMsg" class="control-label" >审核意见</label>\n' +
            '                        <textarea class="form-control" id="checkMsgFirst" placeholder="审核状态属“审核通过”的，仅代表此步骤已操作完成，不代表用户提交的信息符合认定条件。若不符合认定条件的，请写明不符合原因。" rows="6"></textarea>\n' +
            '                        <div id="field" style="padding-top: 5px;display: none">\n' +
            '                            <label for="checkMsg" class="control-label">可修改字段</label>\n' +
            '                            <div id="field_info">\n' +
            '                                <ul style="overflow:hidden;list-style:none;">\n' +
            '                                </ul>\n' +
            '                            </div>\n' +
            '                            <label for="checkMsg" class="control-label">可修改附件</label>\n' +
            '                            <div id="field_file">\n' +
            '                            </div>\n' +
            '                            <div class="form-group" style="text-align: center">\n' +
            '                                <button type="button" class="btn btn-primary" onclick="TalentInfoInfoDlg.checkAll()">全选</button>\n' +
            '                                <button type="button" class="btn btn-success" onclick="TalentInfoInfoDlg.unCheckAll()">反选</button>\n' +
            '                            </div>\n' +
            '                        </div>\n' +
            '                    </div>\n' +
            '                </form>';

}
TalentInfoInfoDlg.addSubmit = function () {
    Feng.error("当前状态不能修改");
}
TalentInfoInfoDlg.submitToCheck = function () {
    Feng.error("当前状态不能修改");
}

/**
 * 显示字段或者隐藏字段选择
 */
TalentInfoInfoDlg.toggleField = function () {
    var checkState = $("#checkStateFirstModal").val();
    var checkMsgFirst = $("#checkMsgFirst").val();
    if (checkState == 2) {
        $("#field").show();
        $("#checkMsgFirst").val("");
    } else if (checkState == 3) {
        $("#field").hide();
        $("#field").find("input[type=checkbox]").removeAttr("checked");
        if (checkMsgFirst == null || checkMsgFirst == '') {
            $("#checkMsgFirst").val("审核通过");
        }
    }
}

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


/**
 * 全选
 */
TalentInfoInfoDlg.checkAll = function () {
    $("#field input").each(function () {
        this.checked = true;
    })
}
/**
 * 反选
 */
TalentInfoInfoDlg.unCheckAll = function () {
    $("#field input").each(function () {
        if (this.checked) {
            this.checked = false;
        } else {
            this.checked = true;
        }
    })
}

$(function () {
    $(":input").prop("disabled", true);
    $("#talent_type option").eq(0).prop("selected", true);
    var id = $("#id").val();
    var checkState = $("#checkState").val();
    TalentInfoInfoDlg.initFileTable();
    if (id != null && id != '') {
        //select初始化
        $("select").each(function () {
            $(this).val($(this).attr("value")).trigger("change");
        });
        Feng.getCheckLog("logTable", {"type": CONFIG.project_rcrd, "mainId": id, "typeFileId": "", "active": 1})
    }
    /*var source = $("#source").val();
     var columns = 3;
     if (source == 1 || source == 2) {
     columns = 3;
     } else if (source == 3 || source == 4) {
     columns = 4;
     }
     
     $("#source").parents("td").attr("colspan", columns);
     $("#talent_arrange").parents("td").attr("colspan", columns);
     $("#talent_condition").parents("td").attr("colspan", columns - 1);*/
});


