FullCalendar的使用,react日历组件

1.下载

yarn add @fullcalendar/core @fullcalendar/react @fullcalendar/daygrid

2.运行

import React from 'react';
import FullCalendar from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";const ExperimentalSchedule = () => {return (<><FullCalendarheight={500} // 此处高度为方便截图,可不设置defaultView="dayGridMonth"plugins={[dayGridPlugin]}/></>);
};export default ExperimentalSchedule;

3.右上角需要,日周月

yarn add @fullcalendar/timegrid<FullCalendardefaultView="dayGridMonth"plugins={[dayGridPlugin, timeGridPlugin]}headerToolbar={{left: "prevYear,prev,next,nextYear today", // 上一年,上一月,下一月,下一年 今天center: "title", // 当前年月right: "timeGridDay,timeGridWeek,dayGridMonth" // 天 周 月}}/>

4.汉化,locale='zh-cn'

 <FullCalendardefaultView="dayGridMonth"plugins={[dayGridPlugin, timeGridPlugin]}headerToolbar={{left: "prevYear,prev,next,nextYear today", // 上一年,上一月,下一月,下一年 今天center: "title", // 当前年月right: "timeGridDay,timeGridWeek,dayGridMonth" // 天 周 月}}locale='zh-cn'buttonText={{today: '今天',month: '月',week: '周',day: '天'}}allDayText='全天'/>

5.修改,周一开头,时间修改为24小时制

 <FullCalendardefaultView="dayGridMonth"plugins={[dayGridPlugin, timeGridPlugin]}headerToolbar={{left: "prevYear,prev,next,nextYear today", // 上一年,上一月,下一月,下一年 今天center: "title", // 当前年月right: "timeGridDay,timeGridWeek,dayGridMonth" // 天 周 月}}locale='zh-cn'buttonText={{today: '今天',month: '月',week: '周',day: '天'}}allDayText='全天'firstDay={1} // 周一至周六为1~6,周日为0,喜欢周几开始就填几slotLabelFormat={{hour: '2-digit',minute: '2-digit',meridiem: false,hour12: false}}/>

6.创建循环任务和单独任务

import React, { useEffect, useState } from 'react';
import FullCalendar from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";const ExperimentalSchedule = () => {let matchList = [{id: '1',name: '第一个任务',startTime: "2024-07-09 13:22:05",endTime: "2024-07-09 15:38:05",repeatExecute: false,},{id: '2',name: '第二个任务',startTime: "2024-07-13 09:45:23",endTime: "2024-07-13 15:10:23",repeatExecute: false,},{id: '3',name: '第三个任务',startTime: "2024-07-20 19:37:18",endTime: "2024-07-20 19:43:18",repeatExecute: false,},{id: '4',name: '第四个任务',startTime: "2024-07-25 14:49:05",endTime: "2024-07-25 03:15:05",repeatExecute: false,},];let repeatMatchList = [{id: '5',name: '每周一,周三重复任务',startDate: "2024-07-09", // 任务创建于12月10日startTime: "09:10:00", // 每次任务的开始时间endTime: "17:30:23", // 每次任务的结束时间repeatDates: ["星期一", "星期三"],repeatExecute: true,},{id: '6',name: '每周二重复任务',startDate: "2024-07-09", // 任务创建于12月2日startTime: "15:10:00", // 每次任务的开始时间endTime: "17:30:23", // 每次任务的结束时间repeatDates: ["星期二"],repeatExecute: true,}];const formartRepeat = (value) => {switch (value) {case '星期一':value = 1;break;case '星期二':value = 2;break;case '星期三':value = 3;break;case '星期四':value = 4;break;case '星期五':value = 5;break;case '星期六':value = 6;break;case '星期日':value = 0;break;}return value;}const [events, setEvents] = useState([]);useEffect(() => {// 准备事件数据const preparedEvents = (list) => {return list.map(({ id, name, startTime, endTime, repeatExecute, repeatDates, startDate }) => {let event = {id,title: name,start: repeatExecute ? `${startDate}T${startTime}` : startTime, // 格式化时间end: repeatExecute ? `${startDate}T${endTime}` : endTime, // 格式化时间borderColor: repeatExecute ? 'black' : 'red',};if (repeatExecute) {event.daysOfWeek = repeatDates.map(formartRepeat); // 设置星期几重复event.startRecur = startDate; // 重复开始日期}return event;});};const formattedEvents = [...preparedEvents(matchList), ...preparedEvents(repeatMatchList)];setEvents(formattedEvents);}, []);const  eventClick = (eventInfo) => {console.log(eventInfo.event);}return (<><FullCalendardefaultView="dayGridMonth"plugins={[dayGridPlugin, timeGridPlugin]}headerToolbar={{left: "prevYear,prev,next,nextYear today", // 上一年,上一月,下一月,下一年 今天center: "title", // 当前年月right: "timeGridDay,timeGridWeek,dayGridMonth" // 天 周 月}}locale='zh-cn'buttonText={{today: '今天',month: '月',week: '周',day: '天'}}allDayText='全天'firstDay={1} // 周一至周六为1~6,周日为0,喜欢周几开始就填几slotLabelFormat={{hour: '2-digit',minute: '2-digit',meridiem: false,hour12: false}}events={events}eventClick={eventClick}/></>);
};export default ExperimentalSchedule;

7.如果想让月视图的任务既显示开始时间又显示结束时间,加一个属性:

displayEventEnd

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

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

相关文章

2024百度之星第三场第一题 数星星

天上有 n 颗星星&#xff0c;每颗星星自第 bi​ 秒开始&#xff08;包含第 bi​ 秒&#xff09;&#xff0c;每 ai​ 秒便会闪烁一次&#xff0c;小度 今晚有一点失眠&#xff0c;所以他想来数星星&#xff0c;天上的星星每闪烁一次&#xff0c;小度便会在心中记一次数&#xf…

初识STM32:寄存器编程 × 库函数编程 × 开发环境

STM32的编程模型 假如使用C语言的方式写了一段程序&#xff0c;这段程序首先会被烧录到芯片当中&#xff08;Flash存储器中&#xff09;&#xff0c;Flash存储器中的程序会逐条的进入CPU里面去执行。 CPU相当于人的一个大脑&#xff0c;虽然能执行运算和执行指令&#xff0c;…

hutool ExcelUtil 导出导入excel

引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.15</version></dependency>文件导入 public void savelist(String filepath,String keyname){ExcelReader reader Exce…

面试官:讲一下如何终止一个 Promise 继续执行

我们知道 Promise 一旦实例化之后&#xff0c;状态就只能由 Pending 转变为 Rejected 或者 Fulfilled&#xff0c; 本身是不可以取消已经实例化之后的 Promise 了。 但是我们可以通过一些其他的手段来实现终止 Promise 的继续执行来模拟 Promise 取消的效果。 Promise.race …

索引知识总结

一、什么是索引&#xff1f; 索引是在数据库管理中一个非常重要的概念&#xff0c;它是一种数据结构&#xff0c;设计用于提高数据库查询的效率。索引类似于书籍的目录或索引页&#xff0c;可以帮助数据库管理系统快速定位和检索数据&#xff0c;而不必检查数据库中的每一行。…

SAP_MMABAP模块_MM60物料清单新增物料组描述字段

业务背景&#xff1a; 用户需要在系统标准的物料主数据查询报表MM60中&#xff0c;添加物料组描述&#xff0c;一直以来&#xff0c;我都觉得标准的MM60显示的内容字段不够多&#xff0c;不太好用。 以往都是给用户新开发一个物料主数据查询报表来解决的&#xff0c;但是这次刚…

数学建模及国赛

认识数学建模及国赛 认识数学建模 环境类&#xff1a;预测一下明天的气温 实证类&#xff1a; 评价一下政策的优缺点 农业类&#xff1a; 预测一下小麦的产量 财经类&#xff1a; 分析一下理财产品的最优组合 规划类&#xff1a; 土地利用情况进行 合理的划分 力学类&#xf…

ProFuzzBench入门教学——使用(Ubuntu22.04)

ProFuzzBench是网络协议状态模糊测试的基准测试。它包括一套用于流行协议&#xff08;例如 TLS、SSH、SMTP、FTP、SIP&#xff09;的代表性开源网络服务器&#xff0c;以及用于自动执行实验的工具。详细参考&#xff1a;阅读笔记——《ProFuzzBench: A Benchmark for Stateful …

一句话彻底搞懂Java的编译和执行过程

编译和运行可以在不同的计算机上实现。 编译阶段&#xff1a;由Javac编译器将 .Java 的源文件编译为 .class 的字节码文件&#xff1b; 运行阶段&#xff1a; jvm中Java编译器运行 .class 的字节码文件&#xff0c;运行过程中&#xff0c;类加载器从硬盘中找到该字节码文件并…

WPF引入多个控件库使用

目的 设计开发时有的控件库的一部分符合我们想要的UI样式&#xff0c;另一部分来自另一个控件库&#xff0c;想把两种库的样式做一个整合在同一个控件资源上。单纯通过引用的方式会导致原有样式被覆盖。这里通过设置全局样式的方式来实现。 1.安装控件库nuget包&#xff1a;H…

Spring添加自定义拦截器的方法

一、添加一个自定义拦截器并实现HandlerInterceptor方法 public class CartInterceptor implements HandlerInterceptor {//ThreadLocal实质是个map&#xff0c;在同一个线程共享数据public static ThreadLocal<UserInfoTO> threadLocal new ThreadLocal<>();/* …

uniapp 防止重复提交数据

当用户快速点击按钮时候。我们可以统一在 请求拦截 中做防止重复提交数据的处理 以下是使用uview2封装的request请求 import { autoLogin, getUserInfo } from /utils/method.js import { refreshToken } from /api/login.js const serversUrl require(./serversUrl.js).ser…

Webpack: 模块编译打包及运行时Runtime逻辑

概述 回顾最近几节内容&#xff0c;Webpack 运行过程中首先会根据 Module 之间的引用关系构建 ModuleGraph 对象&#xff1b;接下来按照若干内置规则将 Module 组织进不同 Chunk 对象中&#xff0c;形成 ChunkGraph 关系图。 接着&#xff0c;构建流程将来到最后一个重要步骤…

openresty 清空共享字典

在 OpenResty 中&#xff0c;可以使用 lua_shared_dict 来实现共享字典。清空共享字典的方法非常简单&#xff0c;只需调用共享字典的 flush_all 方法。以下是一个完整的示例&#xff0c;展示了如何在 OpenResty 中清空共享字典&#xff1a; Nginx 配置 首先&#xff0c;定义…

Argo CD入门、实战指南

1. Argo CD概述 1.1 什么是 Argo CD Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 1.2 为什么选择 Argo CD 应用程序定义、配置和环境应具有声明性并受版本控制。应用程序部署和生命周期管理应自动化、可审计且易于理解。 2. Argo CD基础知识 在有效使用 Ar…

中职网络安全B模块渗透测试server2003

通过本地PC中渗透测试平台Kali对服务器场景Windows进⾏系统服务及版本扫描渗透测 试&#xff0c;并将该操作显示结果中Telnet服务对应的端⼝号作为FLAG提交 使用nmap扫描发现目标靶机开放端口232疑似telnet直接进行连接测试成功 Flag&#xff1a;232 通过本地PC中渗透测试平台…

使用 Hugging Face 的 Transformers 库加载预训练模型遇到的问题

题意&#xff1a; Size mismatch for embed_out.weight: copying a param with shape torch.Size([0]) from checkpoint - Huggingface PyTorch 这个错误信息 "Size mismatch for embed_out.weight: copying a param with shape torch.Size([0]) from checkpoint - Hugg…

Elasticsearch基础(四):Elasticsearch语法与案例介绍

文章目录 Elasticsearch语法与案例介绍 一、Restful API 二、查询语法 1、ES分词器 2、ES查询 2.1、match 2.2、match_phrase 2.3、multi_match 2.4、term 2.5、terms 2.6、fuzzy 2.7、range 2.8、bool Elasticsearch语法与案例介绍 一、Restful API Elastics…

服务攻防——中间件Jboss

文章目录 一、Jboss简介二、Jboss渗透2.1 JBoss 5.x/6.x 反序列化漏洞&#xff08;CVE-2017-12149&#xff09;2.2 JBoss JMXInvokerServlet 反序列化漏洞&#xff08;CVE-2015-7501&#xff09;2.3 JBossMQ JMS 反序列化漏洞&#xff08;CVE-2017-7504&#xff09;2.4 Adminis…

Java如何自定义注解及在SpringBoot中的应用

注解 注解&#xff08;Annotation&#xff09;&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;用来对这些元素进行说…