UNPKG

vue-event-calendar-v2

Version:
161 lines (129 loc) 4 kB
# vue-event-calendar-v2 > A simple events calendar for Vue2, no dependencies except Vue2. responsive & mobile first. > [Live Demo Here](http://geoffzhu.cn/vue-event-calendar-v2/) ![](http://o80ronwlu.bkt.clouddn.com/vue-event-calendar-v2.gif) [![npm version](https://img.shields.io/npm/v/vue-event-calendar-v2.svg)](https://www.npmjs.com/package/vue-event-calendar-v2) [中文文档](https://github.com/GeoffZhu/vue-event-calendar-v2/blob/master/README.zh.md) ## Requirements - vue: ^2.0.0 ## Usage #### install ``` sh npm install vue-event-calendar-v2 --save ``` #### main.js ```javascript import 'vue-event-calendar-v2/dist/style.css' //^1.1.10, CSS has been extracted as one file, so you can easily update it. import vueEventCalendar from 'vue-event-calendar-v2' // locale can be 'zh' , 'en' , 'es', 'pt-br', 'ja', 'ko', 'fr', 'it', 'ru', 'de', 'vi', 'ua', 'no, 'no-nn' Vue.use(vueEventCalendar, {locale: 'en'}) ``` #### file.vue ```vue <template> <vue-event-calendar-v2 :events="demoEvents"></vue-event-calendar-v2> </template> <script> export default { data () { return { demoEvents: [{ date: '2016/11/12', // Required title: 'Foo' // Required }, { date: '2016/12/15', title: 'Bar', desc: 'description', customClass: 'disabled highlight' // Custom classes to an calendar cell }] } } } </script> ``` ## Custom date title ```vue <template> <vue-event-calendar-v2 :title="title" :events="demoEvents" @dayChanged="handleDayChange"></vue-event-calendar-v2> </template> ``` In most cases, the default date string is enough,but when you want a custom date title, you can give a prop ```title```. It is important to noticed that the title will be replaced with a static String you passed in. You need to monitor the dayChanged event and change the title by youself. ## Customization event template If you want customization event template. required Vue: ^2.1.0. Because I use new feature(Scoped Slots) of ^2.1.0 ```vue <template> <vue-event-calendar-v2 :events="demoEvents"> <template scope="props"> <div v-for="(event, index) in props.showEvents" class="event-item"> <!-- In here do whatever you want, make you owner event template --> {{event}} </div> </template> </vue-event-calendar-v2> </template> <script> export default { data () { return { demoEvents: [{ date: '2016/12/15', title: 'eat', desc: 'longlonglong description' },{ date: '2016/11/12', title: 'this is a title' }] } } } </script> ``` ## Component Events Can handle two Events, @day-changed and @month-changed, callback params like ``` {date: '2017/06/23', events: []} ```. ```javascript <template> <vue-event-calendar-v2 :events="demoEvents" @day-changed="handleDayChanged" @month-changed="handleMonthChanged"> </vue-event-calendar-v2> </template> ``` ## Options ``` // When Vue.use, options { locale: 'en', color: 'black', //Set main color className: 'Custom className for current clicked date', // (default: 'selected-day') weekStartOn: 'week Start on which day' // Can be: 1, 2, 3, 4, 5, 6, 0 (default: 0) } ``` ## API ```javascript // NextMonth this.$EventCalendar.nextMonth() ``` ```javascript // PreMonth this.$EventCalendar.preMonth() ``` ```javascript //ToDate this.$EventCalendar.toDate('2016/11/12') ``` More in [Demo Folder](https://github.com/GeoffZhu/vue-event-calendar-v2/tree/master/demo) ## Develop ``` npm run dev //develop npm run build //production ``` ## Change log ##### 1.3.6 -> 1.4.0 - Remove today background, use a small dot below the date - Increase the selected date style ##### 1.4.0 -> 1.4.8 - Add week start on ## License [MIT](https://opensource.org/licenses/MIT)