| 1 |
- MWF.xDesktop.requireApp("Attendance","Explorer",null,false);MWF.xDesktop.requireApp("Selector","package",null,false);MWF.xDesktop.requireApp("Template","Explorer",null,false);MWF.xDesktop.requireApp("Template","MForm",null,false);MWF.xApplication.Attendance.AppealExplorer=new Class({Extends:MWF.xApplication.Attendance.Explorer,Implements:[Options,Events],initialize:function(e,t,i,s){this.setOptions(s);this.app=t;this.path="/x_component_Attendance/$AppealExplorer/";this.cssPath="/x_component_Attendance/$AppealExplorer/"+this.options.style+"/css.wcss";this._loadCss();this.actions=i;this.node=$(e);this.preMonthDate=new Date;this.initData();if(!this.personActions)this.personActions=new MWF.xAction.org.express.RestActions},load:function(){this.loadConfig();this.loadToolbar();this.loadFilter();this.loadContentNode();var e=(this.preMonthDate.getMonth()+1).toString();if(e.length==1)e="0"+e;var t={status:"0",yearString:this.preMonthDate.getFullYear().toString(),monthString:e};this.loadView(t);this.setNodeScroll()},loadConfig:function(){this.config={};var t;this.actions.getSettingCode("APPEALABLE",function(e){t=e.data?e.data.configValue:null},null,false);if(!t){this.config.APPEALABLE=true}else{this.config.APPEALABLE=t!="false"}},loadToolbar:function(){this.toolbarNode=new Element("div",{styles:this.css.toolbarNode});this.toolbarNode.inject(this.node);var e=this.path+"toolbar.json";MWF.getJSON(e,function(e){e.each(function(e){if(!this.config.APPEALABLE&&e.condition=="onlock"){this.createToolbarItemNode(e)}else if(this.config.APPEALABLE&&e.condition!="onlock"){this.createToolbarItemNode(e)}}.bind(this))}.bind(this))},loadFilter:function(){this.fileterNode=new Element("div.fileterNode",{styles:this.css.fileterNode}).inject(this.node);var e=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",styles:this.css.filterTable,class:"filterTable"}).inject(this.fileterNode);var t=new Element("tr").inject(e);var i=new Element("td",{styles:this.css.filterTableTitle,text:this.preMonthDate.format(this.app.lp.dateFormatMonth)}).inject(t);this.createStatusSelectTd(t);this.createAppealReasonTd(t);this.createUnitTd(t);this.createPersonTd(t);this.createActionTd(t)},createStatusSelectTd:function(e){var t=this;var i=new Element("td",{styles:this.css.filterTableTitle,text:"审批状态"}).inject(e);var i=new Element("td",{styles:this.css.filterTableValue}).inject(e);this.status=new MDomItem(i,{name:"status",type:"select",value:"0",selectText:["所有状态","待处理","审批通过","审批未通过"],selectValue:["999","0","1","-1"]},true,this.app);this.status.load()},createAppealReasonTd:function(e){var t=this;var i=new Element("td",{styles:this.css.filterTableTitle,text:"申诉原因"}).inject(e);var i=new Element("td",{styles:this.css.filterTableValue}).inject(e);this.appealReason=new MDomItem(i,{name:"appealReason",type:"select",selectText:["","临时请假","出差","因公外出","其他"]},true,this.app);this.appealReason.load()},createUnitTd:function(e){var t=this;var i=new Element("td",{styles:this.css.filterTableTitle,text:"部门"}).inject(e);var i=new Element("td",{styles:this.css.filterTableValue}).inject(e);this.unitName=new MDomItem(i,{name:"unitName",style:{width:"60px"},defaultValue:this.app.manageUnits.length>0?this.app.manageUnits[0]:"",event:{click:function(e){t.selecePerson(e,"unit")}}},true,this.app);this.unitName.load()},createPersonTd:function(e){var t=this;var i=new Element("td",{styles:this.css.filterTableTitle,text:"人员"}).inject(e);var i=new Element("td",{styles:this.css.filterTableValue}).inject(e);this.empName=new MDomItem(i,{name:"empName",style:{width:"60px"},event:{click:function(e){t.selecePerson(e,"person")}}},true,this.app);this.empName.load()},createYearSelectTd:function(e){var t=this;var i=new Element("td",{styles:this.css.filterTableTitle,text:"年度"}).inject(e);var i=new Element("td",{styles:this.css.filterTableValue}).inject(e);this.yearString=new MDomItem(i,{name:"yearString",type:"select",selectValue:function(){var e=[];var t=(new Date).getFullYear();for(var i=0;i<6;i++){e.push(t--)}return e}},true,this.app);this.yearString.load()},createMonthSelectTd:function(e){var t=this;var i=new Element("td",{styles:this.css.filterTableTitle,text:"月份"}).inject(e);var i=new Element("td",{styles:this.css.filterTableValue}).inject(e);this.monthString=new MDomItem(i,{name:"monthString",type:"select",selectValue:["","01","02","03","04","05","06","07","08","09","10","11","12"]},true,this.app);this.monthString.load()},createActionTd:function(e){var t=new Element("td",{styles:this.css.filterTableValue}).inject(e);var i=new Element("button",{text:"查询",styles:this.css.filterButton}).inject(t);i.addEvent("click",function(){var e=this.preMonthDate.getFullYear().toString();var t=(this.preMonthDate.getMonth()+1).toString();if(t.length==1)t="0"+t;var i={status:this.status.getValue(),appealReason:this.appealReason.getValue(),unitName:this.unitName.getValue(),empName:this.empName.getValue(),yearString:e,monthString:t};this.loadView(i)}.bind(this))},selecePerson:function(i,e){var t="选择人员";if(e=="topUnit"){t="选择公司"}else if(e=="unit"){t="选择部门"}var s={type:e,title:t,count:"1",values:[i.get("value")]||[],onComplete:function(e){var t=[];e.each(function(e){t.push(e.data.name)}.bind(this));i.set("value",t.join(","))}.bind(this)};var a=new MWF.O2Selector(this.app.content,s)},setContentSize:function(){var e=this.toolbarNode?this.toolbarNode.getSize():{x:0,y:0};var t=this.app.titleBar?this.app.titleBar.getSize():{x:0,y:0};var i=this.fileterNode?this.fileterNode.getSize():{x:0,y:0};var s=this.node.getSize();var a=this.elementContentNode.getStyle("padding-top").toFloat();var n=this.elementContentNode.getStyle("padding-bottom").toFloat();var o=this.filterConditionNode?this.filterConditionNode.getSize():{x:0,y:0};var l=s.y-e.y-a-n-o.y-t.y-i.y;this.elementContentNode.setStyle("height",""+l+"px");this.pageCount=(l/30).toInt()+5;if(this.view&&this.view.items.length<this.pageCount){this.view.loadElementList(this.pageCount-this.view.items.length)}},loadView:function(e){this.elementContentNode.empty();this.view=new MWF.xApplication.Attendance.AppealExplorer.View(this.elementContentNode,this.app,this,this.viewData,this.options.searchKey);this.view.filterData=e;this.view.load();this.setContentSize()},createDocument:function(){if(this.view)this.view._createDocument()},agreeAppeals:function(e){var t=this;var i=0;this.view.items.each(function(e){if(e.checkboxElement&&e.checkboxElement.get("checked"))i++}.bind(this));if(i==0){this.app.notice("请先选择申诉","error");return}this.app.confirm("warn",e,"同意申诉","确定处理您选择的"+i+"份申诉?",350,120,function(){t.batchAppeals=true;t.view.items.each(function(e){if(e.checkboxElement&&e.checkboxElement.get("checked"))e.agree(true)}.bind(this));if(t.view)t.view.reload();t.batchAppeals=false;t.app.notice("处理成功","success");this.close()},function(){this.close()})},denyAppeals:function(e){var t=this;var i=0;this.view.items.each(function(e){if(e.checkboxElement&&e.checkboxElement.get("checked"))i++}.bind(this));if(i==0){this.app.notice("请先选择申诉","error");return}this.app.confirm("warn",e,"不同意申诉","确定处理您选择的"+i+"份申诉?",350,120,function(){t.batchAppeals=true;t.view.items.each(function(e){if(e.checkboxElement&&e.checkboxElement.get("checked"))e.deny(true)}.bind(this));if(t.view)t.view.reload();t.batchAppeals=false;t.app.notice("处理成功","success");this.close()},function(){this.close()})}});MWF.xApplication.Attendance.AppealExplorer.View=new Class({Extends:MWF.xApplication.Attendance.Explorer.View,_createItem:function(e){return new MWF.xApplication.Attendance.AppealExplorer.Document(this.table,e,this.explorer,this)},_getCurrentPageData:function(i,e){if(!e)e=20;var t=this.items.length?this.items[this.items.length-1].data.id:"(0)";var s=this.filterData||{};s.processPerson1=layout.desktop.session.user.distinguishedName;this.actions.listAppealFilterNext(t,e,s,function(e){var t=e.data;t.each(function(e){e.APPEALABLE=this.explorer.config.APPEALABLE}.bind(this));t.sort(function(e,t){return parseInt(t.appealDateString.replace(/-/g,""))-parseInt(e.appealDateString.replace(/-/g,""))});e.data=t;if(i)i(e)}.bind(this))},_removeDocument:function(e,t){},_createDocument:function(){},_openDocument:function(e){var t=new MWF.xApplication.Attendance.AppealExplorer.Appeal(this.explorer,e);if(!e.status){t.edit()}else{t.open()}}});MWF.xApplication.Attendance.AppealExplorer.Document=new Class({Extends:MWF.xApplication.Attendance.Explorer.Document,agree:function(){var e={ids:[this.data.id],status:"1"};this.process(e)},deny:function(e){var t={ids:[this.data.id],status:"-1"};this.process(t)},process:function(e){this.app.restActions.processAppeal(e,function(e){if(e.type=="ERROR"){this.app.notice(e.message,"error")}else{if(!this.explorer.batchAppeals){if(this.explorer.view)this.explorer.view.reload();this.app.notice("处理成功","success")}}}.bind(this),null,false)}});MWF.xApplication.Attendance.AppealExplorer.Appeal=new Class({Extends:MWF.widget.Common,initialize:function(e,t){this.explorer=e;this.app=e.app;this.data=t||{};this.css=this.explorer.css;this.load()},load:function(){this.app.restActions.getDetail(this.data.detailId,function(e){this.data.onDutyTime=e.data.onDutyTime;this.data.offDutyTime=e.data.offDutyTime}.bind(this),null,false)},open:function(e){this.isNew=false;this.isEdited=false;this._open()},create:function(){this.isNew=true;this._open()},edit:function(){if(this.explorer.config.APPEALABLE)this.isEdited=true;this._open()},_open:function(){this.createMarkNode=new Element("div",{styles:this.css.createMarkNode,events:{mouseover:function(e){e.stopPropagation()},mouseout:function(e){e.stopPropagation()}}}).inject(this.app.content,"after");this.createAreaNode=new Element("div",{styles:this.css.createAreaNode});this.createNode();this.createAreaNode.inject(this.createMarkNode,"after");this.createAreaNode.fade("in");this.setCreateNodeSize();this.setCreateNodeSizeFun=this.setCreateNodeSize.bind(this);this.addEvent("resize",this.setCreateNodeSizeFun)},createNode:function(){var e=this;this.createNode=new Element("div",{styles:this.css.createNode}).inject(this.createAreaNode);this.createContainerNode=new Element("div",{styles:this.css.createContainerNode}).inject(this.createNode);this.setScrollBar(this.createContainerNode);this.createFormNode=new Element("div",{styles:this.css.createFormNode}).inject(this.createContainerNode);this.createTableContainer=new Element("div",{styles:this.css.createTableContainer}).inject(this.createFormNode);this.createTableArea=new Element("div",{styles:this.css.createTableArea}).inject(this.createTableContainer);var t=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",styles:this.css.editTable,class:"editTable"}).inject(this.createTableArea);var i=this.data;var s="发起";if(i.status==0){s="待处理"}else if(i.status==1){s="审批通过"}else if(i.status==-1){s="审批不通过"}this.data.appealStatusShow=s;var a="<table width='100%' bordr='0' cellpadding='5' cellspacing='0' styles='formTable'>"+"<tr><td colspan='4' styles='formTableHead'>申诉处理单</td></tr>"+"<tr><td styles='formTableTitle' lable='empNameShow'></td>"+" <td styles='formTableValue' item='empNameShow'></td>"+" <td styles='formTableTitle' lable='recordDateString'></td>"+" <td styles='formTableValue' item='recordDateString'></td></tr>"+"<tr><td styles='formTableTitle' lable='onDutyTime'></td>"+" <td styles='formTableValue' item='onDutyTime'></td>"+" <td styles='formTableTitle' lable='offDutyTime'></td>"+" <td styles='formTableValue' item='offDutyTime'></td></tr>"+"<tr><td styles='formTableTitle' lable='appealStatusShow'></td>"+" <td styles='formTableValue' item='appealStatusShow' colspan='3'></td></tr>"+"<tr><td styles='formTableTitle' lable='appealReason'></td>"+" <td styles='formTableValue' item='appealReason' colspan='3'></td></tr>"+"<tr contain='selfHolidayType'><td styles='formTableTitle' lable='selfHolidayType'></td>"+" <td styles='formTableValue' item='selfHolidayType' colspan='3'></td></tr>"+"<tr contain='address'><td styles='formTableTitle' lable='address'></td>"+" <td styles='formTableValue' item='address' colspan='3'></td></tr>"+"<tr contain='startTime'><td styles='formTableTitle' lable='startTime'></td>"+" <td styles='formTableValue' item='startTime' colspan='3'></td></tr>"+"<tr contain='endTime'><td styles='formTableTitle' lable='endTime'></td>"+" <td styles='formTableValue' item='endTime' colspan='3'></td></tr>"+"<tr contain='appealDescription'><td styles='formTableTitle' lable='appealDescription'></td>"+" <td styles='formTableValue' item='appealDescription' colspan='3'></td></tr>"+"<tr contain='opinion1'><td styles='formTableTitle' lable='opinion1'></td>"+" <td styles='formTableValue' item='opinion1' colspan='3'></td></tr>"+"</table>";this.createTableArea.set("html",a);this.document=new MForm(this.createTableArea,this.data,{style:"popup",isEdited:this.isEdited||this.isNew,itemTemplate:{empNameShow:{text:"员工姓名",type:"innertext",value:this.data.empName.split("@")[0]},recordDateString:{text:"考勤日期",type:"innertext"},onDutyTime:{text:"上班打卡时间",type:"innertext"},offDutyTime:{text:"下班打卡时间",type:"innertext"},statusShow:{text:"考勤状态",type:"innertext"},appealStatusShow:{text:"审批状态",type:"innertext"},appealReason:{text:"申述原因",type:"innertext"},address:{text:"地点",type:"innertext"},selfHolidayType:{text:"请假类型",type:"innertext"},startTime:{text:"开始日期",type:"innertext"},endTime:{text:"结束日期",type:"innertext"},appealDescription:{text:"事由",type:"innertext"},opinion1:{text:"审批意见",type:"textarea"}}},this.app,this.css);this.document.load();e.switchFieldByAppealReason(this.data.appealReason);this.cancelActionNode=new Element("div",{styles:this.css.createCancelActionNode,text:"关闭"}).inject(this.createFormNode);this.cancelActionNode.addEvent("click",function(e){this.cancelCreate(e)}.bind(this));if(this.isNew||this.isEdited){this.denyActionNode=new Element("div",{styles:this.css.createDenyActionNode,text:"不同意"}).inject(this.createFormNode);this.createOkActionNode=new Element("div",{styles:this.css.createOkActionNode,text:"同意"}).inject(this.createFormNode);this.denyActionNode.addEvent("click",function(e){this.deny(e)}.bind(this));this.createOkActionNode.addEvent("click",function(e){this.okCreate(e)}.bind(this))}},switchFieldByAppealReason:function(e){var t=["selfHolidayType","startTime","endTime","address","appealDescription"];var i=[];if(e=="临时请假"){i=["selfHolidayType","startTime","endTime"]}else if(e=="出差"){i=["address","startTime","endTime"]}else if(e=="因公外出"){i=["address","startTime","endTime","appealDescription"]}else if(e=="其他"){i=["appealDescription"]}t.each(function(e){this.createTableArea.getElement("[contain='"+e+"']").setStyle("display",i.contains(e)?"":"none");if(this.isNew||this.isEdited)this.document.items[e].options.notEmpty=i.contains(e)?true:false}.bind(this))},setCreateNodeSize:function(){var e=this.app.node.getSize();var t=this.app.content.getSize();var i="570";var s="800";this.createAreaNode.setStyles({width:""+e.x+"px",height:""+e.y+"px"});var a=i;var n=(e.y-i)/2;this.createNode.setStyles({height:""+a+"px","margin-top":""+n+"px",width:""+s+"px"});this.createContainerNode.setStyles({height:""+a+"px"});var o=this.createIconNode?this.createIconNode.getSize():{x:0,y:0};var l=a-o.y-60;this.createFormNode.setStyles({height:""+l+"px","margin-top":""+60+"px"})},cancelCreate:function(e){this.createMarkNode.destroy();this.createAreaNode.destroy();delete this},deny:function(e){var t={ids:[this.data.id],status:"-1",opinion1:this.document.items.opinion1.getValue()};this.process(t)},okCreate:function(e){var t={ids:[this.data.id],status:"1",opinion1:this.document.items.opinion1.getValue()};this.process(t)},process:function(e){this.app.restActions.processAppeal(e,function(e){if(e.type=="ERROR"){this.app.notice(e.message,"error")}else{this.createMarkNode.destroy();this.createAreaNode.destroy();if(this.explorer.view)this.explorer.view.reload();this.app.notice("处理成功","success")}}.bind(this))}});
|