@fullcalendar/vue 日歷組件

功能:日程安排,展示日歷,可以用來做會議日歷,可以跨日期顯示日程。

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; ? 突發藍屏死機 ? 系統卡頓崩潰 ? 硬件過早損壞 ? 數據丟失風險 本指南提供…