| 1 |
- MWF.require("MWF.widget.Calendar",null,false);MWF.xApplication.Report.DayView=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",date:null},initialize:function(t,e,s){this.setOptions(s);this.path="/x_component_Report/$DayView/";this.cssPath="/x_component_Report/$DayView/"+this.options.style+"/css.wcss";this._loadCss();this.app=e;this.container=$(t);var i=this.options.date;if(i){this.date=typeOf(i)=="string"?new Date(i):i}else{this.date=new Date}this.load()},recordStatus:function(){return{date:this.days.length>0?this.days[0].date.clone():this.date}},load:function(){this.days=[];this.scrollNode=new Element("div.scrollNode",{styles:this.app.inContainer?this.css.scrollNode_inContainer:this.css.scrollNode}).inject(this.container);this.contentWarpNode=new Element("div",{styles:this.css.contentWarpNode}).inject(this.scrollNode);this.contentContainerNode=new Element("div",{styles:this.css.contentContainerNode}).inject(this.contentWarpNode);this.node=new Element("div",{styles:this.css.contentNode}).inject(this.contentContainerNode);this.leftNode=new Element("div",{styles:this.css.leftNode_disable}).inject(this.node);this.leftNode.addEvents({click:function(){if(this.pageNum!=1)this.decrementDay()}.bind(this),mouseover:function(){if(this.pageNum!=1)this.leftNode.setStyles(this.css.leftNode_over)}.bind(this),mouseout:function(){if(this.pageNum!=1)this.leftNode.setStyles(this.css.leftNode)}.bind(this)});this.dayContainerNode=new Element("div",{styles:this.css.dayContainerNode}).inject(this.node);this.rightNode=new Element("div",{styles:this.css.rightNode_disable}).inject(this.node);this.rightNode.addEvents({click:function(){if(this.pageNum<this.totalPage)this.incrementDay()}.bind(this),mouseover:function(){if(this.pageNum<this.totalPage)this.rightNode.setStyles(this.css.rightNode_over)}.bind(this),mouseout:function(){if(this.pageNum<this.totalPage)this.rightNode.setStyles(this.css.rightNode)}.bind(this)});this.resetNodeSize();this.resetNodeSizeFun=this.resetNodeSize.bind(this);this.app.addEvent("resize",this.resetNodeSizeFun)},resetNodeSize:function(){var t=this.container.getSize();var e=this.app.inContainer?800:t.y;var s=this.leftNode?this.leftNode.getSize():{x:0,y:0};var i=this.rightNode?this.rightNode.getSize():{x:0,y:0};var o=this.app.sideBar?this.app.sideBar.getSize():{x:0,y:0};var a=t.x-s.x-i.x-o.x;this.dayNodeHeight=e-110;var n=(this.dayNodeHeight-s.y)/2;var h=(this.dayNodeHeight-i.y)/2;this.leftNode.setStyle("margin-top",""+n+"px");this.rightNode.setStyle("margin-top",""+h+"px");var d=(a/330).toInt();if(this.app.inContainer){this.scrollNode.setStyle("min-height",""+(e-60)+"px")}else{this.scrollNode.setStyle("height",""+(e-60)+"px")}this.scrollNode.setStyle("margin-top","60px");this.scrollNode.setStyle("margin-right",o.x);if(this.contentWarpNode){var r=330*d+s.x+i.x+o.x;var l=(t.x-r)/2-10;this.contentWarpNode.setStyles({width:""+r+"px","margin-left":""+l+"px"})}if(this.dayCount!=d){this.dayCount=d;this.getPageNumberForDay(function(){if(!this.totalPage){this.showNoReportNode()}else{this.adjustDay()}}.bind(this))}else{for(var y=0;y<this.days.length;y++){this.days[y].resetHeight()}}},getPageNumberForDay:function(e){var t=this.date.format("%Y-%m-%d");this.app.restActions.getPageNumberForDay(t,this.dayCount,function(t){this.pageNum=t.data.currentPage;this.totalPage=t.data.totalPage;if(e)e()}.bind(this))},listDayForPage:function(e){this.app.restActions.listDayForPage(this.pageNum,this.dayCount,function(t){this.data={};t.data.each(function(t,e){if(e==0){this.date=Date.parse(t.date)}this.data[t.date]=t.reports}.bind(this));if(e)e()}.bind(this))},toDay:function(t){this.date=t;this.dayContainerNode.empty();this.leftNode.setStyles(this.css.leftNode_disable);this.rightNode.setStyles(this.css.rightNode_disable);this.days=[];this.getPageNumberForDay(function(){this.adjustDay()}.bind(this))},showNoReportNode:function(){if(this.noReportNode)this.noReportNode.destroy();this.noReportNode=new Element("div",{styles:this.css.noReportNode,text:this.app.lp.noReportDayView}).inject(this.contentContainerNode,"top");this.setLeftRightNode()},adjustDay:function(){if(this.dayCount<=this.days.length){for(var t=0;t<this.days.length;t++){if(t<this.dayCount){this.days[t].resetHeight()}else{if(this.days[t])this.days[t].destroy()}}this.days.splice(this.dayCount,this.days.length-this.dayCount);this.setLeftRightNode()}else{for(var t=0;t<this.days.length;t++){this.days[t].resetHeight()}this.listDayForPage(function(){for(var e in this.data){var t=this.data[e];var s=true;this.days.each(function(t){if(t.date.format("%Y-%m-%d")==e){s=false}}.bind(this));if(s){this.loadDay(Date.parse(e),t,this.days.length==0)}}this.setLeftRightNode()}.bind(this))}},setLeftRightNode:function(){if(this.pageNum==1||this.totalPage==0){this.leftNode.setStyles(this.css.leftNode_disable)}else{this.leftNode.setStyles(this.css.leftNode)}if(this.pageNum>=this.totalPage||this.totalPage==0){this.rightNode.setStyles(this.css.rightNode_disable)}else{this.rightNode.setStyles(this.css.rightNode)}},incrementDay:function(){if(this.pageNum>=this.totalPage)return;this.pageNum++;this.days.each(function(t){t.destroy()}.bind(this));this.days=[];this.dayContainerNode.empty();this.leftNode.setStyles(this.css.leftNode_disable);this.rightNode.setStyles(this.css.rightNode_disable);this.adjustDay()},decrementDay:function(t){if(this.pageNum==1)return;this.pageNum--;this.days.each(function(t){t.destroy()}.bind(this));this.days=[];this.dayContainerNode.empty();this.leftNode.setStyles(this.css.leftNode_disable);this.rightNode.setStyles(this.css.rightNode_disable);this.adjustDay()},loadDay:function(t,e,s){var i=new MWF.xApplication.Report.DayView.Day(this,this.dayContainerNode,null,t,s,e);this.days.push(i)},hide:function(){var t=new Fx.Morph(this.scrollNode,{duration:"300",transition:Fx.Transitions.Expo.easeOut});t.start({opacity:0}).chain(function(){this.scrollNode.setStyle("display","none")}.bind(this))},show:function(){this.scrollNode.setStyles(this.app.inContainer?this.css.scrollNode_inContainer:this.css.scrollNode);this.scrollNode.setStyles({display:""});var t=new Fx.Morph(this.scrollNode,{duration:"800",transition:Fx.Transitions.Expo.easeOut});this.app.fireAppEvent("resize");t.start({opacity:1,left:"0px"}).chain(function(){this.scrollNode.setStyles({position:"static",width:"auto",display:""})}.bind(this))},reload:function(){this.date=this.days.length>0?this.days[0].date.clone():this.date;this.days.each(function(t){t.destroy()});this.dayContainerNode.empty();this.days=[];this.getPageNumberForDay(function(){if(!this.totalPage){this.showNoReportNode()}else{this.adjustDay()}}.bind(this))},destroy:function(){this.days.each(function(t){t.destroy()});this.app.removeEvent("resize",this.resetNodeSizeFun);this.scrollNode.destroy()}});MWF.xApplication.Report.DayView.Day=new Class({Implements:[Events],initialize:function(t,e,s,i,o,a){this.view=t;this.css=this.view.css;this.container=e;this.position=s||"bottom";this.app=this.view.app;this.date=i?i.clone().clearTime():(new Date).clearTime();this.data=a;this.today=(new Date).clearTime();this.isToday=this.date.diff(this.today)==0;this.times=[];this.reports=[];this.isFirst=o;this.load()},load:function(){this.node=new Element("div.dayNode",{styles:this.css.dayNode}).inject(this.container,this.position);this.node.setStyle("min-height",""+this.view.dayNodeHeight+"px");this.node.addEvents({mouseover:function(){this.node.setStyles(this.css.dayNode_over)}.bind(this),mouseout:function(){this.node.setStyles(this.css.dayNode)}.bind(this)});this.titleNode=new Element("div.titleNode",{styles:this.css[!this.isToday?"dayTitleNode":"dayTitleNode_today"]}).inject(this.node);if(this.isFirst){className=!this.isToday?"dayTitleTextNode_first":"dayTitleTextNode_today_first"}else{className=!this.isToday?"dayTitleTextNode":"dayTitleTextNode_today"}this.titleTextNode=new Element("div.dayTitleTextNode",{styles:this.css[className],text:this.date.format("%Y年%m月%d日")}).inject(this.titleNode);if(this.isFirst){this.calendar=new MWF.xApplication.Report.Calendar(this.titleTextNode,{style:"meeting_blue",target:this.node,baseDate:this.date,onQueryComplate:function(t,e,s){var i=new Date.parse(e);this.view.toDay(i)}.bind(this)});this.calendar.app=this.app}this.dayWeekNode=new Element("div.dayWeekNode",{styles:this.css[!this.isToday?"dayWeekNode":"dayWeekNode_today"],text:this.getWeek()}).inject(this.titleNode);this.dayContentNode=new Element("div.dayContentNode",{styles:this.css.dayContentNode}).inject(this.node);this.loadReports()},resetHeight:function(){this.node.setStyle("min-height",""+this.view.dayNodeHeight+"px");if(this.noReportNode){this.noReportNode.setStyle("min-height",""+(this.view.dayNodeHeight-220)+"px");this.noReportNode.setStyle("line-height",""+(this.view.dayNodeHeight-220)+"px")}},getWeek:function(){var t=this.app.lp.weeks.arr[this.date.getDay()];var e="";var s=this.today;var i=s.diff(this.date);if(i==0){e=this.app.lp.today}else{e=t}return e},setFrist:function(){if(this.isFirst)return;this.isFirst=true;className=!this.isToday?"dayTitleTextNode_first":"dayTitleTextNode_today_first";this.titleTextNode.setStyles(this.css[className]);this.calendar=new MWF.xApplication.Report.Calendar(this.titleTextNode,{style:"meeting_blue",target:this.node,baseDate:this.date,onQueryComplate:function(t,e,s){var i=new Date.parse(e);this.view.toDay(i)}.bind(this)});this.calendar.app=this.app},destroy:function(){if(this.calendar){this.calendar.container.destroy()}this.reports.each(function(t){t.destroy()});this.reports=[];this.node.destroy()},loadReports:function(){this.data.each(function(t){this.reports.push(new MWF.xApplication.Report.ReportArea(this.dayContentNode,this,t))}.bind(this))},reload:function(){this.view.reload()}});MWF.xApplication.Report.Calendar=new Class({Extends:MWF.widget.Calendar,_setDayDate:function(t,e,s){var i=this.options.baseDate;if(e!=undefined&&s!=undefined){i=new Date;i.setDate(1);i.setFullYear(e);i.setMonth(s)}this.loadDayData(i,function(){this._setDayD(t,e,s)}.bind(this))},loadDayData:function(t,e){var s=t.clone();s.decrement("month",1);this.data={};var i=0;for(var o=0;o<3;o++){var a=this.app.common.addZero((s.get("month")+1).toString(),2);var n=s.get("year");this.app.restActions.listDayByYearMonth(n,a,function(t){i++;t.data.each(function(t){this.data[t.date]=t.reports}.bind(this));if(e&&i==3)e()}.bind(this),null,false);s.increment("month",1)}},_setDayD:function(t,e,s){var i=t||this.contentTable;var o=this.options.baseDate;if(e!=undefined&&s!=undefined){o=new Date;o.setDate(1);o.setFullYear(e);o.setMonth(s)}var a=i.getElement("tbody");var n=a.getElements("td");var h=o.clone();h.setDate(1);var d=h.getDay();var r=h.clone();for(var l=d-1;l>=0;l--){var y=n[l];r.increment("day",-1);y.set("text",r.getDate());y.addClass("gray_"+this.options.style);y.setStyles(this.css["gray_"+this.options.style]);y.store("dateValue",r.toString());if(this.data[r.format("%Y-%m-%d")]){y.setStyles({position:"relative",cursor:"pointer"});new Element("div",{position:"absolute",top:"2px",right:"2px",width:"2px",height:"2px","background-color":"#4990e2","border-radius":"5px"}).inject(y)}else{n[l].setStyles({cursor:"default"})}}for(var l=d;l<n.length;l++){n[l].set("text",h.getDate());if(h.toString()==this.options.baseDate.toString()){n[l].addClass("current_"+this.options.style);n[l].setStyles(this.css["current_"+this.options.style]);n[l].removeClass("gray_"+this.options.style);n[l].setStyle("border","1px solid #FFF")}else if(h.getMonth()!=o.getMonth()){n[l].addClass("gray_"+this.options.style);n[l].setStyles(this.css["gray_"+this.options.style]);n[l].removeClass("current_"+this.options.style);n[l].setStyle("border","1px solid #FFF")}else{n[l].setStyles(this.css["normal_"+this.options.style]);n[l].removeClass("current_"+this.options.style);n[l].removeClass("gray_"+this.options.style);n[l].setStyle("border","1px solid #FFF")}var c=h.clone();if(c.clearTime().toString()==this.today.clearTime().toString()){n[l].setStyles(this.css["today_"+this.options.style]);n[l].setStyle("border","0px solid #AAA")}n[l].store("dateValue",h.toString());if(this.data[h.format("%Y-%m-%d")]){var y=n[l];y.setStyles({position:"relative",cursor:"pointer"});new Element("div",{styles:{position:"absolute",top:"5px",right:"5px",width:"5px",height:"5px","background-color":"#4990e2","border-radius":"5px"}}).inject(y)}else{n[l].setStyles({cursor:"default"})}h.increment("day",1)}},_selectDate:function(t){var e=new Date(t);if(!this.data[e.format("%Y-%m-%d")]){return}var s=e.format(this.options.format);if(this.options.isTime){this.changeViewToTime(e)}else{if(!this.options.beforeCurrent){var i=new Date;e.setHours(23,59,59);if(e.getTime()-i.getTime()<0){alert("选择的日期必须大于当前日期!");this.node.focus();return false}}if(this.fireEvent("queryComplate",[s,e])){this.node.set("value",s);this.hide();this.fireEvent("complate",[s,e])}}}});
|