【RuoYi-Vue-Plus 实现日期范围查询 Mybatis-Plus & Element UI & JavaScript 】

这篇具有很好参考价值的文章主要介绍了【RuoYi-Vue-Plus 实现日期范围查询 Mybatis-Plus & Element UI & JavaScript 】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Element UI 实现日期范围查询,多个日期范围查询。



前言

若依代码生成自带的日期查询通常只可以查询精确的日期,但往往实际应用开发中我们会用到一个日期的范围查询,所以我们来看看如何实现基于 Element UI + Mybatis-Plus + JavaScript 的日期范围查询,实现多个日期范围查询。


提示:以下是本篇文章正文内容,下面案例可供参考

一、前端Element - UI(DatePicker 日期选择器) 组件


DatePicker 日期组件

vue范围查询,element UI 前端,Mybatis-Plus,前端,ui,elementui,前端框架


我们在使用 DatePicker 日期选择器的时候一定要注意加上 value-format=“yyyy-MM-dd HH:mm:ss 属性,否则会出现日期格式不匹配的情况出现。”

vue范围查询,element UI 前端,Mybatis-Plus,前端,ui,elementui,前端框架

加上 value-format 属性以后,日期格式变为如下图所示。

vue范围查询,element UI 前端,Mybatis-Plus,前端,ui,elementui,前端框架

前端实现了日期选择器的显示,接下来我们进行功能实现!


添加 main.js 方法

vue 的 main.js 文件
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 全局方法挂载
Vue.prototype.addDateRange = addDateRange
<template>
      <el-form-item label="上传时间" prop="updateTime">
        <div class="block">
          <el-date-picker
            v-model="UpdateRange"
            type="daterange"
            align="right"
            style="width: 240px"
            value-format="yyyy-MM-dd HH:mm:ss"
            unlink-panels
            range-separator="-"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :picker-options="pickerOptions">
          </el-date-picker>
        </div>
      </el-form-item>
            <el-form-item label="操作时间" prop="checkTime">
        <div class="block">
          <el-date-picker
            v-model="CheckRange"
            type="daterange"
            align="right"
            style="width: 240px"
            value-format="yyyy-MM-dd HH:mm:ss"
            unlink-panels
            range-separator="-"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :picker-options="pickerOptions">
          </el-date-picker>
        </div>
      </el-form-item>
</template>

