element-ui表格合并span-method的實(shí)現(xiàn)方法
先看一下合并后的樣式,表格第二行,二三四列合并

官網(wǎng)給我們提供了span-method的方法可以進(jìn)行表格合并,有4個(gè)參數(shù)返回:row,column,rowIndex,columnIndex;row和column是表格的行和列,里面是當(dāng)前行和列的值,也就是tableData里的值,rowIndex,columnIndex是當(dāng)前行和列的序號(hào)
<el-table :data="tableData6" :span-method="arraySpanMethod" border style="width: 100%"> <el-table-column prop="id" label="ID" width="180"> </el-table-column> <el-table-column prop="name" label="姓名"> </el-table-column> <el-table-column prop="amount1" sortable label="數(shù)值 1"> </el-table-column> <el-table-column prop="amount2" sortable label="數(shù)值 2"> </el-table-column> <el-table-column prop="amount3" sortable label="數(shù)值 3"> </el-table-column> <el-table-column prop="amount4" sortable label="數(shù)值 4"> </el-table-column> </el-table>
<script>
export default {
data() {
return {
tableData6: [{
id: '12987122',
name: '王小虎',
amount1: '11',
amount2: '3.2',
amount3: 10,
amount4: 88
}, {
id: '12987123',
name: '王小虎',
amount1: '11',
amount2: '3.2',
amount3: 12,
amount4: 88
}, {
id: '12987124',
name: '王小虎',
amount1: '11',
amount2: '3.2',
amount3: 12,
amount4: 88
}, {
id: '12987125',
name: '王小虎',
amount1: '11',
amount2: '3.2',
amount3: 12,
amount4: 88
}, {
id: '12987126',
name: '王小虎',
amount1: '539',
amount2: '3.2',
amount3: 12,
amount4: 88
}]
};
},
methods: {
/**
* 表格合并
* @param {*} param0
* row 表格每一行的數(shù)據(jù)
* column 表格每一列的數(shù)據(jù)
* rowIndex 表格的行索引,不包括表頭,從0開(kāi)始
* columnIndex 表格的列索引,從0開(kāi)始
*/
arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
// console.log(row, column, rowIndex, columnIndex)
// 打印出的數(shù)據(jù)就是表格當(dāng)前行的數(shù)據(jù),當(dāng)前列的數(shù)據(jù),索引
if (rowIndex === 1) {
// 合并第二行
if (columnIndex === 1) {
// 從第二列開(kāi)始
return [1, 3]
// 這里返回的是行和列的合并數(shù)量,可以返回一個(gè)數(shù)組,也可以返回一個(gè)對(duì)象,效果一樣
// 這里rowspan為1是行有一行合并,colspan為3是列有3列合并,你要合并幾行幾列就寫上相應(yīng)的數(shù)字
// return {
// rowspan: 1,
// colspan: 3
// }
// 這里要寫一個(gè)else的判斷,不然被合并列的原始數(shù)據(jù)會(huì)填充到合并之后的表格里
// 這個(gè)判斷是把合并的第3列,第4列的值省略,在合并的表格右邊直接填原先第5列的值,合并了幾列,就省略幾列的值
} else if (columnIndex === 2 || columnIndex === 3) {
return [0, 0]
}
}
}
</script>
再演示一下其他合并效果,第二行和第三行都有合并

arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
// console.log(row, column, rowIndex, columnIndex)
// 打印出的數(shù)據(jù)就是表格當(dāng)前行的數(shù)據(jù),當(dāng)前列的數(shù)據(jù),索引
if (rowIndex === 1 || rowIndex === 2) { // 在這里多加一個(gè)行的判斷就行
// 合并第二行
if (columnIndex === 1) {
// 從第二列開(kāi)始
return [1, 3]
// 這里返回的是行和列的合并數(shù)量,可以返回一個(gè)數(shù)組,也可以返回一個(gè)對(duì)象,效果一樣
// 這里rowspan為1是行有一行合并,colspan為3是列有3列合并,你要合并幾行幾列就寫上相應(yīng)的數(shù)字
// return {
// rowspan: 1,
// colspan: 3
// }
// 這里要寫一個(gè)else的判斷,不然被合并列的原始數(shù)據(jù)會(huì)填充到合并之后的表格里
// 這個(gè)判斷是把合并的第3列,第4列的值省略,在合并的表格右邊直接填原先第5列的值,合并了幾列,就省略幾列的值
} else if (columnIndex === 2 || columnIndex === 3) {
return [0, 0]
}
}
}
合并多行的情況

arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
if (rowIndex === 1) {
// 合并第二行
if (columnIndex === 1) {
// 從第二列開(kāi)始
return [2, 3]
// 這里返回的是行和列的合并數(shù)量,可以返回一個(gè)數(shù)組,也可以返回一個(gè)對(duì)象,效果一樣
// 這里rowspan為2是行有兩行合并,colspan為3是列有3列合并,你要合并幾行幾列就寫上相應(yīng)的數(shù)字
// 這個(gè)判斷是把第一行的第3列,第4列的值省略,在合并的表格右邊直接填原先第5列的值,合并了幾列,就省略幾列的值
} else if (columnIndex === 2 || columnIndex === 3) {
return [0, 0]
}
} else if (rowIndex === 2 && (columnIndex === 1 || columnIndex === 2 || columnIndex === 3)) {
// 第二行的第2個(gè)數(shù),第3個(gè)數(shù),第4個(gè)數(shù)都要省略
return [0, 0]
}
}
PS: 這里寫的方法是基于數(shù)據(jù)確定的情況,如果數(shù)據(jù)是由后臺(tái)返回的情況,可以看一下我整理的另一篇關(guān)于表格合并方法的補(bǔ)充,http://www.dhdzp.com/article/161677.htm
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vuejs在v-for中,利用index來(lái)對(duì)第一項(xiàng)添加class的方法
下面小編就為大家分享一篇Vuejs在v-for中,利用index來(lái)對(duì)第一項(xiàng)添加class的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Vue?2源碼閱讀?Provide?Inject?依賴注入詳解
這篇文章主要為大家介紹了Vue?2源碼閱讀?Provide?Inject?依賴注入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
vue3項(xiàng)目打包成apk(android)詳細(xì)圖文教程
Vue本身是一個(gè)構(gòu)建用戶界面的漸進(jìn)式框架,不能直接打包成APK文件,但是你可以使用工具將Vue應(yīng)用打包成一個(gè)可以在Android設(shè)備上安裝的APK文件,這篇文章主要給大家介紹了關(guān)于vue3項(xiàng)目打包成apk(android)的相關(guān)資料,需要的朋友可以參考下2024-05-05
vue2.0開(kāi)發(fā)入門筆記之.vue文件的生成和使用
本篇文章主要介紹了vue2.0開(kāi)發(fā)入門筆記之.vue文件的生成和使用 ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
vue-admin-element項(xiàng)目突然就起不來(lái)了的解決
這篇文章主要介紹了vue-admin-element項(xiàng)目突然就起不來(lái)了的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue如何判斷數(shù)組中的對(duì)象是否包含某個(gè)值
這篇文章主要介紹了vue如何判斷數(shù)組中的對(duì)象是否包含某個(gè)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue使用Prism實(shí)現(xiàn)頁(yè)面代碼高亮展示示例
這篇文章主要為大家介紹了Vue使用Prism實(shí)現(xiàn)頁(yè)面代碼高亮展示示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

