123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- MWF.xApplication.Selector = MWF.xApplication.Selector || {};
- MWF.xDesktop.requireApp("Selector", "Identity", null, false);
- MWF.xApplication.Selector.UnitDuty = new Class({
- Extends: MWF.xApplication.Selector.Identity,
- options: {
- "units": [],
- "values": [],
- "dutys": [],
- },
- setInitTitle: function(){
- this.setOptions({"title": MWF.xApplication.Selector.LP.selectDuty});
- },
- _init : function(){
- this.selectType = "duty";
- this.className = "UnitDuty";
- },
- loadSelectItems : function(){
- if (this.options.units.length){
- var unitList = this.options.units.map(function (unit) {
- return typeOf( unit ) === "string" ? unit : (unit.distinguishedName || unit.unique || unit.levelName || unit.id)
- });
- this._loadSelectItems( unitList );
- }else{
- this.orgAction.listTopUnit(function(json){
- var unitList = json.data.map(function (unit) {
- return unit.distinguishedName;
- });
- this._loadSelectItems( unitList );
- }.bind(this));
- }
- },
- _loadSelectItems: function( unitList ){
- if( !unitList || !unitList.length )return;
- o2.Actions.load("x_organization_assemble_express").UnitAction.listObject( {"unitList" : unitList} , function (json) {
- if (json.data.length){
- json.data.each( function(data){
- var category = this._newItemCategory("ItemCategory", data, this, this.itemAreaNode );
- this.subCategorys.push(category);
- this.subCategoryMap[data.levelName] = category;
- }.bind(this));
- }
- }.bind(this) );
- },
- _scrollEvent: function(y){
- return true;
- },
- _getChildrenItemIds: function(){
- return null;
- },
- _newItemCategory: function(type, data, selector, item, level, category, delay, notActive){
- return new MWF.xApplication.Selector.UnitDuty[type](data, selector, item, level, category, delay, notActive)
- },
- _listItem : function( callback, failure, key ){
- var units = ( this.options.units || [] ).map(function(u){
- return typeOf(u)==="string" ? u : u.distinguishedName;
- }).clean();
- var keyObj = units.length ? { "key": key, "unitList": units } : { "key": key };
- o2.Actions.load("x_organization_assemble_control").UnitDutyAction.listLike( keyObj, function (json) {
- if( json.data.length === 0 ){
- if (callback) callback.apply(this, []);
- return;
- }
- var unitIdList = json.data.map(function ( d ) { return d.unit; }).unique();
- o2.Actions.load("x_organization_assemble_express").UnitAction.listObject( {unitList: unitIdList}, function (unitJson) {
- var unitObjectMap = {};
- unitJson.data.each(function (u) {
- unitObjectMap[u.matchKey] = u;
- });
- json.data.each(function (d) {
- var u = unitObjectMap[d.unit];
- if( u ){
- d.unitLevelName = u.levelName;
- d.woUnit = u;
- }
- });
- if (callback) callback.apply(this, [json]);
- })
- }, failure );
- },
- _listItemByKey: function(callback, failure, key){
- this._listItem( callback, failure, key );
- },
- _getItem: function(callback, failure, id, async){
- this.orgAction.getIdentity(function(json){
- if (callback) callback.apply(this, [json]);
- }.bind(this), failure, ((typeOf(id)==="string") ? id : id.distinguishedName), async);
- },
- _newItemSelected: function(data, selector, item, selectedNode, delay){
- return new MWF.xApplication.Selector.UnitDuty.ItemSelected(data, selector, item, selectedNode, delay)
- },
- _listItemByPinyin: function(callback, failure, key){
- this._listItem( callback, failure, key );
- },
- _newItem: function(data, selector, container, level, category, delay){
- return new MWF.xApplication.Selector.UnitDuty.Item(data, selector, container, level, category, delay);
- },
- _newItemSearch: function(data, selector, container, level){
- return new MWF.xApplication.Selector.UnitDuty.SearchItem(data, selector, container, level);
- }
- });
- MWF.xApplication.Selector.UnitDuty.Item = new Class({
- Extends: MWF.xApplication.Selector.Identity.Item,
- _getShowName: function(){
- return this.data.name;
- },
- _getTtiteText: function(){
- debugger;
- return this.data.name+((this.data.unitLevelName) ? "("+this.data.unitLevelName+")" : "");
- },
- _setIcon: function(){
- var style = this.selector.options.style;
- this.iconNode.setStyle("background-image", "url("+"../x_component_Selector/$Selector/"+style+"/icon/duty.png)");
- },
- getData: function(callback, isWait){
- if( this.data.levelName ){
- if (callback) callback();
- }else if ( this.data.woUnit ) {
- this.data.unitLevelName = this.data.woUnit.levelName;
- if (callback) callback();
- }else if (this.data.unit){
- this.selector.orgAction.getUnit(function(json){
- this.data.woUnit = json.data;
- this.data.unitLevelName = this.data.woUnit.levelName;
- if (isWait && callback) callback();
- }.bind(this), function(xhr, text, error){
- return true;
- }.bind(this), this.data.unit)
- }else{
- if (callback) callback();
- }
- }
- });
- MWF.xApplication.Selector.UnitDuty.SearchItem = new Class({
- Extends: MWF.xApplication.Selector.UnitDuty.Item,
- _getShowName: function(){
- return this.data.name+((this.data.unitLevelName) ? "("+this.data.unitLevelName+")" : "");
- }
- });
- MWF.xApplication.Selector.UnitDuty.ItemSelected = new Class({
- Extends: MWF.xApplication.Selector.Identity.ItemSelected,
- getData: function(callback, isWait){
- if( this.data.levelName ){
- if (callback) callback();
- }else if ( this.data.woUnit ) {
- this.data.unitLevelName = this.data.woUnit.levelName;
- if (callback) callback();
- }else if (this.data.unit){
- this.selector.orgAction.getUnit(function(json){
- this.data.woUnit = json.data;
- this.data.unitLevelName = this.data.woUnit.levelName;
- if (isWait && callback) callback();
- }.bind(this), function(xhr, text, error){
- return true;
- }.bind(this), this.data.unit)
- }else{
- if (callback) callback();
- }
- },
- _getShowName: function(){
- return this.data.name+((this.data.unitLevelName) ? "("+this.data.unitLevelName+")" : "");
- },
- _getTtiteText: function(){
- return this.data.name+((this.data.unitLevelName) ? "("+this.data.unitLevelName+")" : "");
- },
- _setIcon: function(){
- var style = this.selector.options.style;
- this.iconNode.setStyle("background-image", "url("+"../x_component_Selector/$Selector/"+style+"/icon/duty.png)");
- }
- });
- MWF.xApplication.Selector.UnitDuty.ItemCategory = new Class({
- Extends: MWF.xApplication.Selector.Identity.ItemCategory,
- createNode: function(){
- this.node = new Element("div", {
- "styles": this.selector.css.selectorItemCategory_department,
- "title" : this._getTtiteText()
- }).inject(this.container);
- },
- _getShowName: function(){
- // if( this._getTotalCount && this._getSelectedCount ){
- // return "" + this._getTotalCount() + "-" + this._getSelectedCount() + "-" + this.data.name ;
- // }else{
- return this.data.name;
- // }
- },
- _setIcon: function(){
- var style = this.selector.options.style;
- this.iconNode.setStyle("background-image", "url("+"../x_component_Selector/$Selector/"+style+"/icon/companyicon.png)");
- },
- _loadSub: function(callback, notActive){
- if(notActive)this.subNotActive = true;
- if (!this.loaded){
- var loadSubUnit = function () {
- if( !this.categoryLoaded ){
- o2.Actions.load("x_organization_assemble_express").UnitAction.listWithUnitSubDirectObject({
- unitList: [this.data.distinguishedName],
- countSubDirectUnit: true,
- countSubDirectDuty: true
- },
- function(json){
- json.data.each(function(subData){
- if( !this.selector.isExcluded( subData ) ) {
- if( subData && this.data.parentLevelName)subData.parentLevelName = this.data.parentLevelName +"/" + subData.name;
- var category = this.selector._newItemCategory("ItemCategory", subData, this.selector, this.children, this.level + 1, this, false, notActive);
- this.subCategorys.push( category );
- this.subCategoryMap[subData.parentLevelName || subData.levelName] = category;
- }
- }.bind(this));
- this.loaded = true;
- if (callback) callback( true );
- }.bind(this)
- );
- }else{
- this.loaded = true;
- if (callback) callback( true );
- }
- }.bind(this);
- if( !this.itemLoaded ){
- o2.Actions.load("x_organization_assemble_control").UnitDutyAction.listWithUnit(function(idJson){
- idJson.data.each(function(idSubData){
- idSubData.unitLevelName = this.data.levelName;
- idSubData.woUnit = this.data;
- if( !this.selector.isExcluded( idSubData ) ) {
- var item = this.selector._newItem(idSubData, this.selector, this.children, this.level + 1, this, notActive);
- this.selector.items.push(item);
- if(this.subItems)this.subItems.push( item );
- }
- }.bind(this));
- loadSubUnit();
- }.bind(this), null, this.data.distinguishedName);
- }else{
- loadSubUnit();
- }
- // }
- }else{
- if (callback) callback();
- }
- },
- _hasChild: function(){
- var uCount = (this.data.subDirectUnitCount) ? this.data.subDirectUnitCount : 0;
- var iCount = (this.data.subDirectDutyCount) ? this.data.subDirectDutyCount : 0;
- return uCount + iCount;
- },
- _hasChildCategory: function(){
- return (this.data.subDirectUnitCount) ? this.data.subDirectUnitCount : 0;
- },
- _hasChildItem: function(){
- return (this.data.subDirectDutyCount) ? this.data.subDirectDutyCount : 0;
- },
- afterLoad: function(){
- if (this.level===1) this.clickItem();
- }
- });
|