Vue中动态显示表格内容

在项目中,我们可能会用到表格来显示不同的数据,表格显示数据,无非是列的内容不同,所以,我们可以考虑封装个公共的表格组件,动态得显示不同的数据
实现截图如下:

1.首先在项目中创建一个公共表格组件table.vue,代码如下

<template><!--这里放其他内容,表格等--><el-table :data="tableData" border  style="width: 100%;"v-loading="tableLoading" ><el-table-column  align="center" v-for="(th, key) in tableColumnsConfig" :key="key" :prop="th.prop" :label="th.label":width="th.width"  :show-overflow-tooltip="true" ><template slot-scope="scope"><div v-if="th.prop==''&&th.type=='index'">{{scope.$index+(cpage - 1) * psize + 1}}</div><div v-else-if="th.prop==''"><el-button  :type="btn.type=='del'?'danger':'primary'" v-for="(btn,index) in th.operate"  size="mini" :key="index" @click="btnHandle(scope.row,btn.type)">{{btn.name}}</el-button></div><div v-else><span>{{ scope.row[th.prop] }}</span></div></template></el-table-column></el-table>
</template>
<script>export default {name: 'refactor_table',props: {tableData: {type: Array,default: function() {return []}},/***  设置table 加载icon*/tableLoading: {type: Boolean,default: false},tableColumnsConfig: {type: Array,default: function() {return []}}},data(){return{cpage:1,psize:10,}},mounted(){/* if(this.tableData && this.tableData.length>0){this.tableLoading=false;} *//* console.log(this.tableColumnsConfig); */},methods: {btnHandle(row, type) {this.$emit("operateHandle", row, type)}}}
</script><style></style>

2.然后在建一个父组件,引入子组件table.vue,并把动态获取的表格数据传给table.vue

<template><div><refactor-table :table-data="tableData" :table-columns-config="tableColumns" :table-loading="loading" @operateHandle="tableOperateHandle"></refactor-table><pagination :currentPage="currentPage" :limit="limit" :total="total" :small="small"></pagination></div>
</template><script>import RefactorTable from './sub/table.vue';import Pagination from '@/components/Pagination/index.vue'export default {data() {return {loading: false,tableHeight: 300,tableData: [],tableColumns: [{label: '序号',width: '50',prop: '',type:"index"},{label: '节点id',width: '',prop: 'id'},{label: '农户名称',width: '',prop: 'name',},{label: '所属中心店',width: '',prop: 'grade',},],currentPage: 1,limit: 10,total: 0,small: true}},created() {this.loadingTable();},methods: {loadingTable() {// 初始化table 数据this.tableData = [{id: '1938238',name: '节点',grade: 'ERWFD'},{id: '3241',name: '节点B',grade: 'FDD'},{id: '8238',name: '节点C',grade: 'FVDFA'},{id: '3424',name: '节点',grade: 'ERWFD'},{id: '32ree',name: '节点B',grade: 'FDD'},{id: '821221',name: '节点C',grade: 'FVDFA'},{id: '89238',name: '节点',grade: 'ERWFD'},{id: '323432',name: '节点B',grade: 'FDD'},];// 最后增加一列为操作this.tableColumns.push({prop: '',label: '操作',width: 280,align: 'center',operate: [{type: 'add',name: '新增',},{type: 'del',name: '删除',},]});},/*** 接收table 组件操作时传入的参数* @param row {object} 所选行* @param type {String} 操作类型(add,del)*/tableOperateHandle(row, type) {console.log(row, type)}},components: {RefactorTable,Pagination},//接收子组件值handleCurrentChange(cpage) {this.currentPage = cpage;},handleSizeChang(psize) {this.limit = psize;}}
</script>

3.然后就可以实现表格内容动态显示啦~

Vue中动态显示表格内容相关推荐

  1. vue中table表格导出为图片格式

    vue中table表格点击下载为图片格式 实现思路:给页面中需要导出为图片的内容添加id名,调用封好的方法即可直接导出.以下是具体的实现方法 1.安装依赖 npm install --save htm ...

  2. 为何excel中数据无法计算机,电脑中excel表格内容无法复制的解决方法

    一位朋友反馈自己在Excel中录入完数据后想要进行复制,将工作表内容直接复制到另一个表中去,可是操作时却失败了.那么,这该怎么办呢?下面是小编给大家分享的电脑中excel表格内容无法复制的解决方法.有 ...

  3. vue 中展示PDF内容

    vue 中展示PDF内容 不久前有个需要改的需求,以前是直接根据链接让用户下载对应pdf文件来查看,最主要是给用户查看,然而这种并不是很安全的,其他用户可以进行下载或者使用pdf链接分享给其他人,所以 ...

  4. vue中打印表格,打印不全的问题

    vue中打印表格,打印不全的问题 html部分 <TableDetailsclass="table-box"ref="inventoryDetails"& ...

  5. python读取word文档中的表格内容

    1. 使用到的库 :docx(python_docx‑0.8.10‑py2.py3‑none‑any.whl) 下载地址:https://download.lfd.uci.edu/pythonlibs ...

  6. Vue 中的表格操作

    Vue 中的表格操作 在 Web 开发中,表格是非常常见的元素之一.在 Vue 中,我们可以使用一些组件和插件来实现表格的操作.在本文中,我们将介绍 Vue 中的表格操作的基本原理和用法,并给出一些实 ...

  7. Vue中实现表格隔行换色效果

    一.原理 在 Vue 中,进行表格行的循环输出时,一般使用 v-for 指令,每次循环都能得到该行的索引 index ,用每一行的索引除以2取余,余数等于1,可以使用一种颜色作为背景色,余数等于0,可 ...

  8. vue 中 vue-print-nb 表格打印不全的问题

    先安装 vue-print-nb npm install vue-print-nb --save 然后main.js引入 import Print from 'vue-print-nb' Vue.us ...

  9. vue中el-table插槽内容使用show-overflow-tooltip属性无法显示省略号问题-附解决方法

    文章目录 前言 一.问题描述 二.解决办法 总结 前言 好久没写博客了,之前说好的每日一更,现在已经快一个月了,还是人太懒了吧,终于找到工作了,在公司实习搞前端开发,具体是什么公司就不说了.为了实习工 ...

最新文章

  1. 运维管理工具+chef+puppet+ansible+SaltStack
  2. 怎样让项目经理更受企业和团队欢迎
  3. 释疑のABAP内表的比较
  4. 【❤️算法系列之二叉树的实现(包含前序、中序、后序遍历以及节点的查找和删除)❤️】
  5. A/B Matrix CodeForces - 1360G(思维构造)
  6. 【知识蒸馏】ICCV21_Channel-wise Knowledge Distillation for Dense Prediction
  7. linux 比较两个文件夹不同 (diff命令, md5列表)
  8. RPM是RedHat Package Manager(RedHat软件包管理工具)
  9. UCINET软件使用简介 ——主菜单功能简介1
  10. oracle11服务器卸载,Oracle 11g服务器与客户端卸载、安装
  11. Word打开以后界面很小的问题(office办公)
  12. 中间件 | 负载均衡策略
  13. 我在名牌大学毕业后的经历——曾经努力过,就不会后悔
  14. 2021 Java后端+大数据暑期实习大厂面经
  15. FPGA存储块,有没有使能Primitives output Register作用
  16. c语言求圆锥的表面积和体积_用C语言求圆锥体积
  17. The Open Group中国首届线上大会 专场三亮点解读
  18. 线性系统大作业——2.二阶倒立摆建模与控制系统设计(上)
  19. AI是怎么样的演算的呢?预测《权力游戏》中角色的生死
  20. RGB排列和Pentile排列有什么区别

热门文章

  1. VB编程的8个小技巧
  2. win7系统怎么关闭讲述人功能?
  3. C# ManagementObjectSearcher操作window案例详解
  4. random模块下的常用函数Python choices()方法练习
  5. (6) — ARC之对象转型 转自易飞扬
  6. ABB工业机器人大地坐标系修改案例
  7. 联邦学习的基本概念、三种框架和应用场景
  8. 企业如何提高IT项目管理的执行力
  9. Unity集成ShareSDK一键分享
  10. win10 下载docker慢