let layer, laydate, table, form;
$(function () {
    layui.use(['layer', 'laydate', 'table', 'form'], function () {
        layer = layui.layer;
        laydate = layui.laydate;
        form = layui.form;
        table = layui.table;
        businessDivisionPullDown(form, null);
        initTable();
    });

});

function search(type) {
    if (type === 1) {
    } else {
        $("#evaluateTitle").val("");
        $("#evaluateDeptId").val("");
        form.render('select');
    }
    table.reload('baseTable', {
        url: ctxPath + '/backstage/evaluate/offlineSummaryList',
        page: {
            curr: 1
        },
        where: {
            evaluateTitle: $("#evaluateTitle").val(),
            evaluateDeptId: $("#evaluateDeptId").val(),
        }
    });
}

function initTable() {
    //渲染表格
    table.render({
        elem: '#baseTable'
        , url: ctxPath + '/backstage/evaluate/offlineSummaryList' //数据接口
        , method: 'get' //方式默认是get
        , toolbar: 'default' //开启工具栏，此处显示默认图标，可以自定义模板，详见文档
        , where: {} //post请求必须加where ，post请求需要的参数
        , cellMinWidth: 80
        , cols: [[ //表头
            {
                field: 'number', width: 80, title: '序号', align: 'center', type: 'numbers'
            }
            , {field: 'evaluateDept', align: 'center', title: '评价事业部'}
            , {field: 'evaluateTitle', align: 'center', title: '评价标题'}
            , {field: 'evaluateMonth', align: 'center', title: '评价年月'}
            , {
                fixed: 'right', width: 180, title: '操作', align: 'center', templet: d => {
                    let text = "";
                    text += '<a lay-event="evaluation" style="color: #009688;cursor: pointer;font-size: 15px"' +
                        '  id="evaluation">查看</a>';
                    text += '<a lay-event="viewReviews" style="color: #009688;cursor: pointer;font-size: 15px;margin-left: 10px"' +
                        '  id="viewReviews">下载</a>';
                    text += '<a lay-event="del" style="color: #009688;cursor: pointer;font-size: 15px;margin-left:' +
                        ' 10px"' +
                        '  id="del">删除</a>';
                    return text;
                }
            },
        ]]
        , id: 'baseTable'
        , page: true //开启分页
        , loading: true //数据加载中。。。
        , limits: [10, 20, 100]  //一页选择显示3,5或10条数据
        , limit: 10  //一页显示5条数据
        , response: {
            statusCode: 200 //规定成功的状态码，默认：0
        }, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据，res为从url中get到的数据
            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"
    });

    table.on('tool(test)', function (obj) {
        const data = obj.data; //当前行数据
        const rowIndex = obj.index;
        const layEvent = obj.event; //当前点击的事件名
        switch (layEvent) {
            case 'evaluation':
                ViewReviews(data);
                break;
            case 'viewReviews':
                downloadFile(data);
                break;
            case 'del':
                del(data);
                break;
            default:
                console.warn(`未知事件: ${layEvent}`);
        }
    });

    function del(data) {
        layer.confirm('确认删除吗？', function (index) {
            $.ajax({
                type: "POST",
                url: ctxPath + '/backstage/evaluate/deleteOffEvaluateById',
                data: {id: data.id},
                success: function (data) {
                    layer.close(index);
                    if (data.res === 1) {
                        layer.msg(data.resMsg, {icon: 1, time: 2000});
                        search(1);
                    } else {
                        layer.msg(data.resMsg, {icon: 2, time: 2000});
                    }
                }
            });
        });
    }

    //查看子页面
    function ViewReviews(data) {
        try {
            let fileUrl = data.filePath;
            console.log('fileUrl:', data);
            // const fileUrl = '/2024/12/26/外包商对标打分统计表9月_20241226104522A025.xlsx';
            // 避免将敏感信息存储在 localStorage 中
            sessionStorage.setItem("fileUrl", fileUrl);

            const layerIndex = layer.open({
                type: 2,
                title: '查看',
                shade: 0,
                area: ['80%', '90%'],
                scrollbar: true,
                move: false,
                anim: 2,
                content: './evalSummaryView.html',
            });
        } catch (error) {
            console.error('ViewReviews 错误:', error);
        }
    }

    function downloadFile(data) {
        let fileUrl = data.pathName;
        // let fileUrl = '/2024/12/26/外包商对标打分统计表9月_20241226104522A025.xlsx';
        //解析fileUrl获取文件名
        let fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1);
        let truePath;
        if (fileUrl.indexOf("http") !== -1) {
            truePath = fileUrl;
        } else {
            truePath = filePreviewPath + "/" + fileUrl;
        }
        download(truePath, fileName);

    }
}


function add() {
    layer.open({
        type: 2,
        title: "新增",
        content: './addEvalSummary.html?id=0',
        btn: ["确定"],
        maxmin: false,
        area: ['40%', '60%'],
        success: function (layero, index) {
        },
        yes: function (index, layero) {
            //提交子页面时执行
            // 获取弹出层中的form表单元素
            var formSubmit = layer.getChildFrame('form', index);
            // 查找class样式为submitBtn的按钮
            let submited = formSubmit.find('button.subBtn');
            // 触发点击事件，会对表单进行验证，验证成功则提交表单，失败则返回错误信息
            submited.click();
        },
    });
}

