Vue 項(xiàng)目中如何使用fullcalendar 時(shí)間段選擇插件(類(lèi)似課程表格)
最近完成一個(gè)項(xiàng)目,有這樣的需求,我們需要選擇一個(gè)會(huì)議室,但是最好能夠通過(guò)在圖上顯示出該 會(huì)議室在某某時(shí)間段內(nèi)已經(jīng)被預(yù)定了。
先看一下這個(gè)功能最終實(shí)現(xiàn)的效果,看一看是不是你想要的效果,是您需要的請(qǐng)繼續(xù)讀下去,如果不是請(qǐng)忽略本文。
本文中是基于VUE+elementui項(xiàng)目中實(shí)現(xiàn)的前后端分離的前端功能部分:
所使用的插件:https://github.com/fullcalendar/fullcalendar這個(gè)項(xiàng)目功能很豐富
插件的官方文檔:https://fullcalendar.io/
vue版本的官方文檔:https://fullcalendar.io/docs/vue
實(shí)現(xiàn)本功能需要注意(基本的業(yè)務(wù)邏輯):
1.過(guò)去的時(shí)間不能選擇;
2.已經(jīng)選擇過(guò)的時(shí)間范圍內(nèi)不能再次選擇;
下面你需要在你的項(xiàng)目中安裝如下的插件: 命令行npm install xxxxx:
npm install --save @fullcalendar/vue @fullcalendar/daygrid @fullcalendar/timegrid @fullcalendar/moment @fullcalendar/interaction
最后貼上我的最終的代碼:
<template> <div class="container" style="width:60%; margin: 0 auto;"> <FullCalendar :plugins="calendarPlugins" :all-day-slot="false" :header="{ left:'prev', center:'title', right: 'today ,next' }" :slot-event-overlap="false" :events="[ { title: '計(jì)算機(jī)學(xué)院小組會(huì)議', start: '2019-05-15 10:00:00', end: '2019-05-15 16:00:00', color:'orange' }, { start: '2019-05-14 10:00:00', end: '2019-05-14 14:00:00', title: '東南大學(xué)計(jì)算機(jī)學(xué)術(shù)會(huì)議', color:'green' } ]" :button-text="{ today: '今天' }" :unselect-auto="false" :select-overlap="false" :business-hours="{ startTime: '07:00', endTime:'18:00', daysOfWeek: [ 1, 2, 3, 4, 5, 6, 0 ] }" :select-allow="handlerSeelctAllow" select-mirror="true" min-time="07:00:00" max-time="23:00:00" selectable="true" slot-duration="00:30" slot-label-format="HH:mm" title-format="YYYY年MM月D日" default-view="timeGridWeek" locale="zh-cn" @dateClick="handleDateClick" @select="handleSelect"/> </div> </template> <script> import FullCalendar from '@fullcalendar/vue' import dayGridPlugin from '@fullcalendar/daygrid' import timeGridPlulgin from '@fullcalendar/timegrid' import '@fullcalendar/core/locales/zh-cn' // 支持中文 import momentPlugin from '@fullcalendar/moment' import interactionPlugin from '@fullcalendar/interaction' export default { components: { FullCalendar }, data() { return { calendarPlugins: [dayGridPlugin, timeGridPlulgin, momentPlugin, interactionPlugin], // 隨時(shí)判斷時(shí)間是否合法,通過(guò)返回true/false來(lái)判斷是否能夠選擇 handlerSeelctAllow: info => { const currentDate = new Date() const start = info.start const end = info.end return (start <= end && start >= currentDate) } } }, methods: { // 當(dāng)點(diǎn)擊時(shí)候 handleDateClick(arg) { console.log(arg) }, // 當(dāng)選擇結(jié)束的時(shí)候獲取開(kāi)始和結(jié)束時(shí)間 handleSelect(info) { console.log('form' + info.startStr + ' to ' + info.endStr) } } } </script> <style lang="scss" scope> @import '@fullcalendar/core/main.css'; @import '@fullcalendar/daygrid/main.css'; @import '@fullcalendar/timegrid/main.css'; </style>
以上就是fullcalendar基本的操作了,如果您還需要一些其他的功能,請(qǐng)查閱相關(guān)文檔繼續(xù)學(xué)習(xí)。
后記:用代碼來(lái)實(shí)現(xiàn)自己的想法是快樂(lè)的,這種成就感是金錢(qián)買(mǎi)不到的,這就是我繼續(xù)前行的動(dòng)力。因?yàn)闊釔?ài),所以再多的付出也都是值得的,當(dāng)軟件運(yùn)行成功的一刻,我想我是這個(gè)世界上最幸福的人。
這篇文章重在自我學(xué)習(xí)和探討,當(dāng)不借助外力或者拿來(lái)主義的思路去解決問(wèn)題時(shí),或許就是我們技術(shù)加速前進(jìn)的開(kāi)始。
到此這篇關(guān)于Vue 項(xiàng)目中 使用fullcalendar 時(shí)間段選擇插件(類(lèi)似課程表格)的文章就介紹到這了,更多相關(guān)Vue使用fullcalendar插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
uniapp微信小程序WebApi_openid、phone接口獲取代碼詳解
本文主要記錄了微信小程序接口調(diào)用的過(guò)程,首先查看uniapp文檔和微信API文檔,獲取openid和phone,然后通過(guò)uniapp實(shí)現(xiàn)獲取openid和電話(huà)號(hào)碼,但遇到了合法域名屏蔽的問(wèn)題,最后通過(guò)將微信訪(fǎng)問(wèn)遷移到后臺(tái)解決,需要的朋友可以參考下2024-10-10詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行
這篇文章主要介紹了詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09vue實(shí)現(xiàn)路由懶加載及組件懶加載的方式
懶加載簡(jiǎn)單來(lái)說(shuō)就是延遲加載或按需加載,即在需要的時(shí)候的時(shí)候進(jìn)行加載。這篇文章主要介紹了vue路由懶加載及組件懶加載 ,需要的朋友可以參考下2019-06-06vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法示例
這篇文章主要介紹了vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法,結(jié)合實(shí)例形式分析了vue.js使用v-text和v-html、v-cloak防止花括號(hào){{}}閃爍的解決方法,需要的朋友可以參考下2019-03-03vue-cli 項(xiàng)目打包完成后運(yùn)行文件路徑報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了vue-cli 項(xiàng)目打包完成后運(yùn)行文件路徑報(bào)錯(cuò)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07vue-cli3.0 腳手架搭建項(xiàng)目的過(guò)程詳解
這篇文章主要介紹了vue-cli3.0 腳手架搭建項(xiàng)目的過(guò)程,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10淺談 Vue v-model指令的實(shí)現(xiàn)原理
vue的v-model是一個(gè)十分強(qiáng)大的指令,它可以自動(dòng)讓原生表單組件的值自動(dòng)和你選擇的值綁定,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯(cuò)位問(wèn)題
這篇文章主要介紹了如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯(cuò)位問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09vue 無(wú)法覆蓋vant的UI組件的樣式問(wèn)題
這篇文章主要介紹了vue 無(wú)法覆蓋vant的UI組件的樣式問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04