Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vue3 element-plus 配置json快速生成table列表组件,提升生产力近500%(已在公司使用,持续优化中)

vue3 element-plus 配置json快速生成table列表组件,提升生产力近500%(已在公司使用,持续优化中)

作者头像
aehyok
发布于 2021-10-18 03:20:56
发布于 2021-10-18 03:20:56
2K02
代码可运行
举报
文章被收录于专栏:技术博客技术博客
运行总次数:2
代码可运行

⚠️本文为博客园首发文章,未获授权禁止转载

大家好,我是aehyok🎋,一个住在深圳城市的佛系码农🧚🏻‍♀️,如果你喜欢我的文章📚,可以通过点赞帮我聚集灵力⭐️。

个人github仓库地址: https:github.com/aehyok

本文讲解代码仓库地址 : https:github.com/aehyok/vue-qiankun 目前基于dev分支进行开发和测试

本demo已部署腾讯云 http://vue.tuokecat.com服务器配置较低,如有访问比较慢,请耐心等待)

table列表json配置生成器

  • 1、 在PC端日常的使用中,使用最多的过于表单和列表了,故此对table列表和form表单进行了统一的封装,通过json配置就可以快速适配table列表和form表单。
  • 2、封装思路
    • A、列表的搜索条件和搜索按钮,这个与table 可以解耦,目前放到单独的组件中,所以本节暂不考虑
    • B、table列表显示字段,根据不同的类型进行制定
    • C、最右侧的操作按钮的配置,比如(行编辑、删除等操作),根据定义的函数进行注入,后面实现函数操作进行自定义,不与table列表冲突
    • D、特殊的字段,比如(序号字段、多选框、单选框等等)
    • E、最后当然少不了分页器的参与
  • 3、本章节主要记录自己的table封装

先来一个完整的效果展示

  • 1、列表展示字段的配置json
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  {
    type:'checkbox',
  },
  {
    type:'index',
  },
  {
    prop: "title",
    label: "标题",
    align: "center",
  },
  {
    prop: "createTime",
    label: "创建时间",
    align: "center",
    dateFormat: "yyyy-MM-dd HH:mm:ss",
    sortable: true
  },
  {
    prop: "state",
    label: "状态",
    align: "center",
    dictionary: [
      { code: 0, name: "待审核"},
      { code: 1, name: "已审核"},
      { code: 2, name: "审核中"},
    ]
  },
  {
    prop:"custom",
    label:"自定义",
    align: "center",
    html: (row, column) => {
      return row.title==="编号3" ? `<span style="color: red;">${ row.remark }</span>`:`未定义`
    }
  }

最后一个字段 custom 可以通过配置html,自定义展示复杂的组件和样式介入

  • 2、右侧操作按钮的配置信息
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
   width: 200,
   fixed: "right",
   list: [
     {
       id: "1",
       label: "查看",
       type: "text",
       show: true,
       disabled: false,
       method: (index, row, ss) => {
         handleDetail(index, row, ss);
       }
     },
     {
       id: "2",
       label: "删除",
       type: "text",
       show: true,
       disabled: false,
       method: (index, row) => {
         handleDel(index, row);
       }
     }
   ]
 } 

其中的handleDetail和handleDel函数通过自定义实现业务对接即可。

  • 3、 最后的效果图片

字段配置详细介绍

1、普通字段直接配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    prop: "name",
    label: "设施名称",
    align: "center",
  }
```
2、序号字段配置(后期可直接配置自定义序号,暂时从 1 自增+1)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    type: "index"
  }
```
3、checkbox 字段配置(后期可添加单选框的配置)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    type: "checkbox"
  }
```
4、日期格式字段配置,可设置转换格式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
{
    prop: "recorDate",
    label: "返乡日期",
    align: "center",
    dateFormat: "yyyy-MM-dd"
},
```
5、字典数据转换
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
{
    prop: "sex",
    label: "性别",
    align: "center",
    dictionary:[
        {
            code: 1, name:'男',
        },
        {
            code: 2, name:'女',
        }
    ]
},
```
6、自定义字段展示内容
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    prop: "",
    label: "自定义",
    align: "center",
    html: (row, column) => {
        return row.name==="集资球场" || row.address ==="22" ? `<span style="color: red;">${ row.address }</span>`:`222`
    }
 },
```
7、显示 image
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    prop: "image",
    label: "自定义",
    align: "center",
    image:'image'
 },
