实现效果:
版本声明:Activiti 5.22.0
需求:Activiti对接业务数据库后,使用自定义的用户和角色表代替Activiti原生用户、角色组等功能(实现详情见这篇文章:https://www.jianshu.com/p/45341b440316) 后,其在线流程设计器在设置任务节点的办理人时,如果能做到直接勾选自定义库的办理人、候选人、候选组,其体验相信会上升一个台接。下面将介绍下实现思路:
1、重写设定办理人界面:
<div style="width:100%;height:100%;" class="modal" ng-controller="KisBpmAssignmentPopupCtrl">
<div style="width:80%;height:100%;" class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true" ng-click="close()">×</button>
<h2 translate>PROPERTY.ASSIGNMENT.TITLE</h2>
</div>
<div class="modal-body">
<div class="row row-no-gutter">
<div class="col-xs-4">
<div class="row row-no-gutter">
<div class="form-group">
<label for="assigneeField">{
{'PROPERTY.ASSIGNMENT.ASSIGNEE'
| translate}}</label> <input type="text" id="assigneeField"
class="form-control" ng-model="assignment.assignee"
ng-click="selectAssignee()"
placeholder="{
{'PROPERTY.ASSIGNMENT.ASSIGNEE_PLACEHOLDER' | translate}}" />
</div>
</div>
<div class="row row-no-gutter">
<div class="form-group">
<label for="userField">{
{'PROPERTY.ASSIGNMENT.CANDIDATE_USERS'
| translate}}</label>
<div ng-repeat="candidateUser in assignment.candidateUsers">
<input id="userField" class="form-control" type="text"
ng-model="candidateUser.value"
ng-click="selectCandidate()" /> <i
class="glyphicon glyphicon-minus clickable-property"
ng-click="removeCandidateUserValue($index)"></i> <i
ng-if="$index == (assignment.candidateUsers.length - 1)"
class="glyphicon glyphicon-plus clickable-property"
ng-click="addCandidateUserValue($index)"></i>
</div>
</div>
<div class="form-group">
<label for="groupField">{
{'PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS'
| translate}}</label>
<div ng-repeat="candidateGroup in assignment.candidateGroups">
<input id="groupField" class="form-control" type="text"
ng-model="candidateGroup.value"
ng-cl