10451045 nObj . append ( html . join ( '' ) ) ;
10461046 } ,
10471047 asyncNode : function ( setting , node , isSilent , callback ) {
1048- var i , l ;
10491048 var isParent = data . nodeIsParent ( setting , node ) ;
10501049 if ( node && ! isParent ) {
10511050 tools . apply ( callback ) ;
10581057 }
10591058 if ( node ) {
10601059 node . isAjaxing = true ;
1061- var icoObj = $$ ( node , consts . id . ICON , setting ) ;
1062- icoObj . attr ( { "style" : "" , "class" : consts . className . BUTTON + " " + consts . className . ICO_LOADING } ) ;
1063- }
1064-
1065- var tmpParam = { } ;
1066- var autoParam = tools . apply ( setting . async . autoParam , [ setting . treeId , node ] , setting . async . autoParam ) ;
1067- for ( i = 0 , l = autoParam . length ; node && i < l ; i ++ ) {
1068- var pKey = autoParam [ i ] . split ( "=" ) , spKey = pKey ;
1069- if ( pKey . length > 1 ) {
1070- spKey = pKey [ 1 ] ;
1071- pKey = pKey [ 0 ] ;
1072- }
1073- tmpParam [ spKey ] = node [ pKey ] ;
1074- }
1075- var otherParam = tools . apply ( setting . async . otherParam , [ setting . treeId , node ] , setting . async . otherParam ) ;
1076- if ( tools . isArray ( otherParam ) ) {
1077- for ( i = 0 , l = otherParam . length ; i < l ; i += 2 ) {
1078- tmpParam [ otherParam [ i ] ] = otherParam [ i + 1 ] ;
1079- }
1080- } else {
1081- for ( var p in otherParam ) {
1082- tmpParam [ p ] = otherParam [ p ] ;
1060+ if ( setting . async . loadingIcon ) {
1061+ var icoObj = $$ ( node , consts . id . ICON , setting ) ;
1062+ icoObj . attr ( { "style" : "" , "class" : consts . className . BUTTON + " " + consts . className . ICO_LOADING } ) ;
10831063 }
10841064 }
10851065
10861066 var _tmpV = data . getRoot ( setting ) . _ver ;
1087- $ . ajax ( {
1088- contentType : setting . async . contentType ,
1089- cache : false ,
1090- type : setting . async . type ,
1091- url : tools . apply ( setting . async . url , [ setting . treeId , node ] , setting . async . url ) ,
1092- data : setting . async . contentType . indexOf ( 'application/json' ) > - 1 ? JSON . stringify ( tmpParam ) : tmpParam ,
1093- dataType : setting . async . dataType ,
1094- headers : setting . async . headers ,
1095- xhrFields : setting . async . xhrFields ,
1096- success : function ( msg ) {
1097- if ( _tmpV != data . getRoot ( setting ) . _ver ) {
1098- return ;
1099- }
1100- var newNodes = [ ] ;
1101- try {
1102- if ( ! msg || msg . length == 0 ) {
1103- newNodes = [ ] ;
1104- } else if ( typeof msg == "string" ) {
1105- newNodes = eval ( "(" + msg + ")" ) ;
1106- } else {
1107- newNodes = msg ;
1108- }
1109- } catch ( err ) {
1110- newNodes = msg ;
1111- }
1067+ setting . async . load ( setting . treeId , node ) . then ( function ( newNodes ) {
1068+ if ( _tmpV != data . getRoot ( setting ) . _ver ) {
1069+ return ;
1070+ }
11121071
1113- if ( node ) {
1114- node . isAjaxing = null ;
1115- node . zAsync = true ;
1116- }
1117- view . setNodeLineIcos ( setting , node ) ;
1118- if ( newNodes && newNodes !== "" ) {
1119- newNodes = tools . apply ( setting . async . dataFilter , [ setting . treeId , node , newNodes ] , newNodes ) ;
1120- view . addNodes ( setting , node , - 1 , ! ! newNodes ? tools . clone ( newNodes ) : [ ] , ! ! isSilent ) ;
1121- } else {
1122- view . addNodes ( setting , node , - 1 , [ ] , ! ! isSilent ) ;
1123- }
1124- setting . treeObj . trigger ( consts . event . ASYNC_SUCCESS , [ setting . treeId , node , msg ] ) ;
1125- tools . apply ( callback ) ;
1126- } ,
1127- error : function ( XMLHttpRequest , textStatus , errorThrown ) {
1128- if ( _tmpV != data . getRoot ( setting ) . _ver ) {
1129- return ;
1130- }
1131- if ( node ) node . isAjaxing = null ;
1132- view . setNodeLineIcos ( setting , node ) ;
1133- setting . treeObj . trigger ( consts . event . ASYNC_ERROR , [ setting . treeId , node , XMLHttpRequest , textStatus , errorThrown ] ) ;
1072+ if ( node ) {
1073+ node . isAjaxing = null ;
1074+ node . zAsync = true ;
1075+ }
1076+ view . setNodeLineIcos ( setting , node ) ;
1077+ if ( newNodes && newNodes !== "" ) {
1078+ newNodes = tools . apply ( setting . async . dataFilter , [ setting . treeId , node , newNodes ] , newNodes ) ;
1079+ view . addNodes ( setting , node , - 1 , ! ! newNodes ? tools . clone ( newNodes ) : [ ] , ! ! isSilent ) ;
1080+ } else {
1081+ view . addNodes ( setting , node , - 1 , [ ] , ! ! isSilent ) ;
1082+ }
1083+ setting . treeObj . trigger ( consts . event . ASYNC_SUCCESS , [ setting . treeId , node , newNodes ] ) ;
1084+ tools . apply ( callback ) ;
1085+ } , function ( errorThrown ) {
1086+ if ( _tmpV != data . getRoot ( setting ) . _ver ) {
1087+ return ;
11341088 }
1089+ if ( node ) node . isAjaxing = null ;
1090+ view . setNodeLineIcos ( setting , node ) ;
1091+ setting . treeObj . trigger ( consts . event . ASYNC_ERROR , [ setting . treeId , node , XMLHttpRequest , textStatus , errorThrown ] ) ;
11351092 } ) ;
11361093 return true ;
11371094 } ,
13421299 fontStyle . push ( f , ":" , fontcss [ f ] , ";" ) ;
13431300 }
13441301 html . push ( "<a id='" , node . tId , consts . id . A , "' class='" , consts . className . LEVEL , node . level ,
1345- nodeClasses . add ? ' ' + nodeClasses . add . join ( ' ' ) : '' ,
1302+ nodeClasses . add ? ' ' + nodeClasses . add . join ( ' ' ) : '' ,
13461303 "' treeNode" , consts . id . A ,
13471304 node . click ? " onclick=\"" + node . click + "\"" : "" ,
13481305 ( ( url != null && url . length > 0 ) ? " href='" + url + "'" : "" ) , " target='" , view . makeNodeTarget ( node ) , "' style='" , fontStyle . join ( '' ) ,
20061963 var children = data . nodeChildren ( setting , root ) ;
20071964 if ( children && children . length > 0 ) {
20081965 view . createNodes ( setting , 0 , children , null , - 1 ) ;
2009- } else if ( setting . async . enable && setting . async . url && setting . async . url !== '' ) {
1966+ } else if ( setting . async . enable && setting . async . load && setting . async . load . then ) {
20101967 view . asyncNode ( setting ) ;
20111968 }
20121969 return zTreeTools ;
20161973 var zt = $ . fn . zTree ,
20171974 $$ = tools . $ ,
20181975 consts = zt . consts ;
2019- } ) ( jQuery ) ;
1976+ } ) ( jQuery ) ;
0 commit comments