fullcalendar基础使用

fullcalendar日历插件,下面是实现的一个基础模版实现任务的添加修改操作。
在这里插入图片描述

  <div><div id="calendar" ref="calendarRef"></div><el-dialogv-model="dialogTableVisible"title="添加任务"width="500":before-close="handleClose"><h3 v-if="end == ''">起始日期:{{ dayjs(start).format("YYYY-MM-DD") }}</h3><h3 v-else>起始日期:{{ dayjs(start).format("YYYY-MM-DD") }}--{{dayjs(end).format("YYYY-MM-DD")}}</h3><el-inputv-model="input"style="width: 100%"placeholder="Please input"/><hr /><el-color-picker v-model="color" /><hr /><el-button type="primary" @click="save">{{isEdit.value ? "修改" : "添加"}}</el-button></el-dialog></div>
import { Calendar } from "@fullcalendar/core";
import dayGridPlugin from "@fullcalendar/daygrid";
import interaction from "@fullcalendar/interaction";
import multiMonthPlugin from "@fullcalendar/multimonth";
import esLocale from "@fullcalendar/core/locales/zh-cn";
import { ref, onMounted } from "vue";
import dayjs from "dayjs";const data = ref([{id: Math.random(32).toString(16).slice(6),title: "All Day Event",start: "2024-07-01",},{id: Math.random(32).toString(16).slice(6),title: "Long Event",start: "2024-07-07",end: "2024-07-10",},
]);
const calendarRef = ref();
let canendar = null;
const dialogTableVisible = ref(false);
const input = ref("");
const start = ref("");
const end = ref("");
const flag = ref("date"); //date是单个日期,range是范围
const color = ref("");
const isEdit = ref(false);
const editId = ref(null);function handleClose() {dialogTableVisible.value = false;start.value = "";end.value = "";input.value = "";color.value = "";isEdit.value = false;editId.value = null;
}function save() {let newEvent = null;if (isEdit.value) {//根据id获取对应数据源修改let event = canendar.getEventById(editId.value);data.value.forEach((item) => {if (item.id == editId.value) {event.setProp("title", input.value);event.setProp("backgroundColor", color.value);event.remove(); //移除原先的事件源canendar.addEvent(event); //再次添加}});} else {newEvent = {title: input.value,start: dayjs(start.value).format("YYYY-MM-DD"), //根据日期格式化,显示不同的任务样式id: Math.random(32).toString(16).slice(6),color: color.value,};if (flag == "date") {data.value.push(newEvent);} else {newEvent.end = dayjs(end.value).format("YYYY-MM-DD");data.value.push(newEvent);}canendar && canendar.addEvent(newEvent); //添加新的卡片数据并触发更新}dialogTableVisible.value = false;start.value = "";end.value = "";input.value = "";newEvent = null;color.value = "";editId.value = null;isEdit.value = false;
}
onMounted(() => {canendar = new Calendar(calendarRef.value, {//interaction需要添加,否则在日历中无法对任务进行拖拽操作plugins: [dayGridPlugin, interaction, multiMonthPlugin], //使用的插件timeZone: "UTC",initialView: "dayGridYear", // 日历的排列方式headerToolbar: {left: "prev,next",center: "title",right: "dayGridYear,dayGridWeek,dayGridDay",},editable: true, // 需要开启,否则无允许拖拽的效果droppable: true,events: data.value, //数据源,可以是一个地址selectable: true, //允许多行选中日历,开启会触发select事件dateClick: function (info) {//单据某一个天的操作,无结束日期console.log("dateClick", info);flag.value = "date";dialogTableVisible.value = true;start.value = info.date;end.value = "";},select: function (info) {//选中多个日期,包含结束日期console.log("select", info);flag.value = "range";dialogTableVisible.value = true;start.value = info.start;end.value = info.end;},eventClick: function (info) {//单机事件卡片触发console.log("eventClick", info);dialogTableVisible.value = true;isEdit.value = true;editId.value = info.event.id;if (info.event.end === null) {flag.value = "date";start.value = info.event.start;end.value = "";} else {flag.value = "range";start.value = info.event.start;end.value = info.event.end;}color.value = info.event.backgroundColor;input.value = info.event.title;},locale: esLocale,});canendar.render();
});

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

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

相关文章

Golang:数据科学领域中的高性能并发编程新星

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 并发性能的卓越表现📝 系统级工具的便捷性📝 语言设计的简洁性📝 强类型系统的严格性📝 版本兼容性的稳定性📝 内置工具的全面性⚓️ 相关链接 ⚓️📖 介绍 📖 在数据科学和机器学习的广阔天地…

Web3 社交领域的开发技术

Web3 社交领域的开发技术主要包括以下几种&#xff0c;随着 Web3 技术的不断发展&#xff0c;Web3 社交领域将会出现更多新的技术和应用场景。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 区块链技术 区块链技术是 Web3 社交的…

Arcgis横向图例设置

想把这个图例改成横向的 点击图例的属性&#xff0c;找到样式

虚幻引擎ue5游戏运行界面白茫茫一片,怎么处理

根剧下图顺序即可调节游戏运行界面光照问题&#xff1a; 在大纲里找到post&#xff0c;然后选中它&#xff0c;找到Exposure 把最低亮度和最高亮度的0改为1即可

C# Winform 系统方案目录的管理开发

在做一个中等复杂程度项目时&#xff0c;我们通常有系统全局配置&#xff0c;还要有对应的方案目录的管理和更新。 比如我们有如下需求&#xff1a;开发一个方案管理&#xff0c;可以新建、打开和保存方案&#xff0c;同时还需要保存方案中的各种文件。我设计的采用目录管理和…

在Linux上部署Java项目过程

文章目录 1、ps -ef | grep java2、杀死指定的.jar程序3、此时再查看java进程4、找到.jar包在linux上存储的位置5、切换到存放.jar目录5、把相应的.jar包放入这个目录6、启动指定的java程序 1、ps -ef | grep java [rootiZuf6332h890vozldoxcprZ bailian]# ps -ef | grep java…

fastadmin 如何通过权限组来控制列的显示与隐藏

方法1 以版本控制&#xff08;application/admin/controller/Version.php&#xff09;为例子 需求 就是在有时候&#xff0c;有些列不想让这个权限组的人看到&#xff0c;只给制定的权限组的人看 1.给权限组创建一个字段 ALTER TABLE lt_auth_group ADD COLUMN isBoothView T…

IDEA 中的调试方式(以 java 为例)

文章目录 IDEA 中的调试方式(以 java 为例)1. 基本介绍2. 断点调试的快捷键2.1 设置断点并启动调试2.3 快捷键 IDEA 中的调试方式(以 java 为例) 在开发中查找错误的时候&#xff0c;我们可以用断点调试&#xff0c;一步一步的看源码执行的过程&#xff0c;从而发现错误所在。 …

iPhone删除所有照片的高效三部曲

苹果手机用久了&#xff0c;系统缓存包括自己使用手机留下的内存肯定会越来越多。其中&#xff0c;相册中的照片数量可能会急剧增加&#xff0c;占据大量的存储空间。当用户们想要对相册进行彻底清理&#xff0c;实现iPhone删除所有照片时&#xff0c;不妨跟随以下详细的三部曲…

数据结构(3.9_1)——特殊矩阵的压缩存储

总览 一维数组的存储结构 如果下标从1开始&#xff0c;则a[i]的存放地址LOC (i-1)*sizeof(ElemType); 二维数组的存储 二维数组也具有随机存储的特性 设起始地址为LOC 在M行N列的二维数组b[M][N]中&#xff0c;若按行优先存储&#xff0c; 则b[i][j]的存储地址的LOC (i*…

百度2025校园招聘内推开始啦

百度2025校园招聘内推开始啦&#xff0c;快来投递你心仪的职位吧&#xff08; 网申链接地址&#xff1a;https://talent.baidu.com/jobs/list?recommendCodeIZB4S3&recruitTypeGRADUATE &#xff09;填入内推码&#xff0c;完成投递&#xff0c;get内推绿色通道~我的内推码…

ASP.NET Core中创建中间件的几种方式

前言 今天我们一起来盘点一下在ASP.NET Core应用程序中添加和创建中间件常见的四种方式。 中间件介绍 ASP.NET Core中间件&#xff08;Middleware&#xff09;是用于处理HTTP请求和响应的组件&#xff0c;它们被安排在请求处理管道中&#xff0c;并按顺序执行。中间件的设计是为…

ES 慢上游响应问题优化在用户体验场景中的实践

在抖音亿级日活流量的情况下&#xff0c;每天收到的用户反馈也是大量的&#xff0c;而用户反馈对于产品的发展与未来是至关重要的&#xff0c;因此用户体验管理平台&#xff08;简称VoC&#xff09;就应运而生&#xff0c;VoC 平台旨在通过技术平台化的方式&#xff0c;结合反馈…

uni-app 保存号码到通讯录

1、 添加模块 2、添加权限 3、添加策略 Android&#xff1a; "permissionExternalStorage" : {"request" : "none","prompt" : "应用保存运行状态等信息&#xff0c;需要获取读写手机存储&#xff08;系统提示为访问设备上的照片…

房屋出租管理系统小程序需求分析及功能介绍

房屋租赁管理系统适用于写字楼、办公楼、厂区、园区、商城、公寓等商办商业不动产的租赁管理及租赁营销&#xff1b;提供资产管理&#xff0c;合同管理&#xff0c;租赁管理&#xff0c; 物业管理&#xff0c;门禁管理等一体化的运营管理平台&#xff0c;提高项目方管理运营效率…

电脑如何快速删除相同的文件?分享5款重复文件删除工具

您有没有发现最近电脑运行速度变慢了&#xff1f;启动时间变得更长&#xff0c;甚至完成简单任务也难以如常&#xff1f;这可能是因为重复文件堆积所致。我们发现&#xff0c;清理或移动这些重复的文件和文件夹可以产生惊人的效果。通过删除不必要的重复文件和垃圾文件&#xf…

从LeetCode215看排序算法

目录 LeetCode215 数组的第K个最大元素 ① 第一反应&#xff1a;java的内置排序Arrays.sort() ② 冒泡排序 ③归并排序&#xff08;先分解再合并&#xff09; ④快速排序&#xff08;边分解边排序&#xff09; ⑤堆排序 LeetCode215 数组的第K个最大元素 给定整数数组 nums…

ubuntu基于cmakelist的Qt工程,如何将图片打包进二进制程序

qt界面使用的图片打包进入二进制可执行程序&#xff0c;可以避免发布的软件&#xff0c;因为路径问题无法加载图片的问题。 以下步骤参考自百度AI. 步骤如下&#xff1a; 1.创建一个新的Qt资源文件&#xff08;.qrc文件&#xff09; 2.在*.qrc文件中添加图片路径 qrc文件使用…

LeetCode HOT100(四)字串

和为 K 的子数组&#xff08;mid&#xff09; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 解法1&#xff1a;前缀和Map 这…

(Vue+SpringBoot+elementUi+WangEditer)仿论坛项目

项目使用到的技术与库 1.前端 Vue2 elementUi Cookie WangEditer 2.后端 SpringBoot Mybatis-Plus 3.数据库 MySql 一、效果展示 1.1主页效果&#xff1a; 1.2 文章编辑页面&#xff1a; 1.3 成功发布文章 1.4 文章关键字搜索提示 1.5 文章查询结果展示 1.6 文章内容及交互展示…