使用elementUI的日期时间选择器+下拉菜单+tab切换+table表格完成排行榜的切换及按年月周查询(部分代码)

在这里插入图片描述
在这里插入图片描述

<div class="hot-top">
  <p>
       <el-date-picker v-model="dataValue" :type="type" :picker-options="pickerOptions"
           :value-format="type==='year'?'yyyy':type==='month'?'yyyy-MM':'yyyy-MM-dd'"
           :format="type==='year'?'yyyy':type==='month'?'yyyy-MM':'yyyy 第 WW 周'"
           :placeholder="type==='year'?'选择年':type==='month'?'选择月':'选择周'" size="small"
           @change="dataPickChange">
       </el-date-picker>
       <el-dropdown split-button type="primary" size="small" style="margin-left:20px;"
           @command="handCommand">
           {{`条件查询(${type==='year'?'年':type==='month'?'月':'周'})`}}
           <el-dropdown-menu slot="dropdown">
               <el-dropdown-item command="year">按年查询</el-dropdown-item>
               <el-dropdown-item command="month">按月查询</el-dropdown-item>
               <el-dropdown-item command="week">按周查询</el-dropdown-item>
           </el-dropdown-menu>
       </el-dropdown>
   </p>
   <span v-for="(value,key) in screen" :key="key" :class="{ 'activeClass' : key === curSearchKey }"
       @click="setCurSearchKey(key)">{{value}}
   </span>
</div>
export default {
    data () {
        return {
            pickerOptions: { //日期时间选择器之今天以后的时间禁用
                disabledDate (time) {
                    return time.getTime() > Date.now() - 8.64e6
                }
            },
            type: 'year',//默认日期选择器的type为年
            dataValue: '',
            curSearchKey: '',
            screen: {
                lessonHotRanking: '最热课堂 Top',
                lessonExpHotRanking: '最热实验 Top',
                teacherHotRanking: '最热老师 Top',
                userHotRanking: '最活跃用户 Top',
            },
            params: {}, //年月周参数
        }
    },
dataPickChange (key) {
//当时间选择器选中的值发生改变时,根据type的类型传不同的值,比如年就只传year,月就传year+month,周就传year+week
		 let arr = []
		  if (this.type === 'year') {
		      this.params = {
		          year: key
		      }
		  } else if (this.type === 'month') {
		      arr = key.split('-')
		      this.params = {
		          year: arr[0],
		          month: arr[1]
		      }
		  } else {
		      arr = key.split('-')
		      this.params = {
		          year: arr[0],
		          week: this.getWeek(key)
		      }
	   }
},
getWeek (dt) { //获取当前星期几
            let d1 = new Date(dt);
            let d2 = new Date(dt);
            d2.setMonth(0);
            d2.setDate(1);
            let rq = d1 - d2;
            let days = Math.ceil(rq / (24 * 60 * 60 * 1000));
            let num = Math.ceil(days / 7);
            return num > 1 ? num + 1 : num
},
handCommand (k) { //下拉菜单部分逻辑
            this.dataValue = ''
            this.type = k
  },
 setCurSearchKey (key) {  //切换screen菜单,created中需要调用一次,获得默认的curSearchKey 
	     let value = key;
	     if (!value || !this.screen[value]) {
	         value = Object.keys(this.screen)[0];
	     }
	     this.curSearchKey = value;
 },
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值