使用vue写一个自定义可选时间的日历组件

本文介绍如何使用Vue.js构建一个具备特定功能的日历组件:禁止选择过去时间,可定制不可选日期,展示当前月并自动处理不可选时间。组件布局参照Win10日历,通过计算beginDay、prevMdays和nowMdays来实现日历展示。组件还包含active-day用于高亮选中日期,并提供timeArry属性接收自定义不可选日期。用户可通过点击选择日期,如果不在timeArry内则触发chooseDate事件,将选择结果传递给父组件。
摘要由CSDN通过智能技术生成

日历功能:

  1. 过去时间不可选择
  2. 可自定义不可选时间
  3. 本月默认展示当天,其他月展示第一天,若为不可选时间,往后顺延
    效果图:在这里插入图片描述

-------下面开始表演------------
**首先,画出日历页面布局,参照win10系统日历布局*6行7列,为何如此,请自行理解…*本人也是偷窥来的

beginDay是当前月第一天的周几,prevMdays是上个月总天数,nowMdays是当月总天数,这样就实现了日历的展示效果,标签中绑入一些可能会用到的数据 data-dates等

<div class="dateContent-body-day" v-for="item in 42" :key="item">
            <div
              v-if="item - beginDay > 0 && item - beginDay <= nowMdays"
              :class="{
   
                'active-day': `${
     year}/${
     month}/${
     item - beginDay}` == curDate
              }"
              @click="dayHandler"
              :data-year="year"
              :data-month="month"
              :data-day="item - beginDay"
              :data-dates="year + '/' + month + '/' + (item - beginDay)"
            >
              {
   {
    item - beginDay }}
            </div>
            <div class="other-day" v-else-if="item - beginDay <= 0">
              {
   {
    item - beginDay + prevMdays }}
            </div>
            <div class=
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值