搜索
您的当前位置:首页正文

1.BootstrapTable组件

来源:吉趣旅游网

1.先在页面声明一个表格对象

    <table id="table" class="table table-striped"></table>

2.生成表格JS代码如下

 var url = '/log/';

    var columns = [
        {
            checkbox: true,
            visible: true                  //是否显示复选框
        },
        {
            field: 'id',
            title: '序号',
            width: 50,
        },
        {
            field: 'api',
            title: '请求接口',
               cellStyle: formatTableUnit,
            formatter: paramsMatter
        },

        {
            field: 'headers',
            title: '请求头部',
            cellStyle: formatTableUnit,
            formatter: paramsMatter
        },
        {
            field: 'body',
            title: '请求参数',
            cellStyle: formatTableUnit,
            formatter: paramsMatter
        },
        {
            field: 'method',
            title: '请求方法'
        },
        {
            field: 'client_ip_address',
            title: '客户端IP',
            cellStyle: formatTableUnit,
            formatter: paramsMatter
        },
        {
            field: 'response',
            title: '返回结果',
            cellStyle: formatTableUnit,
            formatter: paramsMatter

        },
        {
            field: 'execution_time',
            title: '响应时间'
        },
        {
            field: 'added_on',
            title: '请求时间',
            cellStyle: formatTableUnit,
            formatter: paramsMatter
        },

        {
            field: 'ID',
            title: '操作',
            width: 120,
            align: 'center',
            valign: 'middle',
            formatter: actionFormatter
        }
    ];
    var token = localStorage.getItem('token');
    $("#table").bootstrapTable({
        ajaxOptions: {headers: {'Authorization': 'Token ' + token}},
        toolbar: '#toolbar',                //自定义工具按钮
        url: url,                           //请求后台的URL(*)
        method: 'get',                      //请求方式(*)
        cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
        pagination: true,                   //是否显示分页(*)
        pageSize: 10,                       //每页的记录行数(*)
        pageList: [10, 20, 50, 100, 'All'], //可供选择的每页的行数(*)
        sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
        pageNumber: 1,                      //初始化加载第一页,默认第一页
        clickToSelect: true,
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //是否显示刷新按钮
        minimumCountColumns: 2,             //最少允许的列数
        //height: 500,                      //行高,如果没有设置height属性,表格自动根据记录条数决定表格高度
        classes: "table table-bordered table-striped",  //定义表格样式   "table":将表格显示为标准的 Bootstrap 表格样式;"table-bordered":为表格添加边框;"table-striped":为表格的奇数行添加背景色,以增强可读性。
        showToggle: true,                   //是否显示详细视图和列表视图的切换按钮
        columns: columns,                   //列参数
        //detailView: true,                  //是否显示父子表
        //得到查询的参数,会在url后面拼接,如:?rows=5&page=2&sortOrder=asc&search_kw=&_=1564105760651
        queryParams: function (params) {
            // params对象包含:limit, offset, search, sort, order
            //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
            var temp;
            temp = {
                page: (params.offset / params.limit) + 1,   //页码,  //页码
                size: params.limit,   //页面大小
                //search_kw: $('#search-keyword').val(), //查询框中的参数传递给后台
                api: $('#api').val(),   // 请求时向服务端传递的参数

            };
            return temp;
        },
</script>

 3.Bootstrap-table其它常用方法如下

1.responseHandler

responseHandler: function (data) {
            if (data.code === 1) {
                return {
                    "rows": data.data.rows,
                    "total": data.data.total
                };
            } else {
                console.log(data);
            }
},

responseHandler 函数需要返回一个处理后的数据对象,该对象应该包含以下两个属性:

  • total:表示数据总数;
  • rows:表示数据行。

该函数将从服务器返回的数据进行处理,并返回一个包含 total 和 rows 属性的对象,从而让bootstrap进行数据渲染

2.formatTableUnit (自定义显示方法)

让超过一行的数据只展示一行加上省略号

function formatTableUnit(value, row, index) {
        return {
            css: {
                "white-space": 'nowrap',
                "text-overflow": 'ellipsis',
                "overflow": 'hidden',
                "max-width": "100px",
                "cursor": "pointer",
            }
        }
}

 

3.paramsMatter(自定义显示方法)

让超过一行的数据进行弹出展示

function paramsMatter(value, row, index, field) {
        var span = document.createElement('span');
        span.setAttribute('title', value);
        span.innerHTML = value;
        return span.outerHTML;
}

4.actionFormatter

用于格式化操作列的内容 ,会在每一行数据的操作列中调用该函数,以生成操作列的内容

   function actionFormatter(value, row, index) {

        var result = "";
        result += '<a href="javascript:;" class="btn btn-xs btn-success" style="margin:5px" onclick="GetViewById(' + index + ')" view=\'view\')" title="查看">';
        result += '<span class="glyphicon glyphicon-search"></span></a>';

        result += '<a href="javascript:;" class="btn btn-xs btn-info" style="margin:5px" onclick="EditViewById(' + index + ')" title="编辑">';
        result += '<span class="glyphicon glyphicon-pencil"></span></a>';

        result += '<a href="javascript:;" class="btn btn-xs btn-danger"  style="margin:5px" onclick="DeleteByIds(' + row.id + ')" title="删除">';
        result += '<span class="glyphicon glyphicon-trash"></span></a>';
        return result;
    }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top