/**
 * 数据表格处理
 * @version: 1.0
 * @Author:  JunStar
 * @Date:    2021-9-8 23:56:21
 * @Last Modified by:   JunStar
 * @Last Modified time: 2021-09-22 17:19:12
 */
layui.define([

],function (exports) {
    const MOD_NAME = "laytpTable";
    let $ = layui.$;

    let laytpTable = {
        /**
         * 数据表格渲染完成调用的方法
         *  主要工作，让layui-table-body的最大高度最多就是当前可见屏幕，超过了当前可见高度，就出现滚动条
         *  增加参数reduceHeight的设置，是当底部有浮动的层时，需要把底部浮动层的高度也减去
         *  弹窗展示数据表格时，底部可能需要加上操作按钮，reduceHeight的值设置上浮动层高度即可
         * @param reduceHeight int 减少的高度，单位px
         * @param tableId string 表格的ID
         */
        done : function(reduceHeight, tableId){
            if(!reduceHeight){
                reduceHeight = 0;
            }
            // 获取屏幕可见高度
            var windowHeight = $(window).height();
            var maxHeight = parseInt(windowHeight) - (172 + reduceHeight);
            // 设置.layui-table-body的最大高度和y轴滚动条自动出现
            // 为了防止fixed="left" 固定层也出现滚动条，增加上.layui-table-main类的限制
            if(!tableId){
                $(".layui-table-body.layui-table-main").css("height", maxHeight + 'px');
                $(".layui-table-body.layui-table-main").css("max-height", maxHeight + 'px');
                $(".layui-table-body.layui-table-main").css("overflow-y", "auto");
            }else{
                $("div[lay-id='"+tableId+"'] .layui-table-body.layui-table-main").css("height", maxHeight + 'px');
                $("div[lay-id='"+tableId+"'] .layui-table-body.layui-table-main").css("max-height", maxHeight + 'px');
                $("div[lay-id='"+tableId+"'] .layui-table-body.layui-table-main").css("overflow-y", "auto");
            }
        },

        /**
         * 树形数据表格渲染完成调用的方法
         *  主要工作，让layui-table-body的最大高度最多就是当前可见屏幕，超过了当前可见高度，就出现滚动条
         *  增加参数reduceHeight的设置，是当底部有浮动的层时，需要把底部浮动层的高度也减去
         *  弹窗展示数据表格时，底部可能需要加上操作按钮，reduceHeight的值设置上浮动层高度即可
         * @param reduceHeight int 减少的高度，单位px
         * @param tableId string 表格的ID
         */
        treeDone : function(reduceHeight, tableId){
            if(!reduceHeight){
                reduceHeight = 0;
            }
            // 获取屏幕可见高度
            var windowHeight = $(window).height();
            var maxHeight = parseInt(windowHeight) - (130 + reduceHeight);
            // 设置.layui-table-body的最大高度和y轴滚动条自动出现
            // 为了防止fixed="left" 固定层也出现滚动条，增加上.layui-table-main类的限制
            if(!tableId){
                $(".layui-table-body.layui-table-main").css("height", maxHeight + 'px');
                $(".layui-table-body.layui-table-main").css("max-height", maxHeight + 'px');
                $(".layui-table-body.layui-table-main").css("overflow-y", "auto");
            }else{
                $("div[lay-id="+tableId+"] .layui-table-body.layui-table-main").css("height", maxHeight + 'px');
                $("div[lay-id="+tableId+"] .layui-table-body.layui-table-main").css("max-height", maxHeight + 'px');
                $("div[lay-id="+tableId+"] .layui-table-body.layui-table-main").css("overflow-y", "auto");
            }
        },

        setLimit: function(key, limit){
            facade.setLimit(key, limit);
        }
    };

    //输出模块
    exports(MOD_NAME, laytpTable);
});