```
8、设置字段排序(前端自动排序)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    prop: "image",
    label: "自定义",
    align: "center",
    sortable: true
 },
```
9、设置字段自定义调用接口排序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```javascript
  {
    prop: "image",
    label: "自定义",
    align: "center",
    sortable: "custom",  // 通过传递的search查询函数中添加了orders排序字段
 }
```

10、其他字段待补充

......

最后的最后

https://github.com/aehyok/vue-qiankun 本文中不涉及到封装的组件代码,有关代码问题可以访问文章开头的微前端github demo 仓库,github仓库将会保持持续更新,不断优化小demo。

https://github.com/aehyok/2021 最后自己每天工作中的笔记记录仓库,主要以文章链接和问题处理方案为主。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)
效果展示的在线预览页面为 http://vue.tuokecat.com/#/webpack-app/form
aehyok
2021/10/25
5.8K0
vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)
基于element-ui el-table 开发虚拟列表
普通列表 主要方法:calcList <template> <div id="app"> <!-- :expand-row-keys="currentExpend" --> <!-- <div style="height: 800px"></div>--> <el-form ref="form" :model="form" label-width="80px" :rules="rules"> <el-form-item label-width="0" p
j_bleach
2020/06/22
2.2K0
Element Table 业务封装与思考
新项目 Elemnet UI 组件业务封装,封装需求满足后期不修改业务代码,直接更新前端的封装组件的UI库代码即可实现无缝切换UI库的需求。目前新项目的功能产品还在梳理,项目第一期还未开始,前端技术小组先行进行的组件封装。
草帽lufei
2022/07/29
5760
Element Table 业务封装与思考
vue+element table的二次封装
很多人不明白为什么这里要加一个slot,这个封装实际上就是把前面的tableList 作为一个 prop 传入,通过这个属性,我们就可以在table中编辑任何简单或者复制的列, 完美~
用户2323866
2021/06/24
1.1K0
Ant Design Vue使用中的注意项
https://1.x.antdv.com/components/form-cn/
码客说
2021/11/10
1.6K0
Ant Design Vue使用中的注意项
vue+element实现表格跨行或跨列合并
vue+element用于pc后台管理系统比较多,所以后台管理系统一般以处理数据为主,数据结构的复杂程度变高,相对应的前端展示成本也提高, 有些产品经理或许会要求表格跨行或跨列合并,如果你正在想怎么实现,那就接着往下看 最新封装了一个表格合并和编辑插件:vue-split-table,戳一戳 效果图
火狼1
2019/04/17
8K0
vue+element实现表格跨行或跨列合并
element ui table组件的基本使用
  前后端分离项目,将后端返回的JSON格式数据在前端用vue友好显示出来,这时候就需要用到饿了么的element ui框架了,这个框架简直是后端开发人员的福音。
