var oldPersonName;
var oldJobType;
var oldHigherJob;
let tableData;
layui.use(['table', 'layer', 'laydate', 'jquery', 'form'], function () {
    var table = layui.table;
    var laydate = layui.laydate;
    let form = layui.form;
    $("#importExcel").click(function () {
        importExcel();
    });
    //渲染table
    table.render({
        elem: '#demo'
        , url: ctxPath + '/personnelLibrary/getMsgContent' //数据接口
        , method: 'post' //方式默认是get
        , toolbar: 'default' //开启工具栏，此处显示默认图标，可以自定义模板，详见文档
        , where: {} //post请求必须加where ，post请求需要的参数
        , cellMinWidth: 80
        , cols: [[ //表头
            {type: 'checkbox', title: '复选框',field: 'allCheck',width: 100} //序号列
            ,{field: 'number', width: 80, title: '序号', templet: function(res){
                    // res.LAY_INDEX表示当前行的序号，从0开始计数
                    // 将其加1即可转换为从1开始计数的序号
                    return res.LAY_INDEX + 1;
                }}

            , {field: 'personName',width:120, align: 'center', title: '姓名'}
            ,{field: 'idNumber', align: 'center',width : 220,title: '身份证号码',templet:function(res){
                    return res.idNumber + "\t";
                }}
            , {field: 'age', width: 70, align: 'center', title: '年龄'}
            , {field: 'sex', width: 60, align: 'center', title: '性别'}
            , {field: 'phone', width: 150, align: 'center', title: '联系方式'}
            , {field: 'department', width: 220, align: 'center', title: '部门'}
            , {field: 'higherJob', width: 120, align: 'center', title: '是否高职'}
            , {field: 'jobType', width: 120, align: 'center', title: '是否在职'}
            , {field: 'personnelType', width: 120, align: 'center', title: '人员类型'}
            , {field: 'specialPost', width: 150, align: 'center', title: '是否特殊岗位'}
            , {field: 'hospital', width: 150, align: 'center', title: '体检医院'}
            , {field: 'setMeal', width: 150, align: 'center', title: '体检套餐'}
            , {fixed: 'right',width: 270, title: '操作', align: 'center', toolbar: '#toolsBar'}
        ]]
        , id: 'menuTable'
        , page: true //开启分页
        , loading: true //数据加载中。。。
        , limits: [5, 10, 20]  //一页选择显示3,5或10条数据
        , limit: 10  //一页显示5条数据
        , response: {
            statusCode: 200 //规定成功的状态码，默认：0
        }, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据，res为从url中get到的数据
            tableData = res.data
            let result;
            if (res.data !== '' && res.data != null && res.data !== "null") {
                if (this.page.curr) {
                    result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
                } else {
                    result = res.data.slice(0, this.limit);
                }
            }
            return {
                "code": res.code, //解析接口状态
                "msg": res.msg, //解析提示文本
                "count": res.count, //解析数据长度
                "data": result, //解析数据列表
            };
        },

        toolbar: "#toolbar"
    });
    getPersonType(form,null);
    // 行工具事件
    table.on('tool(test)', function (obj) {
        var data = obj.data //获得当前行数据
        var layEvent = obj.event; //获得 lay-event 对应的值
        var id = data.id
        if (layEvent === 'edit') {
           openForm(id,'修改');
        } else if (layEvent === 'del') {
            delHospital(id);
        } else if (layEvent == 'resetPassword'){
            resetPassword(id);
        }
    });

    //头监听事件 -- checkBox 选中行和选中条数
    table.on('toolbar(test)', function (obj) {
        // 获取当前表格被选中的记录对象，返回数据
        var checkStatus = table.checkStatus(obj.config.id);
        //获取事件名，执行对应的代码
        var eventName = obj.event;
        switch (eventName) {
            case "searchBt":
                oldPersonName = $("#personName").val();
                oldJobType = $("#personType").val();
                oldHigherJob = $("#higherJob").val();
                table.reload('menuTable', {
                    url: ctxPath + '/personnelLibrary/getMsgContent'
                    , method: 'post' //方式默认是get
                    , page: true
                    , where: {
                        personName: oldPersonName,
                        jobType: oldJobType,
                        higherJob: oldHigherJob
                    } //设定异步数据接口的额外参数
                });
                /**二次赋值-- 点击搜索按钮之后会进行一次刷新操作*/
                $("#personName").val(oldPersonName);
                $("#higherJob").val(oldHigherJob);
                getPersonType(form,oldJobType);
                break;
            case "addBtn":
                openForm("",'新增');
                break;
            case "exportBtn":
                //导出
                break;
            case "exportBtnYu":
                download()
                break;
        }
    });
});

