Vue3中如何使用fullcalendar日历插件

 更新时间:2024年01月17日 11:41:36   作者:stephen Curry_  
这篇文章主要介绍了Vue3中如何使用fullcalendar日历插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
npm install @fullcalendar/core
npm install @fullcalendar/vue3
vue文件中引用
import FullCalendar from "@fullcalendar/vue3"
必须安装一个:
npm install @fullcalendar/daygrid
npm install @fullcalendar/multimonth
npm install @fullcalendar/timegrid

在vue文件中的template中     

<FullCalendar
            v-if="calendarOptions"
            style="margin-top: 30px"
            class="calenderCon"
            ref="fullCalendar"
            :options="calendarOptions"
          >
</FullCalendar>
import resourceTimelinePlugin from "@fullcalendar/resource-timeline";// 引入需要的视图
    let calendarOptions = ref();
// 使用resourceTimelineMonth需安装
onMounted(() => {
    calendarOptions.value = {
      plugins: [dayGridPlugin, timeGridPlugin, resourceTimelinePlugin],
      initialView: "resourceTimelineMonth", // 默认为那个视图(月:dayGridMonth,周:timeGridWeek,日:timeGridDay)
      headerToolbar: {
        left: "prev",
        center: "title",
        right: "today,next",
      },
      locale: "zh-cn", // 切换语言,当前为中文
      eventColor: "#ffffff", // 全部日历日程背景色
      initialDate: proxy.$dayjs().format("YYYY-MM-DD"), // 自定义设置背景颜色时一定要初始化日期时间
      allDaySlot: false,
      height: "422px",
      buttonText: {
        today: "当前月",
        day: "日",
      },
      // 日程
      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, // 确定日名和周名是否可单击
      schedulerLicenseKey: "GPL-My-Project-Is-Open-Source", // 此配置是为了消除右下角的版权提示
      slotEventOverlap: false, // 相同时间段的多个日程视觉上是否允许重叠,默认true允许
      resourceAreaColumns: [
        {
          headerContent: "车型",
          field: "room_name",
        },
        {
          headerContent: "车牌",
          field: "car_code",
        },
      ],
      resourceAreaWidth: "15%",
      resources: resourcesData.value,  // 后台给 渲染的数据
      events: matchList.value,// 后台给 渲染的数据
    };
})
数据格式(根据实际情况来,均为后台返回):
resourcesData.value  
    {
      id: item.id,
      room_name: item.car_type,
      car_code: item.car_code,
    }
matchList.value
{
      id: item.id,
      resourceId: item.id,
      title:
        "用车人:" +
        item.use_person_name +
        " 用车时间:" +
        item.start_time +
        "~" +
        item.end_time +
        "用途:" +
        item.purpose,
      start: item.start_time,
      end: item.end_time,
      color: "yellow",
      textColor: "black",
    }

 文档内容比较丰富,可以自行去官网查看

 附:官网地址:https://fullcalendar.io/

到此这篇关于Vue3使用fullcalendar日历插件的文章就介绍到这了,更多相关Vue3 fullcalendar日历插件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue之定义全局工具类问题

    Vue之定义全局工具类问题

    这篇文章主要介绍了Vue之定义全局工具类问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • VUE中如何优雅实现爷孙组件的数据通信

    VUE中如何优雅实现爷孙组件的数据通信

    所谓祖孙组件,也就是3层嵌套的组件,下面这篇文章主要给大家介绍了关于VUE中如何优雅实现爷孙组件的数据通信的相关资料,需要的朋友可以参考下
    2022-04-04
  • vue实现拖动调整左右两侧容器大小

    vue实现拖动调整左右两侧容器大小

    这篇文章主要为大家详细介绍了vue实现拖动调整左右两侧容器大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)

    压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)

    大家都知道,Vuejs的 CLI工具 是基于 webpack 来实现的,所以在项目打包后,会生成的文件会很大。 主要原因是 webpack 将我们所有文件都打包成一个js文件,即使再小的项目,打包之后文件都会变得很大。 下面讲讲最近我遇到的相同问题。
    2020-02-02
  • 在vue react中如何使用Web Components组件

    在vue react中如何使用Web Components组件

    这篇文章主要介绍了在vue react中如何使用Web Components组件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 在Vue中实现二维码生成与扫描功能的方法

    在Vue中实现二维码生成与扫描功能的方法

    二维码是一种广泛应用于各种场合的编码方式,它可以将信息编码成一张二维图案,方便快捷地传递信息,在Vue.js中,我们可以使用一些库和组件来实现二维码的生成和扫描,本文将介绍如何在Vue中实现二维码的生成和扫描的方法
    2023-06-06
  • 前端配合后端实现Vue路由权限的方法实例

    前端配合后端实现Vue路由权限的方法实例

    一开始我还以为vue的路由只能用在工程化的项目里面,其实不然,下面这篇文章主要给大家介绍了关于前端配合后端实现Vue路由权限的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue中使用axios post上传头像/图片并实时显示到页面的方法

    vue中使用axios post上传头像/图片并实时显示到页面的方法

    今天小编就为大家分享一篇vue中使用axios post上传头像/图片并实时显示到页面的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 详解vue3.2中setup语法糖<script lang="ts" setup>

    详解vue3.2中setup语法糖<script lang="ts" setup>

    Vue 3.2 引入了语法,这是一种稍微不那么冗长的声明组件的方式,下面这篇文章主要介绍了详解vue3.2中setup语法糖<script lang="ts"setup>的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Electron+Vue3+Vite搭建桌面应用的示例代码

    Electron+Vue3+Vite搭建桌面应用的示例代码

    本文主要介绍了Electron+Vue3+Vite搭建桌面应用的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论