Elemnt ui 组件封装(table)
<template>
<div class="table">
<el-table
:data="tableData2"
:border="tableConfig.border"
style="min-width: 800px"
:size="tableConfig.size"
:cell-style="tableConfig.cellStyle"
:header-cell-style="tableConfig.headCellStyle"
:stripe="tableConfig.stripe"
>
<slot name="col"></slot>
<el-table-column
v-for="(col, index) in colsData"
:prop="col.prop"
:key="col.prop"
:label="col.label"
:width="tableConfig.colWidth"
>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<slot name="operate">
<el-button-group>
<el-button
style="margin-right: 20px"
type="primary"
size="small"
@click="handleEdit(scope.row)"
>编辑</el-button
>
<el-button
type="warning"
size="small"
@click="handleDelete(scope.row)"
>删除</el-button
>
</el-button-group>
</slot>
</template>
</el-table-column>
</el-table>
<el-pagination
style="margin-top: 20px"
v-if="tableConfig.pagination"
:currentPage="currentPage"
:page-size="pageSize"
:page-sizes="[5, 10, 20, 30]"
background
layout="sizes, prev, pager, next"
:total="tableData.length"
@size-change = "handleSizeChange"
@current-change = "handleChange"
>
</el-pagination>
</div>
</template>
<script>
export default {
name: "rTable",
data() {
return {
currentPage: 1,
pageSize: 5
}
},
computed: {
tableData2() {
return this.tableData.slice((this.currentPage-1)*this.pageSize,this.currentPage*this.pageSize);
}
},
props: {
tableData: {
type: Array,
required: true,
},
tableConfig: {
type: Object,
//表单配置
default: function() {
return {
border: true,
size: "small",
cellStyle: { textAlign: "center" },
headCellStyle: { textAlign: "center" },
stripe: true,
colWidth: "180",
//是否显示分页
pagination: true
};
},
},
colsData: {
type: Array,
required: true,
}
},
methods: {
handleEdit: function (row) {
this.$emit("edit", row);
},
handleDelete: function (row) {
this.$emit("delete", row);
},
//页码改变时触发
handleSizeChange: function(val) {
this.pageSize = val;
},
handleChange(val) {
this.currentPage = val;
}
},
mounted() {},
};
</script>
<style lang="scss" scoped></style>
Elemnt ui 组件封装(table)的更多相关文章
- Elemnt ui 组件封装(form)
<template> <el-form class="form" :inline="formConfig.inline" :model=&qu ...
- 前端如何搭建vue UI组件库/封装插件(从零到有)
需求 因之前是做外包项目居多,经常用到相同的组件,之前的办法是在一个项目中写一个组件,其他项目直接将compents下的组件复制,粘贴到项目中使用,缺点是维护起来,改一个项目,其他项目也需要修改,所以 ...
- Vue + Element-ui实现后台管理系统(5)---封装一个Form表单组件和Table表格组件
封装一个Form表单组件和Table组件 有关后台管理系统之前写过四遍博客,看这篇之前最好先看下这四篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-syste ...
- (Element UI 组件 Table)去除单元格底部的横线
Element UI 组件 Table 有一个属性 border,添加它可以增加纵向边框,但是无法控制横线边框,因此即使是最简单的 el-table,也会包含一个底部横线. 这个底部横线其实是一个 b ...
- Vue + Element UI 实现权限管理系统 (功能组件封装)
组件封装 为了避免组件代码的臃肿,这里对主要的功能部件进行封装,保证代码的模块化和简洁度. 组件结构 组件封装重构后,试图组件结构如下图所示 代码一览 Home组件被简化,包含导航.头部和主内容三个组 ...
- Vue + Element UI 实现权限管理系统 前端篇(七):功能组件封装
组件封装 为了避免组件代码的臃肿,这里对主要的功能部件进行封装,保证代码的模块化和简洁度. 组件结构 组件封装重构后,试图组件结构如下图所示 代码一览 Home组件被简化,包含导航.头部和主内容三个组 ...
- [开源] 基于Layui组件封装的后台模版,HG-Layui-UI通用后台管理框架V1.0版
HG框架简介 HG-Layui-UI框架,是基于layui最新版UI搭建的一套通用后台管理框架,借鉴了市面上各大主流框架风格,采用iframe标签页实现,保留了传统开发模式的简单实用性. 为快速开发减 ...
- 造个自己的Vue的UI组件库类似Element
前言 随着前端的三大框架的出现,组件化的思想越来越流行,出现许多组件库.它能够帮助开发者节省时间提高效率, 如React的Ant-design,Vue的iView,Element等,它们的功能已经很完 ...
- Bootstrap Blazor 组件介绍 Table (一)自动生成列功能介绍
Bootstrap Blazor 是一套企业级 UI 组件库,适配移动端支持各种主流浏览器,已经在多个交付项目中使用.通过本套组件可以大大缩短开发周期,节约开发成本.目前已经开发.封装了 70 多个组 ...
随机推荐
- 《前端运维》三、Docker--1镜像与容器
一.基本概念 如果我们想要让软件运行起来,首先要保证操作系统的设置,其次还需要依赖各种组件和库的正确安装.那么虚拟机就是一种带环境安装的一种解决方案,它可以实现在一种操作系统里面运行另外一种操作系统, ...
- 数据库篇:mysql日志类型之 redo、undo、binlog
前言 可以说mysql的多数特性都是围绕日志文件实现,而其中最重要的有以下三种 redo 日志 undo 日志 binlog 日志 关注公众号,一起交流:微信搜一搜: 潜行前行 1 redo日志 in ...
- Prometheus+alertmanager告警配置-2
prometheus 告警 prometheus 通过alertmanager进行告警 实现监控告警的步骤: 在prometheus中定义告警规则rule_files alertmanager配置告警 ...
- Jquery是什么?有什么作用?
Jquery是继prototype之后又一个优秀的Javascrīpt框架.它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safar ...
- 面试问题之计算机网络:HTTP和HTTPS的区别
https://blog.csdn.net/qq_38289815/article/details/80969419
- java线程池源码分析
我们在关闭线程池的时候会使用shutdown()和shutdownNow(),那么问题来了: 这两个方法又什么区别呢? 他们背后的原理是什么呢? 线程池中线程超过了coresize后会怎么操作呢? 为 ...
- MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐 级之间的区别?
SQL 标准定义的四个隔离级别为: 1.read uncommited :读到未提交数据 2.read committed:脏读,不可重复读 3.repeatable read:可重读 4.seria ...
- Grep 命令有什么用? 如何忽略大小写? 如何查找不含 该串的行?
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印 出来. grep [stringSTRING] filename grep [^string] filename
- 学习heartbeat-05 实现web服务高可用
一.环境介绍 说明:所有案例在虚拟机(VMware)上完成 操作系统:centos 6.5 64bit 高可用软件:heartbeat 3.0.4 Web应用服务器:apache httpd 2.2. ...
- centos 安装solr6
1.到solr官网下载.tgz 结尾的文件 2.tar zxvf solr*.tgz 解压文件 3.进入solr的解压目录里的bin目录 执行 ./solr start -force 执行成功后 可访 ...