由于最近开发公司的后台项目 遇到很多的表格的页面 思来想去 封装一下 浅浅封装表格组件吧!

1.父组件代码  labesArr中 主要写一写表格 表头的配置项相关一些

2.子组件代码 主要是控制渲染 以及 做一些判断

完整代码

1.父组件

<template>

<div>

<tables :tableData="tableData" @upArr="update"></tables>

</div>

</template>

<script>

import tables from '../view/tables/index.vue';

export default {

data() {

return {

tableData: {

// 这个里面全部写表头的配置项

labesArr: [

{ label: '序号', wdith: 100 ,type:'selection'},

{ label: '校区代码', wdith: 100,type:'' },

{ label: '校区名称', wdith: 100,type:'' },

{ label: '校区地址', wdith: 100,type:''  },

{ label: '负责人', wdith: 100,type:''  },

{ label: '联系方式', wdith: 100,type:''  },

{ label: '电子邮箱', wdith: 100,type:''  },

{ label: '操作', wdith: 100,type:''  },

],

datas: [

{

serial: 0,

schoolCode: '0',

studentNmae: '王八屯',

studentAddres: '王八路',

functionary: '陈剑',

concartPhone: '1111',

email: '2222',

width: 100,

},

{

serial: 1,

schoolCode: '0',

studentNmae: '王八屯',

studentAddres: '王八路',

functionary: '陈剑',

concartPhone: '1111',

email: '2222',

width: 100,

},

{

serial: 2,

schoolCode: '0',

studentNmae: '王八屯',

studentAddres: '王八路',

functionary: '陈剑',

concartPhone: '1111',

email: '2222',

width: 100,

},

{

serial: 3,

schoolCode: '0',

studentNmae: '王八屯',

studentAddres: '王八路',

functionary: '陈剑',

concartPhone: '1111',

email: '2222',

width: 100,

},

{

serial: 4,

schoolCode: '0',

studentNmae: '王八屯',

studentAddres: '王八路',

functionary: '陈剑',

concartPhone: '1111',

email: '2222',

width: 100,

},

{

serial: 5,

schoolCode: '0',

studentNmae: '王八屯',

studentAddres: '王八路',

functionary: '陈剑',

concartPhone: '1111',

email: '2222',

width: 100,

},

],

},

};

},

methods: {

update(row) {

console.log(row, '我是父组件触发的事件哦');

let ids = row.serial;

console.log(this.tableData.datas, 'tableData');

this.tableData.datas.forEach((item, index) => {

if (item.serial == ids) {

this.tableData.datas.splice(index, 1);

}

});

},

},

components: {

tables,

},

};

</script>

2.子组件

<template>

<div>

<el-table

ref="multipleTable"

:data="dataTables"

tooltip-effect="dark"

style="width: 100%"

@selection-change="handleSelectionChange"

>

<el-table-column type="selection" width="55"> </el-table-column>

<el-table-column

v-for="(item, index) in dataLable"

:key="index"

:label="item.label"

:width="item.width"

>

<template slot-scope="scope">

<span>

<span v-if="item.label == '序号'">{{ scope.row.serial }}</span>

<span v-if="item.label == '校区代码'">{{

scope.row.schoolCode

}}</span>

<span v-if="item.label == '校区名称'">{{

scope.row.studentNmae

}}</span>

<span v-if="item.label == '校区地址'">{{

scope.row.studentAddres

}}</span>

<span v-if="item.label == '负责人'">{{

scope.row.functionary

}}</span>

<span v-if="item.label == '联系方式'">{{

scope.row.concartPhone

}}</span>

<span v-if="item.label == '电子邮箱'">{{ scope.row.email }}</span>

<span v-if="item.label == '操作'"

><button @click="changArr(scope.row)">1234</button></span

>

</span>

</template>

</el-table-column>

</el-table>

</div>

</template>

<script>

export default {

props: {

tableData: Object,

},

data() {

return {

multipleSelection: [],

tableArr: [],

dataTables: [],

dataLable: [],

};

},

methods: {

// 自定义事件

changArr(row) {

console.log(row,'我是子组件触发的事件!!')

this.$emit('upArr',row);

},

toggleSelection(rows) {

if (rows) {

rows.forEach((row) => {

this.$refs.multipleTable.toggleRowSelection(row);

});

} else {

this.$refs.multipleTable.clearSelection();

}

},

handleSelectionChange(val) {

console.log(val, '000');

let arrs = val;

let ids = [];

arrs.forEach((item) => {

ids.push(item.date);

});

console.log(ids, '0');

},

},

mounted() {

this.dataTables = this.tableData.datas; //表格数据

this.dataLable = this.tableData.labesArr; //表头数据

},

};

</script>

然后 子组件 通过自定义事件 在操作一栏 进行自定义事件 通知父组件 进行 删除修改以及一系列的操作

