myCalendar.jsp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <%@ page contentType="text/html;charset=UTF-8" %>
  2. <%@ include file="/webpage/include/taglib.jsp"%>
  3. <!DOCTYPE HTML>
  4. <html>
  5. <head>
  6. <meta charset="utf-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>我的日程</title>
  9. <meta name="decorator" content="ani"/>
  10. <!--
  11. 说明:需要整合农历节气和节日,引入fullcalendar.js fullcalendar2.css
  12. 不需要则引入:fullcalendar.min.js fullcalendar.css
  13. -->
  14. <script type="text/javascript">
  15. $(function() {
  16. //页面加载完初始化日历
  17. $('#calendar').fullCalendar({
  18. //设置日历头部信息
  19. header: {
  20. left: 'prev,next today',
  21. center: 'title',
  22. right: 'month,agendaWeek,agendaDay'
  23. },
  24. events: function (start, end, timezone, callback) {
  25. $.ajax({
  26. url: '${ctx}/iim/myCalendar/findList',
  27. dataType: 'json',
  28. success: function(data) {
  29. callback(data)
  30. }
  31. })
  32. },
  33. firstDay:1,//每行第一天为周一
  34. editable: true,
  35. droppable: true, // this allows things to be dropped onto the calendar
  36. drop: function(date, event, ui, resourceId ) {
  37. var start, end;
  38. if(resourceId.intervalUnit == "week" || resourceId.intervalUnit == "day"){
  39. start=moment(date).format("YYYY-MM-DD HH:mm:ss")
  40. end = moment(date).add(2, 'hours').format("YYYY-MM-DD HH:mm:ss");
  41. }else{
  42. start=moment(date).format("YYYY-MM-DD")
  43. end = moment(date).add(1, 'day').format("YYYY-MM-DD");
  44. }
  45. jp.post('${ctx}/iim/myCalendar/add',
  46. {
  47. start:start,
  48. end:end,
  49. title:$.trim($(this).text()),
  50. color:$(this).css("background-color")
  51. },
  52. (result)=>{
  53. if(result.success){
  54. $('#calendar').fullCalendar('refetchEvents');
  55. jp.info(result.msg);
  56. }
  57. });
  58. // Wed Jun 18 2014
  59. //alert(event.title + " was dropped on " + event.start.format());
  60. // is the "remove after drop" checkbox checked?
  61. if ($('#drop-remove').is(':checked')) {
  62. // if so, remove the element from the "Draggable Events" list
  63. $(this).remove();
  64. }
  65. },
  66. locale: 'zh-cn',
  67. // timeFormat: 'H(:mm)' ,// uppercase H for 24-hour clock
  68. //点击某一天时促发
  69. dayClick: function(date, jsEvent, view) {
  70. },
  71. //单击事件项时触发
  72. eventClick: function(calEvent, jsEvent, view) {
  73. jp.open({
  74. type: 2,
  75. area: ['800px', '500px'],
  76. title: '事件',
  77. auto:true,
  78. maxmin: true, //开启最大化最小化按钮
  79. content: '${ctx}/iim/myCalendar/form?id='+calEvent.id ,
  80. btn: ['删除','确定', '关闭'],
  81. btn1:function(index,layero){
  82. var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
  83. iframeWin.contentWindow.del(index, $('#calendar'));
  84. },
  85. btn2: function(index, layero){
  86. var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
  87. iframeWin.contentWindow.save(index, $('#calendar'));
  88. },
  89. btn3: function(index){
  90. jp.close(index);
  91. }
  92. });
  93. },
  94. //拖动事件
  95. eventDrop: function(event, delta, revertFunc) {
  96. $.post("${ctx}/iim/myCalendar/drag",{id:event.id,daydiff:delta._days, minudiff:delta._milliseconds},function(result){
  97. if(result.success){
  98. jp.info(result.msg);
  99. }
  100. });
  101. },
  102. //日程事件的缩放
  103. eventResize: function(event, delta, revertFunc) {
  104. jp.post("${ctx}/iim/myCalendar/resize",{id:event.id,daydiff:delta._days, minudiff:delta._milliseconds},function(result){
  105. if(result.success){
  106. jp.info(result.msg);
  107. }else{
  108. jp.error(result.msg);
  109. }
  110. });
  111. },
  112. selectable: true, //允许用户拖动
  113. select: function( startDate, endDate, allDay, jsEvent, view ){
  114. var start =moment(startDate).format("YYYY-MM-DD HH:mm:ss");
  115. var end =moment(endDate).format("YYYY-MM-DD HH:mm:ss");
  116. jp.open({
  117. type: 2,
  118. area: ['800px', '500px'],
  119. title: '事件',
  120. auto:true,
  121. maxmin: true, //开启最大化最小化按钮
  122. content: '${ctx}/iim/myCalendar/form?start='+start+'&end='+end ,
  123. btn: ['确定', '关闭'],
  124. yes: function(index, layero){
  125. var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
  126. iframeWin.contentWindow.save(index, $('#calendar'));
  127. },
  128. cancel: function(index){
  129. }
  130. });
  131. }
  132. });
  133. $('#external-events .fc-event').each(function() {
  134. // store data so the calendar knows to render an event upon drop
  135. $(this).data('event', {
  136. title: $.trim($(this).text()), // use the element's text as the event title
  137. color:$(this).css("background-color")
  138. //stick: true // maintain when user navigates (see docs on the renderEvent method)
  139. });
  140. // make the event draggable using jQuery UI
  141. $(this).draggable({
  142. zIndex: 999,
  143. revert: true, // will cause the event to go back to its
  144. revertDuration: 0 // original position after the drag
  145. });
  146. });
  147. });
  148. function add(){
  149. var html = $("<div class='fc-event bg-default'>"+$("#title").val()+"</div>");
  150. $(html).insertBefore($("#p"));
  151. $(html).draggable({
  152. zIndex: 999,
  153. revert: true, // will cause the event to go back to its
  154. revertDuration: 0 // original position after the drag
  155. });
  156. }
  157. </script>
  158. <style>
  159. #external-events {
  160. padding: 0 10px;
  161. background: #eee;
  162. text-align: left;
  163. }
  164. #external-events h4 {
  165. font-size: 16px;
  166. margin-top: 0;
  167. padding-top: 1em;
  168. }
  169. #external-events .fc-event {
  170. margin: 10px 0;
  171. cursor: pointer;
  172. }
  173. #external-events p {
  174. margin: 1.5em 0;
  175. font-size: 11px;
  176. color: #666;
  177. }
  178. #external-events p input {
  179. margin: 0;
  180. vertical-align: middle;
  181. }
  182. </style>
  183. </head>
  184. <body>
  185. <div class="conter-wrapper">
  186. <div class="panel panel-default">
  187. <div class="panel-body">
  188. <img src="${ctxStatic}/calendar/images/jcdj2.jpg" style="width: 100%;height: auto">
  189. <%--<iframe src="${ctxStatic}/calendar/calendar.html" frameborder="0" marginheight="0" marginwidth="0" frameborder="0" scrolling="auto" id="ifm" name="ifm" width="100%" height="660" style="overflow: hidden;"></iframe>--%>
  190. </div>
  191. <%--<div class="panel-body">
  192. <div class="row">
  193. <div class="col-sm-3">
  194. <div id='external-events' class="list-group">
  195. <h4>拖拽事件</h4>
  196. <div class='fc-event bg-default'>事件1</div>
  197. <div class='fc-event bg-info'>事件2</div>
  198. <div class='fc-event bg-success'>事件3</div>
  199. <div class='fc-event bg-warning'>事件4</div>
  200. <div class='fc-event bg-danger'>事件5</div>
  201. <p id="p">
  202. <input type='checkbox' id='drop-remove' />
  203. <label for='drop-remove'>移动后删除</label>
  204. </p>
  205. <div class="input-group">
  206. <input id="title" type="text" class="form-control" placeholder="">
  207. <span class="input-group-btn">
  208. <button class="btn btn-default" onclick="add()" type="submit">Add</button>
  209. </span>
  210. </div>
  211. <br>
  212. </div>
  213. </div>
  214. <div class="col-sm-9">
  215. <div id="calendar"></div>
  216. </div>
  217. </div>
  218. </div>
  219. </div>--%>
  220. </div>
  221. </body>
  222. </html>