ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Day 189/200 前端Table 表头及列表内容动态生成

2022-01-29 18:35:21  阅读:174  来源: 互联网

标签:200 pagination title curPagination 表头 列表 组件 Table


1、需求

Table表格的表头,以及列表数据根据接口返回的数据动态生成列表。

2、分析

1)动态生成表头

  • 中间的表头使用子组件的形式,根据返回来的数据,动态拼接生成列表的表头。
  • 将左右两边的表头拼接生成一个大的表头对象。

2)动态生成表头以及对应的列表内容数据

需要将第几个表头的列表项添加上。

3、部分代码

1)页面组件

<vTable v-if="categorySum.length > 0" :tableColumn="columns" :tableData="categorySum"
    :pagination="pagination" @changePage="handleTableChange"></vTable>

2) 导入子组件

import vTable from '../common/Table'

3)拼接列表头及内容

this.linkHeaders.push({
    title: value.stageName + '/张(框)',
    children: [
      {
        title: '未领取',
        dataIndex: 'stageList[' + index + '].pendingImageCount'
      },
      {
        title: '进行中',
        dataIndex: 'stageList[' + index + '].doingImageCount'
      },
      {
        title: '已完成',
        dataIndex: 'stageList[' + index + '].doneImageObjectCount'
      }
    ]
  })
this.columns = this.categoryHeaders.concat(this.linkHeaders).concat(this.pmHeaders)

4) 子组件代码

这里会涉及到子组件调用父组件的内容。

<template>
<div>
   <a-table
    :columns="tableColumn"
    :row-key="record => record.id"
    :data-source="tableData"
    :pagination="curPagination"
    :bordered="true"
    size="small"
    @change="handleTableChange"
  >
  </a-table>
</div>
</template>

<script lang="ts">
export default {
  props: { tableColumn: Array, tableData: Array, pagination: Object },
  data () {
    return {
      curPagination: { ...this.pagination }
    }
  },
  methods: {
    handleTableChange (pagination, filters, sorter) {
      const pager = { ...this.curPagination }
      pager.current = pagination.current
      this.curPagination = pager
      this.$emit('changePage', pagination)
    }
  }
}
</script>

以上

标签:200,pagination,title,curPagination,表头,列表,组件,Table
来源: https://blog.csdn.net/xinghuowuzhao/article/details/122746374

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有