/**
 * 初始化人才认定申报详情对话框
 */
var TalentAllowanceInfoDlg = {
    talentAllowanceData: {},
    validateFields: {
        talentId: {validators: {notEmpty: {message: '申报对象不能为空'}}}
    }
};

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

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

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

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

/**
 * 收集数据
 */
TalentAllowanceInfoDlg.collectData = function () {
    this.set('id')
            .set('talentId')
            .set('year');
}
/**
 * 验证数据
 */
TalentAllowanceInfoDlg.validate = function () {
    $('#talentAllowanceForm').data("bootstrapValidator").resetForm();
    $('#talentAllowanceForm').bootstrapValidator('validate');
    return $("#talentAllowanceForm").data('bootstrapValidator').isValid();
}

/**
 * 选择申报对象初始化
 */
TalentAllowanceInfoDlg.init = function () {
    var talentId = $("#name").val();
    var ajax = new $ax(Feng.ctxPath + "/enterprise/talent/getInfoById/id/" + talentId, function (data) {
        $("#talentId").val(talentId);
        $("#talentTypeName").val(data.talentTypeName);
        $("#enterpriseName").val(data.enterpriseName);
        $("#sex").val(data.sex);
        $("#idCard").val(data.idCard);
        $("#introductionModeName").val(data.introductionModeName);
        $("#firstInJJTime").val(data.firstInJJTime);
        $("#entryTime").val(data.entryTime);
        $("#post").val(data.post);
        $("#phone").val(data.phone);
        $("#bank").val(data.bank);
        $("#bankNumber").val(data.bankNumber);
        $("#bankNetwork").val(data.bankNetwork).attr("title", data.bankNetwork);
        $("#bankAccount").val(data.bankAccount);
        $("#talentArrangeName").val(data.talentArrangeName);
        $("#identifyConditionText").val(data.identifyConditionText).attr("title", data.identifyConditionText);
        $("#identifyConditionName").val(data.identifyConditionName).attr("title", data.identifyConditionName);
        $("#identifyGetTime").val(data.identifyGetTime);
        $("#provinceCode").val(data.provinceName + data.cityName + data.countyName);
    }, function (data) {
        Feng.error("查询失败!" + data.responseJSON.message + "!");
    });
    ajax.set();
    ajax.start();
}


/**
 * 初始化工作单位及核查项目情况表
 */
TalentAllowanceInfoDlg.initContract = function () {
    $("#projectTable").bootstrapTable("destroy", {});
    $("#projectTable").bootstrapTable({
        url: Feng.ctxPath + "/enterprise/talentAllowance/findAllowanceContractDetail",
        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, //父子表
        queryParams: function (params) {
            return $.extend({"mainId": $("#id").val()}, params)
        },
        columns: TalentAllowanceInfoDlg.initContractColumns(),
        onPostBody: function () {
            $("td.uitd_showTip").bind("mouseover", function () {
                var htm = $(this).html();
                $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show');
            });
        },
        onLoadSuccess: function (data) {
            $("#projectTable").bootstrapTable('expandAllRows');
        },
        onExpandRow: function (index, row, $detail) {
            var enterpriseId = row.enterpriseId;
            var cur_table = $detail.html('<table id="' + enterpriseId + '" class="mytable-hover"></table>').find('table');
            $(cur_table).bootstrapTable("destroy", {});
            $(cur_table).bootstrapTable({
                url: Feng.ctxPath + "/api/talentAllowance/findAllowanceProject",
                method: 'POST',
                contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                search: false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端
                showRefresh: false, // 是否显示刷新按钮
                clickToSelect: true, // 是否启用点击选中行
                singleSelect: true, // 设置True 将禁止多选
                escape: true,
                pagination: false, // 设置为 true 会在表格底部显示分页条
                paginationHAlign: "left",
                paginationDetailHAlign: "right",
                sidePagination: "server", // 设置在哪里进行分页，可选值为 'client' 或者 'server'
                showColumns: false,
                queryParams: function (params) {
                    return $.extend({"mainId": $("#id").val(), "baseId": row.id}, params)
                },
                columns: TalentAllowanceInfoDlg.initProjectColumns(),
            });
        }
    });
}



