vxe-table 实现表格数据分组,按指定字段数据分组

  • vxe-table 实现表格数据分组,按指定字段数据分组已关闭评论
  • 22 次浏览
  • A+
所属分类:Web前端
摘要

实现表格数据分组,按指定字段数据分组,使用树结构来实现分组功能。官网:https://vxetable.cn

实现表格数据分组,按指定字段数据分组,使用树结构来实现分组功能。

官网:https://vxetable.cn

vxe-table 实现表格数据分组,按指定字段数据分组

<template>   <div>     <vxe-grid v-bind="gridOptions"></vxe-grid>   </div> </template>  <script> import XEUtils from 'xe-utils' const allList = [   { id: 10000, name: 'Test1', type: 'mp3', size: '1024', date: '2020-08-01' },   { id: 10050, name: 'Test2', type: 'mp4', size: '0', date: '2021-04-01' },   { id: 24300, name: 'Test3', type: 'avi', size: '1024', date: '2020-03-01' },   { id: 20045, name: 'Test4', type: 'html', size: '600', date: '2021-04-01' },   { id: 10053, name: 'Test5', type: 'avi', size: '0', date: '2021-04-01' },   { id: 24330, name: 'Test6', type: 'txt', size: '25', date: '2021-10-01' },   { id: 21011, name: 'Test7', type: 'pdf', size: '512', date: '2020-01-01' },   { id: 22200, name: 'Test8', type: 'js', size: '1024', date: '2021-06-01' },   { id: 23666, name: 'Test9', type: 'xlsx', size: '2048', date: '2020-11-01' },   { id: 23677, name: 'Test9', type: 'js', size: '1024', date: '2021-06-01' },   { id: 23671, name: 'Test3', type: 'js', size: '1024', date: '2021-06-01' },   { id: 23672, name: 'Test6', type: 'js', size: '1024', date: '2021-06-01' },   { id: 23688, name: 'Test8', type: 'js', size: '1024', date: '2021-06-01' },   { id: 23681, name: 'Test2', type: 'js', size: '1024', date: '2021-06-01' },   { id: 23682, name: 'Test8', type: 'js', size: '1024', date: '2021-06-01' },   { id: 24555, name: 'Test1', type: 'avi', size: '224', date: '2020-10-01' },   { id: 24566, name: 'Test2', type: 'js', size: '1024', date: '2021-06-01' },   { id: 24577, name: 'Test1', type: 'js', size: '1024', date: '2021-06-01' } ] export default {   data () {     const gridOptions = {       height: 400,       border: 'inner',       showOverflow: true,       treeConfig: {},       columns: [         { field: 'name', title: 'Name', treeNode: true },         { field: 'size', title: 'Size' },         { field: 'type', title: 'Type' },         { field: 'date', title: 'Date' }       ],       data: allList     }     return {       gridOptions,       idKey: 1     }   },   methods: {     handleGroupByField (list, field) {       const result = []       XEUtils.each(XEUtils.groupBy(list, field), (childList, field) => {         result.push({           id: this.idKey++,           name: field,           type: '',           size: '',           date: '',           children: childList         })       })       return result     },     listToGroup (field) {       this.gridOptions.data = field ? this.handleGroupByField(allList, field) : allList     }   },   created() {     this.listToGroup('date')   } } </script>