fullcalendarの簡単な運用

12450 ワード

一、紹介
FullCalendarは開発可能なカレンダープラグインで、豊富な属性設定と方法呼び出しを提供し、開発者はFullCalendarが提供したAPIに基づいてカレンダースケジュールの開発を迅速に完了することができ、本稿ではFullCalendarの一般的な属性と方法、コールバック関数などを中国語ドキュメントにまとめ、参照しやすい.
二、なぜ使うか
仕事でスケジュール管理を開発する必要があるため、fullcalendarは良いjqueryが作ったスケジュールコントロールであり、jquery-uiの時間選択コントロールに合わせて、個人的には良いfullcalendarは豊富な構成で開発に必要なユーザー体験を満たしており、コードは多くありません.
三、コアコード
fullcalendarを使用するには、次のcssファイルとjsライブラリを先に導入する必要があります.公式サイトでダウンロードできます.注意:${ctx}はel式で、プロジェクトルートパスを返します.読者は自分のファイルのパスを書けばいいです.
導入




 


js
$(document).ready(function () {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();


    $('#calendar').fullCalendar({
        theme: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        monthNames: ["  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "   ", "   "],
        monthNamesShort: ["  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "  ", "   ", "   "],
        dayNames: ["  ", "  ", "  ", "  ", "  ", "  ", "  "],
        dayNamesShort: ["  ", "  ", "  ", "  ", "  ", "  ", "  "],
        today: ["  "],
        firstDay: 1,
        buttonText: {
            today: '  ',
            month: ' ',
            week: ' ',
            day: ' ',
            prev: '   ',
            next: '   '
        },
        viewDisplay: function (view) {//       ,        
           var viewStart = $.fullCalendar.formatDate(view.start, "yyyy/MM/dd HH:mm:ss");
            var viewEnd = $.fullCalendar.formatDate(view.end, "yyyy/MM/dd HH:mm:ss");
            $("#calendar").fullCalendar('removeEvents');
              $.post("/msmp/action/Programme/getProgramme", { start: viewStart, end: viewEnd }, function (data) {
               var resultCollection = jQuery.parseJSON(data);
             $.each(resultCollection, function (index, term) {
                 $("#calendar").fullCalendar('renderEvent', term, true);
             });


              }); //                    fullCalendar       
        },
        editable: true,//         
        dayClick: function (date, allDay, jsEvent, view) {//        jq ui  ,      
            var selectdate = $.fullCalendar.formatDate(date, "yyyy/MM/dd HH:mm:ss");//           
            $("#start").val(selectdate);//     
            $("#id").val("");//
            $("#idtr").hide();//
            $("#reservebox").dialog({
                autoOpen: false,
                height: 350,
                width: 600,
                title: selectdate+'     ',
                modal: true,
                position: "center",
                draggable: false,
                beforeClose: function (event, ui) {
                },
                buttons: {
                    "  ": function () {
                        $(this).dialog("close");
                    },
                    "  ": function () {
                    if(!Vai()){
                    return false;
                    }
                        var title = $("#title").val(); //  
                        var det = $("#details").val(); //   
                        var startdate = $("#start").val();
                        var enddate = $("#end").val();
                        var schdata = { title: title, description:det,start:startdate,end:enddate};
                        $.ajax({
                            type: "POST", //  post      
                            url: Apps.ContextPath + "action/client/invoke?transcode=PROGRAMME_SAVE",
                            data: schdata, //      
                            success: function (data) {
                                //            ,data     
                                var schdata2 = { title: title,description: det, start: startdate, end: enddate};
                                $('#calendar').fullCalendar('renderEvent', schdata2, true);
                                $("#start").val(''); //    
                                $("#end").val(''); //    
                                $("#title").val(''); //  
                                $("#details").val(''); //   


                            }
                        });
                        $(this).dialog("close");
                    }
                }
            });
            $("#reservebox").dialog("open");
            return false;
        },
        titleFormat: "yyyyMMMMdddd",
        loading: function (bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        },
        eventAfterRender: function (event, element, view) {//                 
            var fstart = $.fullCalendar.formatDate(event.start, "HH:mm");
            var fend = $.fullCalendar.formatDate(event.end, "HH:mm");


            var confbg = '';
            if (event.confid == 1) {
                confbg = confbg + '';
            } else if (event.confid == 2) {
                confbg = confbg + '';
            } else if (event.confid == 3) {
                confbg = confbg + '';
            } else if (event.confid == 4) {
                confbg = confbg + '';
            } else if (event.confid == 5) {
                confbg = confbg + '';
            } else if (event.confid == 6) {
                confbg = confbg + '';
            } else {
                confbg = confbg + '';
            }


            if (view.name == "month") {//   
                var evtcontent = '
'; evtcontent = evtcontent + confbg; evtcontent = evtcontent + '' + fstart + ' - ' + fend +' - ' + event.title + ''; element.html(evtcontent); } else if (view.name == "agendaWeek") {// var evtcontent = ''; evtcontent = evtcontent + confbg; evtcontent = evtcontent + '' + fstart + "-" + fend + ''; evtcontent = evtcontent + ''+' - ' + event.title + ''; element.html(evtcontent); } else if (view.name == "agendaDay") {// var evtcontent = ''; evtcontent = evtcontent + confbg; evtcontent = evtcontent + '' + fstart + " - " + fend + ''; element.html(evtcontent); } }, eventMouseover: function (calEvent, jsEvent, view) { var fstart = $.fullCalendar.formatDate(calEvent.start, "yyyy/MM/dd HH:mm"); var fend = $.fullCalendar.formatDate(calEvent.end, "yyyy/MM/dd HH:mm"); $(this).attr('title', fstart + " - " + fend + " " + "
" + " : " + calEvent.title+"
:"+calEvent.description); $(this).css('font-weight', 'normal'); $(this).tooltip({ effect: 'toggle', cancelDefault: true }); }, eventClick: function (event) { $("#idtr").show();// var fstart = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); var fend = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); var selectdate = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); $("#start").val(fstart); $("#end").val(fend); $("#title").val(event.title); var det = event.description.indexOf('
'); } else { $("#calendar .fc-header-right table td:eq(0)").before('
'); } $("#calendar .fc-header-left table td:eq(0)").before(''); //$(".fc-sat").css('backgroundColor','#c4e1ff');// TD $(".fc-sun").css('backgroundColor','#c4e1ff');// TD }); function Vai(){ if($("#title").val()==""){ alert(" "); return false; } if($("#start").val()==""){ alert(" "); return false; } if($("#end").val()==""){ alert(" "); return false; } if($("#details").val()==""){ alert(" "); return false; } if(!isStartEndDate($("#start").val(),$("#end").val())){ return false; } return true; } function isStartEndDate(startDate,endDate){ var starttime = new Date(Date.parse(startDate)); var endtime = new Date(Date.parse(endDate)); if (starttime.getTime() > endtime.getTime()) { alert(" 。"); return false; } return true; } html :