简单的日历
项目中需要,做的简单的日历,日历需要的数据从后台获取,使用LocalDate,有ios端的提醒,添加,删除逻辑。
HTML部分
日历主体
1 <div id="pageA" class="page" title="金融日历" data-btnLeft="true|返回|App.goBack()" data-btnRight="||"> 2 <div id="Calendar"> 3 <div class="Calendar_title"> 4 <span id="upMonthTo" > < </span> 5 <span class="DateStyle"><span class="yearStyle"></span><span class="yearStyle1">年</span><span class="monthStyle"></span><span class="monthStyle1">月</span></span> 6 <span id="nextMonthGo"> > </span> 7 </div> 8 <div class="week"> 9 <div class="swiper-container" > 10 <div class="swiper-wrapper"> 11 <div class="swiper-slide"> 12 <table class="tableCal"> 13 <thead align="center"> 14 <tr> 15 <td><b class="grey" style="color: #bbb;">日</b></td> 16 <td><b>一</b></td> 17 <td><b>二</b></td> 18 <td><b>三</b></td> 19 <td><b>四</b></td> 20 <td><b>五</b></td> 21 <td><b class="grey">六</b></td> 22 </tr> 23 </thead> 24 <tbody align="center" id="tbody"> 25 </tbody> 26 </table> 27 </div> 28 </div> 29 </div> 30 </div> 31 </div> 32 <div id="events"> 33 <div id="EventT"><span class="tips_left">提醒事项</span><span class="add_events">+</span></div> 34 <div id="showDetail"> 35 <div id="outerContainer"> 36 <div id="innerContainer"> 37 <div id="context"> 38 <div id="showEvents"></div> 39 <div id="tips"> 40 <div style="text-indent: 5px; font-size: 14px;">温馨提示:</div> 41 <div>1.您可查询信用卡账户的账单日和还款日信息。</div> 42 <div>2.您可根据需要设置理财、工作、缴费等提醒事项。</div> 43 </div> 44 </div> 45 </div> 46 </div> 47 </div> 48 </div> 49 </div>
新增事项部分
<div id="pageB" class="page" title="新增事项" style="height: 100%;" data-btnLeft="true|返回|App.gotoPageA()" data-btnRight="||"> <div id="addNewEvents"> <div class="ui-form-item ui-border-b" id="EventTitle"> <label style="width: 45px">标题:</label> <input style="margin-left:-14%;font-size: 15px" placeholder="请输入标题" type="text" data-name="title" id="title"> </div> <div class="ui-form-item yui-border-b"> <label style="width: 45px">时间:</label> <input style="margin-left: -14%; width:111%;font-size: 15px" type="text" data-type="date" class="yui-date-time" id="dateTime" data-min="" data-format="HH:mm" data-clear="false" data-max="" placeholder="请选择时间" data-name="dateTime" data-required="true" data-label="时间" data-init="true" readonly> </div> <div class="ui-form-item ui-border-b" id="EventType"> <label style="width: 45px" for="#">类型:</label> <div style="margin-left: 15%;margin-right: 6%; font-size: 15px" class="ui-select"> <select class="yui-acct-blue" data-name="type" id="type" style="color:#000"> <option selected="selected" value="0">请选择类型</option> <option value="工作">工作</option> <option value="还款">还款</option> <option value="缴费">缴费</option> <option value="理财">理财</option> </select> </div> </div> <div class="border-gray"></div> <div id="textarea"> <div class="title_textarea" >内容:</div> <textarea id="tips_textarea" placeholder="请输入内容" ></textarea> </div> <div id="upEvents"> <button class="ui-btn-lg ui-btn-primary">添 加</button> </div> </div> </div>
事项详情
可直接删除或修改。
1 <div id="pageC" class="page" title="详情" style="height: 100%;" data-btnLeft="true|返回|App.gotoPageA()" data-btnRight="||"> 2 <div id="eventsDetail"> 3 <div class="ui-form-item ui-border-b hidden" id="EventId"> 4 <label>编号:</label> 5 <input style="padding-left: 50px;" type="text" data-name="EventId" id="EventId"> 6 </div> 7 <div class="ui-form-item ui-border-b" id="EventTitle"> 8 <label>标题:</label> 9 <input style="margin-left:-15%" placeholder="请输入标题" type="text" data-name="title" id="title1" > 10 </div> 11 <div class="ui-form-item yui-border-b"> 12 <label style="width: 45px">时间:</label> 13 <input style="margin-left: -15%; width:111%" type="text" data-type="date" class="yui-date-time" id="dateTime1" 14 data-min="" data-format="HH:mm" data-clear="false" 15 data-max="" placeholder="请选择时间" data-name="dateTime" 16 data-required="true" data-label="时间" 17 data-init="true" readonly> 18 </div> 19 <div class="ui-form-item ui-border-b" id="EventType"> 20 <label style="width: 45px" for="#">类型:</label> 21 <div style="margin-left: 15%;margin-right: 6%;font-size: 15px" class="ui-select"> 22 <select class="yui-acct-blue" data-name="type" id="type1" style="color:#000" > 23 <option selected="selected" value="0">请选择类型</option> 24 <option value="工作">工作</option> 25 <option value="还款">还款</option> 26 <option value="缴费">缴费</option> 27 <option value="理财">理财</option> 28 </select> 29 </div> 30 </div> 31 <div class="border-gray"></div> 32 <div id="textarea"> 33 <div class="title_textarea" >内容:</div> 34 <textarea id="tips_textarea1" placeholder="请输入内容"></textarea> 35 </div> 36 <div id="upEvents1"> 37 <button class="ui-btn-lg ui-btn-primary removeEvents" style="width: 45%">删除</button> 38 <button class="ui-btn-lg ui-btn-primary updateEvents" style="width: 45%">修改</button> 39 </div> 40 </div> 41 </div>
JS部分
1 var App = { 2 /** 3 * 应用入口 4 */ 5 init : function() { 6 App.pageA = $("#pageA"); 7 App.pageB = $("#pageB"); 8 App.pageC = $("#pageC"); 9 App.flag=0; 10 App.initEvent(); 11 App.initEvents(); 12 YT.showPageArea(App.pageA,[App.pageB,App.pageC], true); 13 App.EVENTS =new Array(); 14 Fw.hideWaitPanel(); 15 }, 16 //滑动 17 swiper : function() { 18 var mySwiper = new Swiper('.swiper-container', { 19 initialSlide:0, 20 watchSlidesProgress:true, 21 watchSlidesVisibility:true, 22 spaceBetween : 0, 23 centeredSlides : true, 24 observer : true, 25 }); 26 }, 27 //初始化日历事件 28 initEvent : function(){ 29 var url = Fw.dataUrl("04/YT041600"); 30 var send ={ 31 BUSI_CODE : 'B170111', 32 flag : App.flag+"", 33 flagType : "0", 34 }; 35 YT.ajaxData(url, send, function(data) { 36 if ("1" == data.STATUS) { 37 App.showCalendar(data); 38 }else{ 39 Fw.alertinfo(data.MSG); 40 } 41 }); 42 }, 43 initEvents : function(){ 44 App.pageA.on("click", ".changeBg", App.changeBgColor); 45 App.pageA.on("click", "#nextMonthGo", App.nextMonthGo); 46 App.pageA.on("click", "#upMonthTo", App.upMonthRTo); 47 App.pageA.on("click", ".add_events", App.gotoAddEvent); 48 App.pageB.on("click", ".ui-btn-lg", App.submitEvent); 49 App.pageA.on("click", ".EventsBorder", App.gotoPageC); 50 App.pageC.on("click", ".removeEvents", App.removeEvents); 51 App.pageC.on("click", ".updateEvents", App.updateEvents); 52 }, 53 nextMonthGo :function(){ 54 App.flag+=1; 55 App.initEvent(); 56 $("#showEvents").html(""); 57 $("#nextMonthGo").css({"color":"blue", 58 "font-size":"15px",}); 59 $("#upMonthTo").css({"color":"grey", 60 "font-size":"12px"}); 61 App.day=""; 62 }, 63 upMonthRTo :function(){ 64 App.flag-=1; 65 App.initEvent(); 66 $("#showEvents").html(""); 67 $("#nextMonthGo").css({"color":"grey", 68 "font-size":"12px"}); 69 $("#upMonthTo").css({"color":"blue", 70 "font-size":"15px"}); 71 App.day=""; 72 }, 73 //显示日历 74 showCalendar : function(data){ 75 //Events数组 76 App.EVENTS=data.EVENTS; 77 //日历 78 if(!data.mFirDayIsDay && !data.year && !data.month && !data.today && !data.monDateNumber){ 79 Fw.alertinfo("日历初始化错误,请稍后访问!"); 80 }else{ 81 var html=""; 82 var html2=""; 83 var html1=""; 84 var num=1; 85 var daye=0; 86 App.year = data.year; 87 App.today=data.today; 88 App.dueDate=data.dueDate; 89 App.month=data.month; 90 $(".yearStyle").html(data.year); 91 $(".monthStyle").html(data.month); 92 if("1"==data.mFirDayIsDay){ 93 html1='<tr><td></td>' 94 +'<td><span class="changeBg">1</span><span tip1></span></td>' 95 +'<td><span class="changeBg">2</span><span tip2></span></td>' 96 +'<td><span class="changeBg">3</span><span tip3></span></td>' 97 +'<td><span class="changeBg">4</span><span tip4></span></td>' 98 +'<td><span class="changeBg">5</span><span tip5></span></td>' 99 +'<td><span class="grey changeBg">6</span><span tip6></span></td></tr>'; 100 }else if("2"==data.mFirDayIsDay){ 101 html1='<tr><td></td>' 102 +'<td></td>' 103 +'<td><span class="changeBg">1</span><span tip1></span></td>' 104 +'<td><span class="changeBg">2</span><span tip2></span></td>' 105 +'<td><span class="changeBg">3</span><span tip3></span></td>' 106 +'<td><span class="changeBg">4</span><span tip4></span></td>' 107 +'<td><span class="grey changeBg">5</span><span tip5></span></td></tr>'; 108 109 }else if("3"==data.mFirDayIsDay){ 110 html1='<tr><td></td>' 111 +'<td></td>' 112 +'<td></td>' 113 +'<td><span class="changeBg">1</span><span class="tip1"></span></td>' 114 +'<td><span class="changeBg">2</span><span class="tip2"></span></td>' 115 +'<td><span class="changeBg">3</span><span class="tip3"></span></td>' 116 +'<td><span class="grey changeBg">4</span><span class="tip4"></span></td></tr>'; 117 }else if("4"==data.mFirDayIsDay){ 118 html1='<tr><td></td>' 119 +'<td></td>' 120 +'<td></td>' 121 +'<td></td>' 122 +'<td><span class="changeBg">1</span><span class="tip1"></span></td>' 123 +'<td><span class="changeBg">2</span><span class="tip2"></span></td>' 124 +'<td><span class="grey changeBg">3</span><span class="tip3"></span></td></tr>'; 125 126 }else if("5"==data.mFirDayIsDay){ 127 html1='<tr><td></td>' 128 +'<td></td>' 129 +'<td></td>' 130 +'<td></td>' 131 +'<td></td>' 132 +'<td><span class="changeBg">1</span><span class="tip1"></span></td>' 133 +'<td><span class="grey changeBg">2</span><span class="tip2"></span></td></tr>'; 134 135 }else if("6"==data.mFirDayIsDay){ 136 html1='<tr><td></td>' 137 +'<td></td>' 138 +'<td></td>' 139 +'<td></td>' 140 +'<td></td>' 141 +'<td></td>' 142 +'<td><span class="grey changeBg">1</span><span class="tip1"></span></td></tr>'; 143 144 }else{ 145 html1='<tr><td><span class="grey changeBg">1</span><span class="tip1"></span></td>' 146 +'<td><span id="2" class="changeBg">2</span><span class="tip2"></span></td>' 147 +'<td><span class="changeBg">3</span><span class="tip3"></span></td>' 148 +'<td><span class="changeBg">4</span><span class="tip4"></span></td>' 149 +'<td><span class="changeBg">5</span><span class="tip5"></span></td>' 150 +'<td><span class="changeBg">6</span><span class="tip6"></span></td>' 151 +'<td><span class="grey changeBg">7</span><span class="tip7"></span></td></tr>'; 152 } 153 if(Number(data.mFirDayIsDay)!=7){ 154 daye=7-Number(data.mFirDayIsDay); 155 }else{ 156 daye=7; 157 } 158 for (var i =daye; i < Number(data.monDateNumber); i++) { 159 if(i==daye){ 160 html2+="<tr>"; 161 } 162 html2 +='<td><span class="changeBg">'+(i+1)+'</span><span class="tip'+(i+1)+'"></span></td>'; 163 if(daye==7){ 164 if(i==6+7*num){ 165 num=num+1; 166 html2+="</tr><tr'>"; 167 } 168 }else{ 169 if(i==(daye-1)+7*num){ 170 num=num+1; 171 html2+="</tr><tr>"; 172 } 173 } 174 } 175 html = html1 + html2; 176 $("#tbody").html(html); 177 App.resetCurBgColor(); 178 App.showEventsFlag(); 179 App.getCalendarHeightExcute(); 180 App.resetClickBgColor(); 181 /*App.initRecAcct();*/ 182 App.swiper(); 183 }; 184 }, 185 //提醒事项showDetail高计算 186 getCalendarHeightExcute : function(){ 187 var windowHeight = $(window).height(); 188 var calendarHeight = $("#Calendar").outerHeight(true); 189 var eventTHeight = $("#EventT").outerHeight(true); 190 var showDetailHeight = windowHeight-calendarHeight-eventTHeight-5; 191 $("#outerContainer").css({"height" :showDetailHeight, 192 "position":"relative", 193 "overflow":"hidden", 194 "width":"100%"}); 195 $("#context").css({"height" :showDetailHeight, 196 "overflow":"auto", 197 "-webkit-overflow-scrolling": "touch"}); 198 }, 199 //设置当前日期 200 resetCurBgColor : function(){ 201 if(App.flag==0){ 202 var today=App.today; 203 App.pageA.find(".changeBg").each(function(){ 204 if(Number(today)==Number($(this).html())){ 205 $(this).css({"color": "#56a00e", 206 "font-weight": "bold"}); 207 App.showEvents(); 208 } 209 }); 210 } 211 }, 212 //设置返回PageA页面选择的日期 213 resetClickBgColor : function(){ 214 var clickDay=App.day; 215 var today=App.today; 216 App.pageA.find(".changeBg").each(function(){ 217 if(Number(clickDay)==Number($(this).html())){ 218 if(App.flag==0){ 219 if(Number(clickDay)==Number(today)){ 220 $(this).css({"color":"", 221 "font-weight":""}); 222 $(this).addClass("CurbgColorChange"); 223 }else{ 224 $(this).addClass('bgStyle'); 225 } 226 }else{ 227 $(this).addClass("bgStyle"); 228 } 229 App.showEvents(); 230 } 231 }); 232 }, 233 //改变事件 234 changeBgColor : function(){ 235 var today=App.today; 236 if(Number(today)==Number($(this).html())){ 237 if(App.flag==0){ 238 App.pageA.find(".changeBg").removeClass('bgStyle').removeClass('CurbgColor'); 239 $(this).css({"color":"", 240 "font-weight":""}); 241 $(this).addClass("CurbgColorChange"); 242 App.day=$(this).html(); 243 }else{ 244 App.pageA.find(".changeBg").removeClass('bgStyle').removeClass('CurbgColorChange'); 245 App.resetCurBgColor(); 246 $(this).css({"color":"#ffffff"}); 247 $(this).addClass('bgStyle'); 248 App.day=$(this).html(); 249 } 250 }else{ 251 App.resetCurBgColor(); 252 App.pageA.find(".changeBg").removeClass('bgStyle').removeClass('CurbgColorChange'); 253 $(this).css({"color":""}); 254 $(this).addClass('bgStyle'); 255 App.day=$(this).html(); 256 } 257 App.showEvents(); 258 }, 259 //添加事件 260 submitEvent : function(){ 261 try { 262 var tips_textarea=$("#tips_textarea").val(); 263 var title=$("#title").val(); 264 var dateTime=$("#dateTime").val(); 265 var type=$("#type").val(); 266 //Data检查 267 if(!title){ 268 Fw.alertinfo("标题不能为空!", "温馨提示"); 269 return; 270 }else if(!dateTime){ 271 Fw.alertinfo("时间不能为空!", "温馨提示"); 272 return; 273 }else if(!type || "0"==type){ 274 Fw.alertinfo("类型不能为空!", "温馨提示"); 275 return; 276 } 277 278 if(Device.os=="android"){ 279 App.addAwokeEvents("1"); 280 }else{ 281 YT.addAwokeEvents(title,dateTime,tips_textarea,type, App.year,App.month,App.day,"App.addAwokeEvents"); 282 } 283 } catch (e) { 284 Fw.alertinfo(e); 285 } 286 287 }, 288 addAwokeEvents : function(data){ 289 try { 290 var url = Fw.dataUrl("04/YT041600"); 291 var tips_textarea=$("#tips_textarea").val(); 292 var title=$("#title").val(); 293 var dateTime=$("#dateTime").val(); 294 var type=$("#type").val(); 295 if("1"==data){ 296 //Data检查 297 if(!title){ 298 Fw.alertinfo("标题不能为空!", "温馨提示"); 299 return; 300 }else if(!dateTime){ 301 Fw.alertinfo("时间不能为空!", "温馨提示"); 302 return; 303 }else if(!type || "0"==type){ 304 Fw.alertinfo("类型不能为空!", "温馨提示"); 305 return; 306 } 307 var send ={ 308 BUSI_CODE : 'B170111', 309 flagType : "1",//查询0;添加1; 310 title : title,//标题 311 dateTime : dateTime,//时间 312 tips_textarea : tips_textarea,//内容 313 type : type,//类型 314 year : App.year, 315 month : App.month,//月 316 day : App.day,//几号 317 }; 318 YT.ajaxData(url, send, function(data) { 319 if ("1" == data.STATUS) { 320 App.gotoPageA(); 321 }else{ 322 Fw.alertinfo(data.MSG); 323 } 324 }); 325 }else{ 326 Fw.alertinfo("添加事件"+title+"!", "温馨提示"); 327 } 328 } catch (e) { 329 Fw.alertinfo(e, "温馨提示"); 330 } 331 }, 332 //跳转到添加页面 333 gotoAddEvent : function(){ 334 $("#tips_textarea").val(""); 335 $("#title").val(""); 336 $("#dateTime").val(""); 337 $("#type").val("0"); 338 var day=App.day; 339 if(day){ 340 YT.showPageArea(App.pageB,[App.pageA,App.pageC], true); 341 }else{ 342 Fw.alertinfo("日期不能为空!", "温馨提示"); 343 } 344 }, 345 //提醒事项 346 showEvents : function(){ 347 var j=1; 348 var clickDay=App.day; 349 var html=""; 350 if(!clickDay){ 351 clickDay=App.today; 352 } 353 for (var i = 0; i < App.EVENTS.length; i++) { 354 var event = App.EVENTS[i]; 355 if(clickDay==event.DAY && App.month==event.MONTHLY && App.year==event.YEAR){ 356 html+="<div class='EventsBorder' data-id='"+event.ID+"' data-value='"+event.DAY+"'><span class='updateItem itemColor"+event.ID+"'>"+j+"."+event.TITLE+"</span></div>"; 357 j++; 358 } 359 App.showEventsFlag(); 360 } 361 $("#showEvents").html(html); 362 App.showEventsStyle(); 363 }, 364 //提醒事类型样式 365 showEventsStyle : function(){ 366 for (var i = 0; i < App.EVENTS.length; i++) { 367 var event = App.EVENTS[i]; 368 if("工作"==event.TYPE){ 369 $(".itemColor"+event.ID).css({"color":"blue"}); 370 }else if("还款"==event.TYPE){ 371 $(".itemColor"+event.ID).css({"color":"green"}); 372 }else if("缴费"==event.TYPE){ 373 $(".itemColor"+event.ID).css({"color":"#40E0d0"}); 374 }else if("理财"==event.TYPE){ 375 $(".itemColor"+event.ID).css({"color":"#808000"}); 376 } 377 } 378 }, 379 //提醒事项标志 380 showEventsFlag : function(){ 381 for (var i = 0; i < App.EVENTS.length; i++) { 382 var event = App.EVENTS[i]; 383 //显示提醒事项的标志 384 if(App.month==event.MONTHLY && App.year==event.YEAR){ 385 var tipsFlag=".tip"+event.DAY; 386 $(tipsFlag).html("."); 387 $(tipsFlag).addClass("tipsbgStyle"); 388 } 389 } 390 }, 391 gotoPageA : function(){ 392 App.initEvent(); 393 YT.showPageArea(App.pageA,[App.pageB,App.pageC], true); 394 }, 395 //详情页 396 gotoPageC : function(){ 397 var id=$(this).attr('data-id'); 398 for (var i = 0; i < App.EVENTS.length; i++) { 399 var event = App.EVENTS[i]; 400 if(id==event.ID){ 401 $("#EventId").val(event.ID); 402 $("#title1").val(event.TITLE); 403 $("#dateTime1").val(event.DATETIME); 404 $("#type1").val(event.TYPE); 405 $("#tips_textarea1").val(event.CONTEXT); 406 App.eventDay =event.DAY; 407 } 408 } 409 YT.showPageArea(App.pageC,[App.pageA,App.pageB], true); 410 }, 411 //remove事项 412 removeEvents : function(){ 413 try { 414 if(Device.os=="android"){ 415 App.removeAwoke("1"); 416 }else{ 417 var title=$("#title1").val(); 418 var dateTime=$("#dateTime1").val(); 419 var type=$("#type1").val(); 420 var tips_textarea=$("#tips_textarea1").val(); 421 YT.removeAwokeEvents(title,dateTime,tips_textarea,type, App.year,App.month,App.eventDay,"App.removeAwoke"); 422 } 423 } catch (e) { 424 Fw.alertinfo(e); 425 }; 426 }, 427 428 removeAwoke : function(data){ 429 try { 430 if(data!=null && data!=""){//0客户端删除失败1客户端删除成功2,客户端未找到该事项 431 if("0"==data){ 432 Fw.alertinfo("删除事件失败!", "温馨提示"); 433 }else if("1"==data){ 434 App.deleteEvents(); 435 }else{//data=="2" 436 Fw.confirm("系统日历中未找到该事项,是否删除该事项?", "温馨提示","App.deleteEvents()", "", "确定", "取消"); 437 }; 438 }else{ 439 Fw.alertinfo("系统日历返回空值!", "温馨提示"); 440 } 441 } catch (e) { 442 Fw.alertinfo(e); 443 }; 444 }, 445 //删除数据库Events 446 deleteEvents : function(){ 447 var url = Fw.dataUrl("04/YT041600"); 448 send ={ 449 BUSI_CODE : 'B170111', 450 flagType : "2", 451 id : $("#EventId").val(), 452 }; 453 YT.ajaxData(url, send, function(data) { 454 if ("1" == data.STATUS) { 455 App.gotoPageA(); 456 }else{ 457 Fw.alertinfo(data.MSG); 458 } 459 }); 460 }, 461 //修改事项 462 updateEvents : function(){ 463 if(Device.os=="android"){ 464 App.updateEvent("1"); 465 }else{ 466 var id=$("#EventId").val(); 467 for (var i = 0; i < App.EVENTS.length; i++) { 468 var event = App.EVENTS[i]; 469 if(id==event.ID){ 470 YT.removeAwokeEvents(event.TITLE,event.DATETIME,event.CONTEXT,event.TYPE, event.YEAR,event.MONTHLY,event.DAY,"App.removeAwokeClient"); 471 }; 472 }; 473 }; 474 }, 475 //修改操作,删除客户端信息,在添加,最后修改数据库 476 removeAwokeClient : function(data){ 477 try { 478 if(data!=null && data!=""){ 479 if("0"==data){ 480 Fw.alertinfo("删除事件失败!", "温馨提示"); 481 }else if("1"==data){ 482 var title=$("#title1").val(); 483 var dateTime=$("#dateTime1").val(); 484 var type=$("#type1").val(); 485 var tips_textarea=$("#tips_textarea1").val(); 486 var id=$("#EventId").val(); 487 for (var i = 0; i < App.EVENTS.length; i++) { 488 var event = App.EVENTS[i]; 489 if(id==event.ID){ 490 YT.addAwokeEvents(title,dateTime,tips_textarea,type, event.YEAR,event.MONTHLY,event.DAY,"App.updateEvent"); 491 }; 492 }; 493 }else{ 494 App.updateEvent("2"); 495 }; 496 }else{ 497 Fw.alertinfo("系统日历返回空值!", "温馨提示"); 498 } 499 } catch (e) { 500 Fw.alertinfo(e); 501 }; 502 }, 503 updateEvent : function(data){ 504 if(data!=null && data!=""){ 505 if("0"==data){ 506 Fw.alertinfo("修改事件失败!", "温馨提示"); 507 }else{ 508 var url = Fw.dataUrl("04/YT041600"); 509 var tips_textarea=$("#tips_textarea1").val(); 510 var title=$("#title1").val(); 511 var dateTime=$("#dateTime1").val(); 512 var type=$("#type1").val(); 513 //Data检查 514 if(!title){ 515 Fw.alertinfo("标题不能为空!", "温馨提示"); 516 return; 517 }else if(!dateTime){ 518 Fw.alertinfo("时间不能为空!", "温馨提示"); 519 return; 520 }else if(!type || "0"==type){ 521 Fw.alertinfo("类型不能为空!", "温馨提示"); 522 return; 523 } 524 var send ={ 525 BUSI_CODE : 'B170111', 526 flagType : "3",//查询0;添加1; 527 id : $("#EventId").val(), 528 title : title,//标题 529 dateTime : dateTime,//时间 530 tips_textarea : tips_textarea,//内容 531 type : type,//类型 532 }; 533 YT.ajaxData(url, send, function(data) { 534 if ("1" == data.STATUS) { 535 App.gotoPageA(); 536 }else{ 537 Fw.alertinfo(data.MSG); 538 } 539 }); 540 } 541 }else{ 542 Fw.alertinfo("系统日历返回空值!", "温馨提示"); 543 } 544 }, 545 };
controller部分
1 public class Controller{ 2 3 private Logger logger = LoggerFactory.getLogger(getClass()); 4 5 @Autowired 6 @Qualifier("sqlSessionTemplate2") 7 private SqlSessionTemplate sql2; 8 9 private SimpleDateFormat df3 = new SimpleDateFormat("hhmmss"); 10 11 @SuppressWarnings({ "unchecked", "rawtypes" }) 12 @Override 13 public Map execute(IBusinessContext ctx) { 14 logger.debug("start"); 15 boolean rst = false; 16 String flagType = ctx.getParam("flagType"); 17 try { 18 if(null!=flagType && !"".equals(flagType)){ 19 //日历页面显示参数计算 20 if("0".equals(flagType)){//日历显示 21 String flag=ctx.getParam("flag"); 22 LocalDate now = LocalDate.now(); 23 if(null!=flag && !"".equals(flag) && !"0".equals(flag)){ 24 int flags=Integer.valueOf(flag); 25 if(flags<0){ 26 now=LocalDate.now().minusMonths(Math.abs(flags)); 27 }else{ 28 now=LocalDate.now().plusMonths(flags); 29 } 30 } 31 //获得年月日、本月天数 32 int year=now.getYear(); 33 int month=now.getMonthValue(); 34 int today=now.getDayOfMonth(); 35 int monDateNumber = now.lengthOfMonth(); 36 //当月第一天周几 37 now=now.minusDays(today-1); 38 DayOfWeek weekDay = now.getDayOfWeek(); 39 int weekDayValue=weekDay.getValue(); 40 41 ctx.setParam("year", year); 42 ctx.setParam("month", month); 43 ctx.setParam("today", today); 44 ctx.setParam("mFirDayIsDay", weekDayValue); 45 ctx.setParam("monDateNumber", monDateNumber); 46 ctx.setParam("dueDate", 10); 47 48 List<Map> discountList=new ArrayList<Map>(); 49 discountList = sql2.selectList("CALENDAR_EVENTS_INFO.queryEventsByAll"); 50 ctx.setParam("EVENTS", discountList); 51 52 }else if("1".equals(flagType)){//添加 53 54 //添加Events参数 55 String title = ctx.getParam("title"); 56 String dateTime = ctx.getParam("dateTime"); 57 String context = ctx.getParam("tips_textarea"); 58 String type = ctx.getParam("type"); 59 String year = ctx.getParam("year"); 60 String day = ctx.getParam("day"); 61 String month = ctx.getParam("month"); 62 63 //主键 64 String random = RandomUtil.randomInt(6); 65 StringBuffer id = new StringBuffer(); 66 id.append(df3.format(new Date())).append(random); 67 68 if(null==month && "".equals(month)){ 69 ctx.setParam("MSG", "月份不能为空"); 70 }else if(null==day && "".equals(day)){ 71 ctx.setParam("MSG", "日期不能为空"); 72 }else if(null==title && "".equals(title)){ 73 ctx.setParam("MSG", "标题不能为空"); 74 }else if(null==dateTime && "".equals(dateTime)){ 75 ctx.setParam("MSG", "时间不能为空"); 76 }else if(null==type && "".equals(type)){ 77 ctx.setParam("MSG", "类型不能为空"); 78 }else{ 79 Map map = new HashMap(); 80 map.put("id", id.toString()); 81 map.put("title", title); 82 map.put("dateTime", dateTime); 83 map.put("type", type); 84 map.put("context", context); 85 map.put("year", year); 86 map.put("monthly", month); 87 map.put("day", day); 88 sql2.insert("CALENDAR_EVENTS_INFO.insertEvents", map); 89 } 90 }else if("2".equals(flagType)){//删除 91 String id = ctx.getParam("id"); 92 if(null!=id && !"".equals(id)){ 93 sql2.insert("CALENDAR_EVENTS_INFO.deleteEventsInfo", id); 94 } 95 }else if("3".equals(flagType)){//修改 96 Map map = new HashMap(); 97 map.put("id", ctx.getParam("id")); 98 map.put("title", ctx.getParam("title")); 99 map.put("dateTime", ctx.getParam("dateTime")); 100 map.put("type", ctx.getParam("type")); 101 map.put("context", ctx.getParam("tips_textarea")); 102 sql2.insert("CALENDAR_EVENTS_INFO.updateEventsInfo", map); 103 } 104 }else{ 105 ctx.setParam("MSG", "功能标志不能为空"); 106 } 107 108 return CtxUtil.showSuccessResult(ctx, ctx.getParamMap()); 109 } catch (AresRuntimeException e) { 110 logger.error("Calendar AresRuntimeException fail"); 111 return CtxUtil.showErrorResult(e, ctx); 112 } catch (Exception e) { 113 logger.error("Calendar Exception error", e); 114 return CtxUtil.showErrorResult(e, ctx); 115 } finally { 116 logger.debug("end:{}", rst); 117 } 118 }
效果图如下:
想做一个左右滑动能够显示下一月或者上一月,做出来总是有Bug',因此搁浅。
向技术大神靠近,就要不断的总结、学习、思考。------渣渣