首页 > 其他分享 >DatePicker中选择日期范围(daterange)的日期做为搜索条件时,前端和后端处理的两种不同方式

DatePicker中选择日期范围(daterange)的日期做为搜索条件时,前端和后端处理的两种不同方式

时间:2022-09-26 15:12:28浏览次数:51  
标签:DatePicker name RequestParam daterange getList listQuery 日期 endTime String

一、前端将日期分为开始时间和结束时间

1、前端代码

<el-form-item label="实际入库时间区间:">
        <el-date-picker
                v-model="listQuery.inStoreDate"
                type="daterange"
                value-format="yyyy-MM-dd"
                start-placeholder="开始日期"
                end-placeholder="结束日期"/>
      </el-form-item>

查询按钮

<el-button class="el-button el-button--primary el-button--small" type="primary" icon="el-icon-search" @click="getList" >查询</el-button>

getList方法:

getList() {
      this.listLoading = true
      this.listQuery.startTime = this.listQuery.inStoreDate == null ? null : this.listQuery.inStoreDate[0]
      this.listQuery.endTime = this.listQuery.inStoreDate == null ? null : this.listQuery.inStoreDate[1]
      console.log(this.listQuery)
      inStore.getList(this.listQuery).then(response => {
        console.log(response)
        this.list = response.data
        this.total = response.total
        this.listLoading = false
      })
    },

js:

getList(query) {
    return request({
      url: '/inStore/list',
      method: 'post',
      params: query
    })
  },

2、后台代码

controller

@PostMapping("/list")
    public Result getList(
            @RequestParam(name = "entityId", required = false) String entityId,
            @RequestParam(name = "deliveryEntName", required = false) String deliveryEntName,
            @RequestParam(name = "inStoreNoteNo", required = false) String inStoreNoteNo,
            @RequestParam(name = "startTime", required = false) String startTime,
            @RequestParam(name = "endTime", required = false) String endTime,
            @RequestParam(name = "inStoreType", required = false) String inStoreType,
            @RequestParam(name = "page", defaultValue = "1") int pageIndex,
            @RequestParam(name = "limit", defaultValue = "10") int length
    ) {
        return inStoreService.getList(entityId, deliveryEntName, inStoreNoteNo,startTime, endTime, inStoreType, pageIndex, length);
    }

service

@Override
    public Result getList(String entityId, String deliveryEntName, String inStoreNoteNo, String startTime, String endTime, String inStoreType,
                          int pageIndex, int length) {
        Map map = new HashMap();
        map.put("entityId", entityId);
        map.put("deliveryEntName", deliveryEntName);
        map.put("inStoreNoteNo", inStoreNoteNo);
        map.put("startTime", startTime);
        map.put("endTime", endTime);
        map.put("inStoreType", inStoreType);
        PageHelper.startPage(pageIndex, length);
        List<Map> inStoreList = inStoreDao.selectList(map);
        PageInfo pageInfo = new PageInfo(inStoreList);
        return Result.operating("入库信息", true, ResultCode.SUCCESS, pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPages());
    }

dao