<script>
export default {
  name: "DatePicker "
  data() {
    return{
    CheckRange: [],
    dateRange: [],
    // 查询参数
    queryParams: {
            pageNum: 1,
        pageSize: 10,
        updateTime: undefined,
        checkTime:  undefined
      },
    };
  },
  methods: {
    /** 查询数据警告列表 */
    getList() {
      this.loading = true;
    //UpdateRange CheckRange 别名这里暂时不遵循驼峰命名法,看到后面就知道什么情况了
      let range = this.addDateRange(this.queryParams,this.updateTime, 'UpdateRange');
      range = this.addDateRange(this.queryParams,this.checkTime, 'CheckRange');
      listData(range ).then(response => {
        this.minerList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
  },
}
</script>



调用 ruoyi.js 的 addDateRange 方法 传到后端的名称就会变成 beginUpdateRange \ endUpdateRange

//    src/utils/ruoyi.js
// 添加日期范围
params: 传递参数
dateRange:日期范围 是数组
propName: 别名 用于多个时间筛选场景
--------------------------------
export function addDateRange(params, dateRange, propName) {
  let search = params;
  search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
  dateRange = Array.isArray(dateRange) ? dateRange : [];
  if (typeof (propName) === 'undefined') {
    search.params['beginTime'] = dateRange[0];
    search.params['endTime'] = dateRange[1];
  } else {
    search.params['begin' + propName] = dateRange[0];
    search.params['end' + propName] = dateRange[1];
  }
  return search;
}

二、后端 Mybatis-Plus

1.后端 service 业务

    /**
     * 查询数据列表
     */
    @Override
    public TableDataInfo<DataVo> queryPageList(DataBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<Data> lqw = buildQueryWrapper(bo);
        Page<DataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * 查询数据列表
     */
    @Override
    public List<DataVo> queryList(DataBo bo) {
        LambdaQueryWrapper<Data> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
private LambdaQueryWrapper<Data> buildQueryWrapper(DataBo bo) {
     Map<String, Object> params = bo.getParams();
     LambdaQueryWrapper<Data> lqw = Wrappers.lambdaQuery();
     // mybatis-plus between方法 between(boolean condition, R column, Object val1, Object val2)
     lqw.between(params.get("beginUpdateRange ") != null && params.get("endWarnRange") != null,Data::getUpdateTime, params.get("beginUpdateRange "), params.get("endoptionRange"));
     lqw.between(params.get("beginCheckRange") != null && params.get("endCheckRange") != null, Data::getCheckTime, params.get("beginCheckRange"), params.get("endCheckRange"));
        return lqw;
    }

完成后端的操作后就可以看到结果,这样就实现了两个日期范围的筛选了!

vue范围查询,element UI 前端,Mybatis-Plus,前端,ui,elementui,前端框架


总结

这里对文章进行总结:

若依框架实现查询日期范围

业精于勤,荒于嬉;行成于思,毁于随文章来源地址https://www.toymoban.com/news/detail-585528.html

到了这里,关于【RuoYi-Vue-Plus 实现日期范围查询 Mybatis-Plus & Element UI & JavaScript 】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合mybatis-plus实现分页查询(建议收藏)

    一、前言         最近学习了SpringBoot分页查询的两种写法,一种是手动实现,另一种是使用框架实现。现在我将具体的实现流程分享一下。 二、手动实现分页查询         先复习一下,SQL中的limit,下面一行sql语句的意思是从第二个数据开始查,查询出两条数据

    2024年01月16日
    浏览(55)
  • MyBatis-Plus使用条件构造器实现不同条件的查询,更新删除操作

    Wrapper 是所有条件构造器的父类,作用是生成条件语句,即where后面的sql子句 在调用查询,更新,删除操作时,需要根据条件进行判断,可以使用条件构造器进行组合条件,生成where后面条件子句 QueryWrapper,UpdateWrapper LambdaQueryWrapper,LambdaUpdateWrapper UpdateWrapper提供了set方法,可以

    2024年02月15日
    浏览(32)
  • element-plus的日期选择器限定选择范围

    提示:这里可以添加本文要记录的大概内容: element-plus的日期选择器限定选择范围,由于数据的获取范围限定,需要前端处理一下日期的选择范围 提示:以下是本篇文章正文内容,下面案例可供参考 提示:这里对文章进行总结: 这里只收集我目前为止在项目的过程中遇到的

    2024年02月13日
    浏览(24)
  • Mybatis-Plus如何进行时间日期的比较

    获取数据库中跟当前日期相等的记录时,还是调用eq方法,所以实体类包括数据库中的类型是Date,而不是DateTime,否则只能获取相同时刻的数据。 Mybatis-Plus的时间比较是基于数据库的函数进行的,而不是字符串的比较。在Mybatis-Plus中,可以使用Wrapper对象的 ge、gt、le、lt 方法

    2024年02月11日
    浏览(32)
  • Mybatis-Plus详解(新建maven项目、查询所有信息、打印SQL日志、实现CRUD(增删改查)、分页、条件查询且分页,前后端分离式开发)

    MyBatis-Plus(opens new window) (简称MP) 是一个MyBatis(opens new window)的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。想查看官网相关内容的化我这里提供了官网地址:https://baomidou.com/ 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般

    2024年02月04日
    浏览(40)
  • mybatis-plus之排序查询

    一、orderByAsc 排序:ORDER BY 字段, ... ASC 例:  orderByAsc(\\\"id\\\", \\\"name\\\") --- order by id ASC,name ASC #二、orderByDesc 排序:ORDER BY 字段, ... DESC 例:  orderByDesc(\\\"id\\\", \\\"name\\\") --- order by id DESC,name DESC #三、orderBy 排序:ORDER BY 字段, ... 例:  orderBy(true, true, \\\"id\\\", \\\"name\\\") --- order by id ASC,name ASC  倒叙排序  

    2024年02月15日
    浏览(27)
  • MyBatis-Plus条件查询问题解决

    问题描述 系统中有用户注册的功能,但是会出现重复注册的现象,代码中有做过重复校验,但是没有生效。 问题解决 首先排查数据生成时间点不同,相差时间有长有短,不是用户同时多次点击的原因,应该是用户这边不同时间重复多次注册导致的,但是程序中防止重复校验

    2024年02月16日
    浏览(29)
  • MyBatis-Plus(三.Wrapper条件查询)

    Wrapper是Mybatis-plus中特有的 条件封装接口 也就是把 查询的条件 封装到Wrapper实现类中 它的各个实现类有什么作用呢, 我觉得直接 顾名思义 吧  QueryWrapper(删,查) 因为参数一般都从前端传来的数据中得到, 所以必须用条件封装的第一个参数确认它不为null UpdateWrapper(改) LambdaQuer

    2024年02月04日
    浏览(26)
  • Mybatis-Plus高级查询LambdaQueryWrapper&QueryWrapper

    目录 前言 Wrapper 查询构造器 查询条件 前期准备 查询条件 allEq eq ne gt ge lt le between,notBetween like,notLike likeLeft likeRight isNull 空值查询 isNotNull 非空值查询 in notIn inSql、notInSql groupBy orderBy、orderByAsc、orderByDesc or、and 解决方法 last exists、notExists 总结 附加MySQL语句执行顺序 我刚刚毕

    2024年02月04日
    浏览(49)
  • MyBatis-Plus分页查询(快速上手运用)

    Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客   Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客 MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作(通过id更新和条件更新)_心态还需努力呀的博

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包