Browse Source

Merge branch 'feature/Selector.identity_searchby_group' into 'develop'

Merge of feature/[流程管理]人员选择增加群组中身份的搜索 to develop

See merge request o2oa/o2oa!630
蔡祥熠 5 years ago
parent
commit
5682818d92
1 changed files with 27 additions and 6 deletions
  1. 27 6
      o2web/source/x_component_Selector/Identity.js

+ 27 - 6
o2web/source/x_component_Selector/Identity.js

@@ -1157,7 +1157,7 @@ MWF.xApplication.Selector.Identity.Include = new Class({
 
     listByFilter : function( type, key, callback ){
         var arr1 = this.listByFilterPerson(key) || [];
-        this.listByFilterUnit( type, key, function(arr2){
+        this.listByFilterUnitAndGroup( type, key, function(arr2){
             this.listByFilterGroup( type, key, function(arr3){
                 if (callback) callback( arr1.concat( arr2 || [] ).concat( arr3 || [] ) );
             }.bind(this))
@@ -1180,6 +1180,7 @@ MWF.xApplication.Selector.Identity.Include = new Class({
         return identitys.concat( persons);
     },
     listByFilterGroup : function( type, key, callback ){
+        //根据关键字获取群组内的人员,再转成身份
         var keyString = typeOf( key )==="string" ? key.toLowerCase() : key.key.toLowerCase();
         if( this.includeGroup && this.includeGroup.length ){
             var keyObject = { "key" : keyString, "groupList" : this.includeGroup };
@@ -1203,11 +1204,12 @@ MWF.xApplication.Selector.Identity.Include = new Class({
             if (callback) callback();
         }
     },
-    listByFilterUnit : function( type, key, callback ){
+    listByFilterUnitAndGroup : function( type, key, callback ){
+        //根据关键字获取组织和群组内的身份
         var keyString = typeOf( key )==="string" ? key.toLowerCase() : key.key.toLowerCase();
 
         if ( this.includeUnit && this.includeUnit.length ){
-            key = this.getUnitFilterKey( key, this.includeUnit );
+            key = this.getUnitFilterKey( key, this.includeUnit, this.includeGroup );
 
             this.orgAction.listIdentityByKey(function(json){
                 if (callback) callback(json.data);
@@ -1218,8 +1220,8 @@ MWF.xApplication.Selector.Identity.Include = new Class({
             if (callback) callback();
         }
     },
-    getUnitFilterKey : function( key, unitObjects ){
-        var unitObjects = unitObjects || [];
+    getUnitFilterKey : function( key, unitObject, groupObject ){
+        var unitObjects = unitObject || [];
         var units = [];
         unitObjects.each(function(u){
             if (typeOf(u)==="string"){
@@ -1229,7 +1231,26 @@ MWF.xApplication.Selector.Identity.Include = new Class({
                 units.push(u.distinguishedName);
             }
         });
-        return units.length ? {"key": key, "unitList": units} : key;
+
+        var groupObjects = groupObject || [];
+        var groups = [];
+        groupObjects.each(function(g){
+            if (typeOf(g)==="string"){
+                groups.push(g);
+            }
+            if (typeOf(g)==="object"){
+                groups.push(g.distinguishedName);
+            }
+        });
+        if( !units.length && !groups.length ){
+            return key;
+        }else{
+            var result = { "key": key };
+            if( units.length )result.unitList = units;
+            if( groups.length )result.groupList = groups;
+            return result;
+        }
+        // return units.length ? {"key": key, "unitList": units, "groupList" : groups} : key;
     }
 });