DateTimePicker 日期时间选择器 + mybatis-plus 传参后端查询 传值自定义list,后端再接收...

文章展示了在前端使用ElementUI的日期选择器组件实现时间范围选择,并配置快捷选项,如最近一周、最近一个月和最近三个月。后端通过注解处理查询请求,对日期范围进行过滤。在处理日期时,存在一个条件判断问题,可能在条件不满足时仍尝试访问对象属性。

前端

<el-form-item label="创建时间" prop="extendate">
              <el-date-picker
                v-model="queryParams.extendate"
                value-format="yyyy-MM-dd HH:mm:ss"
                type="datetimerange"
                :picker-options="pickerOptions"
                range-separator="至"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
                align="right"
              >
              </el-date-picker>
            </el-form-item>


  // 时间控件
      pickerOptions: {
          shortcuts: [{
            text: '最近一周',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit('pick', [start, end]);
            }
          }, {
            text: '最近一个月',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
              picker.$emit('pick', [start, end]);
            }
          }, {
            text: '最近三个月',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
              picker.$emit('pick', [start, end]);
            }
          }]
        },
        extendate: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],

后端

// 实体
  //  @TableField(exist = false)
  // private List<Date> extendate;


    @Log(title = "承运商查询", businessType = BusinessType.QUERY)
    @GetMapping("/listByPage")
    public TableDataInfo listforPage(Carrier car) {
        startPage();
        List<Carrier> list = carrierService.lambdaQuery()
                .like(StrUtil.isNotBlank(car.getCode()), Carrier::getCode, car.getCode())
                .like(StrUtil.isNotBlank(car.getName()), Carrier::getName, car.getName())
                .eq(StrUtil.isNotBlank(car.getWarehousecode()), Carrier::getWarehousecode, car.getWarehousecode())
                .ge(car.getExtendate() != null, Carrier::getCreated, car.getExtendate() != null ? car.getExtendate().get(0) : 1)
                .le(car.getExtendate() != null, Carrier::getCreated, car.getExtendate() != null ? car.getExtendate().get(1) : 1)
                .list();
        return getDataTable(list);
    }
// car.getExtendate() != null ? car.getExtendate().get(0) : 1  用了一个三元表达式来区分前端是否传值,虽然 condition 判断了,如果为false就不会拼接,但是他没有管是否get,即condition为false 依然会去执行 car.getExtendate().get(0)

imageimageimage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值