bootstrap合并单元格

**

bootstrap合并单元格示例

**
直接上代码

<html xmlns:th="http://www.thymeleaf.org">
<head th:include="include/base">
</head>
<body>
<div class="panel-body" style="padding-bottom:0px;">
    <div class="panel panel-default" style="margin-top: 10px;">
        <div class="panel-heading">swagger转化jmeter工具</div>
        <div class="panel-body">
            <form class="form-inline" role="form" style="float: left; width: 100%;margin-left: 20px;">
                <div class="form-group">
                    <label for="api_url">swagger文档地址:</label>
                    <input type="text" class="form-control" name="api_url" id="api_url" style="width: 500px" placeholder="请输入地址" />
                </div>
                <div class="form-group">
                    <button type="button" id="queryBtn" onclick="getSwaggerDoc();" class="btn btn-primary">解析swagger</button>
                </div>
            </form>
            <form class="form-inline" role="form" style="float: left; width: 100%;margin-left: 20px;">
                <div class="form-group">
                    <label for="jmx_name">jmx命名:</label>
                    <input type="text" class="form-control" name="jmx_name" id="jmx_name" style="width: 500px" placeholder="给你的jmx取个名字吧" />
                </div>
                <div class="form-group">
                    <button type="button" onclick="getJmx();" class="btn btn-primary">生成JMX</button>
                </div>
            </form>
        </div>
    </div>
    <div class="bottomScroll">
    <table class="table table-hover table-striped" style="margin-top: -40px;" id="createSwaggerTable">
    </table>
    </div>
</div>
<script type="text/javascript">
    var allTagList;
    var domain;

    function getSwaggerDoc() {
        $('#createSwaggerTable').bootstrapTable({
            ajax: function (request) {
                var api_url = $("#api_url").val();
                var columnsArray = [];
                var datas=[];
                if (!checkParams(api_url)) {
                    return false;
                }
                $.ajax({
                    type: "POST",
                    url: "/getSwaggerDoc?api_url=" + api_url,
                    dataType: "JSON",
                    contentType: "application/json;charset=UTF-8",
                    success: function (returnMsg) {
                        domain = returnMsg.data.host;
                        allTagList = returnMsg.data.swaggerDocTagList;
                        for(var i=0;i<allTagList.length;i++){
                            var docApiModList=allTagList[i].swaggerDocApiModList;
                            for(var j=0;j<docApiModList.length;j++){
                                datas.push(docApiModList[j]);
                            }
                        }
                        columnsArray.push({
                                field: 'checkStatus',
                                checkbox:true
                            },
                            {
                                field: 'name',
                                title: '接口名'
                            },{
                                field: 'path',
                                title: '方法名'
                            },
                            {
                                field: 'summary',
                                title: '方法描述'
                            })
                        $('#createSwaggerTable').bootstrapTable("destroy").bootstrapTable({
                            data:datas,
                            columns: columnsArray,
                        })
                        mergeCells(datas,'name',1,$('#createSwaggerTable'));
                    }, error: function () {
                        window.Ewin.alert({message:'获取数据失败!'});
                    }
                })

            }
        })
    }

    function getJmx(){
        var jmx_name=$("#jmx_name").val();
        if (!checkParams(jmx_name)) {
            return false;
        }
        var rows = $('#createSwaggerTable').bootstrapTable('getSelections');
        console.log(rows)
        var postData={
            "rows":rows,
            "swaggerTagList":allTagList
        }
        $.ajax({
            type : "POST",
            url : "/createJmx?host="+domain+"&jmx_name="+jmx_name+"&execUser=1",
            dataType : "JSON",
            data : JSON.stringify(postData),
            contentType: "application/json;charset=UTF-8",
            success : function(returnMsg)
            {
                var url = "/downLoadJmx?fileName=" + jmx_name;
                window.open(url);
            },error:function(){
                window.Ewin.alert({message:'获取数据失败!'});
            }
        })
    }
    function mergeCells(data,fieldName,colspan,target){
        alert(1)
        //声明一个map计算相同属性值在data对象出现的次数和
        var sortMap = {};
        for(var i = 0 ; i < data.length ; i++){
            for(var prop in data[i]){
                if(prop == fieldName){
                    var key = data[i][prop]     //fieldName的value
                    if(sortMap.hasOwnProperty(key)){
                        sortMap[key] = sortMap[key] * 1 + 1;
                    } else {
                        sortMap[key] = 1;
                    }
                    break;
                }
            }
        }
        /*for(var prop in sortMap){
            console.log(prop,sortMap[prop])
        }*/
        //合并单元格
        var index = 0;
        for(var prop in sortMap){
            var count = sortMap[prop] * 1;
            $(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: colspan, rowspan: count});
            index += count;
        }
    }
    function setScroll() {
        var height=parseInt($(window).height())+"px";
        var width=parseInt($(window).width())+"px";

        $(".bottomScroll").css({"height":height,
            "width":width,
            'overflow-y': 'scroll',
            'overflow-x': 'scroll',
            'display': 'inline-grid'});
    }
    $(window).resize(function () {
        setScroll();
    });
    function checkParams(orderNo) {
        if (!orderNo) {
            window.Ewin.alert({message:'参数不能为空!'});
            return false;
        }
        return true;
    }
</script>
</body>

注意:后端接口返回得数据格式如下:
[
{
“city”: “广州市”,
“area”: “天河区”,
“gdp”:“100”
},
{
“city”: “广州市”,
“area”: “海珠区”,
“gdp”:“101”
},
{
“city”: “广州市”,
“area”: “番禺区”,
“gdp”:“102”
}
]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值