Fullcalendar 在vue项目的使用--详解

这篇具有很好参考价值的文章主要介绍了Fullcalendar 在vue项目的使用--详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

fullcalendar,插件的使用,vue.js,前端,npm 

1.安装插件

官网地址:Documentation | FullCalendar​​​​​​

demo:GitHub - fullcalendar/fullcalendar-examples: Simple example projects for FullCalendar 

 安装所需要的npm包:

vue2:npm install --save @fullcalendar/vue @fullcalendar/core

vue3: npm install --save @fullcalendar/vue3 @fullcalendar/core

视图插件包:npm install --save @fullcalendar/daygrid  @fullcalendar/interaction @fullcalendar/timegrid

  • html
<FullCalendar ref="myCalendar" :options="calendarOptions">
    // 自定义事件显示内容
     <template v-slot:eventContent='arg'>
          <b>{{ arg.timeText }}</b>
          <i>{{ arg.event.title }}</i>
     </template>
</FullCalendar>
  • 导入js
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'
import timeGridPlugin from '@fullcalendar/timegrid'
import interactionPlugin from '@fullcalendar/interaction'

 配置项(详细请参考官网文档)

calendarOptions: {
  plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin], //引入的插件,比如fullcalendar/daygrid,fullcalendar/timegrid引入后才可显示月,周,日
  initialView: 'timeGridWeek', // 默认为那个视图(月:dayGridMonth,周:timeGridWeek,日:timeGridDay)
  headerToolbar: {
          left: 'prev,next today',
          center: 'title',
          right: 'dayGridMonth,timeGridWeek,timeGridDay'
        },
  firstDay: 1, // 设置一周中显示的第一天是哪天,周日是0,周一是1,类推
  locale: 'zh-cn', // 切换语言,当前为中文
  eventColor: '#FFA34E', // 全部日历日程背景色
  initialDate: dayjs().format('YYYY-MM-DD'), // 自定义设置背景颜色时一定要初始化日期时间
  // aspectRatio: 1.65, // 设置日历单元格宽度与高度的比例。
  // displayEventTime: false, // 是否显示时间
  slotDuration: '01:00:00', // 显示时隙的频率
  allDaySlot: false,
  height: 'auto',
  buttonText: {
    today: '今天',
    month: '月',
    week: '周',
    day: '日',
  },
  slotLabelFormat: {
    hour: '2-digit',
    minute: '2-digit',
    meridiem: false,
    hour12: false, // 设置时间为24小时
  },
  events: [
    {
      title: '一个测试日程',
      start: '2023-01-22 12:00',
      end: '2023-01-23 13:00',
      editable: true,
      color: '#2EB09A',
    },
  ], // 日程
  businessHours: {
    daysOfWeek: [1, 2, 3, 4], // Monday - Thursday
    startTime: '10:00', // a start time (10am in this example)
    endTime: '18:00', // an end time (6pm in this example)
  }, // 强调日历上的特定时间段。默认为周一至周五,上午9点至下午5点。
  selectConstraint: {
    daysOfWeek: [1, 2, 3, 4], // Monday - Thursday
    startTime: '10:00', // a start time (10am in this example)
    endTime: '18:00', // an end time (6pm in this example)
  },// 限制用户选择特定的时间窗口。
  // 事件
  eventClick: eventClick, // 点击日历日程事件
  // eventDrop: eventDrop, // 拖动日历日程事件
  // eventResize: eventResize, // 修改日历日程大小事件
  select: handleDateSelect, // 选中日历格事件
  // eventDidMount: this.eventDidMount, // 安装提示事件
  // loading: loading, // 视图数据加载中、加载完成触发(用于配合显示/隐藏加载指示器。)
  // selectAllow: selectAllow, //编程控制用户可以选择的地方,返回true则表示可选择,false表示不可选择
  // eventMouseEnter: eventMouseEnter, // 鼠标滑过
  editable: true, // 是否可以进行(拖动、缩放)修改
  eventStartEditable: true, // Event日程开始时间可以改变,默认true,如果是false其实就是指日程块不能随意拖动,只能上下拉伸改变他的endTime
  eventDurationEditable: true, // Event日程的开始结束时间距离是否可以改变,默认true,如果是false则表示开始结束时间范围不能拉伸,只能拖拽
  selectable: true, // 是否可以选中日历格
  selectMinDistance: 0, // 选中日历格的最小距离
  dayMaxEvents: true,
  weekends: true, // 是否在任何日历视图中包括周六/周日列。
  navLinks: false, // 确定日名和周名是否可单击
  slotEventOverlap: false, // 相同时间段的多个日程视觉上是否允许重叠,默认true允许
}
  • 功能点的实现

1.新增一个事件 

handleDateSelect(selectInfo: DateSelectArg) {
      let calendarApi = selectInfo.view.calendar
      calendarApi.unselect() // clear date selection
      calendarApi.addEvent({
        id: createEventId(),
        title: '新增一个日程',
        start: selectInfo.startStr,
        end: selectInfo.endStr,
      })
    },

