基于ElementUI table表格 二次封装

基于ElementUI table表格 二次封装

table 组件

<template>
  <!--table组件-->
  <div class="com_table">
    <el-table
      :data="TableData"
      ref="TableData"
      @selection-change="handleSelectionChange"
      v-bind="TableTree"
      :header-cell-style="{ background: '#f1f4f8', color: '#90A6BA' }"
    >
      <!--table列-->
      <template v-for="(colConfig, index) in TableHeader">
        <!--如果插入列-->
        <slot v-if="colConfig.slot" :name="colConfig.slot"></slot>

        <template v-else-if="colConfig.children && colConfig.children.length > 0">
          <el-table-column v-bind="colConfig" :key="index" align="center">
            <template v-for="(item, i) in colConfig.children">
              <el-table-column v-bind="item" :key="i" align="center"></el-table-column>
            </template>
          </el-table-column>
        </template>

        <el-table-column v-else v-bind="colConfig" :key="index" align="center"></el-table-column>
      </template>
    </el-table>
  </div>
</template>

<script>
/**
 * 数据示例
 * 
 * TableData ---正常table数据
 * 
 * TableData:[{deptId:"",deptName:""}]
 * 
 *TableHeader ---table表头数据配置
 *
 *  TableHeader: [
        { type: "selection" },  ==》多选框配置
        { prop: "deptId", label: "部门id" },
        { prop: "deptName", label: "部门名称" },
        { slot: "opt" }    ==》插槽配置
      ],

 *TableTree --- 配置table树属性
 *  TableTree: {
            "row-key": "deptId",  ==>table树id
            border: true,  表格线
            "default-expand-all": true, ==>table树是否全部展开
            "tree-props": { children: "children", hasChildren: "hasChildren" },
            "show-overflow-tooltip":true  ==>内容过长隐藏
          }
 */
export default {
  name: "Table",
  props: ["TableData", "TableHeader", "TableTree"],
  data() {
    return {
      selectedId: []
    };
  },
  methods: {
    handleSelectionChange(val) {
      this.$parent.handleSelectionChange(val);
    }
  }
};
</script>

<style>
.com_table {
  width: 100%;
  height: 100%;
}
</style>

使用

import Table from "@/components/Table/Table";

<Table :TableData="mnueTree" :TableHeader="TableHeader" :TableTree="TableTree"/>

在这里插入图片描述效果图

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值