/**
 * 新增-修改功能
 */
function openForm(id,title){
    localStorage.setItem("id",id);
    layerOpenForm(title,"./PersonnelLibraryForm.html","80%","95%")
}


/**
 * 删除功能
 */
function delHospital(id) {
    layer.confirm('确定要删除吗？', {
        btn : [ '确定', '取消' ]
    }, function() {
        ajaxCommonMethods('/personnelLibrary/delById',{'id': id},"删除成功","删除失败","1");
        layer.close(1);
    });

}

/**
 * 重置密码
 * @param id
 */
function resetPassword(id){
    layer.confirm('确定要重置密码吗？', {
        btn : [ '确定', '取消' ]
    }, function() {
        ajaxCommonMethods('/personnelLibrary/resetPassword',{'id': id},"重置成功","重置失败","1");
        layer.close(1);
    });

}
//导入excel文件
function importExcel() {
    var formData = new FormData($('form')[0]);
    var name = $("#articleImageFile").val();
    if (name == null || name == "") {
        layer.msg("请上传Excel表格(.xlsx)");
        return;
    }
    if (!(name.endsWith(".xlsx"))) {
        layer.msg("请上传正确的Excel表格(.xlsx)!");
        $("#articleImageFile").val("");
        return;
    }
    formData.append("file", $("#articleImageFile")[0].files[0]);
    console.log(formData)
    var idx = layer.msg('正在提交数据,请稍等...', {
        icon: 16
        , shade: 0.01
        , time: '-1'
    });
    $.ajax({
        url: ctxPath + "/export/CommonImport",
        type: 'POST',
        async: true,
        data: formData,
        timeout: 60 * 1000 * 10,
        // 告诉jQuery不要去处理发送的数据
        processData: false,
        // 告诉jQuery不要去设置Content-Type请求头
        contentType: false,
        success: function (data) {
            if (data.resMsg == '导入成功') {
                showMessage('导入成功！', true);
            } else {
                showMessage(data.resMsg, false);
            }

            console.log(data)
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            console.log(JSON.stringify(errorThrown));
            layer.close(idx);
        }
    });
    $("#articleImageFile").val("");
}

function showMessage(message, isSuccess) {
    layer.msg(message, { time: 10000, icon: isSuccess ? 1 : 2 });
}


function download(){
    window.location.href = ctxPath + "/download/download?filename=体检人员名单导入.xlsx"
}

function importExcelYu() {
    var formData = new FormData($('form')[0]);
    var name = $("#articleImageFileYu").val();
    if (name == null || name == "") {
        layer.msg("请上传Excel表格(.xlsx)");
        return;
    }
    if (!(name.endsWith(".xlsx"))) {
        layer.msg("请上传正确的Excel表格(.xlsx)!");
        $("#articleImageFileYu").val("");
        return;
    }
    formData.append("file", $("#articleImageFileYu")[0].files[0]);
    console.log(formData)
    var idx = layer.msg('正在提交数据,请稍等...', {
        icon: 16
        , shade: 0.01
        , time: '-1'
    });
    $.ajax({
        url: ctxPath + "/export/reservation",
        type: 'POST',
        async: true,
        data: formData,
        timeout: 60 * 1000 * 10,
        // 告诉jQuery不要去处理发送的数据
        processData: false,
        // 告诉jQuery不要去设置Content-Type请求头
        contentType: false,
        success: function (data) {
            if (data.resMsg == '导入成功') {
                showMessage('导入成功！', true);
                setTimeout(() => {
                    window.location.reload();
                }, 10001)
            } else {
                showMessage(data.resMsg, false);
            }

            console.log(data)
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            console.log(JSON.stringify(errorThrown));
            layer.close(idx);
        }
    });
    $("#articleImageFileYu").val("");
}