功能:日程安排,展示日历,可以用来做会议日历,可以跨日期显示日程。

Fullcalendar+vue3 日历组件
参考文档:【vue2】一个完整的日历组件 fullcalendar,会议预约功能
中文说明文档:https://www.helloweba.net/javascript/454.html#fc-EventObject

效果图:

在这里插入图片描述

安装插件:

"@fullcalendar/core": "^6.1.15","@fullcalendar/daygrid": "^6.1.15","@fullcalendar/interaction": "^6.1.15","@fullcalendar/list": "^6.1.15","@fullcalendar/resource-timeline": "^6.1.15","@fullcalendar/timegrid": "^6.1.15","@fullcalendar/vue3": "^6.1.15",  // 注意!!!vue2是@fullcalendar/vue"@tinymce/tinymce-vue": "^6.0.1",

实现代码(VUE2):

一个实现Tooltip效果的插件(因为日历组件的title只能是单行,想展示更多信息会有局限。所以采用tooltip的方式来解决):

npm --save install tippy.js
<FullCalendar class="fullCalendar" ref="fullCalendar" :options="calendarOptions" />import FullCalendar from "@fullcalendar/vue";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";//实现Tooltip效果的插件
import tippy from 'tippy.js' //引入 tippy.js
import 'tippy.js/dist/tippy.css' //引入 tippy.js
import 'tippy.js/themes/light.css' //引入主题
import 'tippy.js/animations/scale.css'let startdate = 0 // view显示区域开始时间
let endDate = 0 // view视图显示区域结束时间
let initialDate = new Date()
export default {components: {FullCalendar },data() {return {calendarApi: null,calendarOptions: {plugins: [interactionPlugin, timeGridPlugin], // 需要用哪个插件引入后放到这个数组里initialDate: initialDate, // 日历第一次加载时显示的初始日期。可以解析为Date的任何值包括ISO8601日期字符串,例如"2014-02-01"。initialView: 'timeGridWeek', // 日历加载时的初始视图,默认值为'dayGridMonth',可以为任何可用视图的值,如例如'dayGridWeek','timeGridDay','listWeek'locale: 'zh-cn', // 设置日历的语言,中文为 “zh-cn”// firstDay: '1', // 设置每周的第一天,默认值取决于当前语言环境,该值为代表星期几的数字,且值必须为整数,星期日=0// weekNumberCalculation: 'ISO', // 指定"ISO"结果为ISO8601周数。指定"ISO"将firstDay的默认值更改为1(Monday)allDaySlot: false,slotMinTime: '06:00:00',slotMaxTime: '24:00:00',expandRows: true,firstDay: '1',header: false,views: {timeGridWeek: {type: 'timeGridWeek',duration: { weeks: 1 }}},customButtons: {refreshButton: {text: '今天',// icon: 'el-icon-refresh-right',// color:'red',backgroundColor: 'yellow',click: this.handleRefetchEvents},next: {click: this.nextClick},prev: {click: this.prevClick}},headerToolbar: {left: 'prev,next,refreshButton',center: '',right: ''},buttonIcons: {prev: 'chevron-left',next: 'chevron-right'},events: [{title: 'All Day Event',start: '2023-3-08',end: '2023-3-10',color: 'red',textColor: 'white',allDay: true}], // 将在日历上显示的事件对象, events 可以是数组、json、函数。具体可以查看官方文档eventResize: this.eventResize, // 修改日历日程大小事件eventClick: this.handleDateClick, // 点击事件时,触发该回调// eventMouseLeave: this.handleMouseLeave, // 鼠标移除时,触发该回调eventMouseEnter: this.handleEventMouseEnter, // 鼠标悬停在事件上时,触发该回调dateClick: this.handleDateClick, // 当用户单击日期或时间时,触发该回调,触发此回调,您必须加载interaction插件datesSet: this.handleDateSet, // 获取view视图显示时间select: this.handleDateSelect, // 选中日历格事件selectable: true // 是否可以选中日历格}};},computed: {},watch: {},mounted() {this.calendarApi = this.$refs.fullCalendar.getApi()},methods: {handleEventMouseEnter(info) {tippy(info.el, {appendTo: document.body,// content: info.event.extendedProps.username,content: "<div style='z-index:9999999'>地点重复</div>",// theme:'light',placement: 'top',arrow: true,allowHTML: true,// 鼠标放在提示中提示不消失interactive: true})},// 刷新handleRefetchEvents(mouseEvent, htmlElement) {this.refreshCalendar(initialDate)this.calendarApi.render()},refreshCalendar(newDateTime) {initialDate = newDateTime // 更新绑定的时间数据if (this.$refs.fullCalendar.getApi()) {this.calendarApi.gotoDate(newDateTime)}},nextClick(mouseEvent, htmlElement) {this.calendarApi.next()},prevClick(mouseEvent, htmlElement) {this.calendarApi.prev()},eventResize(eventResizeInfo) {const publicId = eventResizeInfo.event._def.publicId},// 点击事件handleDateClick(dateClickInfo, event) {let selectedBase = {start: dateClickInfo.event._instance.range.start,end: dateClickInfo.event._instance.range.end,publicId: dateClickInfo.event._def.publicId,title: dateClickInfo.event._def.title,backgroundColor: dateClickInfo.event._def.ui.backgroundColor,borderColor: dateClickInfo.event._def.ui.borderColor}const publicId = dateClickInfo.event._def.publicId},// 获取视图区域展示时间--开始日期、结束日期handleDateSet(datesSetInfo) {startdate = moment(datesSetInfo.startStr).unix()endDate = moment(datesSetInfo.endStr).unix()},handleDateSelect(dateClickInfo, event) { },},created() {},beforeCreate() {},beforeMount() {},beforeUpdate() {},updated() {},beforeDestroy() {},destroyed() {},activated() {},
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915600.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915600.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915600.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dijkstra 算法求解多种操作

一、问题背景与核心需求 需要找到从a到b的最优操作序列&#xff0c;使得总花费最小。三种操作的规则为&#xff1a; 操作 1&#xff1a;x → x1&#xff0c;花费c1&#xff1b;操作 2&#xff1a;x → x-1&#xff0c;花费c2&#xff1b;操作 3&#xff1a;x → x*2&#xff0…

本地项目提交到git教程

创建远程仓库 登录 GitHub&#xff0c;点击右上角 New repository。 填写仓库名称&#xff08;如 my-project&#xff09;、描述&#xff0c;选择公开 / 私有。 不要初始化 README、.gitignore 或 LICENSE&#xff08;保持空仓库&#xff09;&#xff0c;点击 Create repositor…

Linux 密码生成利器:pwgen 命令详解

往期好文&#xff1a;统信 UOS 运行 Windows 应用新利器&#xff01;彩虹虚拟化软件 V3.2 全新上线&#xff0c;限时30天免费体验 在日常运维、安全测试、用户管理等场景中&#xff0c;随机密码的生成是一项常见需求。为了避免人工设置密码带来的重复性弱密码问题&#xff0c;…

Qt 应用程序入口代码分析

Qt 应用程序入口代码分析 这段代码是 Qt GUI 应用程序的标准入口点&#xff0c;相当于 Qt 程序的"心脏"。让我详细解释每一部分的作用&#xff1a; int main(int argc, char *argv[]) {// 1. 创建 Qt 应用程序对象QApplication a(argc, argv);// 2. 创建主窗口对象Wi…

基于springboot+mysql的中小型医院网站(源码+论文+开题报告)

一、开发环境 Java技术 描述&#xff1a;Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行榜上总是前三。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xff0c;任何地方都可以运行。除此之外&#xff0c;它还拥有简单的语法和实用的类库&#xff0c;让…

【Docker基础】Docker-compose常用命令实践(三):镜像与配置管理

目录 前言 1 镜像与配置管理概述 1.1 核心概念解析 2 镜像构建命令详解 2.1 构建镜像&#xff08;build命令&#xff09; 2.2 基本语法 2.3 常用选项 2.4 构建过程流程 2.5 实际应用案例 3 配置验证命令详解 3.1 验证配置&#xff08;config命令&#xff09; 3.2 基…

Android 实例 - 分页器封装实现(上一页按钮、下一页按钮、当前页码 / 总页数、每页条数、总记录数)

一、需求分页器需要包含&#xff1a;【上一页按钮】、【下一页按钮】、【当前页码 / 总页数】、【每页条数】、【总记录数】点击【上一页按钮】&#xff0c;渲染上一页的数据&#xff0c;如果当前页码为第一页&#xff0c;则禁用【上一页按钮】点击【下一页按钮】&#xff0c;渲…

从代码学习深度强化学习 - SAC PyTorch版

文章目录 前言 SAC处理连续动作空间问题 (Pendulum-v1) 核心代码实现 **工具函数与环境初始化** **ReplayBuffer、网络结构与SAC算法** **训练与结果** SAC处理离散动作空间问题 (CartPole-v1) 核心代码实现 **工具函数与环境初始化** **ReplayBuffer、网络结构与SAC算法 (离散…

物联网安装调试-温湿度传感器

以下为温湿度传感器在物联网安装调试中的全流程技术指南,涵盖选型、安装、调试及故障排查,结合工业/农业/家居三大场景实操要点: 一、传感器选型核心参数表 参数 工业场景 农业大棚 智能家居 选型建议 精度 0.5℃/1.5%RH 1℃/3%RH 1℃/5%RH 工业级首选Sensirion SHT3x系列 防…

MySQL 核心知识点梳理(1)

目录 1.什么是数据库? 关系型数据库 非关系型数据库 2.Mysql出现性能差的原因? 3.MySQL的内联,左外联,右外连接的区别 4.为什么要有三大范式 建表需要考虑的问题? char和varchar的区别 blob和text的区别? DATETIME和TIMESTAMP的区别 in和exists的区别 null值陷 …

Word快速文本对齐程序开发经验:从需求分析到实现部署

在日常办公中&#xff0c;文档排版是一项常见但耗时的工作&#xff0c;尤其是当需要处理大量文本并保持格式一致时。Microsoft Word作为最流行的文档处理软件之一&#xff0c;虽然提供了丰富的排版功能&#xff0c;但在处理复杂的文本对齐需求时&#xff0c;往往需要重复执行多…

力扣面试150(34/150)

7.20 242. 有效的字母异位词 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的 字母异位词 我的思路&#xff1a; 遍历s到一个sMap&#xff0c;字母次数的方式遍历t&#xff0c;判断t中的char是否在sMap当中&#xff0c;如果在的话次数-1&#xff0c;判…

软件工程:可行性分析的任务及报告

简介 本博客围绕软件工程中的第一关——“可行性分析的任务及报告”展开&#xff0c;详细解析了可行性分析的基本概念、分析任务、四类可行性&#xff08;技术、经济、操作、社会&#xff09;以及可行性分析报告的结构与撰写要点。通过丰富的理论基础与图示支持&#xff0c;帮…

STM32与树莓派通信

STM32 与树莓派&#xff08;Raspberry Pi&#xff09;的通信常见方案及实现步骤&#xff1a;1. UART 串口通信&#xff08;最简单&#xff09;适用场景&#xff1a;短距离、低速数据交换&#xff08;如传感器数据、调试信息&#xff09;。 硬件连接&#xff1a;STM32引脚树莓派…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 数据持久化到Mysql

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解数据持久化到Mysql 视频在线地址&#xff…

【Java EE】多线程-初阶-Thread 类及常见方法

多线程-初阶2. Thread 类及常⻅⽅法2.1 Thread 的常⻅构造⽅法2.2 Thread 的⼏个常⻅属性2.3 启动⼀个线程 - start()2.4 中断⼀个线程2.5 等待⼀个线程 - join()2.6 获取当前线程引⽤2.7 休眠当前线程本节⽬标• 认识多线程• 掌握多线程程序的编写• 掌握多线程的状态• 掌握…

LVS技术知识详解(知识点+相关实验部署)

目录 1.1 LVS简介 1.2 LVS体系结构 1.3 LVS相关术语 1.4 LVS工作模式 1.5 LVS工作原理 1.6 LVS调度算法 2.LVS相关实验部署 2.1 lvs软件相关信息 2.1.1 ipsadm常见参数 2.1.2 试例 2.2 LVS部署NAT模式 2.2.1 实验环境 2.2.2 实验步骤 2.2.2.1 实验基础环境 2.2.…

芋道导入逻辑

一、代码 PostMapping("/import")Operation(summary "导入用户")Parameters({Parameter(name "file", description "Excel 文件", required true),Parameter(name "updateSupport", description "是否支持更新&a…

gradle7.6.1+springboot3.2.4创建微服务工程

目录 一、创建主工程cloud-demo并删除src目录 二、创建子工程user-service/order-service 三、更改父工程build.gradle文件 四、子工程使用mybatis框架 五、子工程使用mybatis-plus框架 六、相关数据库创建 七、最终目录结构 一、创建主工程cloud-demo并删除src目录 二、…

电脑windows系统深度维护指南

&#x1f5a5;️ 电脑系统全方位维护指南 预防故障 提升性能 延长寿命 &#x1f50d; 引言&#xff1a;为什么需要系统维护&#xff1f; 电脑如同汽车&#xff0c;定期保养可避免&#xff1a; ✅ 突发蓝屏死机 ✅ 系统卡顿崩溃 ✅ 硬件过早损坏 ✅ 数据丢失风险 本指南提供…