springboot+vue2+elementui实现时间段查询

1.前端代码


使用elementui的时间段选择器:

<el-date-picker v-model="queryPage.itemTime" type="daterange"
 value-format="yyyy-MM-dd" class="filter-item"
range-separator="至"  start-placeholder="创建日期"  
end-placeholder="创建日期">
        </el-date-picker>

设置查询字段,为数组形式:

  queryPage: {
        page: 1,
        limit: 20,
        itemTime:[],
      },

编写方法,调用后端接口:

search() { // 查询
      this.loadList()
    },
    loadList() { // 加载列表
      this.tableData = []
      this.listLoading = true
      

      getPage(this.queryPage).then(response => {
        const { data } = response
        this.tableData = data.records
        this.total = parseInt(data.total)
        this.listLoading = false
      }).catch(response => {
        this.listLoading = false
      })
    },

在api文件夹对应的js添加

export function getPage(data) {
  return request({
    url: '/operationMaintenance/getPage',
    method: 'post',
    data
  })
}

2.后端代码

controller

@PostMapping("/getPage")
	public ResultData getPage(@RequestBody QueryEntry queryEntry) {
		IPage<OperationMaintenance> wappers = operationMaintenanceService.getPage(queryEntry);
		return ResultData.success("OK", wappers);
	}

serviceimpl

	@Override
	public IPage<OperationMaintenance> getPage(QueryEntry queryEntry) {
		Page<OperationMaintenance> page = new Page<>(queryEntry.getPage(), queryEntry.getLimit());
		IPage<OperationMaintenance> iPage = operationMaintenanceMapper.getPage(page, queryEntry);
		return iPage;
	}

mapper

@Mapper
public interface OperationMaintenanceMapper extends BaseMapper<OperationMaintenance> {
    IPage<OperationMaintenance> getPage(Page<OperationMaintenance> page, @Param("queryEntry") QueryEntry queryEntry);

    OperationMaintenance getInfo(Long code);

