tui.calender日历创建、删除、编辑事件、自定义样式

news2024/11/16 13:29:35

全是坑🕳!全是坑🕳!全是坑🕳!能不用就不用!

官方文档:https://github.com/nhn/tui.calendar/blob/main/docs/en/apis/calendar.md
实例的一些方法,比如创建、删除、修改、查看事件详情都有,下面写几个我用得多的
在这里插入图片描述

1. 一些参数配置的介绍

<template>
  <div>
    <ToastUICalendar
      ref="calendar"
      style="height: 800px"
      :view="'month'"  // 日历视图展示类型,可按日、周、月展示
      :use-form-popup="true" // 是否打开创建事件弹窗
      :use-detail-popup="true" // 是否打开查看事件详情弹窗
      :week="{
        showTimezoneCollapseButton: true,
        timezonesCollapsed: false,
        eventView: true,
        taskView: true,
      }"  // 周日历的参数配置
      :month="{ startDayOfWeek: 1 }" // 月日历从周x开始展示
      :timezone="{ zones }" // 时区设置
      :theme="theme" // 日历的主题样式设置,具体参考官方文档
      :template="{
        milestone: getTemplateForMilestone,
        allday: getTemplateForAllday,
      }" // 自定义日历的部分样式模板
      :grid-selection="true" // 是否可以单击和双击日期/时间选择
      :calendars="calendars" // 为事件指定样式,下面解释
      :events="events" // 事件列表
      @selectDateTime="onSelectDateTime" // 点击时间,选择日期
      @beforeCreateEvent="onBeforeCreateEvent" // 创建事件
      @beforeUpdateEvent="onBeforeUpdateEvent" // 修改事件
      @beforeDeleteEvent="onBeforeDeleteEvent" // 删除事件
      @afterRenderEvent="onAfterRenderEvent" // 渲染事件
      @clickDayName="onClickDayName" //每周/每日视图的标题区域显示当前查看的时间范围的星期几和日期
      @clickEvent="onClickEvent" // 点击事件,获取详细信息
      @clickTimezonesCollapseBtn="onClickTimezonesCollapseBtn" // 折叠时区
      @clickMoreEventsBtn="onClickMoreEventsBtn" // 点击更多按钮
    />
  </div>
</template>

2. calenders和events参数介绍

export default {
  data() {
    return {
     calendars: [
        {
          id: '0',
          name: 'Private',
          backgroundColor: '#9e5fff',
          borderColor: '#9e5fff',
          dragBackgroundColor: '#9e5fff',
        },
      ], // 相对应id的事件的颜色、border颜色、拖拽的颜色
      events: [
		  {
		    id: '1', // 事件的id
		    calendarId: '0', // 和上面的calendars的id相对应就会展示相应的样式颜色
		    title: 'TOAST UI Calendar Study', // 事件名称
		    category: 'time', // 事件的类别:task、allday 、time、milestone,在视图中的展示方式不一样
		    start: '2024-01-16T16:00:00', // 开始时间
    		end: '2024-01-17T17:00:00', // 结束时间
    		isReadOnly: true, // 是否为只读
		    color: '#fff', //文字颜色,下面这些样式的优先级比calendarId对应的优先级高
		    backgroundColor: '#ccc', // 背景颜色
		    customStyle: {
		      fontStyle: 'italic',
		      fontSize: '15px',
		    }, // 事件元素的样式
		    borderColor:'', //事件元素左边的颜色
		    raw:'' // 自定义任何形式的数据
		  },
	   ]
	  }
	}
]

3. 创建事件:createEvents

官方给的具体案例:
https://github.com/nhn/tui.calendar/blob/main/apps/vue-calendar/example/App.vue
安装tui.calender及使用方法,参考我的上篇文章
tui.calender日历在vue中的使用1.0

 computed: {
    calendarInstance() {
      return this.$refs.calendar.getInstance();
    },
  },
 methods:{
  onBeforeCreateEvent(eventData) {
  const event = {
      calendarId: eventData.calendarId || '',
      id: String(Math.random()),
      title: eventData.title,
      isAllday: eventData.isAllday,
      start: eventData.start,
      end: eventData.end,
      category: eventData.isAllday ? 'allday' : 'time',
      dueDateClass: '',
      location: eventData.location,
      state: eventData.state,
      isPrivate: eventData.isPrivate,
    };

	// 在computed中创建的日历实例,直接用createEvents创建
    this.calendarInstance.createEvents([event]); 
  },

4. 删除事件:beforeDeleteEvent

onBeforeDeleteEvent({ title, id, calendarId }) {
  	this.calendarInstance.deleteEvent(id, calendarId);
  },
}

