element ui el-calendar日历组件使用方法总结

 更新时间:2023年07月26日 16:06:10   作者:欧阳呀  
这篇文章主要给大家介绍了关于element ui el-calendar日历组件使用方法的相关资料,elementui是一款基于Vue.js的UI框架,其中的日历组件calendar是elementui中非常常用的组件之一,需要的朋友可以参考下

1. 需求说明

按月显示,每次只显示一个月的日期,其余隐藏

日历组件的显示时间随着上方选择框的变化(比如我切换到6月份,下面也要同步切换到6月份)

点击某一天可以添加事项(如果是空白的,未添加的),展示在对应的框里,同时添加悬浮展示的组件

如果是点击有事项的,则是编辑事项(这里展示的是不同的弹框)

每一月的数据存到数据库

2. 基础实现

这里做的是数据渲染,以及事件绑定,新增与编辑是点击不同的地方

     <el-calendar v-model="value">
          <template slot="dateCell" slot-scope="{ date, data }">
            <div class="main-cd" @click="addPlan()">
              <div class="calendar-day">
                {{ data.day.split("-").slice(2).join("-") }}
              </div>
              <div
                v-for="(item, index) in calendarData"
                :key="index"
                class="is-selected"
                @click.stop="addPlan(item)"
              >
                <span v-if="item.day == data.day && item.timeDetailsList">
                  <el-tooltip placement="top">
                    <div slot="content">
                      <div
                        v-for="items in item.timeDetailsList"
                        :key="items.day"
                      >
                        {{ items.channelName }} :
                        {{ items.wechatNumber }}个微信号,
                        计划投放{{ items.planNumber }},
                        实际加人
                        {{ items.realityNumber }}
                      </div>
                    </div>
                    // 这里写两遍是因为一个是框里展示,一个是悬浮组件内展示的内容
                    <div v-for="items in item.timeDetailsList" :key="items.day">
                      {{ items.channelName }} :
                      {{ items.wechatNumber }}个微信号,
                      计划投放{{ items.planNumber }},
                      实际加人
                      {{ items.realityNumber }}
                    </div>
                  </el-tooltip>
                </span>
              </div>
            </div>
          </template>
        </el-calendar>

3. 只展示当月数据

这个其实官网有说明

但实际做起来是比较麻烦的,后面审查元素,找到了新大陆:

不同月份的日期是有不同的 class 标识的,一个邪恶的想法便出来了,那用 css 就可以搞定,何必费劲巴拉的写 js

算是走了个捷径吧,仅供参考,代码如下:

  ::v-deep .el-calendar-table:not(.is-range) td.next {
    display: none;
  }
  ::v-deep .el-calendar-table:not(.is-range) td.prev {
    visibility: hidden;
  }

4. 动态切换日历里的数据实现

这个就更简单了,监听输入框的时间变化,传入 日历组件的model 即可,代码如下:

monthChange(val) {
  // 这里是监听时间变化 => @change="monthChange",然后传入日历组件
  this.value = val;
  // 时间切换的时候,顺便调个接口查询当月数据
  this.editDetail();
},

5. 顺便把快捷方式隐藏了,不让用户选择上一个月下一个月

  • 因为在此处的需求,需要手动查询,根据上方时间变化匹配对应数据
  • 所以用户点这个玩意也费劲,还要加事件监听,费力不讨好了
  • 实现也很简单,还是 css 搞定(审查元素就行了),代码如下:
  ::v-deep .el-calendar__button-group {
    display: none;
  }

总结

到此这篇关于element ui el-calendar日历组件使用方法的文章就介绍到这了,更多相关elementui el-calendar日历组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue使用keep-alive无效以及include和exclude用法解读

    vue使用keep-alive无效以及include和exclude用法解读

    这篇文章主要介绍了vue使用keep-alive无效以及include和exclude用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • vue通过获取url中的信息登录页面的代码详解

    vue通过获取url中的信息登录页面的代码详解

    这篇文章主要给大家介绍了vue通过获取url中的信息登录页面的方法,文中通过代码示例给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-02-02
  • vue-router 2.0 跳转之router.push()用法说明

    vue-router 2.0 跳转之router.push()用法说明

    这篇文章主要介绍了vue-router 2.0 跳转之router.push()用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue批量注册组件实现动态组件技巧

    Vue批量注册组件实现动态组件技巧

    Vue 动态组件的应用场景很多,可应用于动态页签,动态路由等场景,其核心原理是批量注册,在Vue2和Vue3中实现原理相同,只是语法略有差异,本文给大家介绍了Vue批量注册组件实现动态组件技巧,需要的朋友可以参考下
    2024-11-11
  • 前端vue面试总问watch和computed区别及建议总结

    前端vue面试总问watch和computed区别及建议总结

    在现代前端的面试中,vue和react是面试过程中基本必问的技术栈,其中Vue响应式话题,watch和computed是面试官非常喜欢聊的主题,虽然watch和computed它们都用于监听数据的变化,但它们在实现原理、使用场景和行为上有着显著的区别,本文将深入探讨,并提供一些面试过程中的建议
    2023-10-10
  • Vue组件间传递数据的多种方法

    Vue组件间传递数据的多种方法

    在实际开发中,Vue组件之间的数据传递是最常见的需求,由于组件的作用域相互独立,如何在父子、兄弟和跨级组件间传递数据就显得尤为重要,本文将详细介绍多种Vue组件间传递数据的方,需要的朋友可以参考下
    2025-03-03
  • vue+element实现下拉菜单并带本地搜索功能示例详解

    vue+element实现下拉菜单并带本地搜索功能示例详解

    这篇文章主要介绍了vue+element实现下拉菜单并带本地搜索功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 一文带你简单理解Vue的data为何只能是函数

    一文带你简单理解Vue的data为何只能是函数

    如果data是一个函数的话,这样每复用一次组件,就会返回一份新的data,下面这篇文章主要给大家介绍了关于简单理解Vue的data为啥只能是函数的相关资料,需要的朋友可以参考下
    2022-10-10
  • vue 实现上传组件

    vue 实现上传组件

    虽然前端UI框架大都提供文件上传的组件,以及很多插件可供选择,工作中可能不需要我们手写一个上传组件,但是从零封装组件对学习是很有助益的。下文为大家介绍使用Vue3+TypeScript实现的一个文件上传的功能,目前只实现上传等基本功能,后续会逐渐对功能进行扩展
    2021-05-05
  • Vue input输入框中的值如何变成黑点问题

    Vue input输入框中的值如何变成黑点问题

    这篇文章主要介绍了Vue input输入框中的值如何变成黑点问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论