P15-Vue3后台管理系统-用户管理界面-table表格封装

1.概述

这篇文章继续介绍用户管理界面,在这篇文章中完成table表格封装

2.新建表格组件

2.1.新建CommonTable组件

2.2.注册子组件

在UserManage组件中注册CommonTable子组件

3.封装table表格

3.1.查看官网table组件

我们选择Element官网提供的自定义列的模板,这样我们就可以根据需求创建table表格

3.2.复制table模板

3.3.引用到CommonTable组件

<template><div class="common-table"><el-table><el-table-column label="日期" width="180"><template slot-scope="scope"><i class="el-icon-time"></i><span style="margin-left: 10px">{{ scope.row.date }}</span></template></el-table-column></el-table></div>
</template><script>
export default {}
</script><style lang="scss" scoped></style>

3.4.定义表格数据结构

封装CommonTable组件表格的列名和数据是由调用该组件的父组件传入,因此在UserManage组件中创建表格列名和数据。


3.5.UserManage组件请求接口数据

UserManage组件向接口发送请求,获取table表格data数据传给子组件CommonTable进行展示

3.6.CommonTable组件展示table数据

3.7.调整表格样式

  • 去掉UserManage组件的div标签
  • CommonTable组件设置表格高度
  • CommonTable组件设置表格样式

3.8.设置表格序号

3.9.设置分页

  • 复制Element提供的分页组件
  • 应用分页到CommonTable组件中

3.10 设置分页样式

  • Main.vue组件设置主体内边距
  • CommonTable组件设置分页样式

3.11.添加表格操作列

在Element官网找到Table表格对应的自定义列模板,复制模板中操作列的内容。

3.12.应用到CommonTable组件

3.13.表格效果

4.表格完整代码

4.1.UserManage组件完整代码

