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

大家好,我是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
  1. {
  2. type:'checkbox',
  3. },
  4. {
  5. type:'index',
  6. },
  7. {
  8. prop: "title",
  9. label: "标题",
  10. align: "center",
  11. },
  12. {
  13. prop: "createTime",
  14. label: "创建时间",
  15. align: "center",
  16. dateFormat: "yyyy-MM-dd HH:mm:ss",
  17. sortable: true
  18. },
  19. {
  20. prop: "state",
  21. label: "状态",
  22. align: "center",
  23. dictionary: [
  24. { code: 0, name: "待审核"},
  25. { code: 1, name: "已审核"},
  26. { code: 2, name: "审核中"},
  27. ]
  28. },
  29. {
  30. prop:"custom",
  31. label:"自定义",
  32. align: "center",
  33. html: (row, column) => {
  34. return row.title==="编号3" ? `<span style="color: red;">${ row.remark }</span>`:`未定义`
  35. }
  36. }

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

  • 2、右侧操作按钮的配置信息
  1. {
  2. width: 200,
  3. fixed: "right",
  4. list: [
  5. {
  6. id: "1",
  7. label: "查看",
  8. type: "text",
  9. show: true,
  10. disabled: false,
  11. method: (index, row, ss) => {
  12. handleDetail(index, row, ss);
  13. }
  14. },
  15. {
  16. id: "2",
  17. label: "删除",
  18. type: "text",
  19. show: true,
  20. disabled: false,
  21. method: (index, row) => {
  22. handleDel(index, row);
  23. }
  24. }
  25. ]
  26. }

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

  • 3、 最后的效果图片

字段配置详细介绍

1、普通字段直接配置

  1. ```javascript
  2. {
  3. prop: "name",
  4. label: "设施名称",
  5. align: "center",
  6. }
  7. ```

2、序号字段配置(后期可直接配置自定义序号,暂时从 1 自增+1)

  1. ```javascript
  2. {
  3. type: "index"
  4. }
  5. ```

3、checkbox 字段配置(后期可添加单选框的配置)

  1. ```javascript
  2. {
  3. type: "checkbox"
  4. }
  5. ```

4、日期格式字段配置,可设置转换格式

  1. ```javascript
  2. {
  3. prop: "recorDate",
  4. label: "返乡日期",
  5. align: "center",
  6. dateFormat: "yyyy-MM-dd"
  7. },
  8. ```

5、字典数据转换

  1. ```javascript
  2. {
  3. prop: "sex",
  4. label: "性别",
  5. align: "center",
  6. dictionary:[
  7. {
  8. code: 1, name:'男',
  9. },
  10. {
  11. code: 2, name:'女',
  12. }
  13. ]
  14. },
  15. ```

6、自定义字段展示内容

  1. ```javascript
  2. {
  3. prop: "",
  4. label: "自定义",
  5. align: "center",
  6. html: (row, column) => {
  7. return row.name==="集资球场" || row.address ==="22" ? `<span style="color: red;">${ row.address }</span>`:`222`
  8. }
  9. },
  10. ```

7、显示 image

  1. ```javascript
  2. {
  3. prop: "image",
  4. label: "自定义",
  5. align: "center",
  6. image:'image'
  7. },
  8. ```

8、设置字段排序(前端自动排序)

  1. ```javascript
  2. {
  3. prop: "image",
  4. label: "自定义",
  5. align: "center",
  6. sortable: true
  7. },
  8. ```

9、设置字段自定义调用接口排序

  1. ```javascript
  2. {
  3. prop: "image",
  4. label: "自定义",
  5. align: "center",
  6. sortable: "custom", // 通过传递的search查询函数中添加了orders排序字段
  7. }
  8. ```

10、其他字段待补充

......

最后的最后

https://github.com/aehyok/vue-qiankun

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

