ElementUI-日期选择器
日期选择器
-
页面效果
页面效果 
-
组件源码
1
2
3
4
5
6
7
8
9
10<!--
daterange: 范围选择类型
format: 绑定后表单中显示的格式
value-format: 传递时显示的格式
-->
<template>
<el-date-picker v-model="rangeTime" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
</el-date-picker>
</template> -
数据绑定
1
2<!-- v-model="rangeTime" -->
rangeTime: [],1
2
3
4
5
6
7
8
9// 条件表单对象
regionFormVO: {
regionId: null,
regionName: undefined,
cityName: undefined,
addressName: undefined,
createTime: undefined,
endTime: undefined,
},1
2
3
4
5
6
7
8
9
10
11
12
13<!-- 数据重组 -->
onSubmit() {
const data = this.regionFormVO
if (data != null) {
// 将绑定后的值绑定
data.createTime = this.rangeTime[0]
data.endTime = this.rangeTime[1]
console.log("data: ", data);
// 重新组装提交的数据
this.fetchData(this.currentPage, this.pageSize, data)
}
this.fetchData(this.currentPage, this.pageSize, this.regionFormVO)
},1
2
3
4
5
6
7
8
9
10
11// 异步请求
fetchData(currentPage, pageSize, regionFormVO) {
getListPage(currentPage, pageSize, regionFormVO).then(async response => {
const { data: res } = await response
console.log(res);
this.currentPage = res.current
this.pageSize = res.size
this.tableData = res.records
this.total = res.total
})
},
后端处理
-
控制器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47package com.example.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.mapper.RegionMapper;
import com.example.pojo.dto.RegionFormDTO;
import com.example.pojo.vo.RegionFormVO;
import com.example.result.ResultModel;
import com.example.service.RegionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class RegionController {
private RegionService regionService;
public ResultModel<RegionFormDTO> listPage(
Integer currentPage,
Integer pageSize,
RegionFormVO regionFormVO) {
log.info("regionFormVO: {}",regionFormVO.toString());
Page<RegionFormDTO> pageParam = new Page<>(currentPage, pageSize);
IPage<RegionFormDTO> pageModel = regionService.selectListPage(pageParam, regionFormVO);
return ResultModel.success(pageModel);
}
} -
mapper1
2
3
4
5
public interface RegionMapper extends BaseMapper<Region> {
IPage<RegionFormDTO> selectPageVo(Page<RegionFormDTO> page, RegionFormVO regionFormVO);
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<mapper namespace="com.example.mapper.RegionMapper">
<!-- IPage<RegionFormDTO> selectPageVo(Page<RegionFormDTO> page, RegionFormVO regionFormVO); -->
<select id="selectPageVo" resultType="regionFormDTO" parameterType="regionFormVO">
SELECT r.regionId, r.regionName, c.cityName, a.addressName, createTime, endTime
FROM region r
JOIN city c ON r.regionId = c.regionId
JOIN address a ON c.cityId = a.cityId
<where>
<if test="regionFormVO.regionName != null and regionFormVO.regionName != ''">
or r.regionName LIKE #{regionFormVO.regionName}
</if>
<if test="regionFormVO.cityName != null and regionFormVO.cityName != ''">
or c.cityName LIKE #{regionFormVO.cityName}
</if>
<if test="regionFormVO.addressName != null and regionFormVO.addressName != ''">
or a.addressName LIKE #{regionFormVO.addressName}
</if>
<if test="regionFormVO.createTime != null and regionFormVO.createTime!='' and regionFormVO.endTime != null and regionFormVO.endTime !=''">
or createTime BETWEEN #{regionFormVO.createTime} AND #{regionFormVO.endTime}
</if>
</where>
</select>
</mapper> -
service1
2
3
4
5
public interface RegionService extends IService<Region> {
IPage<RegionFormDTO> selectListPage(Page<RegionFormDTO> pageParam, RegionFormVO regionFormVO);
}1
2
3
4
5
6
7
8
public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements RegionService {
public IPage<RegionFormDTO> selectListPage(Page<RegionFormDTO> pageParam, RegionFormVO regionFormVO) {
return baseMapper.selectPageVo(pageParam, regionFormVO);
}
} -
请求日志
请求日期范围 
日志解析 
说明
-
数据库的日期类型是
datetime -
在真正的实体类上对应的是
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Region implements Serializable {
private static final long serialVersionUID = 1L;
private Integer regionId;
private String regionName;
private Date createTime;
private Date endTime;
} -
使用
vo时使用 String类型, 在测试过程中 Date反复报错
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 coder-itl!
评论