码迷,mamicode.com
首页 > 其他好文 > 详细

iview自定义实现多级表头

时间:2018-03-01 14:58:21      阅读:2491      评论:0      收藏:0      [点我收藏+]

标签:border   拼接   删除   合并   center   push   src   ade   不一致   

原理:利用多个Table组件通过显示和隐藏thead和tbody来拼接表格(较粗暴)

技术分享图片


html

<div style="margin: 50px">
    <Table class="ud-table-no-body" :columns="columns0" :data="dataNull" border></Table>
    <Table class="ud-table-no-body ud-no-t-b ud-no-b-b" :columns="columns1" :data="dataNull" border></Table>
    <Table class="ud-table-no-body ud-no-b-b" :columns="columns2" :data="dataNull" border></Table>
    <Table class="ud-table-no-header" :columns="columns" :data="data" border></Table>
</div>

javascript

  • 非合并而来的列,请注意设置宽度(如下的宽度160)否则会被均分导致下面的行的列宽度不一致
  • 这里是表格列数不固定的示例
data() {
    return {
        columns0: [],
        columns1: [],
        columns2: [],
        columns: [],
        dataNull: [],
        data: [
            {
                name: ‘Hewitt‘,
                values: [10, 11, 12, 13, 14, 15]
            }
        ],

        dates: []
    };
},

created() {
    const dates = [2016, 2017];
    const WIDTH = 160;

    this.columns0 = [{ title: ‘模块名称‘, width: WIDTH, align: ‘center‘ }, { title: ‘PV/UV‘, align: ‘center‘ }];
    this.columns1 = [
        { renderHeader: () => (‘‘), width: WIDTH },
        { title: ‘总计‘ },
        ...dates.map(v => ({ title: v }))
    ];

    const tempC2 = [{ renderHeader: () => (‘‘), width: WIDTH }, { title: ‘PV‘ }, { title: ‘UV‘ }];
    dates.forEach(() => {
        tempC2.push({ title: ‘PV‘ });
        tempC2.push({ title: ‘UV‘ });
    });
    this.columns2 = tempC2;

    const tempC3 = [{ title: ‘Name‘, key: ‘name‘, width: WIDTH, align: ‘center‘ }];
    for (let i = 0, l = (dates.length * 2) + 2; i < l; i++) {
        tempC3.push({ title: ‘‘, render: (h, p) => p.row.values[i] });
    }
    this.columns = tempC3;
}

css

  • 这里主要隐藏tbody和thead,以及删除header的一些border样式

    .ud-table-no-body tbody{
        display: none;
    }
    .ud-no-t-b.ivu-table-wrapper{
        border-top: 0 ;
    }
    .ud-no-b-b .ivu-table:before{
        background-color: #fff;
    }
    .ud-table-no-header thead{
        display: none ;
    }

iview自定义实现多级表头

标签:border   拼接   删除   合并   center   push   src   ade   不一致   

原文地址:https://www.cnblogs.com/he-wei/p/8487998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!