<select id="selectList" resultMap="inStore">
        select *
        from b_in t1
        <where>
            <if test="entityId!=null and entityId!=''">
                AND t1.entity_id =#{entityId}
            </if>
            <if test="deliveryEntName!=null and deliveryEntName!=''">
                AND t1.from_name like concat('%',#{deliveryEntName},'%')
            </if>
            <if test="inStoreNoteNo!=null and inStoreNoteNo!=''">
                AND t1.in_no like concat('%',#{inStoreNoteNo},'%')
            </if>
            <if test="startTime!=null and startTime!='' and endTime!=null and endTime !=''">
                AND t1.in_date BETWEEN  #{startTime} AND #{endTime}
            </if>
            <if test="inStoreType!=null and inStoreType!=''">
                AND t1.in_type = #{inStoreType}
            </if>
        </where>
        ORDER BY t1.create_time desc, t1.id desc
    </select>

二、后台分为开始时间和结束时间

1、前端代码

<el-form-item label="生产日期:">
        <el-date-picker
            v-model="listQuery.produceDate"
            type="daterange"
            range-separator="-"
            start-placeholder="起始时间"
            end-placeholder="结束时间"
            value-format="YYYY-MM-DD"
            clearable
        />
      </el-form-item>

getList方法

getList() {
      this.listLoading = true;
      productRelation.getList(this.listQuery).then(res => {
        if (res.success) {
          this.list = res.data;
          this.total = res.total;
        }
      }).catch(err => {
        console.log(err);
      }).finally(() => {
        this.listLoading = false;
      })
    },

2、后台代码

controller

@PostMapping("/getList")public Result getList(@RequestBody JSONObject jsonQuery) {
        return productRelationService.getList(jsonQuery);
    }

service实现类中通过JSONObject的getList方法得到数组,再得到开始时间和结束时间。

// 获取到前台传递的生产日期查询区间
        List<String> produceDate = jsonQuery.getList("produceDate", String.class);
        if (CollectionUtil.isNotEmpty(produceDate)) {
            jsonQuery.put("beginDate", produceDate.get(0));
            jsonQuery.put("endDate", produceDate.get(1));
        }

 

标签:DatePicker,name,RequestParam,daterange,getList,listQuery,日期,endTime,String
From: https://www.cnblogs.com/zwh0910/p/15143717.html

相关文章

  • react-native 判断传入的日期是否是昨天
    constisYesterday=(theDate='2022-1-110:12:00')=>{theDate=newDate(theDate)vardate=(newDate());//当前时间vartoday=newDate(date.ge......
  • Linux常用基本命令(时间日期及用户管理类)
    时间日期类1)基本语法date [OPTION]...[+FORMAT]2)选项说明选项功能-d<时间字符串>显示指定的“时间字符串”表示的时间,而非当前时间-s<日期时间>设置......
  • 1.Oracle常用的日期函数
    1.获取某日所在周的第一天SELECTtrunc(to_date(‘2011-03-13’,‘YYYY-MM-DD’),‘iw’)FROMdual;2.获取当日所在周的第二天SELECTTO_CHAR(trunc(SYSDATE,......
  • MySQL日期类型介绍及格式化
    1、MySQL中常用的几种时间类型有:date、datetime、time、year、timestamp数据类型占用字节最小值最大值零值表示备注date41000-01-019999-12-310000-00-0......
  • Flask 学习-72.Flask-RESTX 自定义输出日期格式
    前言DateTime类型可以支持2种时间格式RFC822和ISO8601,如果需要输出自己想要的格式,需要自定义日期类型。日期格式DateTime类型可以支持2种时间格式RFC822和ISO......
  • mysql日期时间-加减、查询
    --加1天selectdate_add(now(),interval1day);--加1小时selectdate_add(now(),interval1hour);--加1分钟selectdate_add(now(),interval1minute);......
  • C++ time_t与格式化日期时间字符串的转换
    开发中对于特定格式的日期和格式获取很常见,这里给出一系列工具函数:#include<time.h>#include<sstream>usingnamespacestd;//time转格式化字符串=============......
  • dotnet OpenXML 解析 PPT 图表 解析日期时间表示内容
    在OpenXML里的图表存放的日期时间很多存放的是数值,需要进行转换才能获取到用户可见的字符串日期在OpenXML里可以使用数值存放,需要根据数值和格式化字符串转换为用户可......
  • C# DateTime日期格式化
    1.分类DateTime调用ToString()传入的参数可分为制式和自定义两种:1) 制式:系统自带的,转入特定的单个字符就可转换为系统已设定好的格式。2) 自定义:自由组合日期代码(y......
  • java 取上月份最后一天日期8位
    1/**2*获取上个月的最后一天23点59分59秒的时间3*/4privateStringgetBeforeLastMonthdate()throwsException{5SimpleDateForma......