前提:在一个任务列表的搜索栏,添加一个日期区间的搜索,使用到了element plus中的日期选择器el-date-picker,el-date-picker本身方法中是有change事件的,但是清空按钮没有回调方法,在任务列表的搜索需求中,在日期区间清除后要请求全部任务列表内容
解决过程:虽然el-date-picker没有清除按钮的回调,但是change事件会在清除按钮把日期区间内容清空使内容发生变化后进行触发,可以在change事件的回调方法方法中判断当el-date-picker中v-model双向绑定的数组为空时,则是点击了清除按钮,可以续写清除之后需要执行的方法,反正当不为空时则正常执行日期改变后的搜索事件
解决结果:
html:
<el-date-picker
v-model="state.filtrate.time_list"
type="daterange"
value-format="YYYY-MM-DD HH:mm:ss"
unlink-panels
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="dateChange"
/>
js:
//数据
const state = reactive({
filtrate:{
time_list:'',//选择时间
startTime:'',//任务开始时间
endTime:'',//任务结束时间
},
})
//日期改变监听方法
const dateChange = ()=>{
//当日期内容存在时
if(state.filtrate.time_list){
state.filtrate.startTime=state.filtrate.time_list[0]
state.filtrate.endTime=state.filtrate.time_list[1]
//搜索方法
getFilterTaskList()
}else{
//当日期内容不存在时
state.filtrate.startTime=''
state.filtrate.endTime=''
state.taskList=[]
//获取全部任务列表方法
getTaskList()
}
}