一个查询功能居然被你玩出了花!(一)

简介: 上次是表单控件,这次是查询控件,不要弄混了哦。

1

 功能  

00:22

使用 vue3 + element-plus 封装了一个查询控件,专为管理后台量身打造,支持各种查询需求:

  • 多种查询方式
  • 快捷查询
  • 更多查询
  • 自定义查询
  • 支持防抖
  • 清空每个查询条件
  • 依赖 json 动态创建

有些控件自带清空功能,有些没有自带清空功能,那么就需求我们手动加上清空的功能。

2

 技术栈  

  • Vite2
  • Vue3
  • element-plus

3

 查询控件设计  

00:22

74.png


【自我感觉良好的一个脑图】

4

 在线演示  

https://naturefw.gitee.io/nf-vue-cdn/elecontrol/

进入页面后请点击“查询控件”。可以在“表单控件”里面添加测试数据,数据会存入webSQL。受限于webSQL,有些查询功能无法实现。

5

 功能演示  

查询功能具体是什么样子呢?我们先来看一段视频:【视频演示】

image.png


6

 各种查询方式  

查询控件针对不同的数据类型(后端数据库字段类型),量身打造了多种查询方式,让查询更便捷!

文本

76.png

文本类的查询

针对文本类的数据类型(varchar、text等),提供常用的模糊查询(包含)、精确查询(=),还有起始于、结束于等查询方式可供选择。这样用户可以更灵活方便的进行查询操作。


数字


77.png


数字查询

针对数值类型(int、float、decme等),提供常用的精确查询(=)、范围查询(从xx到xxx)还有大于等于等查询方式。


单选组的查询

78.png

单选组

79.png


单选组的多选

针对枚举类型,int 或者 varchar 等有限数量。

单选组有两种情况,一个是常见的查询一种情况即可,选择第一选项那么只需要显示第一个选项对应的数据。另一个就是想同时看多个选项的结果,那么这时候还用单选组的方式就不适合了,需要变成多选组的方式,这样才可以让用户选择多个选项。

所以这里的单选的查询支持两种查询方式:

  • =:只能查询一个选项,对应单选。
  • 包含:可以同时查询多个选项,对应多选。

支持清空查询条件,即点击右侧的“x”。多选支持防抖。

勾选和开关

80.png



勾选和开关

二者对应的数据类型是 bool 型的(bit),所以只有“=”这一种查询方式,增加了一个“清空”的按钮,这样可以单独清掉查询条件。


级联选择

81.png


联动下拉

常见的级联选择是省市区县的选择,组件默认给的model是一个数组形式,有多少级就会有多少个数组。

但是在后端数据库里面,往往会分成多个字段来存放,比如省份用一个字段表示,城市用一个字段表示,区县又是一个字段表示。

那么我们在查询的时候,就需要把查询结果按照字段给拆分开,这样才便于查询。

所以这里把查询结果按照字段拆分开然后在返回给后端,比如这样:{ "a": [ 401, "zhinan" ], "b": [ 401, "shejiyuanze" ], "c": [ 401, "yizhi" ] }


日期

日期查询比较复杂,这里对应的数据类型是date,选择后返回的数据是“2021-05-20”的形式。然后就是如何让用户感觉爽的问题了。

  • 常规查询方式

82.png


日期查询

一般都是如上图所示,直接选择日期范围,这个看起来似乎没有啥问题,可以选择任意日期。

但是如果用户想查询2021年1月到2021年3月的数据,那么用户的操作就会比较繁琐。我们来看看一共要点击几次鼠标?打开日期栏 》 找到一月份(n次) 》 选择一号 》 找到三月份(又是n次) 》选择31号。整个流程需要点好多次鼠标,实在是太麻烦了。

  • 通过月份查询日期范围 如果可以直接选择月份呢?像这样:

84.png


通过月份选择日期

如果用户想选择多个月份的日期,可以通过“从” + “年月”的形式,选择起始月份即可,返回的数据是"2021-01-01", "2021-03-31" 的形式。

84.png


选择一个月的范围

如果客户想选择一个月的范围,那么可以用“=” + “年月”的方式来选择(如上图),返回的数据是"2021-02-01", "2021-02-28" 的形式。

这样用户就非常方便了,节省了n次鼠标点击。不过这还没有结束,还有选择“年”的情况。

  • 通过年查询日期范围 如果要查询一年的或者多年的日期范围呢?我们可以选择“年”的方式。

85.png


选择一整年的方式

相关文章
我写了一个自动化脚本涨粉,从0阅读到接近100粉丝(二)
我写了一个自动化脚本涨粉,从0阅读到接近100粉丝
104 0
|
JavaScript 测试技术 Python
低成本、快速造测试数据,这个造数工具我后悔推荐晚了!
没有测试数据,所谓的功能测试和性能测试全都是无米之炊。但我发现一个蛮诡异的事情,就是行业内很少会有人去强调测试数据的重要性,甚至市面上都没有人在做测试数据这门生意。
低成本、快速造测试数据,这个造数工具我后悔推荐晚了!
|
数据采集 Web App开发 JavaScript
我写了一个自动化脚本涨粉,从0阅读到接近100粉丝(一)
我写了一个自动化脚本涨粉,从0阅读到接近100粉丝
121 0
|
区块链 开发者
Jogger慢跑者跑鞋零撸模式系统开发详细规则/逻辑分析/案例详情/项目方案/源码部署
  DApp是指以区块链为底层技术平台的分布式应用程序,它使得开发者可以构建去中心化和自主运行的应用程序,并通过链上的合约机制实现代码不可更改性和事务透明性。
|
XML Java 数据格式
从非诚勿扰看数据索引,优化代码小妙招
从非诚勿扰看数据索引,优化代码小妙招
141 0
网络工程项目报价单应该怎么写?记住这6个步骤准没错!
网络工程项目报价单应该怎么写?记住这6个步骤准没错!
314 0
|
存储 SQL 缓存
如何设计一个支持一亿用户的系统,心中有方案遇事不慌!
如何设计一个支持一亿用户的系统,心中有方案遇事不慌!
212 0
如何设计一个支持一亿用户的系统,心中有方案遇事不慌!
淘宝预售“买崩”程序员20分钟修复,全靠这份亿级流量并发手册
朋友们,今年双11电商大促即将到达,感受到四面八方激动的心情没有? 去年天猫淘宝在双十一中订单可是破了58.3万笔/秒,预测一波今年成交额又会打破去年记录。作为一名互联网民工,我关心的不是订单有多少,而是系统竟然没崩!以及这背后为了抗住这巨大的并发量的程序员同胞们……
|
前端开发 架构师 Java
晚上不用加班了,推荐十款精选IntelliJIdea插件,效率提升N倍
晚上不用加班了,推荐十款精选IntelliJIdea插件,效率提升N倍
晚上不用加班了,推荐十款精选IntelliJIdea插件,效率提升N倍
|
JSON API 数据格式
一个查询功能居然被你玩出了花!(四)
上次是表单控件,这次是查询控件,不要弄混了哦。
一个查询功能居然被你玩出了花!(四)