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

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

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


选择一整年的方式

相关文章
|
并行计算 算法 计算机视觉
【MATLAB 】 CEEMDAN 信号分解+模糊熵(近似熵)算法
【MATLAB 】 CEEMDAN 信号分解+模糊熵(近似熵)算法
715 0
|
算法 测试技术 区块链
Web3.0的五大趋势,你是否已经了解?
Web3.0的五大趋势,你是否已经了解?
372 0
|
搜索推荐 数据可视化 数据挖掘
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
本文介绍了一个基于Python Flask框架的招聘数据分析推荐系统,该系统具备用户登录注册、数据库连接查询、首页推荐、职位与城市分析、公司性质分析、职位需求分析、用户信息管理以及数据可视化等功能,旨在提高求职者的就业效率和满意度,同时为企业提供人才匹配和招聘效果评估手段。
629 0
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
|
12月前
|
运维 数据可视化 数据挖掘
见证奇迹!J 人软件升级维护团队协作的 6 款办公软件来了!
在软件升级与维护的关键环节,高效的团队协作和个人学习效率至关重要。本文深入剖析了6款卓越的可视化团队协作办公软件:板栗看板、Trello、Asana、Jira、ClickUp和Monday.com。这些工具通过直观的任务呈现、精准的流程管理、便捷的协作沟通、多样的视图切换、灵活的自定义配置及深入的数据分析,助力J人团队提升效率和质量,推动项目顺利进行。选择合适的工具,为团队插上腾飞的翅膀,创造辉煌业绩。
211 8
|
JavaScript
如何创建一个Vue项目(手把手教你)
这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
如何创建一个Vue项目(手把手教你)
|
移动开发 网络协议 数据格式
【VOFA+速成】半小时入门VOFA+简明教程之基础认识(一)
【VOFA+速成】半小时入门VOFA+简明教程(一)
2573 1
|
Java Apache Maven
【异常解决】Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: org/apache/common
【异常解决】Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: org/apache/common
9916 0
|
开发框架 前端开发 JavaScript
ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结
ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结
|
存储 算法 安全
密码算法的分类
【8月更文挑战第23天】
960 0
|
XML Java 数据库连接
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):XXXXX
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):XXXXX
239 1