当前位置: 首页 > news >正文

Vue日历组件FullCalendar使用方法

FullCalendar (全日历)Vue组件的使用
FullCalendar官方文档地址

FullCalendar日历组件支持Vue React Angular Javascript

Vue2的框架示例:

npm install --save @fullcalendar/core @fullcalendar/vue
<template><div class="calendar-container"><FullCalendar :options="calendarOptions" :header="{ left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }" /></div>
</template>
<script>
import FullCalendar from "@fullcalendar/vue";
import dayGridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
import { getWeekNum, FormateDate,getWeek } from '../utils/dayformat'
export default {props: ['selectedDatesChange', 'selectedDates', 'DeleteTeacherLeisureDTOS'],components: {FullCalendar, // make the <FullCalendar> tag available},data() {return {// Integer, default: 1 (Monday),isHighlighted: false,// FullCalendar 组件配置项calendarOptions: {plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin],initialView: "timeGridWeek",locale: "zh-cn", // 设置语言// initialView: 'dayGridMonth'nowIndicator: true,//根据当前事件显示刻度线headerToolbar: {left: "prev,next today",center: "title",right: "dayGridMonth,dayGridWeek,dayGrid",},firstDay:1 ,//设置一周中显示的第一天是哪天,周日是0,周一是1,类推height:1000,//设置日历高度events: [], dayHeaderFormat:(info)=>{// 格式化列头日期// console.log(info,'xxxxxxxx')console.log(info.date.marker,'xxxxxxxx')return   getWeek(info.date.marker)},//试图显示的数据eventDragStart: (info) => {console.log(info);console.log("拖拽开始");},eventDragStop: (info) => {console.log(info, '拖拽结束');},eventDrop: (info) => {// TODO 拖动结束修改原有的都开始时间和结束时间console.log('当拖动停止且事件已移至其他日期/时间时触发', info)},eventMouseEnter: (mouseEnterInfo) => {let Index = this.selectedDates.findIndex(item => {return item.id == mouseEnterInfo.event.id})console.log(Index);let doms = document.querySelectorAll('.fc-event')let parentEl = doms[Index].parentNodeconsole.log(mouseEnterInfo,doms,parentEl,'鼠标移入' );let div = document.querySelector('.delete-div')// div.innerText = '删除元素'// div.className='delete-div'// div.onclick = (e) => {//   console.log(e,'eee');//   e.stopPropagation()//   e.preventDefault()//   console.log('点击删除');//   this.$emit('DeleteTeacherLeisureDTOS', mouseEnterInfo.event.id)// }if(parentEl.contains(div)){console.log('父元素包含子元素');}else{let div = document.createElement('div')div.innerText = '删除元素'div.className='delete-div'// div.onclick = (e) => {//   console.log(e,'eee');//   e.stopPropagation()//   e.preventDefault()//   console.log('点击删除');//   // mouseEnterInfo.jsEvent.stopPropagation()//   this.$emit('DeleteTeacherLeisureDTOS', mouseEnterInfo.event.id)// }// div.addEventListener('click', (e) => {//   console.log('点击删除');// })// div.onclick = (e) => {//   console.log(e,'eee');//   e.stopPropagation()//   e.preventDefault()//   console.log('点击删除');//   // mouseEnterInfo.jsEvent.stopPropagation()//   // this.$emit('DeleteTeacherLeisureDTOS', mouseEnterInfo.event.id)// }parentEl.append(div)}// this.$alert('是否删除', '', {//   confirmButtonText: '删除',//   type:'warning',//   showCancelButton:true,//   cancelButtonText:'取消',//   callback: action => {//     console.log(action);//     // this.$message({//     //   type: 'info',//     //   message: `action: ${action}`//     // });//   }// });},eventMouseLeave: (eventMouseLeave) => {console.log(eventMouseLeave, '鼠标移出事件');let doms = document.querySelectorAll('.fc-event')let Index = this.selectedDates.findIndex(item => {return item.id == eventMouseLeave.event.id})let parentEl = doms[Index].parentNodelet div = document.querySelector('.delete-div')parentEl.removeChild(div)},nowIndicatorDidMount: (info) => {},eventClick: (eventClickInfo) => {console.log(eventClickInfo, '鼠标点击事件');console.log(eventClickInfo.event.id)this.$emit('DeleteTeacherLeisureDTOS', eventClickInfo.event.id)// let INdex = this.calendarOptions.events.findIndex((item) => {//     return item.id == eventClickInfo.event.id// })// if(INdex != -1){//     this.calendarOptions.events.splice(INdex,1)// }},// 字体颜色 eventTextColor: "#000000",eventBackgroundColor: "#F3E86A",//选中时间背景颜色eventBorderColor: "#F3E86A", //选中的时间边框颜色selectable: true,// selectMirror: true, //显示镜像editable: true, //是否允许修改日历// droppable: true, // 在日历之间拖拽// unselectAuto:false,//取消用户自动选择dragScroll: true, // 拖拽滚动// unselectCancel:'', //取消选择取消selectOverlap: function (event) {console.log(event);//选择重叠return event.display === "background";},dateClick: function (info) {/*日期选择*/console.log(info);},select: (selectionInfo) => {let object = {start: FormateDate(selectionInfo.start, 'YYYY-MM-DD HH:mm:ss'),end: FormateDate(selectionInfo.end, 'YYYY-MM-DD HH:mm:ss'),dayOfWeek: getWeekNum(selectionInfo.start),title: "可约"}//选中事件// console.log(selectionInfo);// this.calendarOptions.events.push(object);this.$emit('selectedDatesChange', object)},unselect: (jsEvent, view) => {console.log(jsEvent, view);},// buttonText: {//   // 设置按钮//   today: "今天",//   month: "月",//   week: "周",//   dayGrid: "天",// },},};},

http://www.mrgr.cn/news/80308.html

相关文章:

  • 嵌入式Linux开发中的内存映射函数mmap详解?什么叫内存映射?什么叫对设备的显式和隐式读写操作?什么叫程序的虚拟内存?
  • 如何评估呼叫中心大模型呼出机器人的使用效果?
  • 微服务中间件~nacos安全配置(含参考案例)
  • 《量子计算对人工智能发展的深远影响》
  • 【ETCD】【源码阅读】 深入解析 raftNode.start`函数:Raft 核心启动逻辑剖析
  • Python大数据可视化:基于python的电影天堂数据可视化_django+hive
  • 基于32单片机的RS485综合土壤传感器检测土壤PH、氮磷钾的使用(超详细)
  • 人工智能与Java应用场景:智能推荐系统的实现
  • 使用金沙滩51单片机实现——用AD测量DA,按键可以调整DA值,AD测量到模拟量后液晶显示模拟量
  • openGauss开源数据库实战二十八
  • 若依-帝可得app后端
  • 一行代码解决vue3前端打包部署到服务器,动态配置http请求头后端ip方法教程无bug
  • 红米Note 9 Pro5G刷LineageOS
  • 【从零开始入门unity游戏开发之——C#篇10】循环结构——while、do-while、for、foreach的使用
  • opencv-python的简单练习
  • 搭建Tomcat(三)---重写service方法
  • 【Linux学习】十五、Linux/CentOS 7 用户和组管理
  • 05、GC基础知识
  • 【从零开始入门unity游戏开发之——C#篇11】一个标准 C# 程序介绍、新的值类型——枚举
  • spring实例化对象的几种方式(使用XML配置文件)
  • Golang囊地鼠gopher
  • 【教学类-83-01】20241215立体书三角嘴1.0——小鸡(正菱形嘴)
  • 修炼之道 --- 其二
  • LRM-典型 Transformer 在视觉领域的应用,单个图像生成3D图像
  • 将带注释的Word文档改造成点击注释引用即可弹窗显示注释的HTML文档
  • 学习Guava库 学习实用示例 实例 核心提纲