//初始化附件类别表单
TalentAllowanceInfoDlg.initFileTable = function () {
    TalentAllowanceInfoDlg.initContract();
    var queryData = {};
    queryData['project'] = CONFIG.project_jbt;
    queryData['type'] = $("#type").val();
    $("#fileTable").bootstrapTable({
        url: Feng.ctxPath + "/common/api/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: TalentAllowanceInfoDlg.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: 10%;font-weight: bold;padding-top: 5px;">预览</li><li style="width: 10%;font-weight: bold;padding-top: 5px;">操作</li>';
                var publicStartTime = new Date($("#publicStartTime").val());
                var publicEndTime = new Date($("#publicEndTime").val());
                for (var key in data) {
                    var createTime = new Date(data[key].createTime);
                    var btn = "";
                    if (createTime >= publicStartTime && createTime <= publicEndTime) {
                        btn = "<button type=\'button\' onclick=\"TalentAllowanceInfoDlg.checkFile(this,'" + 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=\"TalentAllowanceInfoDlg.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({
                    // 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();
        }
    });

}

//初始化工作单位表的列
TalentAllowanceInfoDlg.initContractColumns = function () {
    var type = $("#type").val();
    if (type == 1) {
        return [
            {field: 'selectItem', checkbox: false, visible: false},
            {title: '企业名称', field: 'enterpriseName', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
            {title: '合同起始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
            {title: '合同截止时间', field: 'endTime', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
            {title: '入职时间', field: 'entryTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
            {title: '本年度工作截止时间', field: 'quitTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
            {title: '人才标签', field: 'talentTypeName', visible: true, align: 'center', valign: 'middle', width: "100px", 'class': 'uitd_showTip'},
            {title: '首次来晋行政介绍信时间', field: 'letterTime', visible: true, align: 'center', valign: 'middle', width: "120px"},
                    /*{title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle',width:"120px",
                     formatter : function(value,row,index){
                     return "<button type='button' onclick='TalentAllowanceInfoDlg.showLog(\""+row.id+"\")' style='margin-right: 10px' class='btn btn-xs btn-success'>" +
                     "<i class=\"fa fa-book\"></i>日志" +
                     "</button>";
                     }
                     }*/
        ];
    } else {
        return [
            {field: 'selectItem', checkbox: false, visible: false},
            {title: '企业名称', field: 'enterpriseName', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
            {title: '合同起始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle', width: "120px"},
            {title: '合同截止时间', field: 'endTime', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
            {title: '入职时间', field: 'entryTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
            {title: '本年度工作截止时间', field: 'quitTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
                    /*{title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle',width:"120px",
                     formatter : function(value,row,index){
                     return "<button type='button' onclick='TalentAllowanceInfoDlg.showLog(\""+row.id+"\")' style='margin-right: 10px' class='btn btn-xs btn-success'>" +
                     "<i class=\"fa fa-book\"></i>日志" +
                     "</button>"
                     }
                     }*/
        ];
    }
}

//初始化项目表的列
TalentAllowanceInfoDlg.initProjectColumns = function () {
    return [
        {field: 'selectItem', checkbox: false, visible: false},
        {title: '核查项目名称', field: 'projectName', visible: true, align: 'center', valign: 'middle', width: "15%", 'class': 'uitd_showTip'},
        {title: '详情', field: 'months', visible: true, align: 'center', valign: 'middle', width: "35%",
            formatter: function (value, row, index) {
                if (value != null && value != '') {
                    return value;
                } else if (row.days != null && row.days != '') {
                    return row.days + "天";
                } else {
                    return "";
                }
            }
        },
        {title: '备注', field: 'description', visible: true, align: 'center', valign: 'middle', width: "35%", 'class': 'uitd_showTip'},
        {title: '操作', field: 'project', visible: true, align: 'center', valign: 'middle', width: "15%",
            formatter: function (value, row, index) {
                return "<button type='button' onclick='TalentAllowanceInfoDlg.showLog(\"" + row.id + "\")' style='margin-right: 10px' class='btn btn-xs btn-success'><i class=\"fa fa-book\"></i>日志</button>";
            }
        }
    ];
}

/**
 * 初始化附件类别表的列
 */
TalentAllowanceInfoDlg.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=\"Feng.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) {
                return "<button type='button' onclick=\"TalentAllowanceInfoDlg.checkFile(this,'" + value + "','" + null + "')\" style='margin-right: 10px' class=\"btn btn-xs btn-info\">" +
                        "<i class=\"fa fa-upload\"></i>添加" +
                        "</button>";
            }
        }
    ]
};


//选择附件并显示附件名
TalentAllowanceInfoDlg.checkFile = function (content, fileTypeId, fileId) {
    $("#upload_file ").unbind("change");
    $("#upload_file ").change(function () {
        TalentAllowanceInfoDlg.upload(fileTypeId, fileId);
    });
    $('#upload_file').val("");
    $('#upload_file').click()
}
//上传附件
TalentAllowanceInfoDlg.upload = function (fileTypeId, fileId) {
    var id = $("#id").val();
    if (id == null || id == '') {
        Feng.info("请先添加基本信息并保存后再试");
        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();
}
//删除附件
TalentAllowanceInfoDlg.deleteFile = function (id) {
    var operation = function () {
        var ajax = new $ax(Feng.ctxPath + "/common/api/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", CONFIG.project_jbt);
        ajax.start();
    }
    Feng.confirm("删除后无法恢复，确认删除吗?", operation);
}


TalentAllowanceInfoDlg.showLog = function (id) {
    layer.open({
        type: 1,
        title: "日志",
        fixed: false,
        content: '<table id="' + id + '"></table>',
        area: ['80%', '80%'],
        maxmin: true,
        success: function (layero, index) {
            $('#' + id).bootstrapTable({
                url: Feng.ctxPath + "/common/api/getJbtCheckLog",
                method: 'POST',
                contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                search: false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端
                showRefresh: false, // 是否显示刷新按钮
                clickToSelect: true, // 是否启用点击选中行
                singleSelect: true, // 设置True 将禁止多选
                striped: true, // 是否显示行间隔色
                pagination: false, // 设置为 true 会在表格底部显示分页条
                paginationHAlign: "left",
                paginationDetailHAlign: "right",
                sidePagination: "server", // 设置在哪里进行分页，可选值为 'client' 或者 'server'
                showColumns: false,
                queryParams: function (params) {
                    return {"type": CONFIG.project_jbt, "mainId": $("#id").val(), "typeFileId": id, "active": 1}
                },
                columns:
                        [
                            {title: '步骤', field: 'stepName', visible: true, align: 'center', valign: 'middle', width: "10%",
                                formatter: function (value, row, index) {
                                    return "" + value;
                                }
                            },
                            {title: '操作人', field: 'createUser', visible: true, align: 'center', valign: 'middle', width: "15%"},
                            {title: '操作时间', field: 'createTime', visible: true, align: 'center', valign: 'middle', width: "20%"},
                            {title: '描述', field: 'description', visible: true, align: 'center', valign: 'middle', width: "45%",
                                formatter: function (value, row, index) {
                                    return '<span data-toggle="tooltip" title="' + value + '">"' + value + '"</span>';
                                }
                            }
                        ]
                ,
                onPostBody: function () {
                    $('#' + id + "td.uitd_showTip").bind("mouseover", function () {
                        var htm = $(this).html();
                        $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show');
                    });
                }
            });
        }
    });
}

//回调
TalentAllowanceInfoDlg.callBack = function (data) {
    layer.close(data.obj);
    Feng.info(data.msg);
    if (data.code == 200) {
        var ajax = new $ax(Feng.ctxPath + "/enterprise/talentAllowance/updateSuppleState", function (data) {
            if (data.code == 200) {

            } else {

            }
        }, function (data) {
            Feng.error("修改失败!" + data.responseJSON.message + "!");
        });
        ajax.set("id", $("#id").val());
        ajax.start();
        $("#fileTable").bootstrapTable("refresh", {});
    }
}

TalentAllowanceInfoDlg.showAllLog = function () {
    var id = $("#id").val();
    if (Feng.isNotEmptyStr(id)) {
        Feng.getCheckLog("logTable", {"type": CONFIG.project_jbt, "mainId": $("#id").val(), "typeFileId": "", "active": 1})
    }
}

$(function () {
    Feng.initValidatorTip("talentAllowanceForm", TalentAllowanceInfoDlg.validateFields);
    Feng.addAjaxSelect({
        "id": 'name',
        "displayCode": "id",
        "displayName": "name",
        "type": "GET",
        "url": Feng.ctxPath + "/enterprise/talent/findTalentByEnterpriseInLibrary?type=1&year=" + $("#year").val()
    });
    TalentAllowanceInfoDlg.validId();
    if ($("#type").val() == 2) {
        $("#bankNumberSpan,#talentTypeSpan,#introductionModeSpan,#firstInJJTimeSpan").attr("style", "display:none");
    }
    //批量加载时间控件
    $(".date").each(function () {
        laydate.render({elem: "#" + $(this).attr("id"), type: 'date', trigger: 'click'});
    });
    $("select").each(function () {
        $(this).val($(this).attr("value"));
    });
    TalentAllowanceInfoDlg.showAllLog();
});