2.修改限制用户可选择的事件范围文章来源地址https://www.toymoban.com/news/detail-723984.html

changeLimit() {
      const calendarApi =this.$refs['myCalendar'].getApi()
      // false 也可改为一个对象为其他时间段
      calendarApi.setOption('businessHours', false)
      calendarApi.setOption('selectConstraint', false)
    }

到了这里,关于Fullcalendar 在vue项目的使用--详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自适应插件autofit.js使用(这里演示vue项目)

    这个插件使用以后,页面会根据浏览器的缩放自适应的改变宽高 这里演示的是vue3项目,其他项目也可类似去写 如果要在整个项目做自适应,将配置配到App.vue,如果只要单个页面自适应,只需要配置当前页面即可 App.vue配置如下(单个页面自适应也是如此配置) 以下代码三步走

    2024年02月04日
    浏览(32)
  • vue3项目使用pdf.js插件实现:搜索高亮、修改pdf.js显示的页码、向pdf.js传值、控制搜索、处理接口文件流

    官网地址:http://mozilla.github.io/pdf.js/ 中文文档地址:https://gitcode.gitcode.host/docs-cn/pdf.js-docs-cn/print.html PDF.js是基于HTML5技术构建的,用于展示可移植文档格式的文件(PDF),它可以在现代浏览器中使用且无需安装任何第三方插件。 pdf.js主要包含两个库文件 pdf.js:负责API解析 pdf.wor

    2024年02月13日
    浏览(49)
  • vue3时间插件——Moment.js使用

    在日期时间这一块在js中是有体现的,但是用起来不是特别方便,尤其是在vue框架中,我们也不可能去那样使用,显得很笨拙麻烦,所以给大家这次带来一个好用的时间插件,就是Moment时间插件,很小巧,使用也方便,也兼容vue3,下面来详细介绍一下   首先是 Moment.js 的官方

    2024年02月05日
    浏览(35)
  • chrome插件开发实例08- 使用Vue.js开发chrome插件

    目录 背景 演示 功能介绍 插件下载 注意写法:  将  下面的两个插件 改写成vue.js , elementui  实现

    2024年02月13日
    浏览(31)
  • vue3时间插件——Moment.js使用 Moment.js的配置

    在日期时间这一块在js中是有体现的,但是用起来不是特别方便,尤其是在vue框架中,我们也不可能去那样使用,显得很笨拙麻烦,所以给大家这次带来一个好用的时间插件,就是Moment时间插件,很小巧,使用也方便,也兼容vue3,下面来详细介绍一下   首先是 Moment.js 的官方

    2024年02月11日
    浏览(31)
  • 【Vue】使用print.js插件实现打印预览功能,超简单

    目录 一、实现效果  二、实现步骤 【1】安装插件 【2】在需要打印的页面导入 【3】在vue文件中需要打印的部分外层套一层div,给div设置id。作为打印的区域 【4】在打印按钮上添加打印事件 【5】在methods中添加点击事件 三、完整代码   print.js插件,可以打印html、pdf、json数

    2024年02月14日
    浏览(36)
  • 使用 vue-3-socket.io 插件以及node.js实现实时聊天(1)

     这篇文章使用选项式API的写法,以实现群聊和私聊为主 客户端自然是对应使用vue3框架,服务端使用node.js配合express、http、socket.io、file等库来实现,具体如下: 1、下载所需的依赖 2、做socket客户端配置 注:\\\"http://localhost:3000\\\",该地址端口是对应后面配置服务端时所开放的端

    2024年02月05日
    浏览(35)
  • vue项目如何使用 SheetJS(xlsx)插件?

    SheetJS是一款非常好用的前端处理表格文件的工具。它分社区版和专业版,我们今天来介绍如何简单使用它的社区版。 SheetJS社区版官网 你应该打开官网浏览具体使用详情。 打开官网在如上图的Installation板块中可以找到各种运行模块的使用方式。 一般项目都是webpack或vite这种

    2024年02月12日
    浏览(39)
  • vue 项目设置全屏,使用screenfull插件

    提示:在vue项目中导入screenfull插件,出现编译错误,错误如图所示: 原因分析: 安装的screenfull插件版本过高 解决方法: 降低插件版本 点击了解screenfull插件 首先安装 npm install screenfull --save 在使用.vue文件中 引入 import screenfull from ‘screenfull’ 在按钮方法中调用 screenfull.t

    2024年02月03日
    浏览(23)
  • vue项目使用luckyexcel插件预览excel表格

    温馨提示 :需要用到luckysheet文件和luckyexcel插件,根据下面步骤一步一步操作会避免踩坑,比如我当时遇到了window.luckysheet is not defined控制台报红的问题。 (这也是上面提到的如果没有引入会报红window.luckysheet找不到的问题) public文件夹下的index.html里引入luckysheet的相关依赖

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包