A simple events calendar for Vue2, no dependencies except Vue2. responsive & mobile first. Live Demo Here
- vue: ^2.0.0
npm install vue-event-calendar --save
import 'vue-event-calendar/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'
Vue.use(vueEventCalendar, {locale: 'en'}) //locale can be 'zh' , 'en' , 'es', 'pt-br', 'ja', 'ko', 'fr'
<template>
<vue-event-calendar :events="demoEvents"></vue-event-calendar>
</template>
<script>
export default {
data () {
return {
demoEvents: [{
date: '2016/12/15',
title: 'Foo',
desc: 'longlonglong description'
},{
date: '2016/11/12',
title: 'Bar'
}]
}
}
}
</script>
If you want customization event template. required Vue: ^2.1.0. Because I use new feature(Scoped Slots) of ^2.1.0
//When Vue.use, you can set main color
Vue.use(vueEventCalendar, {locale: 'en', color: '#4fc08d'})
<template>
<vue-event-calendar :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>
</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>
Can handle two Events, @day-changed and @month-changed, callback params like {date: '2017/06/23', events: []}
.
<template>
<vue-event-calendar
:events="demoEvents"
@day-changed="handleDayChanged"
@month-changed="handleMonthChanged">
</vue-event-calendar>
</template>
// NextMonth
this.$EventCalendar.nextMonth()
// PreMonth
this.$EventCalendar.preMonth()
//ToDate
this.$EventCalendar.toDate('2016/11/12')
More in Demo Folder
npm run dev //develop
npm run build //production
- Remove today background, use a small dot below the date
- Increase the selected date style