当前位置: 首页 > Web前端 > HTML

el-date-picker日期快捷键(今天、本周、本月、上个月、本季、今年)

时间:2023-03-28 16:35:34 HTML

图示为需要使用快捷键的vue页面htmltimeRange=val"v-model="timeRange"ref="timeRange"/>今天this周本月上个月timeRange2=val"v-model="timeRange2"ref="timeRange2"/>这个赛季今年script/***快捷键逻辑原来是放在@/mixins/standard-list中,方便演示*其他代码省略**/exportdefault{data(){timeRange:[],//Timerange---订单创建时间timeRange1:[],//Timerange---支付时间},watch:{timeRange:{handler(newV){if(newVinstanceofArray){this.searchData.createTimeBegin=newV[0];this.searchData.createTimeEnd=newV[1];}else{this.searchData.createTimeBegin=null;this.searchData.createTimeEnd=null;}}},timeRange2:{handler(newV){if(newVinstanceofArray){this.searchData.payTimeBegin=newV[0];this.searchData.payTimeEnd=newV[1];}else{this.searchData.payTimeBegin=null;this.searchData.payTimeEnd=null;}}},},methods:{//日期快捷方式(默认绑定timeRange)shortcuts(text,ref='timeRange'){conststart=newDate();constend=newDate();开始.setHours(0);开始.setMinutes(0);start.setSeconds(0);结束.setHours(23);结束.setMinutes(59);结束.setSeconds(59);constmonth=start.getMonth()+1;//0-11,月份加1,方便对应大月小月的口头禅switch(text){case'today':this.$refs[ref].val=[start,结尾];这个.$refs[ref].changeVal();休息;case'this-week':consttoday=start.getDate();//1-31constweekday=start.getDay()||7;//0-6,改为07start.setDate(today+(1-weekday));end.setDate(今天+(7-weekday));this.$refs[ref].val=[开始,结束];这个.$refs[ref].changeVal();休息;case'this-month':start.setDate(1);如果(月===1||月===3||月===5||月===7||月===8||月===10||月===12){结束.setDate(31);}if(month===4||month===6||month===9||month===11){end.setDate(30);}if(month===2){constyear=start.getFullYear();如果((年%4==0&&!(年%100==0))||年%400==0){end.setDate(29);}else{end.setDate(28);}}this.$refs[ref].val=[开始,结束];this.$refs[ref].changeVal();休息;case'last-month':constlastMonth=start.getMonth()-1;//0-11,月份减1,到上月,-1-10if(lastMonth===-1){constyear=start.getFullYear();start.setFullYear(year-1);开始.setMonth(11);end.setFullYear(year-1);结束.setMonth(11);结束.setDate(31);//-1月份单写}else{start.setMonth(lastMonth);end.setMonth(lastMonth);}开始.setDate(1);consttem=lastMonth+1if(tem===1||tem===3||tem===5||tem===7||tem===8||tem===10){结束.setDate(31);}if(tem===4||tem===6||tem===9||tem===11){end.setDate(30);}if(tem===2){constyear=start.getFullYear();如果((年%4==0&&!(年%100==0))||年%400==0){end.setDate(29);}else{end.setDate(28);}}this.$refs[ref].val=[开始,结束];this.$refs[ref].changeVal();休息;case'this-quarter':constquarter=Math.floor((month%3===0?(month/3):(month/3+1)))start.setDate(1);如果(季度===1){start.setMonth(0);结束.setMonth(2);结束.setDate(31);}if(quarter===2){start.setMonth(3);结尾。设定月(5);结束.setDate(30);}if(quarter===3){start.setMonth(6);结束.setMonth(8);结束.setDate(30);}if(quarter===4){start.setMonth(9);结束.setMonth(11);结束.setDate(31);}this.$refs[ref].val=[开始,结束];this.$refs[ref].changeVal();休息;案例'今年':start.setMonth(0);开始.setDate(1);结束.setMonth(11);结束.setDate(31);this.$refs[ref].val=[开始,结束];this.$refs[ref].changeVal();休息;}},}}