初來乍到,請多指教!第一次寫博客~記錄一下日常踩的坑

ECharts其實在上家公司就接觸過一點,什麼散點圖,折線圖,柱狀圖等等~

可是上家公司有web前端呀,我只負責填充數據,我是一個廢后端了沒錯了。

最近做了一個效果就是點擊柱狀圖表格變化,如圖~

Grafana柱狀圖與表格聯動過濾方法_柱狀圖

Grafana柱狀圖與表格聯動過濾方法_加載_02

踩坑的環節了o(╥﹏╥)o

1.點擊柱子(疊加點擊事件)

  我做的柱狀圖上頭有一些篩選條件,忘記截圖了。

  每當篩選一次,就重新加載一次柱狀圖數據,緊接着點擊柱子,請求後台的次數是隨着綁定柱狀圖的次數疊加的。

  我當時一直以為是我綁定柱狀圖點擊事件綁定錯了。。。我天真了!

  關鍵的代碼來了!!!

//基於準備好的dom,初始化echarts實例
    var myChart = echarts.init(myChar);
   //關閉點擊,以免疊加點擊(Important!!!)
    myChart.off('click');
    //隱藏加載動畫
    myChart.showLoading();

2.表格服務器分頁

   後台必須要返回

{
    "total":"總數",
    "rows":"集合"
}

3.表格展開子表

   就是點擊上圖那個+,展開子表格數據。

   我弄了一個下午,我百度了好久好久,然後!我沒弄出來。

   別人的方式是長出了BootstrapTable,我試了試,但是它出不來!!!好氣

   我只能拼接一個表格出來了,我真的是一顆小白菜。。。菜菜菜

   上代碼。

//首次加載表格
var getTable = function () {
    $("#datatable_Log").bootstrapTable('destroy');//首次加載
    $("#datatable_Log").bootstrapTable({
        url: '/TestTable/GetTable',//請求後台的URL(*)  
        method: 'get',//請求方式
        striped: true,//是否顯示行間隔色
        cache: false,//是否使用緩存,默認為true,所以一般情況下需要設置一下這個屬性(*)
        pagination: true,//是否分頁
        sortable: true,//是否啓用排序
        sortOrder: "asc",//排序方式
        pageNumber: 1,//初始化加載第一頁,默認第一頁
        pageSize: 15,//每頁的記錄行數(*)
        pageList: [15, 30, 60, 120],  //可供選擇的每頁的行數(*)
        queryParamsType: '', //默認值為 'limit' ,在默認情況下 傳給服務端的參數為:offset,limit,sort
        queryParams: queryParams, //前端調用服務時,會默認傳遞上邊提到的參數,如果需要添加自定義參數,可以自定義一個函數返回請求參數
        sidePagination: "server",   //分頁方式:client客户端分頁,server服務端分頁(*)
        strictSearch: true,
        minimumCountColumns: 2,    //最少允許的列數
        clickToSelect: true,    //是否啓用點擊選中行
        searchOnEnterKey: true,
        sortable: true,//是否啓用排序
        sortOrder: "asc",//排序方式
        columns: column,
        detailView: true,//是否啓用子表格
        //註冊加載子表的事件,注意下這裏的三個參數。(Important!)
        onExpandRow: function (index, row, $detail) {
            $detail.html(detailFormat(row.Id));
        }

    });
}

//子表數據
var detailFormat = function (tabId) {
    var html = "<table class='table'>";
    $.ajax({
        type: "get",
        url: "/TestTable/GetTableLog",//子表請求的地址
        data: { tabId: tabId },
        async: false,
        success: function (res) {
            if (res["Total"] > 0) {
                html += "<tr  align='center'><td>狀態</td><td>備註</td><td>時間</td></tr>";
                for (var i = 0; i < res["Total"]; i++) {
                    html += "<tr  align='center'><td>" + res["Data"][i].LogType + "</td><td>" + res["Data"][i].Log_Remark + "</td><td>" + res["Data"][i].CREATE_TIME + "</td><tr>";
                }
            } else {
                html += "<tr  align='center'><td colspan='8' >暫無數據</td></tr>";
            }
            html += '</table>';
        }
    });
    return html;
}

4.表格同時加子表和複選框

   點擊+號展開子表的時候,複選框莫名其妙的勾選了,我也是一臉懵逼,什麼情況。

   後來才知道是我引用的BootstrapTable的min.js包版本太低了,怪我。