SignTask.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. /**
  2. * 会签任务对象
  3. */
  4. draw2d.SignTask=function(){
  5. draw2d.Task.call(this);
  6. this.taskId = "signTask" + indexId;
  7. this.taskName="会签任务";
  8. this.setTitle("会签任务");
  9. this.documentation="任务描述";
  10. this.expression = "${assignee}";
  11. this.setIcon();
  12. };
  13. draw2d.SignTask.prototype=new draw2d.Task();
  14. draw2d.SignTask.prototype.type="draw2d.SignTask";
  15. draw2d.SignTask.newInstance=function(signTaskXMLNode){
  16. var task = new draw2d.SignTask();
  17. task.id=signTaskXMLNode.attr('id');
  18. task.taskId=signTaskXMLNode.attr('id');
  19. task.taskName=signTaskXMLNode.attr('name');
  20. task.setContent(signTaskXMLNode.attr('name'));
  21. return task;
  22. };
  23. draw2d.SignTask.prototype.setWorkflow=function(_5019){
  24. draw2d.Task.prototype.setWorkflow.call(this,_5019);
  25. };
  26. draw2d.SignTask.prototype.getContextMenu=function(){
  27. var menu = draw2d.Task.prototype.getContextMenu.call(this);
  28. return menu;
  29. };
  30. draw2d.SignTask.prototype.setIcon = function(){
  31. var icon=draw2d.Task.prototype.setIcon.call(this);
  32. icon.className="Sign-task-icon";
  33. };
  34. draw2d.SignTask.prototype.getStartElementXML=function(){
  35. var name = this.taskId;
  36. var taskName = trim(this.taskName);
  37. if(taskName != null && taskName != "")
  38. name = taskName;
  39. var xml='<userTask id="'+this.taskId+'" name="'+name+'" ';
  40. if(this.isUseExpression){
  41. if(this.performerType=='assignee'){
  42. xml=xml+'activiti:assignee="'+this.expression+'" ';
  43. }else if(this.performerType=='candidateUsers'){
  44. xml=xml+'activiti:candidateUsers="'+this.expression+'" ';
  45. }else if(this.performerType=='candidateGroups'){
  46. xml=xml+'activiti:candidateGroups="'+this.expression+'" ';
  47. }
  48. }
  49. if(this.formKey != null && this.formKey != ""){
  50. xml=xml+'activiti:formKey="'+this.formKey+'" ';
  51. }
  52. xml=xml+'>\n';
  53. return xml;
  54. };
  55. draw2d.SignTask.prototype.getEndElementXML=function(){
  56. var xml = '</userTask>\n';
  57. return xml;
  58. };
  59. draw2d.SignTask.prototype.getDocumentationXML=function(){
  60. if(this.documentation==null||this.documentation=='')return '';
  61. var xml='<documentation>';
  62. xml=xml+this.documentation;
  63. xml=xml+'</documentation>';
  64. return xml;
  65. };
  66. draw2d.SignTask.prototype.getExtensionElementsXML=function(){
  67. var xml = '<extensionElements>\n';
  68. if(this.forms.getSize()!=0)
  69. {
  70. xml=xml+this.getFormsXML();
  71. }
  72. //if(this.listeners.getSize()!=0)
  73. //{
  74. xml=xml+this.getListenersXML();
  75. //}
  76. if(this.myforms.getSize()!=0)
  77. {
  78. xml=xml+this.getMyFormXML();
  79. }
  80. if(this.actions.getSize()!=0){
  81. xml = xml + this.getActionXML();
  82. }
  83. if(this.mylisteners.getSize()!=0)
  84. {
  85. xml=xml+this.getMyListenerXML();
  86. }
  87. if(this.users.getSize()!=0){
  88. xml=xml+this.getUserXML();
  89. }
  90. xml=xml+'</extensionElements>\n';
  91. return xml;
  92. };
  93. draw2d.SignTask.prototype.getListenersXML=function(){
  94. // var xml = '';
  95. // for(var i=0;i<this.listeners.getSize();i++){
  96. // var listener = this.listeners.get(i);
  97. // xml=xml+listener.toXML();
  98. // }
  99. var xml = '';
  100. xml=xml+'<activiti:taskListener id="createevent'+this.taskId+'" delegateExpression="${createTaskListener}" event="create"/>\n';
  101. xml=xml+'<activiti:taskListener id="assingmentevent'+this.taskId+'" delegateExpression="${assignTaskListener}" event="assignment"/>\n';
  102. xml=xml+'<activiti:taskListener id="completeevent'+this.taskId+'" delegateExpression="${completeTaskListener}" event="complete"/>\n';
  103. return xml;
  104. };
  105. /*流程引擎表单*/
  106. draw2d.SignTask.prototype.getFormsXML=function(){
  107. var xml = '';
  108. for(var i=0;i<this.forms.getSize();i++){
  109. var form = this.forms.get(i);
  110. xml=xml+form.toXML();
  111. }
  112. return xml;
  113. };
  114. /*自定义表单*/
  115. draw2d.SignTask.prototype.getMyFormXML=function(){
  116. var xml = '';
  117. for(var i=0;i<this.myforms.getSize();i++){
  118. var form = this.myforms.get(i);
  119. xml=xml+form.toXML();
  120. }
  121. return xml;
  122. };
  123. draw2d.SignTask.prototype.getActionXML=function(){
  124. var xml = '';
  125. for(var i=0;i<this.actions.getSize();i++){
  126. var action = this.actions.get(i);
  127. xml=xml+action.toXML();
  128. }
  129. return xml;
  130. };
  131. draw2d.SignTask.prototype.getUserXML = function(){
  132. var xml = '';
  133. for(var i=0;i<this.users.getSize();i++){
  134. var user = this.users.get(i);
  135. xml=xml+user.toXML();
  136. }
  137. return xml;
  138. };
  139. draw2d.SignTask.prototype.getMyListenerXML=function(){
  140. var xml = '';
  141. for(var i=0;i<this.mylisteners.getSize();i++){
  142. var listener = this.mylisteners.get(i);
  143. xml=xml+listener.toXML();
  144. }
  145. return xml;
  146. };
  147. draw2d.SignTask.prototype.getMultiInstanceXML=function(){
  148. var xml = '';
  149. xml+='<multiInstanceLoopCharacteristics activiti:elementVariable="assignee" activiti:collection="${activitiService.getSignUser(execution)}" isSequential="'+this.isSequential+'"> ';
  150. xml+='<completionCondition>${activitiService.isComplete(execution,"'+this.signType+'","'+this.signNum+'") }</completionCondition>';
  151. xml+='</multiInstanceLoopCharacteristics>';
  152. return xml;
  153. };
  154. draw2d.SignTask.prototype.getPerformersBPMNXML=function(){
  155. var xml = '';
  156. if(this.performerType=='candidateUsers'){
  157. if(this.candidateUsers.getSize()!=0){
  158. xml=xml+'<potentialOwner>\n';
  159. xml=xml+'<resourceAssignmentExpression>\n';
  160. xml=xml+'<formalExpression>\n';
  161. xml=xml+'<![CDATA[';
  162. for(var i=0;i<this.candidateUsers.getSize();i++){
  163. var user = this.candidateUsers.get(i);
  164. xml=xml+'user('+user.sso+'),';
  165. }
  166. xml=xml.substring(0, xml.length-1);
  167. xml=xml+']]>\n';
  168. xml=xml+'</formalExpression>\n';
  169. xml=xml+'</resourceAssignmentExpression>\n';
  170. xml=xml+'</potentialOwner>\n';
  171. }
  172. }else if(this.performerType=='candidateGroups'){
  173. if(this.candidateGroups.getSize()!=0){
  174. xml=xml+'<potentialOwner>\n';
  175. xml=xml+'<resourceAssignmentExpression>\n';
  176. xml=xml+'<formalExpression>\n';
  177. xml=xml+'<![CDATA[';
  178. for(var i=0;i<this.candidateGroups.getSize();i++){
  179. var group = this.candidateGroups.get(i);
  180. xml=xml+'group('+group+'),';
  181. }
  182. xml=xml.substring(0, xml.length-1);
  183. xml=xml+']]>\n';
  184. xml=xml+'</formalExpression>\n';
  185. xml=xml+'</resourceAssignmentExpression>\n';
  186. xml=xml+'</potentialOwner>\n';
  187. }
  188. }
  189. return xml;
  190. };
  191. draw2d.SignTask.prototype.toXML=function(type){
  192. var xml=this.getStartElementXML();
  193. xml=xml+this.getDocumentationXML();
  194. xml=xml+this.getExtensionElementsXML();
  195. xml=xml+this.getMultiInstanceXML();
  196. xml=xml+this.getPerformersBPMNXML();
  197. xml=xml+this.getEndElementXML();
  198. return xml;
  199. };
  200. draw2d.SignTask.prototype.toBpmnDI=function(){
  201. var w=this.getWidth();
  202. var h=this.getHeight();
  203. var x=this.getAbsoluteX();
  204. var y=this.getAbsoluteY();
  205. var xml='<bpmndi:BPMNShape bpmnElement="'+this.taskId+'" id="BPMNShape_'+this.taskId+'">\n';
  206. xml=xml+'<omgdc:Bounds height="'+h+'" width="'+w+'" x="'+x+'" y="'+y+'"/>\n';
  207. xml=xml+'</bpmndi:BPMNShape>\n';
  208. return xml;
  209. };