vue下使用fullcalendar案例講解
ps:我真的感覺(jué)自己是個(gè)前端了,最近天天在寫前端。不過(guò)很多復(fù)雜邏輯,后臺(tái)處理起來(lái)比較麻煩,所以只讓后臺(tái)提供簡(jiǎn)單數(shù)據(jù),前端封裝處理數(shù)據(jù)確實(shí)比較方便!
引子:最近公司要做個(gè)人日程管理,故鄙人思前想后,選擇了fullcalendar組件。但!官方文檔全是英文,對(duì)于英語(yǔ)四級(jí)都沒(méi)過(guò)的我,真是很心累。只能發(fā)揚(yáng)面向百度編程的優(yōu)良傳統(tǒng),找了好多案例做出來(lái)了?,F(xiàn)總結(jié)如下:
vue下使用fullcalendar及簡(jiǎn)單案例
- 使用版本: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七八糟的依賴版本沖突,要更換依賴版本。對(duì)了!安裝前請(qǐng)把npm改成阿里云依賴下載,否則卡死。
安裝成功的話,在package-lock.json中會(huì)有一條記錄:

無(wú)需再main.js中引入
使用
基本使用
創(chuàng)建vue文件,在script中引入fullcalendar(哪個(gè)頁(yè)面用哪里引)
<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引入的組件需要注入到對(duì)象中才能使用
components: { FullCalendar }
}
</script>此時(shí)可以顯示一個(gè)簡(jiǎn)單的日歷了,但遠(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引入的組件需要注入到對(duì)象中才能使用
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) { //注意:該方法在頁(yè)面初始化時(shí)就會(huì)觸發(fā)一次
console.log(info)
// this.search() //請(qǐng)求本頁(yè)數(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ù)說(shuō)明:
- plugins::綁定的控件
- initialView:‘dayGridMonth’ 默認(rèn)顯示視圖,月視圖
- locale:‘zh’ 國(guó)際化,中文
- firstDay:1 星期的第一列顯示,周一(0周日 1周一 2周二…)
- buttonText:buttonText 按鈕文本
- headerToolbar:header 頭部工具條

- height:日歷高度
- validRange:validRange 全局日期范圍;超出范圍按鈕會(huì)禁用
- 數(shù)據(jù)來(lái)源:
- events: [] 日程數(shù)據(jù)存放在這里,使用this.calendarOptions.events調(diào)用
事件說(shuō)明:
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及簡(jiǎn)單案例的文章就介紹到這了,更多相關(guān)vue使用fullcalendar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue框架中如何調(diào)用模擬數(shù)據(jù)你知道嗎
這篇文章主要為大家詳細(xì)介紹了Vue框架中如何調(diào)用模擬數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
基于Vue實(shí)現(xiàn)電商SKU組合算法問(wèn)題
這篇文章主要介紹了基于Vue實(shí)現(xiàn)電商SKU組合算法問(wèn)題 ,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Vue3+Vite項(xiàng)目部署后刷新白屏問(wèn)題的解決方法
Vue3 + Vite 項(xiàng)目部署后出現(xiàn)了手動(dòng)刷新頁(yè)面時(shí)出現(xiàn)白屏的問(wèn)題,下面小編就來(lái)和大家探討一下白屏出現(xiàn)的原因以及具體的解決方法,需要的可以參考下2025-03-03
vue中實(shí)現(xiàn)支持txt,docx,xlsx,mp4格式文件預(yù)覽功能(純前端)
對(duì)于Vue你可以實(shí)現(xiàn)文件的預(yù)覽功能,這篇文章主要給大家介紹了關(guān)于vue中實(shí)現(xiàn)支持txt,docx,xlsx,mp4格式文件預(yù)覽功能的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
Vue Autocomplete 自動(dòng)完成功能簡(jiǎn)單示例
這篇文章主要介紹了Vue Autocomplete 自動(dòng)完成功能,結(jié)合簡(jiǎn)單示例形式分析了Vue使用el-autocomplete組件實(shí)現(xiàn)自動(dòng)完成功能相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

