32ca8142412f06996094ea35a06b2abe13e4aaa8.svn-base 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. var eventDataList = null;
  2. var _baseURL = "http://rili.zhwnl.cn/";
  3. var _uId="";
  4. $(function(){
  5. //设置用户名
  6. // setUserName();
  7. //初始化日历
  8. //calander.init();
  9. //绑定事件
  10. $("#indexWindow").css("visibility","visible");
  11. //设置indexWindow高度
  12. //$("#indexWindow").parent().height($("#indexWindow").parent().height());
  13. $("#indexWindow").next().css("position","absolute");
  14. //为"年"的下拉框提供值
  15. for(var year=1900;year<2051;year++){
  16. $("#yearjpDDM").append("<li><a>"+year+"</a></li>");
  17. }
  18. $("#yearjpDDM li a").click(function(){
  19. var year = parseFloat($(this).text());
  20. $("#yearValue").text(year);
  21. var dateTime = currentDate;
  22. calander.showSomeMonth(new Date(dateTime.setFullYear(year)));
  23. });
  24. //"年"的下拉框事件
  25. $('#dropdownYear').bindState(1,"jp-dropdown",true);
  26. $('#dropdownYear').click(function(){
  27. var yearValue = parseInt($("#yearValue").text());
  28. var liHeihgt = $(this).children('ul').children().eq(0).height();
  29. var scrollTop = (yearValue-1900)*liHeihgt;
  30. $(this).children('ul').scrollTop(scrollTop);
  31. });
  32. //"月"的下拉框事件
  33. $('#dropdownMonth').bindState(1,"jp-dropdown",true);
  34. $('#dropdownMonth li a').click(function(){
  35. var month = parseFloat($(this).text());
  36. $("#monthValue").text(month);
  37. var dateTime = currentDate;
  38. calander.showSomeMonth(new Date(dateTime.setMonth(month-1)));
  39. });
  40. //点击'body'时,关闭"dropdown"
  41. $('body').bind('click.dropdown',function(){
  42. $(".jp-dropdown-menu").parent().removeClass('jp-dropdown-on');
  43. });
  44. //点击'body'时,关闭"事件数"显示框
  45. $('body').bind('click.popover',function(){
  46. $(".jp-popover").remove();
  47. });
  48. //绑定"宜""忌"的hover事件
  49. $("#yjlist").hover(function(){
  50. $(".jp-popover").remove();
  51. var offset = $(this).offset();
  52. offset.top=offset.top- $(document).scrollTop();
  53. offset.left=offset.left- $(document).scrollLeft();
  54. var height = $(this).height();
  55. var width = $(this).width();
  56. var $eventsWarp = $("<div class='jp-popover yjpopover none'></div>");
  57. $eventsWarp.append('<div>\
  58. <div><span class="yTitle">宜 </span><div class="yjlistC">'+$('#ylist').text()+'</div></div>\
  59. <div class="ptrt"><span class="jTitle c000">忌 </span><div class="yjlistC c000">'+$('#jlist').text()+'</div></div>\
  60. </div><div class="blankarrow-left" id="arrow"><div class="arrow_dk"></div><div class="arrow_lt"></div></div>');
  61. $("body").append($eventsWarp);
  62. var aHeight=$('#arrow').height();
  63. var warpHeight = $eventsWarp.height();
  64. var warpWidth = $eventsWarp.width();
  65. $('#arrow').css({"top":((warpHeight-aHeight)/2)+"px"});
  66. $eventsWarp.css({"left":(offset.left-warpWidth-24)+"px","top":(offset.top-(warpHeight-height)/2)+"px"}).show();
  67. $eventsWarp.hover(function(){
  68. $eventsWarp.show();
  69. },function(){
  70. $eventsWarp.hide();
  71. });
  72. },function(){
  73. $(".jp-popover").hide();
  74. });
  75. //点击"查看所有假期"事件
  76. var jrHtml="";
  77. var holidayArr = [];
  78. var nowDate = new Date();
  79. nowDate.setHours(0,0,0,0);
  80. for(jr in festival_main){
  81. var solarDate = jr;
  82. if(jr.length>10){
  83. var dateStr = jr.replace("*","");
  84. var dateLundar = new Date(dateStr);
  85. solarDate = getSolarDate(nowDate.getFullYear(),dateLundar.getMonth()+1,dateLundar.getDate(),false);
  86. }else{
  87. solarDate = new Date(solarDate);
  88. }
  89. if(nowDate.getMonth()>solarDate.getMonth()){
  90. solarDate.setFullYear(nowDate.getFullYear()+1);
  91. }else if(nowDate.getMonth()==solarDate.getMonth()){
  92. if(nowDate.getDate()>solarDate.getDate())
  93. solarDate.setFullYear(nowDate.getFullYear()+1);
  94. }
  95. solarDate=solarDate.format("yyyy/MM/dd");
  96. holidayArr.push(solarDate+"1");
  97. jrHtml+="<li tdate='"+solarDate+"'><a>"+festival_main[jr]+"</a></li>";
  98. }
  99. $("#allVacation ul").append(jrHtml);
  100. $("#allVacation").bindState(1,"jp-dropdown",true);
  101. $("#allVacation li").click(function(){
  102. $("#allVacation #vacationValue").text($(this).text());
  103. $("#fname").text($(this).text());
  104. var dateStr = $(this)[0].getAttribute("tdate");
  105. var sJr = new Date(dateStr);
  106. var vaCount=chazhitian(sJr,nowDate);
  107. if(vaCount<0)
  108. {
  109. if((nowDate.getFullYear()+1)%4==0)
  110. vaCount+=366;
  111. else vaCount+=365;
  112. }
  113. $("#vaCount").text(vaCount);
  114. console.log(chazhitian(sJr,nowDate));
  115. calander.showSomeMonth(sJr);
  116. });
  117. // $("#prev_button_a,#next_button_a,#today_button,#mainCal .cont td,.jp-dropdown-menu li").click(function(){
  118. //
  119. // });
  120. /* $(".today").unbind();
  121. $(".today").on("click",function(){
  122. $("#today_button").css("display","none");
  123. });
  124. $("#mainCal .block").unbind();
  125. $("#mainCal .block").on("click",function(){
  126. if(!$(this).hasClass('today')){
  127. $("#today_button").css("display","block");
  128. }else{
  129. $("#today_button").css("display","none");
  130. }
  131. });*/
  132. // $("#today_button").unbind();
  133. // $("#today_button").on("click",function(){
  134. // $("#today_button").css("display","none");
  135. // });
  136. var nowDateStr = nowDate.format("yyyy/MM/dd");
  137. holidayArr.push(nowDateStr);
  138. holidayArr.sort();
  139. var closetTime = holidayArr[0];
  140. for(date in holidayArr){
  141. if(holidayArr[date]==nowDateStr){
  142. if(date != holidayArr.length-1){
  143. closetTime=holidayArr[parseInt(date)+1];
  144. break;
  145. }
  146. }
  147. }
  148. closetTime = closetTime.substr(0,10);
  149. var festName = $("#allVacation li[tdate='"+closetTime+"']").text();
  150. $("#allVacation #vacationValue").text(festName);
  151. $("#fname").text(festName);
  152. $("#vaCount").text(chazhitian(new Date(closetTime),nowDate));
  153. //console.log(chazhitian(new Date(closetTime),nowDate));
  154. var vacount=$("#vaCount").text();
  155. if(vacount<0)
  156. {
  157. if((nowDate.getFullYear()+1)%4==0)
  158. $("#vaCount").text(vacount+366);
  159. else $("#vaCount").text(vacount+365);
  160. }
  161. // //点击"+"事件
  162. // $('#addEvents').bindState(1,"jp-dropdown",true);
  163. // //点击"记事"事件
  164. // $('#addEvents #liaddNote').click(function(){
  165. // //addNoteDialog();
  166. // setNoteFullHTML();
  167. // });
  168. //
  169. //点击"新建"事件
  170. // $("#addEvents #liaddSchedule").click(function(){setScheduleHTML();});
  171. // $("#addEvents #liaddBrithday").click(function(){setBirthdayHTML();});
  172. // $("#addEvents #liaddMemory").click(function(){setMemoryHTML();});
  173. // $("#addEvents #liaddCount").click(function(){setCountHTML();});
  174. //点击"登录"事件
  175. // $("#login").click(function(){
  176. // $.dialog({
  177. // id:'loginDialog',
  178. // content: '<iframe class="loginIframe" id="loginiframe" name="loginiframe" ></iframe>',
  179. // fixed: true,
  180. // drag: false,
  181. // lock: true,
  182. // title: false,
  183. // init:function(){
  184. // $("#loginDialog #loginiframe")[0].src = _baseURL+"/oauth/route?type=baidu";
  185. // }
  186. // });
  187. // window.open("http://www.zhwnl.cn");
  188. // });
  189. // //点击'日程'事件
  190. // $("#schedulelist").click(function(){
  191. // var startEnd = getMonthSandEd(currentDate);
  192. // setListHTML("日程",'1000',startEnd.start,startEnd.end);
  193. // });
  194. // //点击'节日'事件
  195. // $("#festivallist").click(function(){
  196. // var startEnd = getMonthSandEd(currentDate);
  197. // setListHTML("节日",'345',startEnd.start,startEnd.end);
  198. // });
  199. // //点击'记事'事件
  200. // $("#notelist").click(function(){
  201. // var startEnd = getMonthSandEd(currentDate);
  202. // setListHTML("记事",'-74533',startEnd.start,startEnd.end);
  203. // });
  204. //
  205. //鼠标移到左下方的logo事件
  206. $("#zhwnllogo").hover(function(){
  207. $(".jp-popover").remove();
  208. var _this=$(this);
  209. var $popvsWarp = $("<div class='jp-popover logoEWMImgPopver'></div>");
  210. $popvsWarp.append("<div class='logoEWMImgWarp'><img class='logoEWMImg' src='img/logoEWMImg.png'/></div>\
  211. <div class='blankarrow-down' style='top:94px;*top:92px;'>\
  212. <div class='arrow_dk'></div>\
  213. <div class='arrow_lt'></div></div>");
  214. $("body").append($popvsWarp);
  215. var offset = $(this).offset();
  216. if($.browser.msie&&parseInt($.browser.version)<=7){
  217. $popvsWarp.css({"top":offset.top-$popvsWarp.height()-10,"left":offset.left+14,"display":"block"});
  218. }else{
  219. $popvsWarp.css({"top":offset.top-$popvsWarp.height()-8,"left":offset.left+14,"display":"block"});
  220. }
  221. $popvsWarp.hover(function(){
  222. $popvsWarp.show();
  223. },function(){
  224. $popvsWarp.hide();
  225. });
  226. },function(){
  227. $(".jp-popover").hide();
  228. });
  229. });
  230. function loadMonthEvent(datetime,isNotShowDayAgenda,isNotBindHover){
  231. //当月的数据全局变量
  232. var year = datetime.getFullYear();
  233. var month = datetime.getMonth()+1;
  234. $.post(_baseURL+"/webapi", {rtp:"QueryCalendar4Event",r:"JSON",year:year,month:month,v:new Date().getTime()},
  235. function(data){
  236. if(data.status == "1000") {
  237. eventDataList = data.data;
  238. //显示每月每天的事件数
  239. if(!isNotShowDayAgenda)
  240. showDayAgenda();
  241. if(!isNotBindHover)
  242. bindAgendaHover();
  243. }
  244. }, "JSON");
  245. }
  246. function setYMVforSelect(currentTime){
  247. var bos="";
  248. var xingqi="";
  249. switch (currentTime.getDay())
  250. {
  251. case 1:
  252. xingqi= '星期一';
  253. break;
  254. case 2:
  255. xingqi= '星期二';
  256. break;
  257. case 3:
  258. xingqi= '星期三';
  259. break;
  260. case 4:
  261. xingqi= '星期四';
  262. break;
  263. case 5:
  264. xingqi= '星期五';
  265. break;
  266. case 6:
  267. xingqi= '星期六';
  268. break;
  269. case 0:
  270. xingqi= '星期日';
  271. break;
  272. }
  273. var mymonth=currentTime.getMonth()+1;
  274. if(mymonth==1||mymonth==3||mymonth==5||mymonth==7||mymonth==8||mymonth==10||mymonth==12)
  275. bos="大";
  276. else bos="小";
  277. $("#yearValue").text(currentTime.getFullYear());
  278. $("#monthValue").text(currentTime.getMonth()+1);
  279. $(".worlDay").text(currentTime.getFullYear()+"年"+(currentTime.getMonth()+1)+"月"+"("+bos+")"+xingqi);
  280. $(".NumberDay").text(currentTime.getDate())
  281. }
  282. function closeartDig(id){
  283. art.dialog.list[id].close();
  284. }
  285. //添加'记事'事件
  286. function addNoteDialog(){
  287. var editorHtml = "<div class='fll'>添加记事: &nbsp;</div><div class='jp-dropdown noteTypeWarp' id='noteTypedd'>\
  288. <div class='noteType' id='noteTypeValue'>默认分类</div><div class='selectdown'></div>\
  289. <ul class='jp-dropdown-menu noteType-extend'>";
  290. var data = ZHWNL.Content.operation.getNoteType();
  291. if(data!=null) {
  292. $.each(data,function (index, item){
  293. for(var key in item) {
  294. editorHtml+= "<li value='"+key+"'>\
  295. <a>"+item[key]+"</a>\
  296. </li>";
  297. }
  298. });
  299. }
  300. editorHtml += "</ul></div>";
  301. var id = "addNoteDialog"+new Date().getTime();
  302. $.dialog({
  303. id:id,
  304. content: "<form action=''><div class='noteContentWarp'><textarea id='note_title_add' name='title' class='noteContent noteWidth460' placeholder='在这里,记录您的点点滴滴'></textarea></div>"+
  305. "<div class='notefoot clearfix'><div class='fll'><div>时间:<span id='datetime'>"+currentDate.format("yyyy年MM月dd日")+"</span></div>"+
  306. "<div><input type='button' id='fullEditor' value='完整编辑'/></div>"+
  307. "</div><div class='flr'>"+
  308. "<input name='rtp' type='hidden' value='AddNoteAction' />"+
  309. "<input name='r' type='hidden' value='json' />"+
  310. "<input type='hidden' name='image' id='note_image_add' value=''/>"+
  311. "<input name='weather' type='hidden' value='' />"+
  312. "<input name='templ' type='hidden' value='' />"+
  313. "<input name='temph' type='hidden' value='' />"+
  314. "<input name='city' type='hidden' value='' />"+
  315. "<input id='isNormal' name='isNormal' type='hidden' value='1' />"+
  316. "<input id='contentid' name='contentid' type='hidden' value=''/>"+
  317. "<input name='catid' id='catid' type='hidden' value='-74533' />"+
  318. "<input id='date' name='date' type='hidden' value='"+currentDate.format("yyyy-MM-dd")+" 10:00:00' />"+
  319. "<input type='button' class='mr10 mt05' value='保存' onclick=\"ZHWNL.Content.operation.formSubmitAdd1(this.form,'#"+id+" ',false);return false;\"/>"+
  320. "<input type='button' class='mt05' id='cancel' value='取消' onclick='art.dialog.list[\""+id+"\"].close();' /></div></div></form>",
  321. title: editorHtml,
  322. fixed: true,
  323. drag: false,
  324. lock: true,
  325. init:function(){
  326. $("#"+id+" #noteTypedd").bindState(1,"jp-dropdown",true);
  327. $("#"+id+" #noteTypedd li").click(function(){
  328. $("#"+id+" #noteTypeValue").text($(this).text());
  329. $("#"+id+" #catid").val(this.getAttribute("value"));
  330. });
  331. /*$("#"+id+" #fullEditor").click(function() {//完整编辑的绑定事件
  332. var title = $("#"+id+" #note_title_add").val();
  333. var catid_value = $("#"+id+" #catid").val();
  334. var catname = $("#"+id+" #noteTypeValue").text().replace(/(^\s*)|(\s*$)/g,'');
  335. closeartDig(id);
  336. setNoteFullHTML();
  337. $("#noteFullWindow #noteTypeValue").text(catname);
  338. $("#noteFullWindow #catid_change").val(catid_value);
  339. $("#noteFullWindow #note_title_add").val(title);
  340. });*/
  341. setSltime(id,"datetime");
  342. }
  343. });
  344. }
  345. //登陆回调函数
  346. function loginCallBack(username,uid){
  347. art.dialog.list["loginDialog"].close();
  348. $("#indexWindow #login").removeClass("loginbtn").addClass("userbtn");
  349. $("#indexWindow #login").unbind();
  350. $("#indexWindow #login").val(username);
  351. _uId=uid;
  352. $("#indexWindow #loginout").show(function(){
  353. $(this).unbind();
  354. $(this).click(function(){
  355. loginOut();
  356. });
  357. });
  358. //加载当月的数据
  359. // loadMonthEvent(currentDate);
  360. }
  361. //显示每月每天的事件数
  362. function showDayAgenda(){
  363. if(eventDataList!=null){
  364. $("#mainCal .agenda").remove();
  365. for(var d in eventDataList){
  366. var md = d.substr(4,4);
  367. $("#mainCal a.block_content[data="+md+"]").append('<div title="事件数" class="agenda">'+eventDataList[d].count+'</div>');
  368. }
  369. }
  370. }
  371. function bindAgendaHover(){
  372. //绑定"事件数"的事件
  373. $("#mainCal .agenda").parent().parent().unbind();
  374. makeCal.makeAction();
  375. $("#mainCal .agenda").parent().parent().on("mouseover",function(e){
  376. $(".jp-popover").remove();
  377. var offset = $(this).offset();
  378. offset.top=offset.top- $(document).scrollTop();
  379. offset.left=offset.left- $(document).scrollLeft();
  380. var height = $(this).height();
  381. var width = $(this).width();
  382. var $eventsWarp = $("<div class='jp-popover' style='top:"+(offset.top+height-5)+"px;left:"+(offset.left-77+width)+"px;'></div>");
  383. var htmlStr = '<div class="blankarrow"><div class="arrow_dk"></div><div class="arrow_lt"></div></div>\
  384. <div class="jp-popoverContent">\
  385. <ul>';
  386. var $td = $(this);
  387. var hoverdateObject = calData[$td.attr("i")][$td.attr("j")];
  388. var datetime = hoverdateObject.value;
  389. try{
  390. if(eventDataList!=null){
  391. for(var i=0;i<eventDataList[datetime.format("yyyyMMdd")].list.length;i++){
  392. var eventObject = eventDataList[datetime.format("yyyyMMdd")].list[i];
  393. if($.trim(eventObject.summary)==''){
  394. htmlStr += "<li ctype='"+eventObject.content_type+"' contentid='"+eventObject.content_id+
  395. "' time='"+eventObject.happen_time+"' title='[图片]'><span class='"+eventObject.content_type+"_icon'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><em>[图片]</em></li>";
  396. }else{
  397. htmlStr += "<li ctype='"+eventObject.content_type+"' contentid='"+eventObject.content_id+
  398. "' time='"+eventObject.happen_time+"' title='"+eventObject.summary+"'><span class='"+eventObject.content_type+"_icon'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>"+eventObject.summary+"</li>";
  399. }
  400. }
  401. }else{
  402. return;
  403. }
  404. }catch(e){
  405. return;
  406. }
  407. htmlStr += "</ul>";
  408. if(eventDataList[datetime.format("yyyyMMdd")].count>3){
  409. htmlStr += '<div class="moreevent" >更多事件</div>';
  410. }
  411. htmlStr += "</div>";
  412. $eventsWarp.append(htmlStr);
  413. $("body").append($eventsWarp);
  414. $eventsWarp.hover(
  415. function(){
  416. $(this).show();
  417. },function(){
  418. $(this).hide();
  419. }
  420. );
  421. //
  422. $eventsWarp.find("li").click(function(){
  423. var ctype = $(this).attr("ctype");
  424. var contentid = $(this).attr("contentid");
  425. var time = $(this).attr("time");
  426. setDetail(ctype, contentid,datetime.format("yyyy/MM/dd"));
  427. });
  428. $eventsWarp.find(".moreevent").click(function(){
  429. var catids = "1000,1003,1004,1005,note";
  430. var early_time =new Date( datetime.setHours(0, 0, 0, 0));
  431. var last_time = new Date( datetime.setHours(23, 59, 59, 59));
  432. setODELHTML(catids,early_time,last_time);
  433. });
  434. });
  435. $("#mainCal .agenda").parent().parent().on("mouseout",function(){
  436. $(".jp-popover").hide();
  437. });
  438. }
  439. function setUserName(){
  440. $.post(_baseURL+"/webapi", {rtp:"GetNickAction",v:new Date().getTime()},
  441. function(data){
  442. if(data.status == "1000") {
  443. if(data.data!=null){
  444. $("#indexWindow #login").removeClass("loginbtn").addClass("userbtn");
  445. $("#indexWindow #login").unbind();//这个一定要注意放在login绑定事件后
  446. $("#indexWindow #login").val(data.data.nick);
  447. _uId=data.data.uid;
  448. $("#indexWindow #loginout").show(function(){
  449. $(this).unbind();
  450. $(this).click(function(){
  451. loginOut();
  452. });
  453. });
  454. }
  455. }
  456. }, "JSON");
  457. }
  458. //获取当前日期所在月的第一天和最后一天
  459. function getMonthSandEd(datetime){
  460. var start = new Date(datetime);
  461. start.setDate(1);
  462. start.setHours(0, 0, 0, 0);
  463. var end = new Date(datetime);
  464. end.setMonth(end.getMonth()+1, 0);
  465. end.setHours(23, 59, 59, 59);
  466. return { start:start,end:end };
  467. }
  468. function chazhitian(dateb,datea){
  469. return parseInt((dateb.getTime()-datea.getTime())/(1000*60*60*24));
  470. }
  471. function loginOut() {
  472. var url = _baseURL+'/client?rtp=ZLogout&t='+new Date().getTime();
  473. $.ajax({
  474. url : url,
  475. type : 'GET',
  476. dataType : 'xml',
  477. timeout : 10000,
  478. success : function(xml) {
  479. // do something with xml
  480. $(xml).find("head").each(function(i){
  481. var status = $(this).children("status").text(); //取对象
  482. var desc = $(this).children("desc").text();
  483. if(status != "1000"){
  484. alert("操作失败:"+desc);
  485. }else{
  486. location.href=location.href;
  487. if(window.event)
  488. window.event.returnValue = false;
  489. }
  490. });
  491. }
  492. });
  493. };