当前位置:网站首页>table 组件指定列合并行方法
table 组件指定列合并行方法
2022-07-02 06:22:00 【秦时明月之安康】
大多数table组件只提供了一个合并行或者合并列的抽象方法,例如 element ui 组件,
该方法的参数解释及其用法如下,
看得出来,rowspan代表每一行数据实际占用的行数,colspan代表每一行数据实际占用的列数,我们可以基于原始数据封装如下方法,
export const getSpanMethodData = (data = [], columns = [ ]) => {
let mergeColumns = {
} // 用来记住合并列时数据的索引和重复的次数
let pos = {
} // 用来记录需要合并的列每次出现重复时,重复的次数
columns.forEach(p => {
mergeColumns[p] = []
pos[p] = 0
})
for (let i = 0; i < data.length; i++) {
if (i === 0) {
columns.forEach(p => {
mergeColumns[p].push(1)
pos[p] = 0
})
} else {
columns.forEach((p, index) => {
let obj = {
curr: '',
prev: '',
}
for (let j = 0; j <= index; j++) {
obj.curr += JSON.stringify(data[i][columns[j]])
obj.prev += JSON.stringify(data[i - 1][columns[j]])
}
if (obj.curr === obj.prev) {
mergeColumns[p][pos[p]] += 1
mergeColumns[p].push(0)
} else {
mergeColumns[p].push(1)
pos[p] = i
}
})
}
}
return mergeColumns
}
当执行span-method方法的时候,就可以这样写,
handleSpan ({
row, column, rowIndex, columnIndex, }) {
if (columnIndex === 0) {
const _row = this.table.spanArr[column.key][rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col,
}
}
},
边栏推荐
- Tensorrt command line program
- Cglib agent - Code enhancement test
- Sublime Text 配置php编译环境
- Warp shuffle in CUDA
- Code skills - Controller Parameter annotation @requestparam
- Distributed transactions: the final consistency scheme of reliable messages
- Nodejs - Express middleware modification header: typeerror [err_invalid_char]: invalid character in header content
- Apt command reports certificate error certificate verification failed: the certificate is not trusted
- Win电脑截图黑屏解决办法
- 默认google浏览器打不开链接(点击超链接没有反应)
猜你喜欢
随机推荐
Cglib agent - Code enhancement test
Selenium+msedgedriver+edge browser installation driver pit
Render minecraft scenes into real scenes using NVIDIA GPU
Golang -- map capacity expansion mechanism (including source code)
No process runs when querying GPU, but the video memory is occupied
20201025 Visual Studio2019 QT5.14 信号和槽功能的使用
Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决
Sparse array (nonlinear structure)
Android - Kotlin 下使用 Room 遇到 There are multiple good constructors and Room will ... 问题
由于不正常断电导致的unexpected inconsistency;RUN fsck MANUALLY问题已解决
广告业务Bug复盘总结
Name six schemes to realize delayed messages at one go
Présence d'une panne de courant anormale; Problème de gestion de la fsck d'exécution résolu
MySql索引
Pytest (1) case collection rules
selenium的web自动化中常用的js-修改元素属性翻页
20210306转载如何使TextEdit有背景图片
Detailed definition of tensorrt data format
Linux MySQL 5.6.51 Community Generic 安装教程
QQ email cannot receive the email sent by Jenkins using email extension after construction (timestamp or auth...)









