加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

BootStrap-Table主子表

发布时间:2020-12-17 21:28:50 所属栏目:安全 来源:网络整理
导读:BootStrap-Table主子表 效果如下: 实现步骤 引js和css script th:src="@{~/js/bootstrap.js}"/script script th:src="@{~/bootstrap-table/bootstrap-table.js}"/script link th:href="@{~/bootstrap-table/bootstrap-table.css}" rel="stylesheet" script

BootStrap-Table主子表

效果如下:

实现步骤

引js和css

<script th:src="@{~/js/bootstrap.js}"></script>
    <script th:src="@{~/bootstrap-table/bootstrap-table.js}"></script>
    <link th:href="@{~/bootstrap-table/bootstrap-table.css}" rel="stylesheet">
    <script th:src="@{~/bootstrap-table/locale/bootstrap-table-zh-CN.js}"></script>

html中增加table标签

<div class="col-md-12">
            <table id="orders_table"></table>
        </div>

完整代码如下:

<!DOCTYPE html>
<html>
<head>
    <header th:replace="layout/admin/head :: head"></header>
    <!--日期选择器相关-->
    <script type="text/javascript" th:src="@{~/js/bootstrap-datetimepicker.js}"></script>
    <link th:href="@{~/css/bootstrap-datetimepicker.css}" rel="stylesheet"/>
</head>
<body>
<div class="container-fluid">
    <div class="panel panel-default">
        <div class="panel-heading">查询条件</div>
        <div class="panel-body">
            <div class="row">
                <div class="col-md-2">
                    <div class="input-group">
                        <span class="input-group-addon">订单号</span>
                        <input id="orderId" type="text" class="form-control" aria-placeholder="订单号">
                    </div>
                </div>
                <div class="col-md-3">
                    <div class="input-group">
                        <span class="input-group-addon">开始时间:</span>
                        <div id="begin_date" class="input-group date form_datetime" language="zh-CN">
                            <input class="form-control"  name="beginDate"  size="16" type="text" id="beginDate"  />
                            <span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
                            <span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>
                        </div>
                    </div>
                </div>
                <div class="col-md-3">
                    <div class="input-group">
                        <span class="input-group-addon">结束时间:</span>
                        <div id="end_date" class="input-group date form_datetime">
                            <input class="form-control"  name="endDate" size="16" type="text" id="endDate"  />
                            <span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
                            <span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>
                        </div>
                    </div>
                </div>
                <div class="col-md-2">
                    <button id="doSearch" type="button" class="btn btn-info">查询</button>
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <table id="orders_table"></table>
        </div>
    </div>
</div>



