Vue 项目中如何使用fullcalendar 时间段选择插件(类似课程表格)

 更新时间:2024年07月06日 10:23:06   作者:xiaopengyaonixi  
最近完成一个项目,需要选择一个会议室,但是最好能够通过在图上显示出该 会议室在某某时间段内已经被预定了,初看这个功能感觉很棘手,仔细分析下实现起来还是挺容易的,下面通过示例代码讲解Vue项目中使用fullcalendar时间段选择插件,感兴趣的朋友一起看看吧

最近完成一个项目,有这样的需求,我们需要选择一个会议室,但是最好能够通过在图上显示出该 会议室在某某时间段内已经被预定了。

先看一下这个功能最终实现的效果,看一看是不是你想要的效果,是您需要的请继续读下去,如果不是请忽略本文。

本文中是基于VUE+elementui项目中实现的前后端分离的前端功能部分:

所使用的插件:https://github.com/fullcalendar/fullcalendar这个项目功能很丰富

插件的官方文档:https://fullcalendar.io/

vue版本的官方文档:https://fullcalendar.io/docs/vue

实现本功能需要注意(基本的业务逻辑):

1.过去的时间不能选择;

2.已经选择过的时间范围内不能再次选择;

下面你需要在你的项目中安装如下的插件: 命令行npm install xxxxx:

npm install --save @fullcalendar/vue @fullcalendar/daygrid @fullcalendar/timegrid @fullcalendar/moment @fullcalendar/interaction

最后贴上我的最终的代码:

<template>
  <div class="container" style="width:60%; margin: 0 auto;">
    <FullCalendar
      :plugins="calendarPlugins"
      :all-day-slot="false"
      :header="{
        left:'prev',
        center:'title',
        right: 'today ,next'
      }"
      :slot-event-overlap="false"
      :events="[
        {
          title: '计算机学院小组会议',
          start: '2019-05-15 10:00:00',
          end: '2019-05-15 16:00:00',
          color:'orange'
        },
        {
          start: '2019-05-14 10:00:00',
          end: '2019-05-14 14:00:00',
          title: '东南大学计算机学术会议',
          color:'green'
        }
      ]"
      :button-text="{
        today: '今天'
      }"
      :unselect-auto="false"
      :select-overlap="false"
      :business-hours="{
        startTime: '07:00',
        endTime:'18:00',
        daysOfWeek: [ 1, 2, 3, 4, 5, 6, 0 ]
      }"
      :select-allow="handlerSeelctAllow"
      select-mirror="true"
      min-time="07:00:00"
      max-time="23:00:00"
      selectable="true"
      slot-duration="00:30"
      slot-label-format="HH:mm"
      title-format="YYYY年MM月D日"
      default-view="timeGridWeek"
      locale="zh-cn"
      @dateClick="handleDateClick"
      @select="handleSelect"/>
  </div>
</template>
<script>
import FullCalendar from '@fullcalendar/vue'
import dayGridPlugin from '@fullcalendar/daygrid'
import timeGridPlulgin from '@fullcalendar/timegrid'
import '@fullcalendar/core/locales/zh-cn' // 支持中文
import momentPlugin from '@fullcalendar/moment'
import interactionPlugin from '@fullcalendar/interaction'
export default {
  components: {
    FullCalendar
  },
  data() {
    return {
      calendarPlugins: [dayGridPlugin, timeGridPlulgin, momentPlugin, interactionPlugin],
      // 随时判断时间是否合法,通过返回true/false来判断是否能够选择
      handlerSeelctAllow: info => {
        const currentDate = new Date()
        const start = info.start
        const end = info.end
        return (start <= end && start >= currentDate)
      }
    }
  },
  methods: {
    // 当点击时候
    handleDateClick(arg) {
      console.log(arg)
    },
    // 当选择结束的时候获取开始和结束时间
    handleSelect(info) {
      console.log('form' + info.startStr + ' to ' + info.endStr)
    }
  }
}
</script>
<style lang="scss" scope>
@import '@fullcalendar/core/main.css';
@import '@fullcalendar/daygrid/main.css';
@import '@fullcalendar/timegrid/main.css';
</style>
 

以上就是fullcalendar基本的操作了,如果您还需要一些其他的功能,请查阅相关文档继续学习。

后记:用代码来实现自己的想法是快乐的,这种成就感是金钱买不到的,这就是我继续前行的动力。因为热爱,所以再多的付出也都是值得的,当软件运行成功的一刻,我想我是这个世界上最幸福的人。

这篇文章重在自我学习和探讨,当不借助外力或者拿来主义的思路去解决问题时,或许就是我们技术加速前进的开始。

到此这篇关于Vue 项目中 使用fullcalendar 时间段选择插件(类似课程表格)的文章就介绍到这了,更多相关Vue使用fullcalendar插件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue使用html2canvas实现将DOM节点生成对应的PDF

    vue使用html2canvas实现将DOM节点生成对应的PDF

    这篇文章主要为大家详细介绍了vue如何使用html2canvas实现将DOM节点生成对应的PDF,文中的示例代码简洁易懂,感兴趣的小伙伴可以学习一下
    2023-08-08
  • Vue3 Radio单选切换展示不同内容实现代码

    Vue3 Radio单选切换展示不同内容实现代码

    这篇文章主要介绍了Vue3 Radio单选切换展示不同内容,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • vue-cli中设置publicPath的几种方式对比

    vue-cli中设置publicPath的几种方式对比

    这篇文章主要介绍了vue-cli中设置publicPath的几种方式对比,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue基础入门之vuex安装与使用

    vue基础入门之vuex安装与使用

    vuex是一个专为vue.js应用程序开发的 状态管理模式,它采用集中式存储管理应用的所有的状态,并以相应的规则保证状态以一种可预测的方式发生变化,这篇文章主要给大家介绍了关于vue入门之vuex安装与使用的相关资料,需要的朋友可以参考下
    2021-08-08
  • Vue+element+cookie记住密码功能的简单实现方法

    Vue+element+cookie记住密码功能的简单实现方法

    这篇文章主要给大家介绍了Vue+element+cookie记住密码功能的简单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • vue+vue-validator 表单验证功能的实现代码

    vue+vue-validator 表单验证功能的实现代码

    这篇文章主要介绍了vue+vue-validator 表单验证功能的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • Vue项目如何引入bootstrap、elementUI、echarts

    Vue项目如何引入bootstrap、elementUI、echarts

    这篇文章主要介绍了Vue项目如何引入bootstrap、elementUI、echarts,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Vue路由传递query参数两种方式

    Vue路由传递query参数两种方式

    路由是可以传递参数的,一般使用query进行传参,有两种方式,本温酒通过代码示例给大家介绍这两种传递方式,感兴趣的小伙伴可以参考阅读
    2023-06-06
  • vue实现tab栏切换效果

    vue实现tab栏切换效果

    这篇文章主要为大家详细介绍了vue实现tab栏切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • 在Vue项目中引入JQuery-ui插件的讲解

    在Vue项目中引入JQuery-ui插件的讲解

    今天小编就为大家分享一篇关于在Vue项目中引入JQuery-ui插件的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论