zoukankan      html  css  js  c++  java
  • fullcalendar使用配置方法 做日历日程表 动态绑定数据

    最近工作,需要做一个日历来排公司日程。用到了fullcalender这个插件。虽然功能很强大,无奈例子太少走了许多弯路。所以在这里把这个插件的配置方式贴出来,给要用它做日程管理的同学一些帮助。

    以下是这个插件的配置,这个插件的js文件网上有。demo也能找到但是功能不全,可以参照一下我的配置。

    $('#calendar').fullCalendar({
    header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
    },
    firstDay: 1,
    editable: true,
    timeFormat: 'H:mm',
    axisFormat: 'H:mm',
    theme: false,
    
    //这个事件是  点击插件里面的单条数据时触发
    eventClick: function (calEvent, jsEvent, view) {
    
    //调用弹窗  这里的 calEvent.id是你给插件绑定id时候的数据
    modalOpen({
    id: "Form",
    title: "修改",
    url: "/PlanModule/PZKArrangeShift/Form?id=" + calEvent.id,
     "700px",
    height: "510px",
    });
    
    
    },
    
    //这个事件是 当你点击日期单元格时触发
    dayClick: function (date, allDay, jsEvent, view) {
    
    //这个能帮助你获取当前得到的   点击日期
    var selDate = $.fullCalendar.formatDate(date, 'yyyy-MM-dd');
    
    sessionStorage["shiftName"] = ShiftNames;
    $.modalOpen({
    id: "Form",
    title: "新增",
    url: "/PlanModule/PZKArrangeShift/Form?date=" + selDate,
     "700px",
    height: "510px",
    callBack: function (iframeId) {
    top.frames[iframeId].submitForm();
    }
    });
    },
    
    //这个事件  是当你点击页面的  上一页  下一页  月 周  日 时触发       这里是当月份发生变化时  加载一个月的数据
    viewDisplay: function (view) {
    //初次进入
    if (f == 0) {
    var date = new Date;
    year = date.getFullYear();
    month = date.getMonth() + 1;
    yy = year;
    mm = month;
    f = 1;
    }
    //其他 点击页面上的其他操作判断 日期是否与当月不同 不同则重新加载数据
    else {
    var name = document.getElementsByTagName("h2");
    var yy0 = name[1].innerHTML.substring(0, 4);
    var mm0 = name[1].innerHTML.substring(5, 7); 
    if (parseInt(year) != parseInt(yy0) || parseInt(month) != parseInt(mm0)) {
    year = parseInt(yy0);
    month = parseInt(mm0);
    yy = parseInt(yy0);
    mm = parseInt(mm0);
    }
    }
    
    // ajax获取   当前月份数据
    $.ajax({
    url: "/PlanModule/PZKArrangeShift/LoadCalender",
    data: { key: ShiftNames, Date: yy + "-" + mm },
    dataType: "json",
    type: "post",
    async: false,
    success: function (data) {
    var res = eval(data);
    events = [];
    $.each(res, function (i, d) {
    var t = d.DATE.substring(0, 10);
    var start = t + " " + d.STARTTIME;
    var end = t + " " + d.ENDTIME;
    events.push({
    id: d.ARRANGEID,
    title: d.ITEM,
    start: start,
    end: end,
    allDay: false
    });
    });
    
    //清除原来加载进去的数据       不然会出现很多重复加载的数据
    $("#calendar").fullCalendar('removeEvents');
    
    //添加json对象
    $.each(events, function (index, term) {
    $("#calendar").fullCalendar('renderEvent', term, true);
    });
    
    }
    });
    },
    });
    
     
  • 相关阅读:
    JAVA并发编程学习笔记之ReentrantLock
    服务架构演进
    Java集群优化——dubbo+zookeeper构建高可用分布式集群
    Dubbo实例
    hessian学习
    JAVA分布式事务原理及应用
    了解AngularJS $resource
    AngularJS Resource:与 RESTful API 交互
    Hibernate解决高并发问题之:悲观锁 VS 乐观锁
    互联网金融高并发方案
  • 原文地址:https://www.cnblogs.com/FollowWinds/p/7615469.html
Copyright © 2011-2022 走看看