5. 修改事件:beforeUpdateEvent

onBeforeUpdateEvent(updateData) {
  const targetEvent = updateData.event;
  const changes = { ...updateData.changes };
  this.calendarInstance.updateEvent(targetEvent.id, targetEvent.calendarId, changes);
},

6. 自定义样式

不是每个样式都能自定义,可以自定义的参考官方文

https://github.com/nhn/tui.calendar/blob/main/docs/en/apis/template.md
不能自定的我用的两种方式

  1. 样式穿透
  2. 自己画图,比如它的事件弹窗没法自定义,我就自己写了(先不总结了,我还在踩坑)
mounted() {
	this.calendarInstance.setOptions({
		template: {
			// 弹窗中的保存按钮文字
			popupSave() {
	          return '保存'
	        },
	        // 更多按钮的文字提示
	        monthGridHeaderExceed(hiddenEvents) {
	         return `<div><span style="color:red;">${hiddenEvents}</span> 全部课程</div>`
            },

		}
	})
},

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

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

相关文章

【React】脚手架创建项目

文章目录 创建React项目目录结构分析了解PWA脚手架中的webpack 创建React项目 ◼ 创建React项目的命令如下&#xff1a; ​  注意&#xff1a;项目名称不能包含大写字母 ​  另外还有更多创建项目的方式&#xff0c;可以参考GitHub的readme 命令&#xff1a; create-rea…

Redis相关命令详解及其原理

Redis概念 Redis&#xff0c;英文全称是remote dictionary service&#xff0c;也就是远程字典服务。这是kv存储数据库。Redis&#xff0c;包括所有的数据库&#xff0c;都是请求-回应模式&#xff0c;通俗来说就是数据库不会主动地要给前台推送数据&#xff0c;只有前台发送了…

1026 程序运行时间 (15)

要获得一个 C 语言程序的运行时间&#xff0c;常用的方法是调用头文件 time.h&#xff0c;其中提供了 clock() 函数&#xff0c;可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick&#xff0c;即“时钟打点”。同时还有一个常数 CLK_TCK&…

使用zabbix-proxy进行分布式监控

目录 一、准备4台服务器 二、配置主从复制 1.准备环境 2.主机名解析 3.安装数据库 4.配置主库db1 5.配置从库db2 6.主从状态显示 三、db1&#xff0c;db2配置zabbix-agent 三、zabbix-server的配置 四、zabbix-proxy的配置 1.为您的平台安装和配置Zabbix-proxy a. …

勒索病毒:原理与防御

一、勒索病毒概述 勒索病毒&#xff0c;又称为Ransomware&#xff0c;是一种恶意软件&#xff0c;通过感染电脑系统、服务器或者手机等设备&#xff0c;使用户文件被加密&#xff0c;从而向用户索取赎金以解锁文件。近年来&#xff0c;勒索病毒已经成为网络安全领域的一大公害…

linux java 8安装

tar -zxf jdk-8u***.tar.gz -C /usr/loacl/ vim /etc/profile i 输入 export JAVA_HOME/usr/local/安装文件名 export PATH${JAVA_HOME}/bin:$PATH ESC :wq 保存退出 source /etc/profile 验证 java -version

【漏洞复现】上海真兰燃气收费系统信息泄露漏洞

Nx01 产品简介 上海真兰仪表科技股份有限公司&#xff0c;成立于2011年&#xff0c;真诺测量仪表成员&#xff0c;位于上海市&#xff0c;是一家以从事仪器仪表制造业为主的企业。 Nx02 漏洞描述 上海真兰仪表科技股份有限公司燃气收费系统存在信息泄露漏洞&#xff0c;log目录…

上海智慧岛大数据云计算中心项目正式封顶!

上海智慧岛大数据云计算中心封顶仪式现场 1月15日&#xff0c;云端股份在上海智慧岛大数据云计算中心举行封顶仪式。云之端网络&#xff08;江苏&#xff09;股份有限公司&#xff08;以下称“云端股份”&#xff09;总经理贡伟力先生&#xff0c;常务副总张靖先生等公司成员&…

BGP最通俗易懂的讲解——路由反射器