在这里 大概就完成了    刚毕业 还是个菜鸡   还有很多地方做的不好  轻喷!!

elementui 表格的简单封装相关推荐

  1. elementui表格复制_封装element-ui表格,我是这样做的

    日日加班至夜半,环视周围无人走: 明晚八点准时走,谁不打卡谁是狗. 使用过element-ui的表格的同学应该都有这样的体会,做一个简单的表格还比较容易,但如果这个表格包含了顶部的按钮,还有分页,甚至 ...

  2. [Vue]如何实现一个简单的表格数据筛选查找 (根据ElementUI表格展示)(数组筛选)

    [Vue]如何实现一个简单的表格数据筛选查找 (根据ElementUI表格展示)(数组筛选) 能够解决的问题 在一个完整的数据数据渲染的 elementui 表格组件中,筛选输出数据 目录 布局代码 ...

  3. elementui 表格中单元格自定义功能

    客户相让表格的可操作空间变得更大,比如说可以修改表格内容(双击之后出现input),点击某一单元格可以弹窗等等,让一切可以需要的功能再单击单元格中实现. 其实在elementui的官方文档中也可以找到 ...

  4. elementUI表格头添加图标-鼠标移入显示el-tooltip提示信息

    目的:elementUI表格头添加图标-鼠标移入显示el-tooltip提示信息 项目经理要求表格头部添加一个图标,鼠标移入提示用户字段包含的内容信息,以前没有开发过,故总结一下. 添加方法: 方法一 ...

  5. ElementUI表格数据批量选中操作

    ElementUI表格数据批量选中操作 最近做项目时碰到个需求,要对表格中的数据批量处理,花了点时间最终解决了这个问题 elementui表格中封装了多选框,在el-column中选择type为sel ...

  6. element-ui 表格 修改后, 表格里面的数据 页面不实时更新问题 完美解

    element-ui 表格 修改后 表格里面的数据后 页面不实时更新问题 完美解 想要达到的效果:点击"更多"后,"更多"隐藏,删除和补仓显示:(有时间可全部看 ...

  7. vue+element-ui表格实现隐私信息的加密展示和解密操作

    vue+element-ui表格实现隐私信息的加密展示和解密操作(AES方法) 注:加密数据和密匙都由后端接口返回,这里仅对加密数据进行解密展示. 解密工具 : crypto-js 地址 : http ...

  8. elementUI表格中 使用 jszip+file-saver+qrcode展示二维码以及批量下载二维码(包括过程中的坑)

    需求:在elementUI表格中显示二维码,以及批量下载二维码 上图: 首先我们先做好前置工作npm下载   qrcode和 jszip和file-saver, 然后qrcode我封装成一个组件sm- ...

  9. 前端elementui表格拖拽sortablejs避坑,vue2前端表格列拖拽解决方案

    sortablejs sortablejs是目前比较多人用的elementui表格拖拽的插件,但是这个插件的bug很不友好:主要bug是拖拽列后不能调整列的宽,处理这个bug只能是不让用户调整列宽. ...

最新文章

  1. java椭圆按钮_JAVA按钮重载如何实现椭圆按钮
  2. multipart/form-data ajax 提交问题(未解决)
  3. [UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
  4. python2.7练习小例子(二)
  5. 使用Windows PowerShell管理虚拟交换机
  6. VBS 脚本中的字典、动态数组、队列和堆栈
  7. 判断用户输入的日期是否为当前日期
  8. 设计模式——责任链模式
  9. Python入门教程之Python保留字符大全
  10. ppt课堂流程图_除了直线能设计PPT,没想到曲线也实用,太赞了!
  11. 机器学习程序猿在Linux猩球的生存指南
  12. UNIX环境高级编程——线程同步之条件变量以及属性
  13. Linux开发:error: ‘clockid_t’ has not been declared
  14. 【自然语言处理】浅谈语料库
  15. 2021年认证杯-数学建模
  16. java 计算间隔天数,java 计算间隔的天数
  17. 双月楼月饼荣获茂名在线月饼品鉴佳绩
  18. keil配色(黑色背景)
  19. 计算机教学能力提升体会,信息化教学能力培训心得范文(精选4篇)
  20. Mysql-可重复读的隔离级别在什么情况下会出现幻读

热门文章

  1. 用mybatis的generator自动生成代码--坑我都走了一遍,后面的同学别踩了
  2. 团宝网员工再次被休假 合作商家欲联合起诉
  3. 微服务之服务监控篇 ActuatorAdmin
  4. 【LaTeX】LaTeX新手入门教程-基础排版
  5. arcgis10.2跨域解决方案
  6. android 加载网络图片,并压缩bitmap内存大小
  7. java继承(extends关键字)
  8. 实践练习2:手动部署 OceanBase 集群
  9. C语言实现扫雷小游戏(具体步骤+具体说明)
  10. Unity中的网络编程