<script type="text/javascript">
    $(function () {
        //1.初始化Table
        var oTable = new TableInit();
        oTable.Init();
    });

    var TableInit = function () {
        var oTableInit = new Object();
        //初始化Table
        oTableInit.Init = function () {
            $('#orders_table').bootstrapTable({
                url: '/admin/api/orders',//请求后台的URL(*)
                method: 'post',//请求方式(*)
                toolbar: '#toolbar',//工具按钮用哪个容器
                striped: true,//是否显示行间隔色
                cache: false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
                pagination: true,//是否显示分页(*)
                sortable: false,//是否启用排序
                sortName: 'orderTime',sortOrder: "desc",//排序方式
                queryParams: oTableInit.queryParams,//传递参数(*)
                sidePagination: "server",//分页方式:client客户端分页,server服务端分页(*)
                pageNumber: 1,//初始化加载第一页,默认第一页
                pageSize: 10,//每页的记录行数(*)
                pageList: [10,25,50,100],//可供选择的每页的行数(*)
                search: false,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
                strictSearch: true,showColumns: false,//是否显示所有的列
                showRefresh: false,//是否显示刷新按钮
                minimumCountColumns: 2,//最少允许的列数
                clickToSelect: true,//是否启用点击选中行
                height: 500,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
                uniqueId: "orderId",//每一行的唯一标识,一般为主键列
                showToggle: false,//是否显示详细视图和列表视图的切换按钮
                cardView: false,//是否显示详细视图
                detailView: true,//是否显示父子表
                // classes:'table-striped',responseHandler:function(res){
                    return{
                        "total":res.data.totalElements,"rows":res.data.content
                    }
                },columns: [{
                    checkbox: false
                },{
                    field: 'orderId',title: '订单号'
                },{
                    field: 'venderId',title: '商家ID'
                },{
                    field: 'orderTime',title: '下单时间'
                },{
                    field: 'venderCode',title: '客户编码'
                },{
                    field: 'payType',title: '支付方式'
                },{
                    field: 'totalMoney',title: '总金额'
                },{
                    field: 'discount',title: '优惠金额'
                },{
                    field: 'payMoney',title: '实付金额'
                },{
                    field: 'pickName',title: '收货人'
                },{
                    field: 'pickAddress',title: '收货人地址'
                },{
                    field: 'pickPhone',title: '手机号'
                },{
                    field: 'orderState',title: '订单状态'
                },{
                    field: 'platformCoupon',title: '平台优惠'
                },{
                    field: 'ShopCoupon',title: '商家优惠'
                },{
                    field: 'remark',title: '备注'
                },{
                    field: 'freight',title: '运费'
                },{
                    field: 'companyName',title: '公司名称'
                }],onExpandRow:function (index,row,$detail) {
                    InitDetail(index,$detail);
                }
            });
        }
        //得到查询的参数
        oTableInit.queryParams = function (params) {
            var data = new Object();
            data.size=params.limit;
            data.page=params.offset/params.limit;
            data.sort=params.sort;
            data.order=params.order;
            if ($('#orderId').val() != null && $('#orderId').val() !== "")
            {
                data.orderId=$('#orderId').val();
            }
            if($('#beginDate').val()!=null && $('#beginDate').val()!="")
            {
                data.beginDate=$('#beginDate').val();
            }
            if($('#endDate').val()!=null && $('#endDate').val()!="")
            {
                data.endDate=$('#endDate').val();
            }
            return  data;
        };
        return oTableInit;
    };


    //初始化子表格(循环)
     InitDetail = function (index,$detail) {
        var parentid = row.orderId;
        var cur_table = $detail.html('<table></table>').find('table');
        $(cur_table).bootstrapTable({
            url: '/admin/api/orderdetails',method: 'post',queryParams: function (params) {
                var data = new Object();
                data.size=10;
                data.page=0;        //因为是按照订单号查,所以只会有一条
                data.sort=params.sort;
                data.order=params.order;
                data.orderId=parentid;
                return  data;
            },toolbar: '#toolbar',//工具按钮用哪个容器
            striped: true,//是否显示行间隔色
            cache: false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
            pagination: true,//是否显示分页(*)
            sortable: false,//是否启用排序
            sortName: 'orderId',sortOrder: "asc",//排序方式
            sidePagination: "client",//分页方式:client客户端分页,server服务端分页(*)
            pageNumber: 1,//初始化加载第一页,默认第一页
            pageSize: 10,//每页的记录行数(*)
            pageList: [10,//可供选择的每页的行数(*)
            search: false,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
            strictSearch: true,//是否显示所有的列
            showRefresh: false,//是否显示刷新按钮
            minimumCountColumns: 2,//最少允许的列数
            clickToSelect: true,//是否启用点击选中行
            height: 500,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
            uniqueId: "orderId",//每一行的唯一标识,一般为主键列
            showToggle: false,//是否显示详细视图和列表视图的切换按钮
            cardView: false,//是否显示详细视图
            detailView: true,//是否显示父子表
            responseHandler:function(res){
                return{
                    // "total":res.data.totalElements,"rows":res.data
                }
            },columns: [{
                checkbox: false
            },{
                field: 'orderId',title: '订单编号'
            },{
                field: 'skuName',title: '商品名称'
            },{
                field: 'purchaseNum',title: '数量'
            },{
                field: 'skuPrice',title: '价格'
            },{
                field: 'venderSku',title: '商品编码'
            },{
                field: 'discount',title: '优惠'
            }],//无线循环取子表,直到子表里面没有记录
            onExpandRow: function (index,$Subdetail) {
                InitDetail(index,$Subdetail);
            }
        });
    };



    $('#doSearch').on('click',function () {
        var opt={
            silent:true
        };
        $("#orders_table").bootstrapTable('refresh',opt);
    })
</script>



<script type="text/javascript">
    $.fn.datetimepicker.dates['zh-CN'] = {
        days: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"],daysShort: ["周日","周一","周二","周三","周四","周五","周六","周日"],daysMin: ["日","一","二","三","四","五","六","日"],months: ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort: ["一月",today: "今天",suffix: [],meridiem: ["上午","下午"]
    };

    $('.form_datetime').datetimepicker({
        language: 'zh-CN',weekStart: 1,todayBtn: 1,autoclose: 1,todayHighlight: 1,startView: 2,forceParse: 0,showMeridian: 1,format:'yyyy-mm-dd hh:ii:ss'
    });

    $(function () {
        //给日期控件赋初始值
        var endDate = new Date();
        var beginDate = endDate.getDate() - 7;
        $("#begin_date").attr("value",beginDate);
        $("#end_date").attr("value",endDate);
    })
</script>

</body>
</html>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读