ROR插件之 fullcalender

作者: ahtest | 来源:发表于2019-02-18 12:35 被阅读0次

    fullcalender

    1. ruby 安装 fullcalender
    gem install fullcalender
    
    1. rails 安装 fullcalender
    # 1. Gemfile 添加如下,前两个支持,必须有
    gem 'jquery-rails'
    gem 'momentjs-rails'
    gem 'fullcalendar'
    # 2. 运行安装,如果在ruby中通过gem install单独安装过了,此步骤可以忽略
    bundle install
    
    1. 通过命令行在项目中添加,运行见图1
    rails g fullcalendar:install
    
    图1

    通过手动添加

    # 1.app/assets/javascripts/application.js:
    //= require jquery
    //= require calendar
    
    //Core component
    //= require fullcalendar
    // optional locale
    //= require fullcalendar/locale/ms
    
    //Optional addon scheduler
    //= require fullcalendar/scheduler
    
    # 2. app/assets/stylesheets/application.css:
    /*
    *= require calendar
    */
    @import 'calendar';
    @import 'fullcalendar';
    @import 'fullcalendar/scheduler';
    
    
    1. 页面中使用
    $(document).ready(function() {
      $("#calendar").fullcalendar();
    });
    

    引用:https://www.rubydoc.info/gems/fullcalendar/3.9.0

    附xx.html.erb例子一个:

    <div id='calendar'></div>
    
    <script>
    
        $(document).ready(function() {
            var initialLocaleCode = 'zh-cn';
    
            $('#calendar').fullCalendar({
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,agendaWeek,agendaDay,listMonth'
                },
                defaultDate: '2019-01-12',
                locale: initialLocaleCode,
                buttonIcons: false, // show the prev/next text
                weekNumbers: true,
                navLinks: true, // can click day/week names to navigate views
                editable: true,
                eventLimit: true, // allow "more" link when too many events
                events: [
                    {
                        title: 'All Day Event',
                        start: '2019-01-01'
                    },
                    {
                        title: 'Long Event',
                        start: '2019-01-07',
                        end: '2019-01-10'
                    },
                    {
                        id: 999,
                        title: 'Repeating Event',
                        start: '2019-01-09T16:00:00'
                    },
                    {
                        id: 999,
                        title: 'Repeating Event',
                        start: '2019-01-16T16:00:00'
                    },
                    {
                        title: 'Conference',
                        start: '2019-01-11',
                        end: '2019-01-13'
                    },
                    {
                        title: 'Meeting',
                        start: '2019-01-12T10:30:00',
                        end: '2019-01-12T12:30:00'
                    },
                    {
                        title: 'Lunch',
                        start: '2019-01-12T12:00:00'
                    },
                    {
                        title: 'Meeting',
                        start: '2019-01-12T14:30:00'
                    },
                    {
                        title: 'Happy Hour',
                        start: '2019-01-12T17:30:00'
                    },
                    {
                        title: 'Dinner',
                        start: '2019-01-12T20:00:00'
                    },
                    {
                        title: 'Birthday Party',
                        start: '2019-01-13T07:00:00'
                    },
                    {
                        title: 'Click for Google',
                        url: 'http://google.com/',
                        start: '2019-01-28'
                    }
                ]
            });
    
            // build the locale selector's options
            $.each($.fullCalendar.locales, function(localeCode) {
                $('#locale-selector').append(
                    $('<option/>')
                        .attr('value', localeCode)
                        .prop('selected', localeCode == initialLocaleCode)
                        .text(localeCode)
                );
            });
    
            // when the selected option changes, dynamically change the calendar option
            $('#locale-selector').on('change', function() {
                if (this.value) {
                    $('#calendar').fullCalendar('option', 'locale', this.value);
                }
            });
        });
    
    </script>
    <style>
    
      body {
        margin: 0;
        padding: 0;
        font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
        font-size: 14px;
      }
    
      #top {
        background: #eee;
        border-bottom: 1px solid #ddd;
        padding: 0 10px;
        line-height: 40px;
        font-size: 12px;
      }
    
      #calendar {
        max-width: 900px;
        margin: 40px auto;
        padding: 0 10px;
      }
    
    </style>
    

    相关文章

      网友评论

        本文标题:ROR插件之 fullcalender

        本文链接:https://www.haomeiwen.com/subject/wdkaeqtx.html