MWF.xApplication.Execution = MWF.xApplication.Execution || {}; MWF.xDesktop.requireApp("Template", "Explorer", null, false); MWF.xDesktop.requireApp("Template", "MForm", null, false); MWF.xDesktop.requireApp("Execution","Attachment",null,false); MWF.xDesktop.requireApp("Execution","ReportAttachment",null,false); MWF.xApplication.Execution.WorkReport = new Class({ Extends: MWF.xApplication.Template.Explorer.PopupForm, Implements: [Options, Events], options: { "style": "default", "width": "100%", "height": "100%", "hasTop": true, "hasIcon": false, "hasBottom": true, "title": "", "draggable": false, "closeAction": true, "isNew": false, "isEdited": true }, initialize: function (explorer, actions, data, options) { this.setOptions(options); this.explorer = explorer; this.app = explorer.app; this.lp = this.app.lp.WorkReport; this.actions = this.app.restActions; this.path = "/x_component_Execution/$WorkReport/"; this.cssPath = this.path + this.options.style + "/css.wcss"; this._loadCss(); this.options.title = this.lp.title; this.data = data || {}; this.actions = actions; }, load: function () { if (this.options.isNew) { this.create(); } else if (this.options.isEdited) { this.edit(); } else { this.open(); } }, reload:function(data){ }, createTopNode: function () { if (!this.formTopNode) { this.formTopNode = new Element("div.formTopNode", { "styles": this.css.formTopNode }).inject(this.formNode); this.formTopIconNode = new Element("div", { "styles": this.css.formTopIconNode }).inject(this.formTopNode) this.formTopTextNode = new Element("div.formTopTextNode", { "styles": this.css.formTopTextNode, "text": this.lp.topTitle + ( this.data.title ? ("-" + this.data.title ) : "" ) }).inject(this.formTopNode) if (this.options.closeAction) { this.formTopCloseActionNode = new Element("div", {"styles": this.css.formTopCloseActionNode}).inject(this.formTopNode); this.formTopCloseActionNode.addEvent("click", function () { this.close() }.bind(this)) } this.formTopContentNode = new Element("div", { "styles": this.css.formTopContentNode }).inject(this.formTopNode) this._createTopContent(); } }, _createTopContent: function () { }, createContent: function () { this.formContentNode = new Element("div.formContentNode", { "styles": this.css.formContentNode }).inject(this.formNode); this.formTableContainer = new Element("div.formTableContainer", { "styles": this.css.formTableContainer }).inject(this.formContentNode); this.formTableArea = new Element("div.formTableArea", { "styles": this.css.formTableArea }).inject(this.formTableContainer); this.reportLinksDiv = new Element("div.reportLinksDiv",{ "styles":this.css.reportLinksDiv, "text":this.lp.reportLinks }).inject(this.formTableArea) .addEvents({ "click":function(){ this.createPrevReport(); }.bind(this) }) this.titleDiv = new Element("div.titleDiv",{ "styles":this.css.titleDiv, "text":this.lp.topTitle + ( this.data.title ? ("-" + this.data.title ) : "" ), "title":this.lp.topTitle + ( this.data.title ? ("-" + this.data.title ) : "" ) }).inject(this.formTableArea) this.centerWorkDiv = new Element("div.centerWorkDiv",{"styles":this.css.centerWorkDiv}).inject(this.formTableArea); this.centerWorkTitleDiv = new Element("div.centerWorkTitleDiv",{ "styles":this.css.tabTitleDiv, "text":this.lp.title }).inject(this.centerWorkDiv); this.tableContentDiv = new Element("div.tableContentDiv").inject(this.formTableArea); if(this.options.workReportId){ this.workReportId = this.options.workReportId; } this.workId = this.data.workId; this.processStatus = ""; this.processIdentity = ""; if(this.options.from && this.options.from == "drafter"){ this.actions.workReportDrafter(this.data.workId, function( json ){ if(json.type && json.type=="success"){ this.workReportData = json.data; if(json.data.id){ this.workReportId = json.data.id; } if(json.data.currentProcessorIdentity){ this.processIdentity = json.data.currentProcessorIdentity } if(json.data.processStatus){ this.processStatus = json.data.processStatus } } }.bind(this),null,false); }else{ //不是草稿的 直接获取this.data信息 this.actions.getWorkReport(this.data.workReportId,function(json){ //alert(JSON.stringify(json)) if(json.type=="success"){ this.workReportData = json.data; if(json.data.id){ this.workReportId = json.data.id } } }.bind(this),null,false) if(this.workReportData.currentProcessorIdentity){ this.processIdentity = this.workReportData.currentProcessorIdentity } if(this.workReportData.processStatus){ this.processStatus = this.workReportData.processStatus } } //alert("workreportData="+JSON.stringify(this.workReportData)) //获取工作信息 if(this.data.workId){ this.actions.getTask(this.workId, function(json){ if(json.data){ this.workData = json.data; } }.bind(this),null,false) } //alert("this.workReportId="+this.workReportId) //alert("this.workId="+this.workId) //获取具体工作详细信息 if(this.data.workId){ this.actions.getBaseWorkDetails(this.workId, function (json) { this.workData.workSplitAndDescription = json.data.workDetail this.workData.specificActionInitiatives = json.data.progressAction this.workData.cityCompanyDuty = json.data.dutyDescription this.workData.milestoneMark = json.data.landmarkDescription this.workData.importantMatters = json.data.majorIssuesDescription }.bind(this),null,false) } this._createTableContent(); if(this.workReportData.title){ this.titleDiv.set("text",this.workReportData.title.length>50?this.workReportData.title.substr(0,50)+"...":this.workReportData.title) this.titleDiv.set("title",this.workReportData.title) } //委派记录 if(this.workData.okrWorkAuthorizeRecords){ this.appointContentDiv = new Element("div.appointContentDiv",{ "styles":this.css.appointContentDiv }).inject(this.formTableArea) this.appointContentTitleDiv = new Element("div.appointContentTitleDiv",{ "styles":this.css.tabTitleDiv, "text":this.lp.appointTitle }).inject(this.appointContentDiv); this.appointContentInfor = new Element("div.appointContentInfor",{ "styles": this.css.appointContentInfor }).inject(this.appointContentDiv); this.workData.okrWorkAuthorizeRecords.each(function(d){ var ttext = d.delegatorName+this.lp.appointFor+ d.targetName ttext += "("+ d.delegateDateTime+") " ttext += "委派意见:" + d.delegateOpinion this.appointRecordDiv = new Element("div.appointRecordDiv",{ "styles":this.css.appointRecordDiv, "text": ttext }).inject(this.appointContentInfor) }.bind(this)) } //判断状态 如果草稿并且当前人是拟稿人,显示contentTextarea1,contentTextarea2 编辑状态 其他只读 //当前秘书状态、并且当前人是秘书 contentTextarea3 编辑,其他只读 //当前领导、并且当前人领导(当前处理人):contentTextarea4编辑 其他只读 //拟稿人填写 this.reportContentDiv = new Element("div.centerWorkDiv",{"styles":this.css.reportContentDiv}).inject(this.formTableArea); this.reportContentTitleDiv = new Element("div.reportContentTitleDiv",{ "styles":this.css.tabTitleDiv, "text":this.lp.reportContentTitle }).inject(this.reportContentDiv); this.reportContentInfor = new Element("div.reportContentInfor",{ "styles": this.css.reportContentInfor }).inject(this.reportContentDiv); this.contentTitle1 = new Element("div.contentTitle1",{ "styles":this.css.contentTitle, "text":this.lp.contentTitle1 + ":" }).inject(this.reportContentInfor); if(this.workReportData.processStatus == this.lp.activityName.drafter && this.workReportData.isReporter){ this.contentTextarea1 = new Element("textarea.contentTextarea1",{ "styles":this.css.contentTextarea, "text" : this.workReportData.progressDescription?this.workReportData.progressDescription:"" }).inject(this.reportContentInfor); }else{ this.contentTextStr1 = new Element("div.contentTextStr1",{ "styles": this.css.contentTextStr, "text" : this.workReportData.progressDescription?this.workReportData.progressDescription:"" }).inject(this.reportContentInfor) } this.contentTitle2 = new Element("div.contentTitle2",{ "styles":this.css.contentTitle, "text":this.lp.contentTitle2 + ":" }).inject(this.reportContentInfor); if(this.workReportData.processStatus == this.lp.activityName.drafter && this.workReportData.isReporter){ this.contentTextarea2 = new Element("textarea.contentTextarea2",{ "styles":this.css.contentTextarea, "text" : this.workReportData.workPlan?this.workReportData.workPlan:"" }).inject(this.reportContentInfor); }else{ this.contentTextStr2 = new Element("div.contentTextStr2",{ "styles" : this.css.contentTextStr, "text" : this.workReportData.workPlan?this.workReportData.workPlan:"" }).inject(this.reportContentInfor) } this.reportAttachment = new Element("div.reportAttachment",{ "item":"reportAttachments" }).inject(this.reportContentInfor) this.reportAttachment.setStyles({"width":"95%"}) var isUpload = false if(this.workReportData.processStatus == this.lp.activityName.drafter && this.workReportData.isReporter){ isUpload = true } this.reportAttachmentArea = this.formTableArea.getElement("[item='reportAttachments']"); this.loadReportAttachment( this.reportAttachmentArea,isUpload ); //获取秘书及领导评价信息 var opinionData = {}; opinionData.workReportId = ""; //this.actions.getWorkReportOpinion(); //管理员填写 if(this.workReportData.needAdminAudit){ this.createAdminContent(); } //领导填写,在草稿和督办员环节不显示 if(this.workReportData && (this.workReportData.activityName != this.lp.activityName.drafter && this.workReportData.activityName != this.lp.activityName.manager)){ this.reportContentDiv = new Element("div.centerWorkDiv",{"styles":this.css.reportContentDiv}).inject(this.formTableArea); this.reportContentTitleDiv = new Element("div.reportContentTitleDiv",{ "styles":this.css.tabTitleDiv, "text":this.lp.leaderContentTitle }).inject(this.reportContentDiv); this.reportContentInfor = new Element("div.reportContentInfor",{ "styles": this.css.reportContentInfor }).inject(this.reportContentDiv); this.getLeaderOpinions(); if(this.workReportData.processStatus == this.lp.activityName.leader && this.workReportData.isReadLeader && this.processIdentity.indexOf(this.app.identity)>-1){ this.contentTextarea4 = new Element("textarea.contentTextarea4",{ "styles":this.css.contentTextarea, "text" : this.leaderOpinionDrafter?this.leaderOpinionDrafter:"" }).inject(this.reportContentInfor); }else{ //if(this.workReportData.reportWorkflowType && this.workReportData.reportWorkflowType == "DEPLOYER"){ // //一对一,上下级 // this.contentTextStr4 = new Element("div.contentTextStr4",{ // "styles": this.css.contentTextStr, // "text":"意见" // }).inject(this.reportContentInfor) //}else{ // this.getLeaderOpinions(); //} } } //权限控制,如果已归档,则输入框去掉 if(this.workReportData && this.workReportData.status == this.lp.statuArchive){ if(this.contentTextarea1)this.contentTextarea1.destroy(); if(this.contentTextarea2)this.contentTextarea2.destroy(); if(this.contentTextarea3)this.contentTextarea3.destroy(); if(this.contentTextarea4)this.contentTextarea4.destroy(); } }, getLeaderOpinions: function(){ //获取领导意见 var logs = this.workReportData.processLogs; this.leaderTitle = []; this.leaderValue = []; if(logs){ logs.each(function(data){ if(data.activityName == this.lp.activityName.leader && data.processStatus == this.lp.status.drafter && data.processorIdentity == this.app.identity){ this.leaderOpinionDrafter = data.opinion }else{ if(data.activityName == this.lp.activityName.leader && data.processStatus == this.lp.status.effect){ this.leaderTitle.push(data.processorIdentity+"("+data.processTimeStr+")"); this.leaderValue.push(data.opinion ) } } }.bind(this)) } //领导意见显示区域 this.reportLeaderOpinionsDiv = new Element("div.reportLeaderOpinionsDiv",{ "styles":this.css.reportLeaderOpinionsDiv }).inject(this.reportContentInfor); for(var i=0;i"+ " " + " " + " " + " " + " " + " " + ""+ ""+ " " + " " + " " + " " + " " + " " + ""+ ""+ " " + " " + " " + " " + " " + " " + ""+ //""+ //" " + //" " + //""+ ""+ "
"+ ""+ ""+ " " + " " + ""+ ""+ " " + " " + ""+ ""+ " " + " " + ""+ ""+ " "+ ""+ ""+ "" this.tableContentDiv.set("html", html); this.expandDiv = this.tableContentDiv.getElementById("expandIcon"); this.foldDiv = this.tableContentDiv.getElementById("foldIcon"); this.workDetailsTab = this.tableContentDiv.getElementById("workDetails") if(this.expandDiv){ this.expandDiv.addEvents({ "click":function(){ if(this.workDetailsTab) this.workDetailsTab.setStyle("display",""); this.expandDiv.setStyle("display","none"); this.foldDiv.setStyle("display",""); }.bind(this) }) } if(this.foldDiv){ this.foldDiv.addEvents({ "click":function(){ if(this.workDetailsTab) this.workDetailsTab.setStyle("display","none"); this.expandDiv.setStyle("display",""); this.foldDiv.setStyle("display","none"); }.bind(this) }) } this.loadForm(); }, loadForm: function(){ this.form = new MForm(this.formTableArea, this.workData, { style: "execution", isEdited: this.isEdited || this.isNew, itemTemplate: this.getItemTemplate(this.lp ) },this.app); this.form.load(); this.attachmentArea = this.formTableArea.getElement("[item='attachments']"); this.loadAttachment( this.attachmentArea ); }, getItemTemplate: function( lp ){ _self = this; return { workType: { text: lp.workType + ":", selectValue: lp.workTypeValue.split(",") }, workLevel: { text: lp.workLevel + ":", type: "select", notEmpty:true, selectValue: lp.workLevelValue.split(",") }, timeLimit: {text: lp.timeLimit + ":", tType: "date",name:"completeDateLimitStr",notEmpty:true}, reportCycle: { text: lp.reportCycle + ":", type: "select", notEmpty:true, //selectValue: lp.reportCycleValue.split(","), selectText: lp.reportCycleText.split(","), className: "inputSelectUnformatWidth", event: { change: function (item, ev) { if (item.get("value") == lp.reportCycleText.split(",")[0]) { this.form.getItem("reportDay").resetItemOptions(lp.weekDayValue.split(","),lp.weekDayText.split(",")) } else if (item.get("value") == lp.reportCycleText.split(",")[1]) { this.form.getItem("reportDay").resetItemOptions(lp.monthDayValue.split(","),lp.monthDayText.split(",")) } }.bind(this) } }, reportDay: { type: "select", name:"reportDayInCycle", notEmpty:true, aa:function(){}.bind(this), selectValue: (!this.data.reportCycle || this.data.reportCycle==lp.reportCycleText.split(",")[0])?lp.weekDayValue.split(","):lp.monthDayValue.split(","), //lp.weekDayValue.split(","), selectText: (!this.data.reportCycle || this.data.reportCycle==lp.reportCycleText.split(",")[0])?lp.weekDayText.split(","):lp.monthDayText.split(","), className: "inputSelectUnformatWidth" }, dutyDepartment: {text: lp.dutyDepartment + ":", tType: "department",name:"responsibilityOrganizationName",notEmpty:true,event:{ "change":function(item){ var department = item.getValue(); if( department ){ _self.getDepartmentLeader( department, function( leader ){ _self.form.getItem("dutyPerson").setValue(leader); }) } } }}, dutyPerson: {text: lp.dutyPerson + ":", tType: "identity",count:1,name:"responsibilityIdentity",notEmpty:true}, secondDepartment: {text: lp.secondDepartment + ":", tType: "department",name:"cooperateOrganizationName", count: 0,event:{ "change":function(item){ var deptstr = item.getValue(); if(deptstr){ var depts = deptstr.split(","); var users = "" for(var i=0;i-1) { this.submitActionNode = new Element("div.submitActionNode", { "styles": this.css.formCancelActionNode, "text": this.lp.bottomAction.submit }).inject(this.formBottomNode) .addEvents({ "click": function () { this.submit(); }.bind(this) }) } if(this.processIdentity == this.app.identity || this.processIdentity.indexOf(this.app.identity)>-1) { this.saveActionNode = new Element("div.saveActionNode", { "styles": this.css.formCancelActionNode, "text": this.lp.bottomAction.save }).inject(this.formBottomNode) .addEvents({ "click": function () { this.save(); }.bind(this) }) } if(this.options.isRead){ this.readActionNode = new Element("div.readActionNode", { "styles": this.css.formCancelActionNode, "text": this.lp.bottomAction.readDone }).inject(this.formBottomNode); this.readActionNode.addEvent("click", function (e) { this.readDone(e); }.bind(this)); } this.cancelActionNode = new Element("div.formCancelActionNode", { "styles": this.css.formCancelActionNode, "text": this.lp.bottomAction.close }).inject(this.formBottomNode); this.cancelActionNode.addEvent("click", function (e) { this.cancel(e); }.bind(this)); //控制按钮权限 //如果已归档,则只留下关闭按钮 if (this.workReportData && this.workReportData.status == this.lp.statuArchive) { if(this.submitActionNode)this.submitActionNode.destroy(); if(this.saveActionNode)this.saveActionNode.destroy(); if(this.readActionNode)this.readActionNode.destroy(); } } });