路由反射器 点赞关注&#xff0c;持续更新 路由反射器RR (Route Reflector&#xff09; : 允许把从IBGP 对等体学到的路由反射到其他BGP对等体的BGP设备。客户机 (Client) : 与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR建立邻居关系。非客户机 (Non-Client) …

CentOS 8.5 安装图解

特特特别的说明 CentOS发行版已经不再适合应用于生产环境&#xff0c;客观条件不得不用的话&#xff0c;优选7.9版本&#xff0c;8.5版本次之&#xff0c;最次6.10版本&#xff08;比如说Oracle 11GR2就建议在6版本上部署&#xff09;&#xff01; 引导和开始安装 选择倒计时结…

如何使用Lychee结合内网穿透搭建私人图床网站并发布至公网远程访问

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…

【计算机网络】HTTP协议以及简单的HTTP服务器实现

文章目录 一、HTTP协议1.认识URL2.urlencode和urldecode3.HTTP协议格式4.HTTP的方法5.HTTP的状态码6.HTTP常见Header7.重定向8.长连接9.会话保持10.基本工具 二、简单的HTTP服务器实现1.err.hpp2.log.hpp3.procotol.hpp4.Sock.hpp5.Util.hpp6.httpServer.hpp7.httpServer.cc8.总…

阿里云ECS使用docke搭建redis服务

目录 1.确保正确安装好docker 2.安装redis镜像 3.创建容器设置端口映射 1.确保正确安装好docker 安装教程&#xff1a; 阿里云ECS(CentOS镜像)安装docker-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135686614?spm1001.2014.3001.5501 2.安装redis镜像…

年龄性别预测1:年龄性别数据集说明(含下载地址)

年龄性别预测1&#xff1a;年龄性别数据集说明(含下载地址) 目录 年龄性别预测1&#xff1a;年龄性别数据集说明(含下载地址) 1.前言 2.MegaAge_Asian 3.MORPH 4.IMDB-WIKI 5.数据集下载 6.年龄性别预测和识别(Python/C/Android) 1.前言 本项目将实现年龄性别预测和识…

Java医药WMS进销存系统

技术架构&#xff1a; jdk8 IntelliJ IDEA maven Mysql5.7 有需要的可以私信我。 系统功能与介绍&#xff1a; 医药进销存系统&#xff0c;主要分两种角色&#xff1a;员工、客户。本系统具有进销存系统的通用性&#xff0c;可以修改为其它进销存系统&#xff0c;如家电进…

仿三方智能对话分析原始会话窗口

设计效果如下&#xff1a; 设计要求如下&#xff1a; 1、顶部播放条播放时&#xff0c;文字内容自动滚动。 监听audio事件timeupdate&#xff0c;只要播放器在播放就会触发该事件。每行文字有开始时间begin。判断当前时间&#xff08;currentTime&#xff09;<开始时间&am…

【分布式技术】Elastic Stack部署,实操logstash的过滤模块常用四大插件

目录 一、Elastic Stack&#xff0c;之前被称为ELK Stack 完成ELK与Filebeat对接 步骤一&#xff1a;安装nginx做测试 步骤二&#xff1a;完成filebeat二进制部署 步骤三&#xff1a;准备logstash的测试文件filebeat.conf 步骤四&#xff1a;完成实验测试 二、logstash拥有…

【REMB 】翻译:草案remb-03

REMB REMB消息 以及 绝对时间戳选项 在带宽估计中的使用 :an absolute-value timestamp option for use in bandwidth estimatoin. 接收方带宽估计的RTCP消息 REMB 这位大神翻译的更好。 RTCP message for Receiver Estimated Maximum Bitrate draft-alvestrand-rmcat-remb-03…

vite多页面打包学习(一)

一、前期准备 首先初始化两套独立的vue实例和相关生态&#xff08;多页面嘛&#xff09;&#xff0c;如下 我在src文件下创建了pages大文件夹&#xff0c;并初始化了两套页面分别为index和page1&#xff0c;每套页面都有自己单独的组件、路由、状态、入口等等&#xff0c;这里…

python数字图像处理基础(十一)——光流估计

目录 概念Lucas-Kanade算法函数表达式 概念 光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”&#xff0c;根据各个像素点的速度矢量特征&#xff0c;可以对图像进行动态分析&#xff0c;例如目标跟踪。要求如下&#xff1a; 亮度恒定&#xff1a;同一点随着时间…