dateChange(field, range) {this.queryParams[`${field}Start`] = null;this.queryParams[`${field}End`] = null;if (range) {this.queryParams[`${field}Start`] = range[0];this.queryParams[`${field}End`] = range[1];}this.handleQuery();// console.log(this.queryParams);},
<el-form-item label="时间筛选" prop="pickTimeArr"><el-date-picker v-model="pickTimeArr"type="datetimerange" range-separator="至" start-placeholder="开始日期":clearable="false":default-time="['00:00:00', '23:59:59']"
end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss"@change="val => dateChange('pickTime', val)"></el-date-picker></el-form-item>
注意这个change事件,而且一开始需要先清空嗷,之前你就犯过这种错误。
还有clearable怎么设置,你记住了吗?
还有这个默认的时刻default-time
以及这本身是有默认事件的日期时间选择器,type要整明白 datetimerange
还有一个format。
获取近7天的日期时间
methods: {// 获取近七天的日期getSevenDay() {const now = new Date();const sevenDaysAgo = new Date();sevenDaysAgo.setDate(now.getDate() - 7);// this.queryParams.pickTime = [sevenDaysAgo, now];this.pickTimeArr = [sevenDaysAgo, now];const yearEnd = now.getFullYear();const monthEnd = String(now.getMonth() + 1).padStart(2, '0');const dayEnd = String(now.getDate()).padStart(2, '0');// 获取当前时间const hoursNow = String(now.getHours()).padStart(2, '0');const minutesNow = String(now.getMinutes()).padStart(2, '0');const secondsNow = String(now.getSeconds()).padStart(2, '0');this.queryParams.pickTimeEnd = `${yearEnd}-${monthEnd}-${dayEnd} ${hoursNow}:${minutesNow}:${secondsNow}`;const yearStart = sevenDaysAgo.getFullYear();const monthStart = String(sevenDaysAgo.getMonth() + 1).padStart(2, '0');const dayStart = String(sevenDaysAgo.getDate()).padStart(2, '0');this.queryParams.pickTimeStart = `${yearStart}-${monthStart}-${dayStart} ${hoursNow}:${minutesNow}:${secondsNow}`;},}
这里使用了面向AI编程,学习了新方法https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
但是你传值传反了!!!!
这里我们是需要在初始状态就筛选了近7天的数据,因此在created中使用了。
created() {this.getSevenDay();const driver = this.$route.params && this.$route.params.autoPickDriver;if (driver) {this.queryParams.driver = driver;}this.getList();},
Vue2生命周期:Vue2生命周期详细讲解——周期图示、代码演示变化_vue2 errorcaptured-CSDN博客
还有需要在重置的时候进行再次查询:
resetQuery() {this.resetForm('queryForm');this.getSevenDay();this.handleQuery();},
下面是java的接口传参代码:
你只需要看String pickTimeStart 和 String pickTimeEnd
/** 派单时间 */@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")@ApiModelProperty(value = "派单时间开始")private String pickTimeStart;/** 派单时间结束 */@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")@ApiModelProperty(value = "派单时间结束")private String pickTimeEnd;