https://github.com/aehyok/2021

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

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

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

    ️本文为博客园社区首发文章,未获授权禁止转载 大家好,我是aehyok,一个住在深圳城市的佛系码农‍♀️,如果你喜欢我的文章,可以通过点赞帮我聚集灵力️. 个人github仓库地址: https:gi ...

  2. GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,"炒鸡"快!

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  3. 在代码生成工具Database2Sharp中增加Vue&Element 工作流页面的快速生成

    在我们基于框架开发系统的时候,往往对一些应用场景的页面对进行了归纳总结,因此对大多数情况下的页面呈现逻辑都做了清晰的分析,因此在我们基于框架的基础上,增量式开发业务功能的时候,能够事半功倍.代码生成工 ...

  4. 循序渐进VUE+Element 前端应用开发(8)--- 树列表组件的使用

    在我前面随笔<循序渐进VUE+Element 前端应用开发(6)--- 常规Element 界面组件的使用>里面曾经介绍过一些常规的界面组件的处理,主要介绍到单文本输入框.多文本框.下拉列 ...

  5. 列表(list)之二 -运用篇 -快速生成规律性列表

    生成列表[1*2,3*4,5*6,7*8,9*10,11*12] 方法一:list1=[]for i in range(1,13,2): list1.append(i*(i+1))print(list ...

  6. 前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)

    | 在日常的移动端开发中,经常会遇到列表的展示,以及数据量变多的情况下还会有上拉和下拉的操作.进入新公司后发现移动端好多列表,但是在看代码的时候发现,每个列表都是单独的代码,没有任何的封装,都是通过v ...

  7. 使用代码生成工具快速生成基于ABP框架的Vue+Element的前端界面

    世界上唯一不变的东西就是变化,我们通过总结变化的规律,以规律来应付变化,一切事情处理起来事半功倍.我们在开发后端服务代码,前端界面代码的时候,界面都是依照一定的规律进行变化的,我们通过抽取数据库信息, ...

  8. python快速生成注释文档的方法

    python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...

  9. 设置idea快速生成doc comment

    在eclipse中快速生成方法的doc comment快捷键是Alt+Shift+J, 而在idea中没有对应的快捷键,但是能实现相似的功能. 1.在方法上面输入/** 然后回车就可以生成注释了. 2 ...

随机推荐

  1. k8s笔记0528-基于KUBERNETES构建企业容器云手动部署集群记录-7

    Kubernetes Dashboard 创建CoreDNS [root@linux-node1 ~]# kubectl create -f coredns.yaml [root@linux-node ...

  2. 整理之Service

    Service 基础 一个Service的基本结构 class MyService : Service() { private val mBinder = MyBinder() override fu ...

  3. Nginx对代理HTTP资源的限制访问

    为了限制连接的数量,首先,使用指令来定义密钥并设置共享内存区域的参数(工作进程将使用该区域来共享键值的计数器).作为第一个参数,指定作为关键字计算的表达式.在第二个参数区域中,指定区域的名称及其大小. ...

  4. Windows内核基础知识-8-监听进程、线程和模块

    Windows内核基础知识-8-监听进程.线程和模块 Windows内核有一种强大的机制,可以在重大事件发送时得到通知,比如这里的进程.线程和模块加载通知. 本次采用链表+自动快速互斥体来实现内核的主 ...

  5. 手动编译部署LNMP环境(CentOS7.5+Nginx-1.18.0+MySQL-5.7.30+PHP-7.4.14)

    在平时运维工作中,经常需要用到LNMP应用框架.LNMP环境是指在Linux系统下,由Nginx + MySQL + PHP组成的网站服务器架构. 可参考前面的文章: 如何在CentOS 7上搭建LA ...

  6. CGLib浅析

    CGLib浅析 什么是CGLib CGLIB实现动态代理,并不要求被代理类必须实现接口,底层采用asm字节码生成框架生成代理类字节码(该代理类继承了被代理类). 所以被代理类一定不能定义为final ...

  7. Mysql常用sql语句(4)- distinct 去重数据

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 我们使用select进行数据查询时是会返回所有匹 ...

  8. GoLang设计模式06 - 对象池模式

    这次介绍最后一个创建型模式--对象池模式.顾名思义,对象池模式就是预先初始化创建好多个对象,并将之保存在一个池子里.当需要的时候,客户端就可以从池子里申请一个对象使用,使用完以后再将之放回到池子里.池 ...

  9. 并发容器之ConcurrentMap

    一.concurentMap 1.数据结构,分段数组segment不扩容,里面的table扩容,每次翻倍,table中放的是entry链表的头地址: 2.初始化 segment和table的长度都是2 ...

  10. redis存取数据String

    一.连接不同数据库和存取String类型值 1.连接数据库 2.set和get多个 3.取值并赋值 取值返回的是赋值改变之前的值: 4.递增和递减 5.字符串尾部加值 6.商品编号自增应用