js/web 日程管理 插件

fullcalendar是一款jQuery日程管理控件,提供了丰富的属性设置和方法调用,官网下载地址http://fullcalendar.io/download,目前最新版本是2.3.2。
只要调用$('#calendar').fullcalendar(options)即可初始化,初始化配置中events、eventSources、select和eventClick是必须设置项。
events和eventSources是数据源配置项,存储数组对象,可以是Arrays/Functions/URLs, 点击详情。如
[javascript]  view plain  copy
  1. $('#calendar').fullCalendar({  
  2.     events: {  
  3.         url: 'http://<数据源路径>',  
  4.         type: 'post'  
  5.     }  
  6. });  

eventSources和events类似,不过eventSources用于多个数据源的情况,是events数组, 点击详情。如
[javascript]  view plain  copy
  1. $('#calendar').fullCalendar({  
  2.     eventSources: [  
  3.         '/feed1.php',  
  4.         '/feed2.php'  
  5.     ]  
  6. });  

select是时间段选择事件,当选择某个时间段时触发,用于新建日程, 点击详情

eventClick是日程点击事件,当某个日程被点击是触发,用户查看或者更新日程,点击详情

[html]  view plain  copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.   
  4. <head>  
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  6.     <title>日程管理</title>  
  7.       
  8.     <script src='../lib/jquery/jquery-1.11.2.min.js'></script>  
  9.       
  10.     <!--   
  11.         日期控件  
  12.         http://xdsoft.net/jqplugins/datetimepicker/  
  13.      -->  
  14.     <link href='../lib/datetimepicker/jquery.datetimepicker.css' rel='stylesheet' type="text/css" />  
  15.     <script src='../lib/datetimepicker/jquery.datetimepicker.js'></script>    
  16.       
  17.     <!-- 日程管理样式及JS -->  
  18.     <link href='../lib/fullcalendar/fullcalendar.css' rel='stylesheet' type="text/css" />  
  19.     <script src='../lib/fullcalendar/lib/moment.min.js'></script>     
  20.     <script src='../lib/fullcalendar/fullcalendar.min.js'></script>   
  21.     <script src='../lib/fullcalendar/lang/zh-cn.js'></script>  
  22.       
  23.     <!--   
  24.         rhui  
  25.         http://git.oschina.net/accountwcx/rhui  
  26.     -->  
  27.     <link href='../lib/rhui/css/rhui.css' rel='stylesheet' type="text/css" />  
  28.     <script src='../lib/rhui/rhui-all.js'></script>  
  29.       
  30.     <style type="text/css">  
  31.         #mycalendar{  
  32.             display: block;  
  33.             position: relative;  
  34.             width: 900px;  
  35.             margin: 15px auto;  
  36.             padding: 0;  
  37.         }  
  38.           
  39.         .fc button{  
  40.             height: 27px;  
  41.         }  
  42.           
  43.         .fc-center>h2{  
  44.             font-size: 20px;  
  45.             line-height: 27px;  
  46.         }  
  47.           
  48.         .fc-unthemed .fc-divider, .fc-unthemed .fc-popover, .fc-unthemed .fc-row, .fc-unthemed tbody, .fc-unthemed td, .fc-unthemed th, .fc-unthemed thead{  
  49.             border-color: #bed5f3;  
  50.         }  
  51.           
  52.         .fc-unthemed .fc-divider, .fc-unthemed .fc-popover .fc-header,.fc-widget-header,.fc-axis{  
  53.             background-color: #e5effe;  
  54.         }  
  55.           
  56.         .fc th, .fc td{  
  57.             font-size: 14px;  
  58.             line-height: 25px;  
  59.         }  
  60.           
  61.         .rhui-field{  
  62.             width: 250px;  
  63.             margin-bottom: 10px;  
  64.         }  
  65.           
  66.         .field-label{  
  67.             width: 70px;  
  68.             line-height: 23px;  
  69.             vertical-align: top;  
  70.         }  
  71.     </style>  
  72. </head>  
  73.   
  74. <body>  
  75.     <div id="mycalendar"></div>  
  76.       
  77.     <!-- 新建日程窗口 -->  
  78.     <div class="rhui-window" id="addCalendarWin" style="display:none;">  
  79.         <div class="rhui-panel-body">  
  80.             <table style="margin-left:25px;">  
  81.                 <tr>  
  82.                     <td class="field-label">日程标题:</td>  
  83.                     <td><input class="rhui-field" name="title" type="text" /></td>  
  84.                 </tr>  
  85.                 <tr>  
  86.                     <td class="field-label">日程内容:</td>  
  87.                     <td><textarea class="rhui-field" name="content" style="height:62px;"></textarea></td>  
  88.                 </tr>  
  89.                 <tr>  
  90.                     <td class="field-label">开始时间:</td>  
  91.                     <td><input class="rhui-field" name="start" type="text"/></td>  
  92.                 </tr>  
  93.                 <tr>  
  94.                     <td class="field-label">结束时间:</td>  
  95.                     <td><input class="rhui-field" name="end" type="text"/></td>  
  96.                 </tr>  
  97.             </table>  
  98.         </div>  
  99.     </div>  
  100.     <!-- end 新建日程窗口 -->  
  101.       
  102.     <!-- 修改日程窗口 -->  
  103.     <div class="rhui-window" id="editCalendarWin" style="display:none;">  
  104.         <div class="rhui-panel-body">  
  105.             <!-- 日程id -->  
  106.             <input type="hidden" name="id" />  
  107.             <table style="margin-left:25px;">  
  108.                 <tr>  
  109.                     <td class="field-label">日程标题:</td>  
  110.                     <td><input class="rhui-field" name="title" type="text" /></td>  
  111.                 </tr>  
  112.                 <tr>  
  113.                     <td class="field-label">日程内容:</td>  
  114.                     <td><textarea class="rhui-field" name="content" style="height:62px;"></textarea></td>  
  115.                 </tr>  
  116.                 <tr>  
  117.                     <td class="field-label">开始时间:</td>  
  118.                     <td><input class="rhui-field" name="start" type="text"/></td>  
  119.                 </tr>  
  120.                 <tr>  
  121.                     <td class="field-label">结束时间:</td>  
  122.                     <td><input class="rhui-field" name="end" type="text"/></td>  
  123.                 </tr>  
  124.             </table>  
  125.         </div>  
  126.     </div>  
  127.     <!-- end 修改日程窗口 -->     
  128.       
  129.     <script type="text/javascript">  
  130.         $(function(){  
  131.             //初始化FullCalendar  
  132.             $('#mycalendar').fullCalendar({  
  133.                 //日历初始化默认视图,可选agendaWeek、agendaDay、month  
  134.                 defaultView: 'agendaWeek',  
  135.                   
  136.                 /*  
  137.                     设置日历头部信息  
  138.                     头部信息包括left、center、right三个位置,分别对应头部左边、头部中间和头部右边。  
  139.                     头部信息每个位置可以对应以下配置:  
  140.                         title: 显示当前月份/周/日信息  
  141.                         prev: 用于切换到上一月/周/日视图的按钮  
  142.                         next: 用于切换到下一月/周/日视图的按钮  
  143.                         prevYear: 用于切换到上一年视图的按钮  
  144.                         nextYear: 用于切换到下一年视图的按钮  
  145.                     如果不想显示头部信息,可以设置header为false  
  146.                 */  
  147.                 header: {  
  148.                     left: 'prev,next today',  
  149.                     center: 'title',  
  150.                     right: 'month,agendaWeek,agendaDay'  
  151.                 },  
  152.                   
  153.                 //设置日历头部的日期格式  
  154.                 titleFormat: {  
  155.                     month: 'YYYY年MM月',  
  156.                     week: 'YYYY年MM月DD日',  
  157.                     day: 'YYYY年MM月DD日 dddd'  
  158.                 },  
  159.                   
  160.                 //日历高度  
  161.                 height: $(window).height() - 40,  
  162.                   
  163.                 //显示周末,设为false则不显示周六和周日。  
  164.                 weekends: true,  
  165.                   
  166.                 /*  
  167.                     在月视图里显示周的模式,因为每月周数可能不同,所以月视图高度不一定。  
  168.                     fixed:固定显示6周高,日历高度保持不变  
  169.                     liquid:不固定周数,高度随周数变化  
  170.                     variable:不固定周数,但高度固定  
  171.                 */  
  172.                 weekMode: 'liquid',  
  173.                   
  174.                 //日历上显示全天的文本  
  175.                 allDayText: '全天',  
  176.                   
  177.                 //允许用户通过单击或拖动选择日历中的对象,包括天和时间。  
  178.                 selectable: true,  
  179.                   
  180.                 //当点击或拖动选择时间时,显示默认加载的提示信息,该属性只在周/天视图里可用。  
  181.                 selectHelper: true,  
  182.                   
  183.                 //当点击页面日历以外的位置时,自动取消当前的选中状态。  
  184.                 unselectAuto: true,  
  185.                   
  186.                 /*  
  187.                 events: {  
  188.                     url: '',  
  189.                     type: 'post'  
  190.                 },  
  191.                 */  
  192.                   
  193.                 /*  
  194.                     添加日程事件  
  195.                     start: 被选中区域的开始时间  
  196.                     end: 被选中区域的结束时间  
  197.                     jsEvent: jascript对象  
  198.                     view: 当前视图对象  
  199.                 */  
  200.                 select: function(start, end, jsEvent, view){  
  201.                     //添加日程事件  
  202.                     var $win = $('#addCalendarWin');  
  203.                     $win.find('input[name="start"]').val(start.format('YYYY-MM-DD HH:mm'));  
  204.                     $win.find('input[name="end"]').val(end.format('YYYY-MM-DD HH:mm'));  
  205.                     $win.rhui('window').show();  
  206.                 },  
  207.                   
  208.                 /*  
  209.                     修改日程事件  
  210.                     当点击日历中的某一日程时,触发此事件  
  211.                     data: 日程信息  
  212.                     jsEvent: jascript对象  
  213.                     view: 当前视图对象  
  214.                 */  
  215.                 eventClick: function(data, jsEvent, view){  
  216.                     //修改日程事件  
  217.                     var $win = $('#editCalendarWin');  
  218.                     $win.find('input[name="id"]').val(data.id);  
  219.                     $win.find('input[name="title"]').val(data.title);  
  220.                     $win.find('textarea[name="content"]').val(data.cntent);  
  221.                     $win.find('input[name="start"]').val(data.start.format('YYYY-MM-DD HH:mm'));  
  222.                     $win.find('input[name="end"]').val(data.end.format('YYYY-MM-DD HH:mm'));  
  223.                     $win.rhui('window').show();  
  224.                 }  
  225.             });  
  226.               
  227.             //初始化新建日程窗口  
  228.             (function(){  
  229.                 var $win = $('#addCalendarWin');  
  230.                   
  231.                 //初始化日期控件  
  232.                 $win.find('input[name="start"]').datetimepicker({format: 'Y-m-d H:i'});  
  233.                 $win.find('input[name="end"]').datetimepicker({format: 'Y-m-d H:i'});  
  234.                   
  235.                 $win.rhui('window', {  
  236.                     title: '新建日程',  
  237.                     width: 400,  
  238.                     height: 265,  
  239.                     buttons: [{  
  240.                         text: '确定',  
  241.                         cls: 'rhui-btn-primary',  
  242.                         click: function(toolbar, win){  
  243.                             alert('日程已新建');  
  244.                         }  
  245.                     },{  
  246.                         text: '取消',  
  247.                         click: function(toolbar, win){  
  248.                             win.hide();  
  249.                         }  
  250.                     }]  
  251.                 }).hide();                
  252.             })();  
  253.               
  254.             //初始化修改日程窗口  
  255.             (function(){  
  256.                 var $win = $('#editCalendarWin');  
  257.                   
  258.                 //初始化日期控件  
  259.                 $win.find('input[name="start"]').datetimepicker({format: 'Y-m-d H:i'});  
  260.                 $win.find('input[name="end"]').datetimepicker({format: 'Y-m-d H:i'});  
  261.                   
  262.                 $win.rhui('window', {  
  263.                     title: '修改日程',  
  264.                     width: 400,  
  265.                     height: 265,  
  266.                     buttons: [{  
  267.                         text: '确定',  
  268.                         cls: 'rhui-btn-primary',  
  269.                         click: function(toolbar, win){  
  270.                             alert('日程已修改');  
  271.                         }  
  272.                     },{  
  273.                         text: '删除',  
  274.                         cls: 'rhui-btn-danger',  
  275.                         click: function(toolbar, win){  
  276.                             alert('日程已删除');  
  277.                         }  
  278.                     },{  
  279.                         text: '取消',  
  280.                         click: function(toolbar, win){  
  281.                             win.hide();  
  282.                         }  
  283.                     }]  
  284.                 }).hide();  
  285.             })();  
  286.         });  
  287.     </script>  
  288. </body>  
  289.   
  290. </html>  




  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值