vue 一周日历展示,上一周下一周展示。

Vue代码展示

<template>
   <div class="table_box">
      <div>

          <span>{{todayDate}}</span>

      </div>
      <div class="timeall">
        <i class="el-icon-arrow-left lastbt" @click="lastclick"></i>
        <div class="table_header">
            <div class="weekday"  :class="item.adate==todayDate?'finish':'test'" v-for="(item,index) in weekDayArr" :key="index">
                 <span @click="getAdate(item)">{{item.adate.slice(5,9)}}</span>
            </div>
        </div>
        <div class="table_header">

            <div class="weekday" v-for="(item,index) in weekAll" :key="index">
                 <span>{{item}}</span>
            </div>
        </div>
        <i class="el-icon-arrow-right nextbt" @click="nextclick"></i>
      </div>

   </div>
</template>
<script>

export default {
    data(){
        return {
            currentFirstDate:"",
            clen:7,
            todayDate:"",
            weekDayArr:[],
            weekAll: [
              '周一','周二','周三','周四','周五','周六','周日',
            ]
        }
    },
    created() {
        this.todayDate=this.formatDate(new Date())
        this.setDate(new Date())
    },
    methods: {
        // 日期格式处理
        formatDate(date){
          console.log(date)
          var year = date.getFullYear() + '-'
          var month = (date.getMonth()+1) + '-';
          var day = date.getDate();
          return year+month+day;
        },
        //
        addDate(date,n){
          date.setDate(date.getDate()+n);
          return date;
        },
        //
        setDate(date){
            var week = date.getDay()-1;
            date = this.addDate(date,week*-1);
            this.currentFirstDate = new Date(date);
            for(var i = 0;i<this.clen; i++){
                this.weekDayArr.push({"adate":this.formatDate(i==0 ? date : this.addDate(date,1))})
            }
        },
        //上一周
        lastclick(){
            this.weekDayArr=[]
            this.setDate(this.addDate(this.currentFirstDate,-7));
        },
        //下一周
        nextclick(){
            this.weekDayArr=[]
            this.setDate(this.addDate(this.currentFirstDate,7));
        },
        getAdate (item) {
          console.log(item)
        }
    },
}
</script>
<style lang="">
  .timeall{
    position: relative;
    width: 330px;
  }
  .lastbt,.nextbt{
    position: absolute;
    top:18px;
  }
  .lastbt{
    left: -7px;
  }
  .nextbt{
    right: -7px;
  }
.table_header{ display:flex; justify-content: center; color:#8e8e8e;}
.week_one{ text-align: center; line-height: 50px; border-bottom:1px solid #f5f4f7; border-left:1px solid #f5f4f7; background: #e9f0fe;  width:200px; }
.weekday{ flex:1; text-align: center; line-height: 25px; }
.finish {
  background:#8ACBAD;
  color:#fff !important;
}
</style>

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值