WorkMinder.min.js 13 KB

1
  1. MWF.xApplication.Execution=MWF.xApplication.Execution||{};MWF.xDesktop.requireApp("Template","Explorer",null,false);MWF.xDesktop.requireApp("Template","MForm",null,false);MWF.xDesktop.requireApp("Execution","Minder",null,false);MWF.xDesktop.requireApp("Execution","WorkDeploy",null,false);MWF.xApplication.Execution.WorkMinder=new Class({Extends:MWF.xApplication.Template.Explorer.PopupForm,Implements:[Options,Events],options:{style:"default",template:"default",theme:"fresh-blue-compat",width:"100%",height:"100%",hasTop:true,hasTopIcon:true,hasTopContent:true,hasIcon:false,hasBottom:false,hasScroll:false,title:"脑图展现",draggable:false,closeAction:true},initialize:function(t,e,i){this.setOptions(i);this.app=t.app;this.lp=this.app.lp;this.actions=this.app.restActions;this.explorer=t;this.path="/x_component_Execution/$WorkMinder/";this.cssPath=this.path+this.options.style+"/css.wcss";this._loadCss();this.options.title=this.lp.minderTitle+"-"+(e.title||"");this.data=e},load:function(t){this.open()},_open:function(){this.formMarkNode=new Element("div.formMarkNode",{styles:this.css.formMarkNode,events:{mouseover:function(t){t.stopPropagation()},mouseout:function(t){t.stopPropagation()}}}).inject(this.app.content);this.formAreaNode=new Element("div.formAreaNode",{styles:this.css.formAreaNode});this.formAreaNode.inject(this.formMarkNode,"after");this.formAreaNode.fade("in");this.createFormNode();this.refreshFun=this.refresh.bind(this);this.app.addEvent("resize",this.refreshFun);if(this.options.draggable&&this.formTopNode){var t=this.app.content.getSize();var e=this.formAreaNode.getSize();this.formAreaNode.makeDraggable({handle:this.formTopNode,limit:{x:[0,t.x-e.x],y:[0,t.y-e.y]}})}},destroy:function(){if(this.minder)this.minder.destroy();this.formMarkNode.destroy();this.formAreaNode.destroy();delete this},refresh:function(){this.setFormNodeSize();if(this.minder)this.minder.refresh()},reload:function(){if(this.minder)this.minder.destroy();this.formTableArea.empty();this._createTableContent()},_createTableContent:function(){this.setFormNodeSize();this.formTableArea.setStyles({width:"100%",height:"100%","background-color":"#fbfbfb"});this.listNestWork(function(t){this.createMinder(t)}.bind(this))},createMinder:function(t){this.minder=new MWF.xApplication.Execution.Minder(this.formTableArea,this.app,t,{hasNavi:false,onPostLoad:function(){this.minder.km.execCommand("ExpandToLevel",1);this.minder.loadNavi(this.formTableContainer)}.bind(this),onPostLoadNode:function(t){this.setMinderNode(t)}.bind(this)});this.minder.load()},listNestWork:function(t){this.actions.getUserMind(this.data.id,function(e){var i=this.transportData(e);if(t)t(i)}.bind(this))},transportData:function(t){var e=[];this.getNestData(t.data.works,e);var i={root:{data:this.data,children:e}};i.root.data.text=i.root.data.title.length>30?i.root.data.title.substr(0,30)+"...":i.root.data.title;i.root.data.note=" ";i.root.data.isCenterWork=true;return i},getNestData:function(t,e){t.each(function(t){var i={};if(t.subWorks){i.children=[];this.getNestData(t.subWorks,i.children)}i.data=t;if(t.subWorks)delete i.data.subWorks;i.data.text=t.title.length>20?t.title.substr(0,20)+"...":t.title;i.data.note=t.watch?" ":null;i.data.resource=this.getActions(i.data,i.children);e.push(i)}.bind(this))},setMinderNode:function(t){var e=this;if(!t.getData().watch){}else{var i=t.getRenderer("NoteIconRenderer").getRenderShape();if(i){i.addEventListener("mouseover",function(t){e.workInforTimer=setTimeout(function(){var t=this.getRenderBox("screen");e.showWorkInfor(this.getData(),t)}.bind(this),300)}.bind(t));i.addEventListener("mouseout",function(t){clearTimeout(e.workInforTimer);e.destroyWorkInfor()}.bind(t));i.addEventListener("click",function(t){e.openWork(this,this.getData());t.stopPropagation()}.bind(t))}var o=t.getRenderer("ResourceRenderer");if(o&&o.overlays&&o.overlays.length>0){o.overlays.forEach(function(i){i.addEventListener("click",function(t){var o={event:{x:t.originEvent.x,y:t.originEvent.y}};e.activeAction(i.lastResourceName,this.getData(),o);t.stopPropagation()}.bind(t))})}var r=t.getRenderContainer().node;r.addEventListener("dblclick",function(t){e.openWork(this,this.getData())}.bind(t))}},getActions:function(t,e){var i=[];return i;if(t.workProcessStatus==this.lp.WorkDeploy.statusDraft){if(this.app.identity==t.deployerIdentity){i.push("删除")}}else{if((!e||e.length==0)&&this.app.identity==t.deployerIdentity){i.push("删除")}if(t.responsibilityIdentity==this.app.identity){i.push("汇报");i.push("拆分")}}return i},activeAction:function(t,e,i){if(t=="删除"){this.removeWork(e,i)}else if(t=="汇报"){this.reportWork(e)}else if(t=="拆分"){this.splitWork(e)}},openWork:function(t,e){if(e.isCenterWork){this.openCenterWork(t,e)}else{this.openBaseWork(t,e)}},openCenterWork:function(t,e){var i=e.processStatus==this.lp.WorkDeploy.statusDraft&&this.app.identity==e.deployerIdentity?true:false;this.workDeploy=new MWF.xApplication.Execution.WorkMinder.WorkDeploy(this,this.actions,{id:e.id},{isEdited:i,centerWorkId:e.id,onQueryClose:function(){if(this.workDeploy.contentChanged){this.reload()}}.bind(this)});this.workDeploy.load()},openBaseWork:function(t,e){if(e.workProcessStatus==this.lp.WorkDeploy.statusDraft){MWF.xDesktop.requireApp("Execution","WorkForm",null,false);var i=new MWF.xApplication.Execution.WorkForm(this.explorer,this.app.restActions,e,{isNew:false,isEdited:this.app.identity==e.deployerIdentity,onPostSave:function(){this.reload()}.bind(this)});i.load()}else{MWF.xDesktop.requireApp("Execution","WorkDetail",function(){var t=new MWF.xApplication.Execution.WorkDetail(this,this.app.restActions,e,{isNew:false,isEdited:false});t.load()}.bind(this))}},removeWork:function(t,e){var i=this.app.lp;var o=i.deleteDocument2.replace(/{title}/g,t.title);var r=this;this.readyRemove=true;this.app.confirm("warn",e,i.deleteDocumentTitle,o,350,120,function(){r._removeDocument(t);this.close()},function(){r.readyRemove=false;this.close()})},_removeDocument:function(t){if(t.isCenterWork){this.actions.deleteCenterWork(t.id,function(t){this.app.notice(this.app.lp.deleteDocumentOK,"success");this.reload()}.bind(this))}else{this.actions.deleteBaseWork(t.id,function(t){if(t.type&&t.type=="success"){this.app.notice(this.app.lp.deleteDocumentOK,"success");this.reload()}else{this.app.notice(t.data.message,"error")}}.bind(this))}},reportWork:function(t){MWF.xDesktop.requireApp("Execution","WorkReport",function(){var e={title:t.title,workId:t.id,centerId:t.centerId,parentWorkId:t.parentWorkId,workType:t.workType,workLevel:t.workLevel,completeDateLimitStr:t.completeDateLimitStr,completeDateLimit:t.completeDateLimit,reportCycle:t.reportCycle,responsibilityOrganizationName:t.responsibilityOrganizationName,responsibilityEmployeeName:t.responsibilityEmployeeName,responsibilityIdentity:t.responsibilityIdentity,cooperateOrganizationName:t.cooperateOrganizationName,cooperateEmployeeName:t.cooperateEmployeeName,cooperateIdentity:t.cooperateIdentity,readLeaderName:t.readLeaderName,readLeaderIdentity:t.readLeaderIdentity,reportDayInCycle:t.reportDayInCycle};var i=new MWF.xApplication.Execution.WorkReport(this,this.app.restActions,e,{isNew:false,isEdited:false,from:"drafter"});i.load()}.bind(this))},splitWork:function(t){MWF.xDesktop.requireApp("Execution","WorkForm",function(){var e={title:t.title,centerId:t.centerId,parentWorkId:t.id,workType:t.workType,workLevel:t.workLevel,completeDateLimitStr:t.completeDateLimitStr,completeDateLimit:t.completeDateLimit,reportCycle:t.reportCycle,reportDayInCycle:t.reportDayInCycle};var i=new MWF.xApplication.Execution.WorkForm(this,this.app.restActions,e,{isNew:false,isEdited:true,tabLocation:"myDo",onPostSave:function(){this.reload()}.bind(this),onPostDeploy:function(){this.reload()}.bind(this)});i.load()}.bind(this))},destroyWorkInfor:function(){if(this.inforNode){this.inforNode.destroy();this.inforNode=null}if(this.tooltip){this.tooltip.destroy();this.tooltip=null}},showWorkInfor:function(t,e){this.destroyWorkInfor();this.createInforNode(t,e)},setInforNodeCoondinates:function(t,e){var i=this.formTableContainer.getScroll();var o=this.formTableContainer.getSize();var r=t.getSize();var s;var n,a;if(e.left+10+r.x-i.x>o.x){s=e.left+50-r.x;n="right"}else{s=e.left+10;n="left"}var d;if(e.top+57+r.y-i.y>o.y){d=e.top-r.y-10;a="bottom"}else{d=e.top+e.height+10;a="top"}t.setStyles({left:s,top:d});this.inforBoxArrow=new Element("div",{styles:this.css.inforBoxArrow}).inject(this.inforNode);if(a=="top"){this.inforBoxArrow.setStyles({top:"-8px","background-position":"0px -18px"})}else{this.inforBoxArrow.setStyles({bottom:"-8px","background-position":"0px -28px"})}if(n=="left"){this.inforBoxArrow.setStyle("left","52px")}else{this.inforBoxArrow.setStyle("right","10px")}},createInforNode:function(t,e,i){this.inforNode=new Element("div",{styles:{"font-size":"12px",position:"absolute","z-index":"11","background-color":"#fff",border:"1px solid #aaa",padding:"10px","border-radius":"3px","box-shadow":"0px 0px 5px #aaa"}}).inject(this.formTableArea);this.inforNode.set("html",t.isCenterWork?this.getCenterWorkInforHtml(t):this.getSubWorkInforHtml(t));this.setInforNodeCoondinates(this.inforNode,e);if(i)i()},getSubWorkInforHtml:function(t){var e="font-weight:bold;";var i="";var o=this.lp.workForm;return"<table width='300' bordr='0' cellpadding='3' cellspacing='0' styles='formTable'>"+"<tr>"+" <td style='"+e+"' colspan='2'>"+t.title+"</td>"+"</tr><tr>"+" <td style='"+e+"' width='60px'>"+"状态"+":</td>"+" <td style='"+i+"' width='140px'>"+t.workProcessStatus+"</td>"+"</tr><tr>"+" <td style='"+e+"' width='60px'>"+o.workType+":</td>"+" <td style='"+i+"' width='140px'>"+t.workType+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.timeLimit+":</td>"+" <td style='"+i+"'>"+t.completeDateLimitStr+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.dutyDepartment+":</td>"+" <td style='"+i+"'>"+t.responsibilityOrganizationName+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.dutyPerson+":</td>"+" <td style='"+i+"'>"+t.responsibilityEmployeeName+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.secondDepartment+":</td>"+" <td style='"+i+"'>"+t.cooperateOrganizationName+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.secondPerson+":</td>"+" <td style='"+i+"'>"+t.cooperateEmployeeName+"</td>"+"</tr>"+"</table>"},getCenterWorkInforHtml:function(t){var e="font-weight:bold;";var i="";var o=this.lp;var r=t.description.length>50?t.description.substring(0,50)+"...":t.description;return"<table width='300' bordr='0' cellpadding='3' cellspacing='0' styles='formTable'>"+"<tr>"+" <td style='"+e+"' colspan='2'>"+t.title+"</td>"+"</tr><tr>"+" <td style='"+e+"' width='60px'>"+"状态"+":</td>"+" <td style='"+i+"' width='140px'>"+t.processStatus+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.workForm.workType+":</td>"+" <td style='"+i+"'>"+t.defaultWorkType+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.workForm.timeLimit+":</td>"+" <td style='"+i+"'>"+t.defaultCompleteDateLimitStr+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.baseWorkView.deployerName+":</td>"+" <td style='"+i+"'>"+t.deployerIdentity+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.WorkDeploy.draftDate+":</td>"+" <td style='"+i+"'>"+t.createTime+"</td>"+"</tr><tr>"+" <td style='"+e+"'>"+o.description+":</td>"+" <td style='"+i+"'>"+r+"</td>"+"</tr>"+"</table>"},setFormNodeSize:function(t,e,i,o){if(!t)t=this.options.width?this.options.width:"50%";if(!e)e=this.options.height?this.options.height:"50%";if(!i)i=this.options.top?this.options.top:0;if(!o)o=this.options.left?this.options.left:0;var r=this.app.content.getSize();var s=r.x;var n=r.y;"string"==typeof t&&(1<t.length&&"%"==t.substr(t.length-1,1))&&(t=parseInt(s*parseInt(t,10)/100,10));"string"==typeof e&&(1<e.length&&"%"==e.substr(e.length-1,1))&&(e=parseInt(n*parseInt(e,10)/100,10));300>t&&(t=300);220>e&&(e=220);i=i||parseInt((n-e)/2,10);o=o||parseInt((s-t)/2,10);this.formAreaNode.setStyles({width:""+t+"px",height:""+e+"px",top:""+i+"px",left:""+o+"px"});this.formNode.setStyles({width:""+t+"px",height:""+e+"px"});var a=this.formIconNode?this.formIconNode.getSize():{x:0,y:0};var d=this.formTopNode?this.formTopNode.getSize():{x:0,y:0};var l=this.formBottomNode?this.formBottomNode.getSize():{x:0,y:0};var p=e-a.y-d.y-l.y;this.formContentNode.setStyles({height:""+p+"px"});this.formTableContainer.setStyles({width:""+t+"px",height:""+p+"px"})}});MWF.xApplication.Execution.WorkMinder.WorkDeploy=new Class({Extends:MWF.xApplication.Execution.WorkDeploy,deploy:function(){var t=[];this.actions.getUserDeployBaseWork(this.centerWorkId,function(e){if(this.centerWorkInforData){if(this.centerWorkInforData.processStatus==this.lp.statusDraft){e.data.each(function(e){if(e.workProcessStatus==this.lp.statusDraft){t.push(e.id)}}.bind(this))}else{e.data.each(function(e){if(e.subWorks){e.subWorks.each(function(e){if(e.workProcessStatus==this.lp.statusDraft){t.push(e.id)}}.bind(this))}if(e.workProcessStatus==this.lp.statusDraft){t.push(e.id)}}.bind(this))}}if(t.length>0){var i={workIds:t};this.actions.deployBaseWork(i,function(t){if(t.type&&t.type=="success"){this.app.notice(this.lp.deployeSuccess,"ok");this.close();this.explorer.reload()}else{this.app.notice(t.data.message,"error")}}.bind(this))}else{this.app.notice(this.lp.noWordNeedDeployed,"ok")}}.bind(this))}});