ImportExplorer.min.js 11 KB

1
  1. MWF.xDesktop.requireApp("Attendance","Explorer",null,false);MWF.xDesktop.requireApp("Template","Explorer",null,false);MWF.xDesktop.requireApp("Template","MDomItem",null,false);MWF.xDesktop.requireApp("Organization","Selector.package",null,false);MWF.xApplication.Attendance.ImportExplorer=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/$ImportExplorer/";this.cssPath="/x_component_Attendance/$ImportExplorer/"+this.options.style+"/css.wcss";this._loadCss();this.actions=i;this.node=$(e);this.initData();if(!this.personActions)this.personActions=new MWF.xAction.org.express.RestActions},loadView:function(){this.view=new MWF.xApplication.Attendance.ImportExplorer.View(this.elementContentNode,this.app,this,this.viewData,this.options.searchKey);this.view.load();this.setContentSize()},createDocument:function(){if(this.view)this.view._createDocument()},importExcel:function(){this.importer=new MWF.xApplication.Attendance.ImportExplorer.Importer(this);this.importer.upload()},checkData:function(){var e=new MWF.xApplication.Attendance.ImportExplorer.YearMonthSelctor(this);e.edit()},analyseData:function(){this.actions.analyseDetail("0","0",function(){this.app.notice("分析考勤数据成功","success")}.bind(this))},staticData:function(){this.actions.staticAllDetail(function(){this.app.notice("统计考勤数据成功","success")}.bind(this))},downloadTemplate:function(){window.open(this.path+encodeURIComponent("dataTemplate.xls"),"_blank")},showDescription:function(e){if(this.descriptionNode){this.descriptionNode.setStyle("display","block");this.descriptionNode.position({relativeTo:e,position:"bottomLeft",edge:"upperCenter",offset:{x:-60,y:0}})}else{this.descriptionNode=new Element("div",{styles:this.css.descriptionNode}).inject(this.node);this.descriptionNode.position({relativeTo:e,position:"bottomLeft",edge:"upperCenter",offset:{x:-60,y:0}});this.descriptionNode.addEvent("mousedown",function(e){e.stopPropagation()});document.body.addEvent("mousedown",function(){this.descriptionNode.setStyle("display","none")}.bind(this));var t=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",styles:this.css.filterTable,class:"filterTable"}).inject(this.descriptionNode);var i=new Element("tr").inject(t);new Element("td",{text:"数据导入步骤",styles:this.css.descriptionTdHead}).inject(i);var i=new Element("tr").inject(t);new Element("td",{text:"1、下载Excel模板,根据模板格式填写考勤数据;",styles:this.css.descriptionTdValue}).inject(i);var i=new Element("tr").inject(t);new Element("td",{text:"2、点击导入考勤数据按钮,选择考勤数据并确定,系统将校验考勤数据是否正确并导入数据;",styles:this.css.descriptionTdValue}).inject(i);var i=new Element("tr").inject(t);new Element("td",{text:"3、点击核对考勤数据按钮,选择需要核对的年度和月份,系统将核对需要考勤的人员的数据;",styles:this.css.descriptionTdValue}).inject(i);var i=new Element("tr").inject(t);new Element("td",{text:"4、点击分析考勤数据按钮,系统将生成出勤明细数据;",styles:this.css.descriptionTdValue}).inject(i);var i=new Element("tr").inject(t);new Element("td",{text:"5、点击统计考勤数据按钮,系统将生成个人、部门、公司的出勤率统计。",styles:this.css.descriptionTdValue}).inject(i)}}});MWF.xApplication.Attendance.ImportExplorer.View=new Class({Extends:MWF.xApplication.Attendance.Explorer.View,_createItem:function(e){return new MWF.xApplication.Attendance.ImportExplorer.Document(this.table,e,this.explorer,this)},_getCurrentPageData:function(e,t){this.actions.listAttachmentInfo(function(t){if(e)e(t)})},_removeDocument:function(e,t){this.actions.deleteAttachment(e.id,function(e){this.explorer.view.reload();this.app.notice(this.app.lp.deleteDocumentOK,"success")}.bind(this))},_createDocument:function(){},_openDocument:function(e){this.actions.getAttachmentStream(e.id)}});MWF.xApplication.Attendance.ImportExplorer.Document=new Class({Extends:MWF.xApplication.Attendance.Explorer.Document,openVaild:function(e){}});MWF.xApplication.Attendance.ImportExplorer.YearMonthSelctor=new Class({Extends:MWF.xApplication.Attendance.Explorer.PopupForm,_createTableContent:function(){var e="<table width='100%' bordr='0' cellpadding='5' cellspacing='0' styles='formTable'>"+"<tr><td colspan='2' styles='formTableHead'>选择核对月份</td></tr>"+"<tr><td styles='formTabelTitle' lable='cycleYear'></td>"+" <td styles='formTableValue' item='cycleYear'></td></tr>"+"<tr><td styles='formTabelTitle' lable='cycleMonth'></td>"+" <td styles='formTableValue' item='cycleMonth'></td></tr>"+"</table>";this.formTableArea.set("html",e);MWF.xDesktop.requireApp("Template","MForm",function(){this.form=new MForm(this.formTableArea,{},{isEdited:this.isEdited||this.isNew,itemTemplate:{cycleYear:{text:"年度",type:"select",selectValue:function(){var e=[];d=new Date;for(var t=0;t<5;t++){e.push(d.getFullYear());d.setFullYear(d.getFullYear()-1)}return e}},cycleMonth:{text:"月份",type:"select",defaultValue:function(){return(new Date).getMonth()},selectValue:["1","2","3","4","5","6","7","8","9","10","11","12"]}}},this.app);this.form.load()}.bind(this),true)},_ok:function(e,t){this.app.restActions.checkDetail(e.cycleYear,e.cycleMonth,function(e){this.app.notice("考勤数据核对成功");this.close()}.bind(this))}});MWF.xApplication.Attendance.ImportExplorer.Importer=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.actions=this.explorer.actions;this.load()},load:function(){},_openCheckPage:function(){this.checkMarkNode=new Element("div",{styles:this.css.checkMarkNode,events:{mouseover:function(e){e.stopPropagation()},mouseout:function(e){e.stopPropagation()}}}).inject(this.app.content,"after");this.checkAreaNode=new Element("div",{styles:this.css.checkAreaNode});this.createNode();this.checkAreaNode.inject(this.checkMarkNode,"after");this.checkAreaNode.fade("in");this.setCheckNodeSize();this.setCheckNodeSizeFun=this.setCheckNodeSize.bind(this);this.addEvent("resize",this.setCheckNodeSizeFun)},createNode:function(){var e=this;this.checkNode=new Element("div",{styles:this.css.checkNode}).inject(this.checkAreaNode);this.closeCheckNode=new Element("div",{styles:this.css.closeCheckNode}).inject(this.checkNode);this.closeCheckNode.addEvent("click",function(){this.closeLayout()}.bind(this));this.checkFormNode=new Element("div",{styles:this.css.checkFormNode}).inject(this.checkNode);var t=this.app.lp.importer;this.checkFormTitleNode=new Element("div",{styles:this.css.checkFormTitleNode,text:"考勤数据导入校验结果"}).inject(this.checkFormNode);this.checkFormDescriptionNode=new Element("div",{styles:this.css.checkFormDescriptionNode,text:"您上传的文件:“"+this.uploadFileName+"”未通过校验,请修改后重新导入。"}).inject(this.checkFormNode);this.checkTableContainer=new Element("div",{styles:this.css.checkTableContainer}).inject(this.checkFormNode);this.checkTableArea=new Element("div",{styles:this.css.checkTableArea}).inject(this.checkTableContainer);if(this.checkData.checkStatus!="error"){}else{var i=new Element("table",{width:"100%",border:"",cellpadding:"5",cellspacing:"0",styles:this.css.editTable,class:"editTable"}).inject(this.checkTableArea);var s=new Element("tr").inject(i);var n=new Element("td",{styles:this.css.editTableTitle,text:"员工号"}).inject(s);var n=new Element("td",{styles:this.css.editTableTitle,text:"员工名字"}).inject(s);var n=new Element("td",{styles:this.css.editTableTitle,text:"日期"}).inject(s);var n=new Element("td",{styles:this.css.editTableTitle,text:"上班时间"}).inject(s);var n=new Element("td",{styles:this.css.editTableTitle,text:"下班时间"}).inject(s);var n=new Element("td",{styles:this.css.editTableTitle,text:"检查结果"}).inject(s);var n=new Element("td",{styles:this.css.editTableTitle,text:"描述"}).inject(s);n.setStyle("width","300px");this.checkData.detailList.each(function(e){var t=new Element("tr").inject(i);var s=new Element("td",{styles:this.css.editTableValue,text:e.employeeNo}).inject(t);var s=new Element("td",{styles:this.css.editTableValue,text:e.employeeName}).inject(t);var s=new Element("td",{styles:this.css.editTableValue,text:e.recordDateString}).inject(t);var s=new Element("td",{styles:this.css.editTableValue,text:e.onDutyTime}).inject(t);var s=new Element("td",{styles:this.css.editTableValue,text:e.offDutyTime}).inject(t);var s=new Element("td",{styles:this.css.editTableValue,text:e.checkStatus=="error"?"错误":"正确"}).inject(t);var s=new Element("td",{styles:this.css.editTableValue,text:e.description}).inject(t)}.bind(this))}this.setScrollBar(this.checkTableContainer)},setCheckNodeSize:function(){var e=this.app.node.getSize();var t=this.app.content.getSize();this.checkAreaNode.setStyles({width:""+e.x+"px",height:""+e.y+"px"});var i=e.y*.9;var s=e.y*.2/2;this.checkNode.setStyles({height:""+i+"px","margin-top":""+s+"px"});var n=i*.95;if(n<250)n=250;this.checkFormNode.setStyles({height:""+n+"px"});var c=this.checkFormTitleNode.getSize();var o=this.checkFormDescriptionNode.getSize();var a=n-c.y-o.y-50;this.checkTableContainer.setStyles({height:""+a+"px"})},closeLayout:function(e){this.checkMarkNode.destroy();this.checkAreaNode.destroy();delete this},upload:function(){if(!this.uploadFileAreaNode){this.uploadFileAreaNode=new Element("div");var e='<input name="file" type="file"/>';this.uploadFileAreaNode.set("html",e);this.fileUploadNode=this.uploadFileAreaNode.getFirst();this.fileUploadNode.addEvent("change",function(){var e=t.files;if(e.length){for(var i=0;i<e.length;i++){var s=e.item(i);var n=s.name.split(".");this.uploadFileName=s.name;if(n[n.length-1].toLowerCase()!="xls"&&n[n.length-1].toLowerCase()!="xlsx"){this.app.notice("请导入excel文件!","error");return}var c=new FormData;c.append("file",s);this.actions.uploadAttachment(function(e){var t=e.id;this.actions.checkAttachment(t,function(e){this.checkData=e.data;if(this.checkData.checkStatus=="error"){this._openCheckPage()}else{this.app.notice("文件已经成功上传并通过校验,系统正在导入,请不要关闭页面!","success");this.import(t)}}.bind(this))}.bind(this),function(e,t,i){var s=i;if(e)s=e.responseText;this.app.notice(s,"error")}.bind(this),c,s)}}}.bind(this))}var t=this.uploadFileAreaNode.getFirst();t.click()},import:function(e){this.actions.importAttachment(e,function(e){if(e.type=="ERROR"){this.app.notice(e.message,"error")}else{this.app.notice("数据导入成功!","success")}}.bind(this))}});