别团等shy哥发育
2023/02/25
9520
element ui table组件的基本使用
sortablejs插件在el-table中的运用
中文文档:https://www.itxst.com/sortablejs/neuinffi.html
猫老师的叶同学
2023/03/01
1.4K0
sortablejs插件在el-table中的运用
Vue + Element UI:使table组件的td内容可编辑
后台管理系统,需要这个功能点的特别多,但Element UI 的table组件本身是不提供的,所以需要自行拓展一下。 在这里,给大家写一个简单的示例,希望对小伙伴们有所帮助。
Javanx
2019/09/04
6K0
Vue + Element UI:使table组件的td内容可编辑
vue2.0+Element-ui实战案例
我们将会选择使用一些 vue 周边的库vue-cli, vue-router,axios,moment,Element-ui搭建一个前端项目案例,后端数据接口,会使用json-server快速搭建一个本地的服务,方便对数据的增删改查,
小周sir
2019/09/23
2.4K0
vue2.0+Element-ui实战案例
vue+element采坑记-Table的CURD操作之特殊情况记录
今天大概的说一下我们在对table进行渲染数据的时候,常见的一些问题,以及可能不容易注意的细节。
何处锦绣不灰堆
2020/05/29
1.4K0
vue+element采坑记-Table的CURD操作之特殊情况记录
自用插件整理之表格bootstrap-table
本插件基于bootstrap,网上各种例子也比较多,本文就不详细列api一类的了,只将自己常用的记录一下。多数代码中存在的注释,就不再重写。
WindCoder
2018/09/20
3.2K0
自用插件整理之表格bootstrap-table
【摸鱼神器】UI库秒变LowCode工具——列表篇(一)设计与实现
如果基于原生HTML来实现显示数据列表的功能的话,那么需考虑如何创建 table,如何设置css等。 如果直接使用UI库的话,那么可以简单很多,只需要设置各种属性,然后绑定数据即可。 以 el-table 为例:
用户1174620
2022/06/12
1.8K0
【摸鱼神器】UI库秒变LowCode工具——列表篇(一)设计与实现
全新Uniapp+uniUI后台管理uniUadmin
新年的鞭炮声又响了,拉开窗帘一看,外面依然漆黑一片,好了,反正都醒了,就暂且起来吧。零下几度的天气有些冷,就批件衣服先醒醒吧。就想着写些什么呢,突然想到最近开发了一款uni-app后台管理系统模板,就来分享下吧。
andy2018
2022/01/31
2.4K1
python测试开发django-120.bootstrap-table表格添加操作按钮(查看/修改/删除)
接着前面这篇https://www.cnblogs.com/yoyoketang/p/15242055.html 在columns最后添加一个操作项,formatter属性可以帮助我们更加灵活的显示表格中的内容
上海-悠悠
2021/09/14
1.1K0
vue-element-admin实现一个可编辑的table
最近在使用vue-element-admin这个后台管理框架开源模板在做一个管理后台,使用起来其实还挺方便的,大部分的组件源码里面都已经写好了,用的时候只需要把源码拿出来修改修改,也就成了。
王小婷
2020/09/03
2.3K0
【element-ui】table表格底部合计自定义配置
【element-ui】table表格底部合计自定义配置,最近做管理系统用到饿了么UI,用到了table表格合计需求,常用的table底部,有时候不是所有内容都需要合计,比如上图这个编号是数字,但是不需要合计计算处理的,这时候就需要用到自定义表格,把不需要合计的内容隐藏掉,效果如下:
痴心阿文
2022/11/21
2.9K0
【element-ui】table表格底部合计自定义配置
【Vue3】用Element Plus实现列表界面
哈喽大家好,本期我们用Element Plus实现列表界面,我们先用vue+vite创建一个vue项目,创建项目可以参考:利用vite创建vue3项目噢~
颜颜yan_
2023/03/28
3.3K0
【Vue3】用Element Plus实现列表界面
Spring Boot3 整合VUE3实现前端自定义字典组件
Harry技术后台管理系统,gitee地址:https://gitee.com/harry-tech/harry,采用SpringBoot2.7、MyBatis-Plus、SpringSecurity安全框架等,开发的一套权限系统,实现前后端分离前端技术栈 Vue3 、Element Plus 、Vite(JS版)。
Harry技术
2025/01/13
1660
Spring Boot3 整合VUE3实现前端自定义字典组件
封装element-ui表格,我是这样做的
使用过element-ui的表格的同学应该都有这样的体会,做一个简单的表格还比较容易,但如果这个表格包含了顶部的按钮,还有分页,甚至再包含了行编辑,那开发工作量就成倍的增加,特别是在开发管理系统的时候,表格一个接一个的去开发, 即浪费时间,还对个人没有什么提升。今天小编带来了自己封装的一个表格,让你用JSON就可以简单的生成表格。
前端进击者
2021/07/27
1.5K0
相关推荐
vue3 element-plus 配置json快速生成form表单组件,提升生产力近600%(已在公司使用,持续优化中)
更多 >
交个朋友
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验