<template><div class="manage"><div class="manage-header"><el-button type="primary">+ 新建</el-button><common-form inline :formLabel="formLabel" :form="searchForm"><el-button type="primary">搜索</el-button></common-form></div><common-table :tableData="tableData" :tableLabel="tableLabel" :config="config"></common-table></div>
</template><script>
// 导入子组件
import CommonForm from '../../components/CommonForm'
import CommonTable from '../../components/CommonTable'
export default {components: {// 注册子组件CommonForm,CommonTable},data() {return {// table表格数据tableData: [],// 表格列名tableLabel: [{// prop属性来对应对象中的键名即可填入数据prop: 'name',// 表格列名称label: '姓名'},{prop: 'age',label: '年龄'},{prop: 'sexLabel',label: '性别'},{prop: 'birth',label: '出生日期',width: 200},{prop: 'addr',label: '地址',width: 320}],// 表格配置信息config: {page: 1,total: 30,loading: false},// form表单数据searchForm: {keyword: ''},formLabel: [{model: 'keyword',label: ''}]}},methods: {// 请求table表格数据getList() {this.config.loading = truethis.$http.get('/api/user/getUser', {params: {page: this.config.page}}).then(res => {// 请求接口返回的数据赋值给tableDatathis.tableData = res.data.list.map(item => {item.sexLabel = item.sex === 0 ? '女' : '男'return item})this.config.total = res.data.countthis.config.loading = false})}},// 调用请求表格数据方法mounted() {this.getList()}
}
</script><style lang="scss" scoped>
@import '@/assets/scss/userManage';
</style>

4.2.CommonTable组件完整代码

<template><div class="common-table"><!-- 将表格数据tableData赋值给data -stripe:斑马纹显示表格--><el-table :data="tableData" height="90%" stripe><!-- 表格第一列序号 --><el-table-column label="序号" width="85"><template slot-scope="scope"><!-- 设置序号-  (config.page - 1) * 20 :获取当前页数,每页20条- scope.$index + 1:设置序号--><span style="margin-left: 10px">{{ (config.page - 1) * 20 + scope.$index + 1 }}</span></template></el-table-column><!-- 表格序号后面的列通过遍历父组件传入的data数据动态改变-show-overflow-tooltip:超出一行的内容点点点显示--><el-table-column v-for="item in tableLabel" :key="item.prop" :label="item.label" show-overflow-tooltip><template slot-scope="scope"><span style="margin-left: 10px">{{ scope.row[item.prop] }}</span></template></el-table-column><!-- Table表格操作列 --><el-table-column label="操作"><template slot-scope="scope"><el-button size="mini" @click="handleEdit(scope.row)">编辑</el-button><el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button></template></el-table-column></el-table><!-- 设置分页- :total="config.total":设置总页数- :current-page.sync="config.page":设置当前页数--><el-pagination class="pager" layout="prev, pager, next" :total="config.total" :current-page.sync="config.page"> </el-pagination></div>
</template><script>
export default {// 接收父组件传来的数据props: {tableData: Array,tableLabel: Array,config: Object},methods: {// 表格操作列方法handleEdit() {},handleDelete() {}}
}
</script><style lang="scss" scoped>
.common-table {// 设置表格高度,减去页面header高度height: calc(100% - 62px);// 设置表格背景色background-color: #fff;// 设置相对定位position: relative;// 设置分页样式.pager {position: absolute;bottom: 0;right: 20px;}
}
</style>

P15-Vue3后台管理系统-用户管理界面-table表格封装相关推荐

  1. 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Table表格增删查改、Pagination分页、搜索框

    文章目录 目标 代码 0.结构 1.按钮-删除 2.按钮-编辑 3.debug 4.样式 5.分页Pagination:功能 6.分页Pagination:样式 7.搜索框:功能 8.搜索框:样式 总 ...

  2. 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Form表单填写、Dialog对话框弹出

    文章目录 目标 代码 0.页面结构 1.新增按钮和弹出表单:结构 2.新增按钮和弹出表单:点击新增弹出表单 3.表单样式 4.表单验证 5.表单的提交和取消功能:接口.mock相关准备 6.表单的提交 ...

  3. Axure电商后台业务管理系统原型模板/通用版电商后台管理系统/订单管理/营销管理/运营管理/财务管理/统计分析/库存管理/流量统计/运营管理/用户管理/秒杀促销/交易统计/活动管理/广告管理

    Axure电商后台业务管理系统原型模板/通用版电商后台管理系统/订单管理/营销管理/运营管理/财务管理/统计分析/库存管理/流量统计/运营管理/用户管理/秒杀促销/交易统计/活动管理/广告管理 作品名 ...

  4. vue3后台管理系统

    vue3后台管理系统 vite构建vue3项目 项目中其他需求的引入 1. element-plus引入 2. vue3引入路由 3. element-plus图标的引入和使用 静态引入图标 动态引入 ...

  5. P22-Vue3后台管理系统-权限管理之路由守卫判断⽤户登录状态

    P22-Vue3后台管理系统-权限管理之路由守卫判断⽤户登录状态 文章目录 P22-Vue3后台管理系统-权限管理之路由守卫判断⽤户登录状态 1.概述 2.mock接口返回token 2.1.mock ...

  6. Java-Web机试练习题一、后台管理系统——管理员管理模块

    题目:后台管理系统--管理员管理模块 一. 语言和环境 1. 实现语言:JAVA 语言. 2. 环境要求:MyEclipse/Eclipse + Tomcat + MySql. 3. 使用技术:Jsp ...

  7. vue3后台管理系统(https://github.com/noob-Jp/my-admin-vue3)

    # my-admin-vue3 线上预览地址:vue3后台管理系统 本项目是我第一次写vue3,vue2已经学了很长时间,早就想开始接触vue3,通过b站和github上项目的介绍我了解到好多成熟的v ...

  8. 通用后台管理系统,管理后台框架模板演示地址

    一.这个通用的后台管理系统,管理后台框架模板,主要包括如下功能: 1.功能模块 主要包括新闻管理.留言管理.广告管理.友情链接管理.图片管理.用户管理等. 具体包括搜索.列表展示.分页.图片上传.批量 ...

  9. VUE后台管理系统权限管理

    VUE后台管理系统权限管理(面试路由守卫) 1.背景 后台管理系统中总会遇到权限分配的问题:这也是一道vue的很经典的面试问题 2.解决思路 权限管理无非前端或者后台解决 先说一下前端解决的思路:在设 ...

最新文章

  1. java 矩阵题目_java练习本(20190604)
  2. 22行代码AC_Prime Number Aizu - 0009(素数筛)(解题报告)
  3. 数据挖掘与数据化运营实战. 3.10 信用风险模型
  4. Docker:使用本地卷和tmpfs挂载
  5. android评论嵌套,android 嵌套的listview示例(可参照实现朋友圈评论)
  6. leetcode —— 2. 两数相加 (对于链表更新的细节)
  7. mysql 缓冲区_mysql 线程级别的缓冲区
  8. 5绘制收银台程序_透视Matplotlib核心功能和工具包 - 高级特征绘制
  9. 使用python对学生表的查询_python + mysql 实现查询表数据
  10. 算法:62唯一路径Unique Paths 动态规划和排列组合算法
  11. nexus3作为docker私服的使用
  12. python图像处理之一 - Pillow的基本用法
  13. 完美解决网页中Flash狂闪的问题
  14. 19年恶意软件排行榜
  15. 沙尘暴天气空气净化器市场走俏
  16. L1-033 出生年-PAT 团体程序设计天梯赛 GPLT
  17. spark读写clickhouse
  18. TopCoder SRM 558 Div 1 - Problem 1000 SurroundingGame
  19. 迪士尼和李宁合作推出“李宁复古运动米奇系列”服饰
  20. Linux—系统关机命令详解

热门文章

  1. LMS自适应滤波matlab仿真
  2. SR、JK、T、D触发器图形逻辑符号、真值表及特性方程
  3. 运筹学——修正单纯形法
  4. Windows7声卡驱动不行怎么办
  5. 华为b199Android版本,华为B199刷机包 MIUI8安卓6.0插桩适配ROM 7.4.5版
  6. Android Studio启动虚拟机时一直提示安装Haxm
  7. 晶体管共射极单管放大电路
  8. 鱼c论坛python题库答案_全套55讲 鱼C论坛小甲鱼Python课后题 -
  9. Oracle问题:ORA-01109解决办法
  10. 逻辑学辅修计算机,带你认清大学逻辑学专业的真面目