elementui的table表格问题?

elementui的table表格问题?
这种表单用elementui table要怎么排


回答:

v-for 嵌套循环一下表头,然后因为你需要多个合计值,所以需要自己写合计,并不能直接用 show-summary,需要用 computed 根据 sourceDate 来计算,或者写一个函数来计算行数据、两个合计值 以及需要配合 span-method 方法的 rowspancolspan 合并值值。

最终你组装完的表格数据结构是这样的

var tableData = [

{ month: '1月', rowspan: 1, user1_item1: 1, user1_item2: 1, user1_item3: 1, user2_item1: 1, user2_item2: 1, user2_item3: 1, user3_item1: 1, user3_item2: 1, user3_item3: 1 },

{ month: '2月', rowspan: 1, user1_item1: 0, user1_item2: 0, user1_item3: 0, user2_item1: 0, user2_item2: 0, user2_item3: 0, user3_item1: 0, user3_item2: 0, user3_item3: 0 },

...

{ month: '合计', rowspan: 2, user1_item1: 1, user1_item2: 1, user1_item3: 1, user2_item1: 1, user2_item2: 1, user2_item3: 1, user3_item1: 1, user3_item2: 1, user3_item3: 1 },

{ month: '', rowspan: 0, user1_item1: 3, user1_item2: 0, user1_item3: 0, user2_item1: 3, user2_item2: 0, user2_item3: 0, user3_item1: 3, user3_item2: 0, user3_item3: 0 }

]

其实 rowSpan 可以不要,但是既然你都需要去组装了就还是加上的好,最后 tableSpanMethod 里面少写一个判断。

贴上来 templatemethods 的伪代码:

<template>

<el-table :data="testTableData" :span-method="tableSpanMethod" border>

<el-table-column prop="month" width="80" align="center" />

<el-table-column v-for="user in userList" :key="user.id" :label="user.realname" prop="user" align="center">

<el-table-column v-for="item in checkList" :key="item.id" :label="item.label" :prop="user.id+'_'+item.id" align="center" />

</el-table-column>

</el-table>

</template>

<script>

export default {

data(){

tableData: [],

userList: [{ id: 'user1', realname: '张三' }, { id: 'user2', realname: '李四' }, { id: 'user3', realname: '王五' }],

checkList: [{ id: 'item1', label: '维修' }, { id: 'item2', label: '巡检' }, { id: 'item3', label: '报告' }]

},

methods:{

tableSpanMethod({ row, column, rowIndex, columnIndex }) {

const checkLen = this.checkList.length

// 首列跨行判断

if (columnIndex === 0) return [row.rowspan, row.rowspan ? 1 : 0]

// 尾行合并判断

if (rowIndex === this.tableData.length - 1 && !!columnIndex) {

// columnIndex - 1 如果能被 检查项目数 整除则跨列,不能被整除则不展示

if (Number.isInteger((columnIndex - 1) / checkLen)) return [1, checkLen]

return [0, 0]

}

return [1, 1]

},

}

}

</script>

elementui的table表格问题?

以上是 elementui的table表格问题? 的全部内容, 来源链接: utcz.com/p/933305.html

回到顶部