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 多个组 ...
随机推荐
- unittest 测试用例实现
unittest框架结构 test_case: 测试套件,每一个.py文件代表一个测试用例,测试用例以test开头,否则框架读取不到测试用例 __init__.py是做什么的? 要弄明白这个问题,首先 ...
- IDEA 配置Tomcat乱码解决方法
问题:页面没有乱码,但是通过http请求的js文件会乱码,原因是由于 CharacterEncodingFilter 只会处理Servlet请求,不会处理静态文件的响应编码,所以这里需要进一步的配置. ...
- 序列化接口的id有什么用?
反序列化Java对象时必须提供该对象的class文件,现在的问题是随着项目的升级,系统的class文件也会升级,Java如何保证两个class文件的兼容性? Java序列化机制允许为序列化类提供一个p ...
- SpringDataJdbc使用数据库默认值的解决方法
SpringDataJdbc提供了 @ReadOnlyProperty 注解,这会造成由Repository保存的实体会忽略这个字段的值进行保存,进而采用数据库的默认值操作:而查询时这个字段也是能够查 ...
- Zookeeper 保证了如下分布式一致性特性?
1.顺序一致性 2.原子性 3.单一视图 4.可靠性 5.实时性(最终一致性) 客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了 监听器,这个监听器也是由所连接的 zookeep ...
- Spring工作原理:初识SpringMVC
1.SpringMVC简介 SpringMVC是Spring框架的一个模块.SpringMVC和Spring无需通过中间层进行整合.是一个轻量级的,基于请求响应的MVC框架. 2.1.什么是MVC? ...
- 5-Pandas数据分组的函数应用(df.apply()、df.agg()和df.transform()、df.applymap())
将自己定义的或其他库的函数应用于Pandas对象,有以下3种方法: apply():逐行或逐列应用该函数 agg()和transform():聚合和转换 applymap():逐元素应用函数 一 ...
- 4.4 ROS节点名称重名
4.4 ROS节点名称重名 场景:ROS 中创建的节点是有名称的,C++初始化节点时通过API:ros::init(argc,argv,"xxxx");来定义节点名称,在Pytho ...
- 《剑指offer》面试题3:二维数组中的查找
面试题3:二维数组中的查找 面试题3:二维数组中的查找题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的个二维数组和一个整数,判 ...
- 51单片机头文件reg51.h详解
转自:http://www.51hei.com/mcu/2670.html 我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面 ...