MWF.xDesktop.requireApp("Template", "Explorer", null, false); MWF.xDesktop.requireApp("Attendance", "Explorer", null, false); MWF.xDesktop.requireApp("Selector", "package", null, false); MWF.xApplication.Attendance.ScheduleExplorer = new Class({ Extends: MWF.xApplication.Attendance.Explorer, Implements: [Options, Events], initialize: function(node, app, actions, options){ this.setOptions(options); this.app = app; this.path = "../x_component_Attendance/$ScheduleExplorer/"; this.cssPath = "../x_component_Attendance/$ScheduleExplorer/"+this.options.style+"/css.wcss"; this._loadCss(); this.actions = actions; this.node = $(node); this.initData(); if (!this.personActions) this.personActions = new MWF.xAction.org.express.RestActions(); }, loadView : function(){ this.view = new MWF.xApplication.Attendance.ScheduleExplorer.View(this.elementContentNode, this.app,this, this.viewData, this.options.searchKey ); this.view.load(); this.setContentSize(); }, createDocument: function(){ if(this.view)this.view._createDocument(); } }); MWF.xApplication.Attendance.ScheduleExplorer.View = new Class({ Extends: MWF.xApplication.Attendance.Explorer.View, _createItem: function(data){ return new MWF.xApplication.Attendance.ScheduleExplorer.Document(this.table, data, this.explorer, this); }, _getCurrentPageData: function(callback, count){ this.actions.listSchedule(function(json){ json.data=json.data.map(function (v) { v.signProxy = !v.signProxy?1:v.signProxy; return v; }); if (callback) callback(json); }); }, _removeDocument: function(documentData, all){ this.actions.deleteSchedule(documentData.id, function(json){ this.explorer.view.reload(); this.app.notice(this.app.lp.deleteDocumentOK, "success"); }.bind(this)); }, _createDocument: function(){ var schedule = new MWF.xApplication.Attendance.ScheduleExplorer.Schedule(this.explorer); schedule.create(); }, copyObject: function(obj){ if(typeof obj != 'object'){ return obj; } var newobj = new Object(null); for ( var attr in obj) { newobj[attr] = this.copyObject(obj[attr]); } return newobj; }, _openDocument: function( documentData ){ var data =this.copyObject(documentData); var schedule = new MWF.xApplication.Attendance.ScheduleExplorer.Schedule(this.explorer, data ); schedule.edit(); } }); MWF.xApplication.Attendance.ScheduleExplorer.Document = new Class({ Extends: MWF.xApplication.Attendance.Explorer.Document }); MWF.xApplication.Attendance.ScheduleExplorer.Schedule = new Class({ Extends: MWF.xApplication.Attendance.Explorer.PopupForm, options : { "width": 600, "height": 600, "hasTop" : true, "hasBottom" : true, "title" : MWF.xApplication.Attendance.LP.schedule.setSchedule, "draggable" : true, "closeAction" : true }, _createTableContent: function(){ var lp = this.app.lp.schedule; var signProxy = this.data.signProxy||1; var html = ""+ ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + ""+ " " + "
"; this.formTableArea.set("html",html); MWF.xDesktop.requireApp("Template", "MForm", function(){ debugger var ob = Object; this.form = new MForm( this.formTableArea, this.data, { style: "attendance", onPostLoad: function(){ // if(signProxy!=0&&signProxy!=1){ // if(signProxy==3) // this.options.height=670; // else // this.options.height=570; // } }.bind(this), isEdited : this.isEdited || this.isNew, itemTemplate : { unitName : { text: lp.unit, type : "org", orgType : "unit" }, signProxy : { text: lp.signProxy.name, type : "select" ,selectText:ob.values(lp.signProxy.select),selectValue:ob.keys(lp.signProxy.select),defaultValue: signProxy,style:{ // "width": "99%", // "border": "1px solid rgb(153, 153, 153)", // "border-radius": "3px", // "box-shadow": "rgb(204, 204, 204) 0px 0px 6px", // "min-height": "26px", // "overflow": "hidden" },event :{ "change":function(){ var signProxy = this.form.getItem("signProxy").getValue(); if(signProxy!="1"&&signProxy!="0"){ this.formTableArea.getElement("[lable=middayRestStartTime]").getParent().setStyle("display","table-row"); this.formTableArea.getElement("[lable=middayRestEndTime]").getParent().setStyle("display","table-row"); // var tempH = "570px"; if(signProxy=="3"){ this.formTableArea.getElement("[lable=leaveEarlyStartTimeMorning]").getParent().setStyle("display","table-row"); this.formTableArea.getElement("[lable=lateStartTimeAfternoon]").getParent().setStyle("display","table-row"); // tempH = "670px"; this.form.options.itemTemplate.lateStartTimeAfternoon.notEmpty=true; }else{ this.formTableArea.getElement("[lable=leaveEarlyStartTimeMorning]").getParent().setStyle("display","none"); this.formTableArea.getElement("[lable=lateStartTimeAfternoon]").getParent().setStyle("display","none"); this.form.options.itemTemplate.lateStartTimeAfternoon.notEmpty=false; } // this.formNode.setStyle("height",tempH); this.form.options.itemTemplate.middayRestStartTime.text=lp.signProxy[signProxy].middayRestStartTime; this.form.options.itemTemplate.middayRestEndTime.text=lp.signProxy[signProxy].middayRestEndTime; this.form.options.itemTemplate.middayRestStartTime.notEmpty=true; this.form.options.itemTemplate.middayRestEndTime.notEmpty=true; }else{ this.formTableArea.getElement("[lable=middayRestStartTime]").getParent().setStyle("display","none"); this.formTableArea.getElement("[lable=middayRestEndTime]").getParent().setStyle("display","none"); this.formTableArea.getElement("[lable=leaveEarlyStartTimeMorning]").getParent().setStyle("display","none"); this.formTableArea.getElement("[lable=lateStartTimeAfternoon]").getParent().setStyle("display","none"); // this.formNode.setStyle("height","500px"); this.form.options.itemTemplate.middayRestStartTime.notEmpty=false; this.form.options.itemTemplate.middayRestEndTime.notEmpty=false; this.form.options.itemTemplate.lateStartTimeAfternoon.notEmpty=false; } this.form.data[0].signProxy = signProxy; this.form.load(); }.bind(this) }}, onDutyTime : { text: lp.workTime, tType : "time",notEmpty:true }, middayRestStartTime:{ text: lp.signProxy["2"].middayRestStartTime, tType : "time",notEmpty:(signProxy!=0&&signProxy!=1)?true:false }, middayRestEndTime:{ text: lp.signProxy["2"].middayRestEndTime, tType : "time",notEmpty:(signProxy!=0&&signProxy!=1)?true:false }, offDutyTime : { text: lp.offTime, tType : "time",notEmpty:true }, lateStartTime : { text: lp.lateStartTime, tType : "time",notEmpty:true}, leaveEarlyStartTimeMorning : { text: lp.leaveEarlyStartTimeMorning, tType : "time"}, lateStartTimeAfternoon : { text: lp.lateStartTimeAfternoon, tType : "time",notEmpty:(signProxy!=0&&signProxy!=1)?true:false}, //leaveEarlyTime : { text:lp.leaveEarlyTime, tType : "time" }, leaveEarlyStartTime : { text:lp.leaveEarlyStartTime, tType : "time" }, absenceStartTime : { text:lp.absenteeismTime, tType : "time" } } }, this.app); this.form.load(); }.bind(this), true); }, _ok: function( data, callback ){ //checkDate debugger var dateList = []; var signProxy = data.signProxy; if(signProxy!=1){ dateList= [data.onDutyTime,data.middayRestStartTime,data.middayRestEndTime,data.offDutyTime]; }else{ dateList= [data.onDutyTime,data.offDutyTime]; } var D = Date.parse; for(var i=0;i"+ // "" + lp.setSchedule + "" + // "" + // ""+ // "" + lp.unit + ":" + // ""+ // (!this.isNew && !this.isEdited ? "" : // ("")) + // ""+ // "" + // ""+ // ""+ // (!this.isNew && !this.isEdited ? "" :("")) + // (!this.isNew && !this.isEdited ? "" :("")) + // //"注:不选择" + lp.unit + "则为默认排班"+ // ""+ // "" + // "" + // ""+lp.workTime+":" + // "" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "" + // "" + // "" + // ""+lp.offTime+":" + // "" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "" + // "" + // "" + // ""+lp.lateTime+":" + // "" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "" + // "" + // "" + // ""+lp.leaveEarlyTime+":" + // "" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "" + // "" + // "" + // ""+lp.absenteeismTime+":" + // "" + // (!this.isNew && !this.isEdited ? "" : // ("")) + // "" + // "" + // ""; // this.createFormNode.set("html", html); // // this.unit = this.createFormNode.getElement("#unit"); // this.workTime = this.createFormNode.getElement("#workTime"); // this.offTime = this.createFormNode.getElement("#offTime"); // this.lateTime = this.createFormNode.getElement("#lateTime"); // this.leaveEarlyTime = this.createFormNode.getElement("#leaveEarlyTime"); // this.absenteeismTime = this.createFormNode.getElement("#absenteeismTime"); // // this.createFormNode.getElement("#selUnit").addEvent("click",function(){ // _self.selectUnit(this,"d"); // }) // this.createFormNode.getElement("#selTopUnit").addEvent("click",function(){ // _self.selectUnit(this,"c"); // }) // // this.workTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.offTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.lateTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.leaveEarlyTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // this.absenteeismTime.addEvent("click",function(){ // _self.selectCalendar(this); // }) // // this.cancelActionNode = new Element("div", { // "styles": this.css.createCancelActionNode, // "text": this.app.lp.cancel // }).inject(this.createFormNode); // this.createOkActionNode = new Element("div", { // "styles": this.css.createOkActionNode, // "text": this.app.lp.ok // }).inject(this.createFormNode); // // this.cancelActionNode.addEvent("click", function(e){ // this.cancelCreate(e); // }.bind(this)); // this.createOkActionNode.addEvent("click", function(e){ // this.okCreate(e); // }.bind(this)); // }, // // setCreateNodeSize: function (width, height, top, left) { // if (!width)width = this.options && this.options.width ? this.options.width : "50%" // if (!height)height = this.options && this.options.height ? this.options.height : "50%" // if (!top) top = this.options && this.options.top ? this.options.top : 0; // if (!left) left = this.options && this.options.left ? this.options.left : 0; // // var allSize = this.app.content.getSize(); // var limitWidth = allSize.x; //window.screen.width // var limitHeight = allSize.y; //window.screen.height // // "string" == typeof width && (1 < width.length && "%" == width.substr(width.length - 1, 1)) && (width = parseInt(limitWidth * parseInt(width, 10) / 100, 10)); // "string" == typeof height && (1 < height.length && "%" == height.substr(height.length - 1, 1)) && (height = parseInt(limitHeight * parseInt(height, 10) / 100, 10)); // 300 > width && (width = 300); // 220 > height && (height = 220); // top = top || parseInt((limitHeight - height) / 2, 10); // left = left || parseInt((limitWidth - width) / 2, 10); // // this.createAreaNode.setStyles({ // "width": "" + width + "px", // "height": "" + height + "px", // "top": "" + top + "px", // "left": "" + left + "px" // }); // // this.createNode.setStyles({ // "width": "" + width + "px", // "height": "" + height + "px" // }); // // var iconSize = this.createIconNode ? this.createIconNode.getSize() : {x: 0, y: 0}; // var topSize = this.formTopNode ? this.formTopNode.getSize() : {x: 0, y: 0}; // var bottomSize = this.formBottomNode ? this.formBottomNode.getSize() : {x: 0, y: 0}; // // var contentHeight = height - iconSize.y - topSize.y - bottomSize.y; // //var formMargin = formHeight -iconSize.y; // this.createFormNode.setStyles({ // "height": "" + contentHeight + "px" // }); // }, // cancelCreate: function(e){ // var _self = this; // var unit = this.unit.get("value"); // if ( this.isNew && unit!="" && unit!="default" ){ // this.app.confirm("warn", e, // this.app.lp.create_cancel_title, // this.app.lp.create_cancel, "320px", "100px", // function(){ // _self.createMarkNode.destroy(); // _self.createAreaNode.destroy(); // this.close(); // },function(){ // this.close(); // } // ); // }else{ // this.createMarkNode.destroy(); // this.createAreaNode.destroy(); // delete _self; // } // }, // okCreate: function(e){ // var data = { // "id" : (this.data && this.data.id) ? this.data.id : null, // "unitName": this.unit.get("value"), // "onDutyTime": this.workTime.get("value"), // "offDutyTime": this.offTime.get("value"), // "lateStartTime": this.lateTime.get("value"), // "leaveEarlyStartTime": this.leaveEarlyTime.get("value"), // "absenceStartTime": this.absenteeismTime.get("value") // }; // // if (data.onDutyTime && data.offDutyTime && data.lateStartTime ){ // this.app.restActions.saveSchedule(data, function(json){ // if( json.type == "ERROR" ){ // this.app.notice( json.message , "error"); // }else{ // this.createMarkNode.destroy(); // this.createAreaNode.destroy(); // if(this.explorer.view)this.explorer.view.reload(); // this.app.notice( this.isNew ? this.app.lp.createSuccess : this.app.lp.updateSuccess , "success"); // } // // this.app.processConfig(); // }.bind(this)); // }else{ // this.app.notice( "请选择上班打卡时间、下班打卡时间和迟到起算时间", "error"); // } // }, // selectCalendar : function( calendarNode ){ // MWF.require("MWF.widget.Calendar", function(){ // var calendar = new MWF.widget.Calendar( calendarNode, { // "style": "xform", // "timeOnly": true, // "isTime": true, // "target": this.app.content // }); // calendar.show(); // }.bind(this)); // }, // selectUnit: function(el, type ){ // var options = { // "type": type == "d" ? "unit" : "topUnit", // "title": type == "d" ? "选择部门" : "选择公司", // "values": this.data.unit || [], // "count" : "1", // "onComplete": function(items){ // this.data.unit = []; // items.each(function(item){ // this.data.unit.push(item.data.name); // }.bind(this)); // this.unit.set("value",this.data.unit); // }.bind(this) // }; // var selector = new MWF.O2Selector(this.app.content, options); // } //});