vue下使用fullcalendar案例講解
ps:我真的感覺自己是個(gè)前端了,最近天天在寫前端。不過很多復(fù)雜邏輯,后臺(tái)處理起來比較麻煩,所以只讓后臺(tái)提供簡單數(shù)據(jù),前端封裝處理數(shù)據(jù)確實(shí)比較方便!
引子:最近公司要做個(gè)人日程管理,故鄙人思前想后,選擇了fullcalendar組件。但!官方文檔全是英文,對于英語四級都沒過的我,真是很心累。只能發(fā)揚(yáng)面向百度編程的優(yōu)良傳統(tǒng),找了好多案例做出來了?,F(xiàn)總結(jié)如下:
vue下使用fullcalendar及簡單案例
- 使用版本:5.3.0
- 效果圖
安裝
在package.json中引入如下,運(yùn)行“npm i”
"@fullcalendar/daygrid": "^5.3.0", "@fullcalendar/interaction": "^5.3.0", "@fullcalendar/list": "^5.3.0", "@fullcalendar/timegrid": "^5.3.0", "@fullcalendar/vue": "^5.3.0",
或者直接 “npm install -save *****”
運(yùn)行報(bào)錯(cuò),多半是因?yàn)閬y七八糟的依賴版本沖突,要更換依賴版本。對了!安裝前請把npm改成阿里云依賴下載,否則卡死。
安裝成功的話,在package-lock.json中會(huì)有一條記錄:
無需再main.js中引入
使用
基本使用
創(chuàng)建vue文件,在script中引入fullcalendar(哪個(gè)頁面用哪里引)
<template> <FullCalendar ref="fullCalendar"></FullCalendar> </template> <script> import FullCalendar from '@fullcalendar/vue' import dayGridPlugin from '@fullcalendar/daygrid' import timeGridPlugin from '@fullcalendar/timegrid' import interactionPlugin from '@fullcalendar/interaction' import listPlugin from '@fullcalendar/list' export default { //import引入的組件需要注入到對象中才能使用 components: { FullCalendar } } </script>
此時(shí)可以顯示一個(gè)簡單的日歷了,但遠(yuǎn)遠(yuǎn)不是我們想要的。
注入事件和屬性
代碼:
<template> <FullCalendar ref="fullCalendar" :options="calendarOptions"></FullCalendar> </template> <script> import FullCalendar from '@fullcalendar/vue' import dayGridPlugin from '@fullcalendar/daygrid' import timeGridPlugin from '@fullcalendar/timegrid' import interactionPlugin from '@fullcalendar/interaction' import listPlugin from '@fullcalendar/list' export default { //import引入的組件需要注入到對象中才能使用 components: { FullCalendar } data() { return { calendarOptions: { plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin, listPlugin], initialView: 'dayGridMonth', locale: 'zh', firstDay: 1, buttonText: { today: '今天', month: '月', week: '周', day: '日', list: '周列表', }, headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay listWeek', }, height: 650, validRange: this.validRange, //設(shè)置可顯示的總?cè)掌诜秶? events: [], //背景色 (添加相同時(shí)間的背景色時(shí)顏色會(huì)重疊) datesSet: this.datesSet, //日期渲染;修改日期范圍后觸發(fā) eventClick: this.handleEventClick, //點(diǎn)擊日程觸發(fā) dateClick: this.handleDateClick, //點(diǎn)擊日期觸發(fā) eventDrop: this.calendarEventDropOrResize, //拖動(dòng)事件觸發(fā) eventResize: this.calendarEventDropOrResize, //縮放事件觸發(fā) displayEventTime: false, //不顯示具體時(shí)間 }, validRange: { start: '2021-09-01', end: moment().add(6, 'months').format('YYYY-MM-DD'), } } }, methods: { datesSet(info) { //注意:該方法在頁面初始化時(shí)就會(huì)觸發(fā)一次 console.log(info) // this.search() //請求本頁數(shù)據(jù) //虛擬數(shù)據(jù) this.calendarOptions.events = [{ id: 111, title: '任務(wù)1', start: ‘2021-10-01', end: ‘2021-10-11' color: ‘#ffcc99', editable: true, //允許拖動(dòng)縮放,不寫默認(rèn)就是false overlap: true, //允許時(shí)間重疊,即可以與其他事件并存,不寫默認(rèn)就是false },{ id: 222, title: '任務(wù)2', start: ‘2021-10-12', end: ‘2021-10-20' color: ‘#ffcc99', editable: true, //允許拖動(dòng)縮放 }] }, handleEventClick(info) {}, handleDateClick(info){}, calendarEventDropOrResize(info){} } } </script>
參數(shù)說明:
- plugins::綁定的控件
- initialView:‘dayGridMonth’ 默認(rèn)顯示視圖,月視圖
- locale:‘zh’ 國際化,中文
- firstDay:1 星期的第一列顯示,周一(0周日 1周一 2周二…)
- buttonText:buttonText 按鈕文本
- headerToolbar:header 頭部工具條
- height:日歷高度
- validRange:validRange 全局日期范圍;超出范圍按鈕會(huì)禁用
- 數(shù)據(jù)來源:
- events: [] 日程數(shù)據(jù)存放在這里,使用this.calendarOptions.events調(diào)用
事件說明:
datesSet:修改日期范圍后觸發(fā),即點(diǎn)擊
這三個(gè)按鈕時(shí)觸發(fā)eventClick:點(diǎn)擊任務(wù)時(shí)觸發(fā)dateClick: 點(diǎn)擊日期觸發(fā)eventDrop: 拖動(dòng)事件觸發(fā)eventResize: 縮放事件觸發(fā)
- datesSet:修改日期范圍后觸發(fā),即點(diǎn)擊
這三個(gè)按鈕時(shí)觸發(fā) - eventClick:點(diǎn)擊任務(wù)時(shí)觸發(fā)
- dateClick: 點(diǎn)擊日期觸發(fā)
- eventDrop: 拖動(dòng)事件觸發(fā)
- eventResize: 縮放事件觸發(fā)
到此這篇關(guān)于vue下使用fullcalendar及簡單案例的文章就介紹到這了,更多相關(guān)vue使用fullcalendar內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue框架中如何調(diào)用模擬數(shù)據(jù)你知道嗎
這篇文章主要為大家詳細(xì)介紹了Vue框架中如何調(diào)用模擬數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03Vue3+Vite項(xiàng)目部署后刷新白屏問題的解決方法
Vue3 + Vite 項(xiàng)目部署后出現(xiàn)了手動(dòng)刷新頁面時(shí)出現(xiàn)白屏的問題,下面小編就來和大家探討一下白屏出現(xiàn)的原因以及具體的解決方法,需要的可以參考下2025-03-03vue中實(shí)現(xiàn)支持txt,docx,xlsx,mp4格式文件預(yù)覽功能(純前端)
對于Vue你可以實(shí)現(xiàn)文件的預(yù)覽功能,這篇文章主要給大家介紹了關(guān)于vue中實(shí)現(xiàn)支持txt,docx,xlsx,mp4格式文件預(yù)覽功能的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11Vue Autocomplete 自動(dòng)完成功能簡單示例
這篇文章主要介紹了Vue Autocomplete 自動(dòng)完成功能,結(jié)合簡單示例形式分析了Vue使用el-autocomplete組件實(shí)現(xiàn)自動(dòng)完成功能相關(guān)操作技巧,需要的朋友可以參考下2019-05-05Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11