iView table 實現(xiàn)單元格合并

前言

當前問題使用的ivew 版本:3.4.2
后續(xù)版本可能會實現(xiàn)相關(guān)功能,請留意官方文檔。


背景

最近做的項目使用的是iView框架,有個需求是要對iView的table進行單元格合并,但是iView官方并沒有提供單元格合并的API,查閱相關(guān)資料后發(fā)現(xiàn)網(wǎng)上現(xiàn)有的實現(xiàn)方法都特別復雜,有的方法甚至需要對iView的源碼進行修改,這些方法對于我當前的項目都是不可行的,經(jīng)過思考,我通過修改iView table單元格css樣式的方法實現(xiàn)了單元格合并。

思路

  • 合并單元行:

去掉需要合并的單元格的右邊框即可,這樣在視覺效果上就能實現(xiàn)單元格合并。

  • 合并單元列:

去掉需要合并的單元格的下邊框即可。

示例代碼

要修改iView table單元格的樣式,需要用到官方提供的 cellClassName,具體使用方法可見官方文檔:iView table 特定樣式。通過為某些單元格設(shè)置cellClassName樣式來實現(xiàn)去掉右邊框或下邊框。

  • 合并單元行
<template>
    <Table border :columns="columns1" :data="data8"></Table>
</template>
<script>
    export default {
        data () {
            return {
                columns1: [
                    {
                        title: 'Name',
                        key: 'name'
                    },
                    {
                        title: 'Age',
                        key: 'age'
                    },
                    {
                        title: 'Address',
                        key: 'address'
                    }
                ],
                data8: [
                    {
                        name: 'John Brown',
                        age: 18,
                        address: 'New York No. 1 Lake Park'
                    },
                    {
                        name: 'Jim Green',
                        age: '',
                        address: '',
                        // 為單元格設(shè)置樣式
                        cellClassName: {
                            age: 'merge1',
                        }
                    },
                    {
                        name: 'Joe Black',
                        age: 30,
                        address: 'Sydney No. 1 Lake Park'
                    },
                   
                ]
            }
        },
    }
</script>

<style>
     /* .ivu-table為ivew特定格式,cellClassName使用到的類名前面必須帶著它*/
    .ivu-table .merge1 {
    border-right: 0;
    }
</style>

效果:
  • 合并單元列
    將上述代碼style中的代碼修改成:
 .ivu-table .merge1 {
    border-bottom: 0;
    }

效果:
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容