    List<OperationMaintenance> getSelected2Page(@Param("queryEntry") QueryEntry queryEntry);
}

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.todod.mapper.OperationMaintenanceMapper">

    <select id="getPage" resultType="com.todod.model.OperationMaintenance">
        SELECT om.om_id id,mc.kh_code khCode,mc.kh_name khName,mpi.xg_pk_id mid, mpi.xg_code xmCode,mpi.xg_name xmName,om.om_title title,
               su.su_nick_name nickName, om.om_start_time startTime,om.om_end_time endTime,om.om_content content,om.om_message message,
                om.om_report_id reportId,om.om_file_id fileId,
               om.om_state state,om.om_create_user_id createUserId,om.om_create_time createTime

        FROM operation_maintenance om
                 left  JOIN data_governance_db_dev.md_project_info mpi ON mpi.xg_pk_id = om.om_dir_id
                 left JOIN data_governance_db_dev.sys_user su ON su.su_id = om.om_staff_id
                 left JOIN data_governance_db_dev.md_customer mc ON mc.kh_pk_id = om.om_user_id AND mpi.xg_flag_fl = 'KH'
        <where> 1 = 1
                <if test="queryEntry.getKhCode != null and queryEntry.getKhCode != '' and queryEntry.getKhCode != 'null'">
                    and mc.kh_code like '${queryEntry.getKhCode}'
                </if>
                <if test="queryEntry.getLevel != null and queryEntry.getLevel != '' and queryEntry.getLevel != 'null'">
                    and mpi.xg_pk_id like '${queryEntry.getLevel}'
                </if>
                <if test="queryEntry.getKhName != null and queryEntry.getKhName != '' and queryEntry.getKhName != 'null'">
                        and mc.kh_name like '%${queryEntry.getKhName}%'
                </if>
                <if test="queryEntry.getXmCode != null and queryEntry.getXmCode != '' and queryEntry.getXmCode != 'null'" >
                    and mpi.xg_code like '${queryEntry.getXmCode}'
                </if>
                <if test="queryEntry.getXmName != null and queryEntry.getXmName != '' and queryEntry.getXmName != 'null'" >
                    and mpi.xg_name = '${queryEntry.getXmName}'
                </if>
                <if test="queryEntry.getTitle != null and queryEntry.getTitle != '' and queryEntry.getTitle != 'null'" >
                    and om.om_title like '%${queryEntry.getTitle}%'
                </if>
                <if test="queryEntry.get_userid != null and queryEntry.get_userid != '' and queryEntry.get_userid != 'null'" >
                    and om.om_create_user_id like '${queryEntry.get_userid}'
                </if>
                <if test="queryEntry.startTime != null and queryEntry.startTime != ''">
                    <![CDATA[ AND om.om_start_time >= #{queryEntry.startTime, jdbcType=TIMESTAMP} ]]>
                </if>
                <if test="queryEntry.endTime != null and queryEntry.endTime != ''">
                    <![CDATA[ AND om.om_end_time <= #{queryEntry.endTime, jdbcType=TIMESTAMP} ]]>
                </if>
                <if test="queryEntry.getState != null and queryEntry.getState != '' and queryEntry.getState != 'null'" >
                    and om.om_state = '${queryEntry.getState}'
                </if>
        </where>
        ORDER BY om.om_create_time desc
    </select>
    <select id="getInfo" resultType="com.todod.model.OperationMaintenance">
        SELECT om.om_id id,om.om_dir_id dirId,om.om_user_id userId,om.om_staff_id staffId,om.om_title title,
               om.om_start_time startTime,om.om_end_time endTime,om.om_content content,om.om_message message,
                om.om_report_id reportId,om.om_file_id fileId, om.om_state state,om.om_create_user_id createUserId,om.om_create_time createTime

        FROM operation_maintenance om
        <where> 1 = 1
            <if test="code != null">
                and om.om_id = '${code}'
            </if>
        </where>
    </select>
    <select id="getSelected2Page" resultType="com.todod.model.OperationMaintenance">
    select om.om_id id,om.om_dir_id dirId,om.om_user_id userId,om.om_staff_id staffId,om.om_title title,
           om.om_start_time startTime,om.om_end_time endTime,om.om_content content,om.om_message message,
           om.om_state state,om.om_create_user_id createUserId,om.om_create_time createTime
    from operation_maintenance om
    </select>
</mapper>

查询条件实体类

package com.todod.entity;

/**
 * 查询条件
 * 
 * @ClassName: QueryEntry
 * @Description:
 * @author gsh
 * @date 2019年10月11日
 *
 */
public class QueryEntry {

	private Long menuId;
	//private Long parentId;
	private String name;
	private String code;
	private String loginName;
	private String nickName;
	private String beginDate;
	private String endDate;
	private String state;
	private Long _userid;
	private String khName;
	private String khCode;
	private String xmCode;
	private String xmName;
	private String title;
	private String startTime;
	private String endTime;
	private String type;
	private String priority;
	private String status;
	private String itTitle;
	private String itCreatTime;
	private Long  maintenanceId;
	private String[] itemTime;

	public String[] getItemTime() {
		return itemTime;
	}

	public void setItemTime(String[] itemTime) {
		if (itemTime != null && itemTime.length == 2) {
			this.startTime = itemTime[0]; // 假设第一个元素是开始时间
			this.endTime = itemTime[1]; // 假设第二个元素是结束时间
		} else {
			// 处理错误情况,比如数组为null或长度不为2
			// 可以抛出异常,或者设置默认值等
			this.startTime = null;
			this.endTime = null;
		}
	}

	private String[] createTime;

	public String[] getCreateTime() {
		return createTime;
	}

	public void setCreateTime(String[] createTime) {
		if (createTime != null && createTime.length == 2) {
			this.createTimeOne = createTime[0]; // 假设第一个元素是开始时间
			this.createTimeTwo = createTime[1]; // 假设第二个元素是结束时间
		} else {
			// 处理错误情况,比如数组为null或长度不为2
			// 可以抛出异常,或者设置默认值等
			this.createTimeOne = null;
			this.createTimeTwo = null;
		}
	}
	private String createTimeOne;

	public String getCreateTimeOne() {
		return createTimeOne;
	}

	public void setCreateTimeOne(String createTimeOne) {
		this.createTimeOne = createTimeOne;
	}

	private String createTimeTwo;

	public String getCreateTimeTwo() {
		return createTimeTwo;
	}

	public void setCreateTimeTwo(String createTimeTwo) {
		this.createTimeTwo = createTimeTwo;
	}

	private Long level;

	public Long getLevel() {
		return level;
	}

	public void setLevel(Long level) {
		this.level = level;
	}



	public Long getMaintenanceId() {
		return maintenanceId;
	}

	public void setMaintenanceId(Long maintenanceId) {
		this.maintenanceId = maintenanceId;
	}

	public String getItTitle() {
		return itTitle;
	}

	public void setItTitle(String itTitle) {
		this.itTitle = itTitle;
	}

	public String getPriority() {
		return priority;
	}

	public void setPriority(String priority) {
		this.priority = priority;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}



	public String getItCreatTime() {
		return itCreatTime;
	}

	public void setItCreatTime(String itCreatTime) {
		this.itCreatTime = itCreatTime;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getKhCode() {
		return khCode;
	}

	public void setKhCode(String khCode) {
		this.khCode = khCode;
	}

	public String getXmCode() {
		return xmCode;
	}

	public void setXmCode(String xmCode) {
		this.xmCode = xmCode;
	}

	public String getXmName() {
		return xmName;
	}

	public void setXmName(String xmName) {
		this.xmName = xmName;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getStartTime() {
		return startTime;
	}

	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}

	public String getEndTime() {
		return endTime;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	public String getKhName() {
		return khName;
	}

	public void setKhName(String khName) {
		this.khName = khName;
	}

	public Long get_userid() {
		return _userid;
	}

	public void set_userid(Long _userid) {
		this._userid = _userid;
	}

	private int page = 1; // 页码

	private int limit = 10; // 每页条数

	public int getStart() {
		int start = (page - 1) * limit; // 起始页码
		return start;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

	public int getLimit() {
		return limit;
	}

	public void setLimit(int limit) {
		this.limit = limit;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	public String getBeginDate() {
		return beginDate;
	}

	public void setBeginDate(String beginDate) {
		this.beginDate = beginDate;
	}

	public String getEndDate() {
		return endDate;
	}

	public void setEndDate(String endDate) {
		this.endDate = endDate;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public Long getMenuId() {
		return menuId;
	}

	public void setMenuId(Long menuId) {
		this.menuId = menuId;
	}

	@Override
	public String toString() {
		return "QueryEntry [name=" + name + ", code=" + code + ", loginName=" + loginName + ", nickName=" + nickName
				+ ", beginDate=" + beginDate + ", endDate=" + endDate + ", state=" + state + ", _userid=" + _userid
				+ ", page=" + page + ", limit=" + limit + "]";
	}

	public Long getParentId() {
		return _userid;
	}
}

这是关键:

将前端传来的时间数组,赋值给对应的属性;

vue可以使用插值表达式将后端传来的两个时间拼接在一起:

<el-table-column align="left" header-align="center" label="运维开始-至-结束日期" min-width="200">
        <template slot-scope="scope">
          <span>{{ scope.row.startTime }} 至 {{ scope.row.endTime }}</span>
        </template>
      </el-table-column>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/638334.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python筑基之旅-MySQL数据库(三)

目录 一、数据库操作 1、创建 1-1、用mysql-connector-python库 1-2、用PyMySQL库 1-3、用PeeWee库 1-4、用SQLAlchemy库 2、删除 2-1、用mysql-connector-python库 2-2、用PyMySQL库 2-3、用PeeWee库 2-4、用SQLAlchemy库 二、数据表操作 1、创建 1-1、用mysql-…

Kubernetes常用命令

目录 一.资源管理办法 1.陈述式资源管理方法 &#xff08;1&#xff09;kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口 &#xff08;2&#xff09;kubectl 是官方的CLI命令行工具&#xff0c;用于与 apiserver 进行通信&#xff0c;将用户在…

python+pytest+pytest-html+allure集成测试案例

pythonpytestpytest-htmlallure集成测试案例 下面是pythonpytestpytest-htmlallure四个组件同时集成使用的简单案例。 1. 项目结构 project/│├── src/│ ├── __init__.py│ ├── main.py│├── tests/│ ├── __init__.py│ ├── conftest.py│ └──…

MySQL主从复制(二):高可用

正常情况下&#xff0c; 只要主库执行更新生成的所有binlog&#xff0c; 都可以传到备库并被正确地执行&#xff0c; 备库就能达到跟主库一致的状态&#xff0c; 这就是最终一致性。 但是&#xff0c; MySQL要提供高可用能力&#xff0c; 只有最终一致性是不够的。 双M结构的…

用Python代码批量提取PDF文件中的表格

PDF文档中常常包含大量数据&#xff0c;尤其是官方报告、学术论文、财务报表等文档&#xff0c;往往包含了结构化的表格数据。表格作为承载关键信息的载体&#xff0c;其内容的准确提取对于数据分析、研究论证乃至业务决策具有重大意义。然而&#xff0c;PDF格式虽保证了文档的…

STM32——DAC篇(基于f103)

技术笔记&#xff01; 一、DAC简介&#xff08;了解&#xff09; 1.1 DAC概念 传感器信号采集改变电信号&#xff0c;通过ADC转换成单片机可以处理的数字信号&#xff0c;处理后&#xff0c;通过DAC转换成电信号&#xff0c;进而实现对系统的控制。 1.2 DAC的特性参数 1.3…

你以为的私域是真正的私域嘛??你的私域流量真的属于你嘛?

大家好 我是一个软件开发公司的产品经理 专注私域电商行业7年有余 您的私域流量是真正的属于你自己嘛&#xff1f; 私域的定义 私域的界定&#xff1a;一个互联网私有数据&#xff08;资产&#xff09;积蓄的载体。这个载体的数据权益私有&#xff0c;且具备用户规则制定权…

继承和多态

目录: 1. 继承 2. 多态&#xff1a; 转型 重写 正文&#xff1a; 1. 继承&#xff1a; 观察以下代码&#xff1a; 我们发现Cat类和Dog类中有许多相同的属性&#xff0c;那不妨思考一下是否能有一种办法能把它们的相同点都归结到一块儿呢&#xff1f; 当然有&#xff0c;它就…

【html】网页布局模板01---简谱风

模板效果: 这是一种最简单,最干净的一种网页布局。 模板介绍: 模板概述: 这个模板是一个基础的网页布局模板,包括一个头部区域(header),其中包含网站标题(logo)和导航菜单(nav),以及一个页脚区域(copy),用于显示版权信息。整体布局简洁明了,适合作为各种类…

构建全面的无障碍学习环境:科技之光,照亮学习之旅

在信息与科技日益发展的当下&#xff0c;为所有人群提供一个包容和平等的学习环境显得尤为重要&#xff0c;特别是对于盲人朋友而言&#xff0c;无障碍学习环境的构建成为了一项亟待关注与深化的课题。一款名为“蝙蝠避障”的辅助软件&#xff0c;以其创新的设计理念与实用功能…

贪心算法--区间调度问题

贪心算法 引言 贪心算法是一种简单而有效的算法设计技巧&#xff0c;在解决一些优化问题时具有广泛的应用。其基本思想是通过每一步的局部最优选择&#xff0c;最终达到全局最优解。贪心算法通常不会回溯之前的决策&#xff0c;而是根据当前状态作出最优决策&#xff0c;因此…

d20(184-190)-勇敢开始Java,咖啡拯救人生

目录 网络通信 网络通信三要素&#xff08;IP地址&#xff0c;端口号&#xff0c;协议 IP地址 InetAddress 端口号 协议 传输层的两个通信协议 UDP通信 java.net.Datagramsocket类 客户端 服务端 UDP通信多收多发 客户端 服务端 TCP通信 java.net.Socket类 客…

UWA DAY 2024 正式启动|创新潜藏无限可能

备受期待的UWA DAY 2024即将盛大开幕&#xff01;由侑虎科技UWA主办的这场年度游戏开发者大会&#xff0c;以“创新潜藏无限可能”为主题&#xff0c;致力于为游戏开发者呈现最前沿的技术盛宴。 大会定于2024年9月7日至9月8日&#xff08;周六、周日&#xff09;在上海举行&am…

YOLOv9改进策略 | 图像去雾 | 利用图像去雾网络UnfogNet辅助YOLOv9进行图像去雾检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用UnfogNet超轻量化图像去雾网络,我将该网络结合YOLOv9针对图像进行去雾检测(也适用于一些模糊场景),我将该网络结构和YOLOv9的网络进行结合同时该网络的结构的参数量非常的小,我们将其添加到模型里增加的计算量和参数量基本可…

【R语言】ggplot中点的样式shape参数汇总

ggplot中点的样式展示&#xff1a; library(ggplot2)# 创建数据框 a<- data.frame(x 0:25, y 0:25) # 创建散点图 ggplot(a, aes(x x, y y, shape as.factor(y))) geom_point(size 4) scale_shape_manual(values 0:25) labs(shape "形状") theme(legend.…

k8s二进制安装与部署

目录 一、实验目的 二、实验环境 三、实验步骤 3.1 操作系统初始化配置 3.2 部署 docker引擎 3.3 部署 etcd 集群 3.3.1 在 master01 节点上操作 ​3.3.2 在 node01 节点上操作 3.3.3 在 node02 节点上操作 3.4 部署 Master 组件 3.4.1 在 mast…

【QT实战】汇总导航

✨Welcome 大家好&#xff0c;欢迎来到瑾芳玉洁的博客&#xff01; &#x1f611;励志开源分享诗和代码&#xff0c;三餐却无汤&#xff0c;顿顿都被噎。 &#x1f62d;有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩&#xff0c;不出意外被敷衍、被唾弃、被埋在了垃圾堆…

EN6347QI 开关稳压器 4A 贴片QFN-38 参数资料 应用案例 相关型号

EN6347QI 是一款直流/直流开关转换器。它是一款高效率的 buck (降压) 转换器&#xff0c;内置了电感器&#xff0c;能够提供高达 4A 的输出电流。其工作电压范围为 4.5V 至 12V&#xff0c;输出电压可调&#xff0c;最高可达 15V。EN6347QI 适合于各种电子设备中&#xff0c;用…

C#学习指南:重要内容与实用技巧

学习C#编程是一段充满挑战但又非常充实的旅程。以下是我在学习过程中积累的一些经验&#xff0c;希望能对大家有所帮助。 一、掌握基础概念 类及其成员 C#中的类是编程的基础模块。理解类的结构、属性、方法和构造函数是至关重要的。每个类都有其特定的功能&#xff0c;学会如…

【Linux网络编程】IO多种转接之Reactor

Reactor 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 基于上一篇epoll的学习&#xff0c;现在我们也知道epoll的工作模式有两种&#xff0c…