diff --git a/o2web/source/x_component_Selector/Identity.js b/o2web/source/x_component_Selector/Identity.js index 2710da38c8197f7511f73d225e5b24b02ed3fcb1..3d52eaa06e37651ead074150f6c8b6fa479932aa 100644 --- a/o2web/source/x_component_Selector/Identity.js +++ b/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; } });