Ant-Design-Vue的tabale組件(expandedRowRender)嵌套應用


需求

開發一個后台查看上下級推廣關系的數據展示(我一個后端干這么復雜的事情),關系有好幾層,用的是ant design vue框架,剛好看到有---表格嵌套,不過官方文檔寫的很簡單,每一組都是寫的固定的假數據,網上查看帖子找到一個方法

在expand事件中給子table賦值,不過有個問題是,每個上級下面的子數據都一樣,只能繼續網上扒拉帖子

 

 

功夫不負有心人,讓我看到一篇文章很不錯 原文地址:https://blog.csdn.net/qq_35771567/article/details/101052447

先看下官方的例子,內外層的table基本都是正常寫的(行列數據都是指定的)

不同的是內層table使用了兩個參數,

 

 

 

沒錯,重點是 slot="expandedRowRender"slot-scope="record, index, indent, expanded" 這兩個參數

使用

第一個參數固定不用動,說下第二個參數slot-scope

在這里面又又有四個參數,重點是第一個小參數

  • record 外層table的數據記錄,或者說這一行的所有數據,如: {outName: '', outId: '', innerData: [{},{}]}
  • index 索引,0、1、2…
  • indent 縮進(什么玩意啊)
  • expanded 展開了沒有

所以,看到這里,應該就明白了吧,咱就用第一參數

就是把record中的數據作為dataSource賦給內層的table

就是把record中的數據作為dataSource賦給內層的table

就是把record中的數據作為dataSource賦給內層的table


重要的操作復制三遍

示例

 

 

<template>
  <div>
    <a-table :pagination="{defaultPageSize: 999, hideOnSinglePage: true }"
    :columns="outColumns" bordered :dataSource="dataGroups" :rowKey="item => item.groupId"
    >
      <a-table :pagination="{defaultPageSize: 999, hideOnSinglePage: true }"
      :columns="columns"
      slot="expandedRowRender" slot-scope="AAAAAAAAAAAA"
      :dataSource="AAAAAAAAAAAA.groupItem" :rowKey="item => item.pushuserName"
      :locale="{emptyText: '該類別 暫無節點'}"
      >
      <template slot="sex" slot-scope="text">{{text || '你是太監嗎'}}</template>
      </a-table>
    </a-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dataGroups: [
        {
          groupName: '第一組',
          groupId: 'abc001',
          groupItem: [
            {
              id: 'aa3r',
              name: '張三',
              sex: '女',
              age: 19,
            },
            {
              id: 'sadfv',
              name: '張三',
              sex: '',
              age: 19,
            },
            {
              id: 'adbrb',
              name: '張三',
              sex: '男',
              age: 19,
            },
          ],
        },
        {
          groupName: '第二組',
          groupId: 'abc002',
          groupItem: [
            {
              id: 'ewtgfc',
              name: '李四',
              sex: '男',
              age: 19,
            },
            {
              id: 'adsbvx',
              name: '李四',
              sex: '男',
              age: 19,
            },
            {
              id: 'abazx',
              name: '李四',
              sex: '男',
              age: 19,
            },
          ],
        },
        {
          groupName: '第三組',
          groupId: 'abc003',
          groupItem: [
            {
              id: 'abdszcxx',
              name: '王五',
              sex: '男',
              age: 19,
            },
            {
              id: 'advzx',
              name: '王五',
              sex: '男',
              age: 19,
            },
            {
              id: 'advzxxxc',
              name: '王五',
              sex: '男',
              age: 19,
            },
          ],
        },
        {
          groupName: '第四組',
          groupId: 'abc004',
          groupItem: [
            {
              id: 'aaaaaav',
              name: '趙六',
              sex: '男',
              age: 19,
            },
            {
              id: 'abdddddddd',
              name: '趙六',
              sex: '男',
              age: 19,
            },
            {
              id: 'abvzxsad',
              name: '趙六',
              sex: '男',
              age: 19,
            },
          ],
        },
      ],
      outColumns: [{
        title: '小組名稱',
        dataIndex: 'groupName',
      }, {
        title: '小組ID',
        dataIndex: 'groupId',
      }],
      columns: [
        {
          title: '組員姓名',
          dataIndex: 'name',
        }, {
          title: '性別',
          dataIndex: 'sex',
          scopedSlots: { customRender: 'sex' },
        }, {
          title: '年齡',
          dataIndex: 'age',
        },
      ],
    }
  },
}
</script>

是不是很一目了然

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM