Element + Vue 封装的table组件,可动态生成列,可通过npm进行安装

 已更新至npm,实现多级表头、筛选、排序、展开行,详情请看bo-tablehttps://www.npmjs.com/package/bo-table

 实现效果:

Element + Vue 封装的table组件,可动态生成列,可通过npm进行安装_第1张图片

 只需要简单的引用,给组件传递列表数据、表头数据就好了(我这里列写的比较多,所以看起来代码行数多 QaQ):

Element + Vue 封装的table组件,可动态生成列,可通过npm进行安装_第2张图片


 可通过传入数据来动态生成列,使用方便

 目前完成的功能:

  • 序号、选中行
  • 行(单击、双击)事件
  • 合计(可默认计算当前页合计【相加】,也可以通过父组件传入对应合计值进来)
  • 固定列、固定头
  • 行展示数据使用slot插入,prop为slot-name
  • 列表排序
  • 多级表头
  • 展开行
  • 筛选

目前缺失、常见的功能:

  • 表格合并

全局引用表格组件以及表格列,因为存在多级表头,设计到递归,所以子组件也要全局注册,方便子组件引用自身,递归表格列使用了 vue-fragment 无渲染组件替代不能嵌套的问题。

// vue无渲染标签
import Fragment from "vue-fragment";
Vue.use(Fragment.Plugin);

// 自定义表格组件
import bTable from "@/components/bTable";
Vue.component("bTable", bTable);

// 自定义表格组件--表格列
import ChildColumn from "@/components/bTable/ChildColumn";
Vue.component("ChildColumn", ChildColumn);

// 分页组件
import Pagination from "@/components/Pagination";
Vue.component("pagination", Pagination);

主体index.vue代码:




表格子组件:表格列 ChildColumn.vue




分页组件:






 引用组件:

  • 可以通过操作 headList 实现动态展示列的效果
  • 通过slot自定义表格内容展示(默认show-overflow-tooltip = true)



你可能感兴趣的:(element插件,前端,vue.js,elementui,javascript,html)