vue-event-calendar 事件日历组件

在线小例子http://geoffzhu.cn/vue-event-calendar/

支持移动端和web端,因为他可以随着屏幕大小一行摆不下事件就跑到下面啦。

使用方式

安装

npm install vue-event-calendar --save

入口 Main.js

import 'vue-event-calendar/dist/style.css' //1.1.10之后的版本,css被放在了单独的文件中,方便替换
import vueEventCalendar from 'vue-event-calendar'
Vue.use(vueEventCalendar, {locale: 'en',color:'blue'}) //可以设置语言,支持中文和英文,color这里设置的是事件的背景色。不写color默认是上面效果的黄色

例子中只有两行,如果想要显示更多的自定义的样式。

<template>
  <vue-event-calendar :events="demoEvents" @monthChanged="" @dayChanged=""></vue-event-calendar>
</template>

<script>
export default {
  data () {
    return {
      demoEvents: [{
        date: '2016/12/15',   //date必须是这个格式啊。如果后台给的数据不是这个格式还必须转化为这个格式
        title: 'eat',
        desc: 'longlonglong description'
      },{
        date: '2016/11/12',
        title: 'this is a title'
      }]
    }
  },
  methods: {
    monthChange (month) {
      console.log(month)
    },
    dayChange (day) {
      console.log(day)
    }
  }
}
</script>

如果是后台传数据,并且自定义事件格式

<template>

<vue-event-calendar :events="demoEvents" @day-changed="handleDayChanged"
                                    @month-changed="handleMonthChanged">
                  <template slot-scope="props">
                    <div v-for="(event, index) in props.showEvents" class="event-item classItem" :key="index">
                              {{event}}//这就是你定义的demoEvents里面的所有的数据
                     
                    </div>
                  </template>
        </vue-event-calendar>     

</template>

export default {
        data (){
            return { 
                demoEvents:[],
            }
        },
        methods: {

timetableAlls(firstDay,lastDay){
            timetableAll({date_start:firstDay,date_end:lastDay}).then(res=>{    
                if(res.code==1){
                    this.demoEvents=[];//切换月份也会触发这个接口,所有每次都得清空,不然切换月份下面会累加的

for(var i=0;i<res.data.length;i++){
                        var day=res.data[i].starttime.replace(/\-/g,"/");
                        day=day.split(" ")[0];
                        this.demoEvents.push({
                             date:day,
                             title:res.data[i],//日期具体在html里面切割
                             desc:res.data[i].username,//老师
                             classroom:res.data[i].classroom,//教室//这两个是我自定义的,名字随便取的
                             classname:res.data[i].classname,//班级名

                        })
                    }
              }
            })

}

}

猜你喜欢

转载自blog.csdn.net/qq_33769914/article/details/85338109