Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GitCode
1024程序员开源挑战赛(10.23-11.14)
提交
ed1b9171
1
1024程序员开源挑战赛(10.23-11.14)
项目概览
GitCode
/
1024程序员开源挑战赛(10.23-11.14)
通知
180912
Star
1063
Fork
1042
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
86
列表
看板
标记
里程碑
合并请求
8
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
1
1024程序员开源挑战赛(10.23-11.14)
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
86
Issue
86
列表
看板
标记
里程碑
合并请求
8
合并请求
8
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ed1b9171
编写于
4月 01, 2016
作者:
Z
ztree
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
* [修改] selectNode 方法 增加 isSilent 参数,可以禁止 选中节点时,自动滚动到视图
上级
2c77ffee
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
420 addition
and
412 deletion
+420
-412
README.md
README.md
+1
-1
api/API_cn.html
api/API_cn.html
+1
-1
api/API_en.html
api/API_en.html
+1
-1
api/apiCss/api.js
api/apiCss/api.js
+1
-1
api/apiCss/jquery.ztree.core.js
api/apiCss/jquery.ztree.core.js
+53
-53
api/cn/zTreeObj.selectNode.html
api/cn/zTreeObj.selectNode.html
+6
-2
api/en/zTreeObj.selectNode.html
api/en/zTreeObj.selectNode.html
+5
-2
js/jquery.ztree.all.js
js/jquery.ztree.all.js
+25
-26
js/jquery.ztree.all.min.js
js/jquery.ztree.all.min.js
+59
-59
js/jquery.ztree.core.js
js/jquery.ztree.core.js
+20
-15
js/jquery.ztree.core.min.js
js/jquery.ztree.core.min.js
+53
-53
js/jquery.ztree.excheck.js
js/jquery.ztree.excheck.js
+2
-2
js/jquery.ztree.excheck.min.js
js/jquery.ztree.excheck.min.js
+2
-2
js/jquery.ztree.exedit.js
js/jquery.ztree.exedit.js
+3
-9
js/jquery.ztree.exedit.min.js
js/jquery.ztree.exedit.min.js
+4
-4
js/jquery.ztree.exhide.js
js/jquery.ztree.exhide.js
+2
-2
js/jquery.ztree.exhide.min.js
js/jquery.ztree.exhide.min.js
+2
-2
log v3.x.txt
log v3.x.txt
+180
-177
未找到文件。
README.md
浏览文件 @
ed1b9171
jQuery Tree Plugin ---- zTree
jQuery Tree Plugin ---- zTree
============
============
last verson : 3.5.2
2
last verson : 3.5.2
3
**Donate to zTree**
: http://www.ztree.me/v3/donate.php
**Donate to zTree**
: http://www.ztree.me/v3/donate.php
...
...
api/API_cn.html
浏览文件 @
ed1b9171
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
<div
class=
"ieSuggest"
>
浏览本网站建议您使用 Chrome、FireFox、Opera、IE9 等浏览器(只要不是 IE6 7 8 就行), 速度会更快,画面会更炫!
</div>
<div
class=
"ieSuggest"
>
浏览本网站建议您使用 Chrome、FireFox、Opera、IE9 等浏览器(只要不是 IE6 7 8 就行), 速度会更快,画面会更炫!
</div>
<div
class=
"google_plus"
><g:plusone></g:plusone></div>
<div
class=
"google_plus"
><g:plusone></g:plusone></div>
<div
class=
"header-text"
>
<div
class=
"header-text"
>
<h1><em>
zTree v3.5.2
2
API 文档
</em></h1><p></p>
<h1><em>
zTree v3.5.2
3
API 文档
</em></h1><p></p>
<p>
all.js = core + excheck + exedit ( 不包括 exhide ); 发现错误请及时通知,谢谢。
</p>
<p>
all.js = core + excheck + exedit ( 不包括 exhide ); 发现错误请及时通知,谢谢。
</p>
</div>
</div>
<ul
class=
"shortcuts language"
style=
"top:0;"
>
<ul
class=
"shortcuts language"
style=
"top:0;"
>
...
...
api/API_en.html
浏览文件 @
ed1b9171
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
<div
class=
"ieSuggest"
>
If you use the Chrome / FireFox / Opera / IE9 browser will be even more dazzling effect!
</div>
<div
class=
"ieSuggest"
>
If you use the Chrome / FireFox / Opera / IE9 browser will be even more dazzling effect!
</div>
<div
class=
"google_plus"
><g:plusone></g:plusone></div>
<div
class=
"google_plus"
><g:plusone></g:plusone></div>
<div
class=
"header-text"
>
<div
class=
"header-text"
>
<h1><em>
zTree v3.5.2
2
API Document
</em></h1><p></p>
<h1><em>
zTree v3.5.2
3
API Document
</em></h1><p></p>
<p>
all.js = core + excheck + exedit ( without exhide ); if you found some mistakes please contact me.
</p>
<p>
all.js = core + excheck + exedit ( without exhide ); if you found some mistakes please contact me.
</p>
</div>
</div>
<ul
class=
"shortcuts language"
style=
"top:0;"
>
<ul
class=
"shortcuts language"
style=
"top:0;"
>
...
...
api/apiCss/api.js
浏览文件 @
ed1b9171
...
@@ -267,7 +267,7 @@ var apiContent = {
...
@@ -267,7 +267,7 @@ var apiContent = {
{
id
:
422
,
pId
:
4
,
t
:
"
refresh
"
,
name
:
"
refresh ()
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
422
,
pId
:
4
,
t
:
"
refresh
"
,
name
:
"
refresh ()
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
423
,
pId
:
4
,
t
:
"
removeChildNodes
"
,
name
:
"
removeChildNodes (parentNode)
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
423
,
pId
:
4
,
t
:
"
removeChildNodes
"
,
name
:
"
removeChildNodes (parentNode)
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
424
,
pId
:
4
,
t
:
"
removeNode
"
,
name
:
"
removeNode (node, callbackFlag)
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
424
,
pId
:
4
,
t
:
"
removeNode
"
,
name
:
"
removeNode (node, callbackFlag)
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
425
,
pId
:
4
,
t
:
"
selectNode
"
,
name
:
"
selectNode (node, addFlag)
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
425
,
pId
:
4
,
t
:
"
selectNode
"
,
name
:
"
selectNode (node, addFlag
, isSilent
)
"
,
iconSkin
:
"
core
"
,
showAPI
:
true
},
{
id
:
430
,
pId
:
4
,
t
:
"
setChkDisabled
"
,
name
:
"
setChkDisabled (node, disabled, inheritParent, inheritChildren)
"
,
iconSkin
:
"
check
"
,
showAPI
:
true
},
{
id
:
430
,
pId
:
4
,
t
:
"
setChkDisabled
"
,
name
:
"
setChkDisabled (node, disabled, inheritParent, inheritChildren)
"
,
iconSkin
:
"
check
"
,
showAPI
:
true
},
{
id
:
426
,
pId
:
4
,
t
:
"
setEditable
"
,
name
:
"
setEditable (editable)
"
,
iconSkin
:
"
edit
"
,
showAPI
:
true
},
{
id
:
426
,
pId
:
4
,
t
:
"
setEditable
"
,
name
:
"
setEditable (editable)
"
,
iconSkin
:
"
edit
"
,
showAPI
:
true
},
{
id
:
434
,
pId
:
4
,
t
:
"
showNode
"
,
name
:
"
showNode (node)
"
,
iconSkin
:
"
hide
"
,
showAPI
:
true
},
{
id
:
434
,
pId
:
4
,
t
:
"
showNode
"
,
name
:
"
showNode (node)
"
,
iconSkin
:
"
hide
"
,
showAPI
:
true
},
...
...
api/apiCss/jquery.ztree.core.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree core v3.5.2
2
* JQuery zTree core v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,65 +8,65 @@
...
@@ -8,65 +8,65 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
q
){
var
H
,
I
,
J
,
K
,
L
,
M
,
u
,
r
=
{},
v
=
{},
w
=
{},
N
=
{
treeId
:
""
,
treeObj
:
null
,
view
:{
addDiyDom
:
null
,
autoCancelSelected
:
!
0
,
dblClickExpand
:
!
0
,
expandSpeed
:
"
fast
"
,
fontCss
:{},
nameIsHTML
:
!
1
,
selectedMulti
:
!
0
,
showIcon
:
!
0
,
showLine
:
!
0
,
showTitle
:
!
0
,
txtSelectedEnable
:
!
1
},
data
:{
key
:{
children
:
"
children
"
,
name
:
"
name
"
,
title
:
""
,
url
:
"
url
"
,
icon
:
"
icon
"
},
simpleData
:{
enable
:
!
1
,
idKey
:
"
id
"
,
pIdKey
:
"
pId
"
,
rootPId
:
null
},
keep
:{
parent
:
!
1
,
leaf
:
!
1
}},
async
:{
enable
:
!
1
,
contentType
:
"
application/x-www-form-urlencoded
"
,
type
:
"
post
"
,
dataType
:
"
text
"
,
(
function
(
q
){
var
I
,
J
,
K
,
L
,
M
,
N
,
v
,
s
=
{},
w
=
{},
x
=
{},
O
=
{
treeId
:
""
,
treeObj
:
null
,
view
:{
addDiyDom
:
null
,
autoCancelSelected
:
!
0
,
dblClickExpand
:
!
0
,
expandSpeed
:
"
fast
"
,
fontCss
:{},
nameIsHTML
:
!
1
,
selectedMulti
:
!
0
,
showIcon
:
!
0
,
showLine
:
!
0
,
showTitle
:
!
0
,
txtSelectedEnable
:
!
1
},
data
:{
key
:{
children
:
"
children
"
,
name
:
"
name
"
,
title
:
""
,
url
:
"
url
"
,
icon
:
"
icon
"
},
simpleData
:{
enable
:
!
1
,
idKey
:
"
id
"
,
pIdKey
:
"
pId
"
,
rootPId
:
null
},
keep
:{
parent
:
!
1
,
leaf
:
!
1
}},
async
:{
enable
:
!
1
,
contentType
:
"
application/x-www-form-urlencoded
"
,
type
:
"
post
"
,
dataType
:
"
text
"
,
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
x
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
y
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
[
a
,
c
,
g
])});
a
.
bind
(
c
.
CLICK
,
function
(
a
,
c
,
g
,
n
,
h
){
j
.
apply
(
b
.
callback
.
onClick
,[
c
,
g
,
n
,
h
])});
a
.
bind
(
c
.
EXPAND
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onExpand
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
COLLAPSE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onCollapse
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
a
,
c
,
g
,
n
){
j
.
apply
(
b
.
callback
.
onAsyncSuccess
,[
a
,
c
,
g
,
n
])});
a
.
bind
(
c
.
ASYNC_ERROR
,
function
(
a
,
c
,
g
,
n
,
h
,
f
){
j
.
apply
(
b
.
callback
.
onAsyncError
,[
a
,
c
,
g
,
n
,
h
,
f
])});
a
.
bind
(
c
.
REMOVE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onRemove
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
SELECTED
,
[
a
,
c
,
g
])});
a
.
bind
(
c
.
CLICK
,
function
(
a
,
c
,
g
,
m
,
h
){
j
.
apply
(
b
.
callback
.
onClick
,[
c
,
g
,
m
,
h
])});
a
.
bind
(
c
.
EXPAND
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onExpand
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
COLLAPSE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onCollapse
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
a
,
c
,
g
,
m
){
j
.
apply
(
b
.
callback
.
onAsyncSuccess
,[
a
,
c
,
g
,
m
])});
a
.
bind
(
c
.
ASYNC_ERROR
,
function
(
a
,
c
,
g
,
m
,
h
,
f
){
j
.
apply
(
b
.
callback
.
onAsyncError
,[
a
,
c
,
g
,
m
,
h
,
f
])});
a
.
bind
(
c
.
REMOVE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onRemove
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
SELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onSelected
,[
c
,
g
])});
a
.
bind
(
c
.
UNSELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onUnSelected
,[
c
,
g
])})}],
y
=
[
function
(
b
){
var
a
=
f
.
event
;
b
.
treeObj
.
unbind
(
a
.
NODECREATED
).
unbind
(
a
.
CLICK
).
unbind
(
a
.
EXPAND
).
unbind
(
a
.
COLLAPSE
).
unbind
(
a
.
ASYNC_SUCCESS
).
unbind
(
a
.
ASYNC_ERROR
).
unbind
(
a
.
REMOVE
).
unbind
(
a
.
SELECTED
).
unbind
(
a
.
UNSELECTED
)}],
z
=
[
function
(
b
){
var
a
=
h
.
getCache
(
b
);
a
||
(
a
=
{},
h
.
setCache
(
b
,
a
));
a
.
nodes
=
[];
a
.
doms
=
[]}],
A
=
[
function
(
b
,
a
,
c
,
d
,
e
,
g
){
if
(
c
){
var
n
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
;
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onSelected
,[
c
,
g
])});
a
.
bind
(
c
.
UNSELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onUnSelected
,[
c
,
g
])})}],
z
=
[
function
(
b
){
var
a
=
f
.
event
;
b
.
treeObj
.
unbind
(
a
.
NODECREATED
).
unbind
(
a
.
CLICK
).
unbind
(
a
.
EXPAND
).
unbind
(
a
.
COLLAPSE
).
unbind
(
a
.
ASYNC_SUCCESS
).
unbind
(
a
.
ASYNC_ERROR
).
unbind
(
a
.
REMOVE
).
unbind
(
a
.
SELECTED
).
unbind
(
a
.
UNSELECTED
)}],
A
=
[
function
(
b
){
var
a
=
h
.
getCache
(
b
);
a
||
(
a
=
{},
h
.
setCache
(
b
,
a
));
a
.
nodes
=
[];
a
.
doms
=
[]}],
B
=
[
function
(
b
,
a
,
c
,
d
,
e
,
g
){
if
(
c
){
var
m
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
;
c
.
level
=
a
;
c
.
tId
=
b
.
treeId
+
"
_
"
+
++
n
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"
string
"
?
j
.
eqs
(
c
.
open
,
"
true
"
):
!!
c
.
open
;
c
[
f
]
&&
c
[
f
].
length
>
0
?(
c
.
isParent
=!
0
,
c
.
zAsync
=!
0
):(
c
.
isParent
=
typeof
c
.
isParent
==
"
string
"
?
j
.
eqs
(
c
.
isParent
,
"
true
"
):
!!
c
.
isParent
,
c
.
open
=
c
.
isParent
&&!
b
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
c
.
isParent
);
c
.
isFirstNode
=
e
;
c
.
isLastNode
=
g
;
c
.
getParentNode
=
function
(){
return
h
.
getNodeCache
(
b
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
h
.
getPreNode
(
b
,
c
)};
c
.
getNextNode
=
function
(){
return
h
.
getNextNode
(
b
,
c
.
level
=
a
;
c
.
tId
=
b
.
treeId
+
"
_
"
+
++
m
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"
string
"
?
j
.
eqs
(
c
.
open
,
"
true
"
):
!!
c
.
open
;
c
[
f
]
&&
c
[
f
].
length
>
0
?(
c
.
isParent
=!
0
,
c
.
zAsync
=!
0
):(
c
.
isParent
=
typeof
c
.
isParent
==
"
string
"
?
j
.
eqs
(
c
.
isParent
,
"
true
"
):
!!
c
.
isParent
,
c
.
open
=
c
.
isParent
&&!
b
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
c
.
isParent
);
c
.
isFirstNode
=
e
;
c
.
isLastNode
=
g
;
c
.
getParentNode
=
function
(){
return
h
.
getNodeCache
(
b
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
h
.
getPreNode
(
b
,
c
)};
c
.
getNextNode
=
function
(){
return
h
.
getNextNode
(
b
,
c
)};
c
.
getIndex
=
function
(){
return
h
.
getNodeIndex
(
b
,
c
)};
c
.
getPath
=
function
(){
return
h
.
getNodePath
(
b
,
c
)};
c
.
isAjaxing
=!
1
;
h
.
fixPIdKeyValue
(
b
,
c
)}}],
t
=
[
function
(
b
){
var
a
=
b
.
target
,
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
""
,
e
=
null
,
g
=
""
,
n
=
""
,
i
=
null
,
m
=
null
,
k
=
null
;
if
(
j
.
eqs
(
b
.
type
,
"
mousedown
"
))
n
=
"
mousedown
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
mouseup
"
))
n
=
"
mouseup
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
contextmenu
"
))
n
=
"
contextmenu
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
click
"
))
if
(
j
.
eqs
(
a
.
tagName
,
"
span
"
)
&&
a
.
getAttribute
(
"
treeNode
"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
a
).
id
,
c
)};
c
.
getIndex
=
function
(){
return
h
.
getNodeIndex
(
b
,
c
)};
c
.
getPath
=
function
(){
return
h
.
getNodePath
(
b
,
c
)};
c
.
isAjaxing
=!
1
;
h
.
fixPIdKeyValue
(
b
,
c
)}}],
u
=
[
function
(
b
){
var
a
=
b
.
target
,
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
""
,
e
=
null
,
g
=
""
,
m
=
""
,
i
=
null
,
n
=
null
,
k
=
null
;
if
(
j
.
eqs
(
b
.
type
,
"
mousedown
"
))
m
=
"
mousedown
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
mouseup
"
))
m
=
"
mouseup
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
contextmenu
"
))
m
=
"
contextmenu
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
click
"
))
if
(
j
.
eqs
(
a
.
tagName
,
"
span
"
)
&&
a
.
getAttribute
(
"
treeNode
"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
a
).
id
,
g
=
"
switchNode
"
;
else
{
if
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
clickNode
"
}
else
if
(
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
(
n
=
"
dblclick
"
,
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
switchNode
"
;
if
(
n
.
length
>
0
&&
d
.
length
==
0
&&
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
;
if
(
d
.
length
>
0
)
switch
(
e
=
h
.
getNodeCache
(
c
,
d
),
g
){
case
"
switchNode
"
:
e
.
isParent
?
j
.
eqs
(
b
.
type
,
"
click
"
)
||
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
g
=
"
switchNode
"
;
else
{
if
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
clickNode
"
}
else
if
(
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
(
m
=
"
dblclick
"
,
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
switchNode
"
;
if
(
m
.
length
>
0
&&
d
.
length
==
0
&&
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
;
if
(
d
.
length
>
0
)
switch
(
e
=
h
.
getNodeCache
(
c
,
d
),
g
){
case
"
switchNode
"
:
e
.
isParent
?
j
.
eqs
(
b
.
type
,
"
click
"
)
||
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
e
],
c
.
view
.
dblClickExpand
)?
i
=
H
:
g
=
""
:
g
=
""
;
break
;
case
"
clickNode
"
:
i
=
I
}
switch
(
n
){
case
"
mousedown
"
:
m
=
J
;
break
;
case
"
mouseup
"
:
m
=
K
;
break
;
case
"
dblclick
"
:
m
=
L
;
break
;
case
"
contextmenu
"
:
m
=
M
}
return
{
stop
:
!
1
,
node
:
e
,
nodeEventType
:
g
,
nodeEventCallback
:
i
,
treeEventType
:
n
,
treeEventCallback
:
m
}}],
B
=
[
function
(
b
){
var
a
=
h
.
getRoot
(
b
);
a
||
(
a
=
{},
h
.
setRoot
(
b
,
a
));
a
[
b
.
data
.
key
.
children
]
=
[];
a
.
expandTriggerFlag
=!
1
;
a
.
curSelectedList
=
[];
a
.
noSelection
=!
0
;
a
.
createdNodes
=
[];
a
.
zId
=
0
;
a
.
_ver
=
(
new
Date
).
getTime
()}],
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
e
],
c
.
view
.
dblClickExpand
)?
i
=
I
:
g
=
""
:
g
=
""
;
break
;
case
"
clickNode
"
:
i
=
J
}
switch
(
m
){
case
"
mousedown
"
:
n
=
K
;
break
;
case
"
mouseup
"
:
n
=
L
;
break
;
case
"
dblclick
"
:
n
=
M
;
break
;
case
"
contextmenu
"
:
n
=
N
}
return
{
stop
:
!
1
,
node
:
e
,
nodeEventType
:
g
,
nodeEventCallback
:
i
,
treeEventType
:
m
,
treeEventCallback
:
n
}}],
C
=
[
function
(
b
){
var
a
=
h
.
getRoot
(
b
);
a
||
(
a
=
{},
h
.
setRoot
(
b
,
a
));
a
[
b
.
data
.
key
.
children
]
=
[];
a
.
expandTriggerFlag
=!
1
;
a
.
curSelectedList
=
[];
a
.
noSelection
=!
0
;
a
.
createdNodes
=
[];
a
.
zId
=
0
;
a
.
_ver
=
(
new
Date
).
getTime
()}],
C
=
[],
D
=
[],
E
=
[],
F
=
[],
G
=
[],
h
=
{
addNodeCache
:
function
(
b
,
a
){
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
a
},
getNodeCacheId
:
function
(
b
){
return
b
.
substring
(
b
.
lastIndexOf
(
"
_
"
)
+
1
)},
addAfterA
:
function
(
b
){
D
.
push
(
b
)},
addBeforeA
:
function
(
b
){
C
.
push
(
b
)},
addInnerAfterA
:
function
(
b
){
F
.
push
(
b
)},
addInnerBeforeA
:
function
(
b
){
E
.
push
(
b
)},
addInitBind
:
function
(
b
){
x
.
push
(
b
)},
addInitUnBind
:
function
(
b
){
y
.
push
(
b
)},
addInitCache
:
function
(
b
){
z
.
push
(
b
)},
addInitNode
:
function
(
b
){
A
.
push
(
b
)},
addInitProxy
:
function
(
b
,
a
){
a
?
t
.
splice
(
0
,
0
,
D
=
[],
E
=
[],
F
=
[],
G
=
[],
H
=
[],
h
=
{
addNodeCache
:
function
(
b
,
a
){
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
a
},
getNodeCacheId
:
function
(
b
){
return
b
.
substring
(
b
.
lastIndexOf
(
"
_
"
)
+
1
)},
addAfterA
:
function
(
b
){
E
.
push
(
b
)},
addBeforeA
:
function
(
b
){
D
.
push
(
b
)},
addInnerAfterA
:
function
(
b
){
G
.
push
(
b
)},
addInnerBeforeA
:
function
(
b
){
F
.
push
(
b
)},
addInitBind
:
function
(
b
){
y
.
push
(
b
)},
addInitUnBind
:
function
(
b
){
z
.
push
(
b
)},
addInitCache
:
function
(
b
){
A
.
push
(
b
)},
addInitNode
:
function
(
b
){
B
.
push
(
b
)},
addInitProxy
:
function
(
b
,
a
){
a
?
u
.
splice
(
0
,
0
,
b
):
t
.
push
(
b
)},
addInitRoot
:
function
(
b
){
B
.
push
(
b
)},
addNodesData
:
function
(
b
,
a
,
c
,
d
){
var
e
=
b
.
data
.
key
.
children
;
a
[
e
]?
c
>=
a
[
e
].
length
&&
(
c
=-
1
):(
a
[
e
]
=
[],
c
=-
1
);
if
(
a
[
e
].
length
>
0
&&
c
===
0
)
a
[
e
][
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
0
]);
else
if
(
a
[
e
].
length
>
0
&&
c
<
0
)
a
[
e
][
a
[
e
].
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
a
[
e
].
length
-
1
]);
a
.
isParent
=!
0
;
c
<
0
?
a
[
e
]
=
a
[
e
].
concat
(
d
):(
b
=
[
c
,
0
].
concat
(
d
),
a
[
e
].
splice
.
apply
(
a
[
e
],
b
))},
addSelectedNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
);
h
.
isSelectedNode
(
b
,
a
)
||
c
.
curSelectedList
.
push
(
a
)},
b
):
u
.
push
(
b
)},
addInitRoot
:
function
(
b
){
C
.
push
(
b
)},
addNodesData
:
function
(
b
,
a
,
c
,
d
){
var
e
=
b
.
data
.
key
.
children
;
a
[
e
]?
c
>=
a
[
e
].
length
&&
(
c
=-
1
):(
a
[
e
]
=
[],
c
=-
1
);
if
(
a
[
e
].
length
>
0
&&
c
===
0
)
a
[
e
][
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
0
]);
else
if
(
a
[
e
].
length
>
0
&&
c
<
0
)
a
[
e
][
a
[
e
].
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
a
[
e
].
length
-
1
]);
a
.
isParent
=!
0
;
c
<
0
?
a
[
e
]
=
a
[
e
].
concat
(
d
):(
b
=
[
c
,
0
].
concat
(
d
),
a
[
e
].
splice
.
apply
(
a
[
e
],
b
))},
addSelectedNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
);
h
.
isSelectedNode
(
b
,
a
)
||
c
.
curSelectedList
.
push
(
a
)},
addCreatedNode
:
function
(
b
,
a
){(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
&&
h
.
getRoot
(
b
).
createdNodes
.
push
(
a
)},
addZTreeTools
:
function
(
b
){
G
.
push
(
b
)},
exSetting
:
function
(
b
){
q
.
extend
(
!
0
,
N
,
b
)},
fixPIdKeyValue
:
function
(
b
,
a
){
b
.
data
.
simpleData
.
enable
&&
(
a
[
b
.
data
.
simpleData
.
pIdKey
]
=
a
.
parentTId
?
a
.
getParentNode
()[
b
.
data
.
simpleData
.
idKey
]:
b
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
C
.
length
;
d
<
e
;
d
++
)
C
[
d
].
apply
(
this
,
addCreatedNode
:
function
(
b
,
a
){(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
&&
h
.
getRoot
(
b
).
createdNodes
.
push
(
a
)},
addZTreeTools
:
function
(
b
){
H
.
push
(
b
)},
exSetting
:
function
(
b
){
q
.
extend
(
!
0
,
O
,
b
)},
fixPIdKeyValue
:
function
(
b
,
a
){
b
.
data
.
simpleData
.
enable
&&
(
a
[
b
.
data
.
simpleData
.
pIdKey
]
=
a
.
parentTId
?
a
.
getParentNode
()[
b
.
data
.
simpleData
.
idKey
]:
b
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getInnerAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
b
){
return
w
[
b
.
treeId
]},
getNodeIndex
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
;
return
-
1
},
getNextNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
arguments
)},
getInnerAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
G
.
length
;
d
<
e
;
d
++
)
G
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
b
){
return
x
[
b
.
treeId
]},
getNodeIndex
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
;
return
-
1
},
getNextNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
g
?
null
:
d
[
c
][
e
+
1
];
return
null
},
getNodeByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
null
;
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
0
,
n
=
a
.
length
;
g
<
n
;
g
++
){
if
(
a
[
g
][
c
]
==
d
)
return
a
[
g
];
var
f
=
h
.
getNodeByParam
(
b
,
a
[
g
][
e
],
c
,
d
);
if
(
f
)
return
f
}
return
null
},
getNodeCache
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
=
w
[
b
.
treeId
].
nodes
[
h
.
getNodeCacheId
(
a
)];
return
c
?
c
:
null
},
getNodeName
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
name
]},
getNodePath
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
g
?
null
:
d
[
c
][
e
+
1
];
return
null
},
getNodeByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
null
;
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
0
,
m
=
a
.
length
;
g
<
m
;
g
++
){
if
(
a
[
g
][
c
]
==
d
)
return
a
[
g
];
var
f
=
h
.
getNodeByParam
(
b
,
a
[
g
][
e
],
c
,
d
);
if
(
f
)
return
f
}
return
null
},
getNodeCache
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
=
x
[
b
.
treeId
].
nodes
[
h
.
getNodeCacheId
(
a
)];
return
c
?
c
:
null
},
getNodeName
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
name
]},
getNodePath
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
;(
c
=
a
.
parentTId
?
a
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
a
);
return
c
},
getNodeTitle
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
title
===
""
?
b
.
data
.
key
.
name
:
b
.
data
.
key
.
title
]},
getNodes
:
function
(
b
){
return
h
.
getRoot
(
b
)[
b
.
data
.
key
.
children
]},
getNodesByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
a
[
f
][
c
]
==
d
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParam
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByParamFuzzy
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
var
c
;(
c
=
a
.
parentTId
?
a
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
a
);
return
c
},
getNodeTitle
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
title
===
""
?
b
.
data
.
key
.
name
:
b
.
data
.
key
.
title
]},
getNodes
:
function
(
b
){
return
h
.
getRoot
(
b
)[
b
.
data
.
key
.
children
]},
getNodesByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
a
[
f
][
c
]
==
d
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParam
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByParamFuzzy
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
d
=
d
.
toLowerCase
(),
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
typeof
a
[
f
][
c
]
==
"
string
"
&&
a
[
f
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParamFuzzy
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByFilter
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
a
)
return
d
?
null
:[];
for
(
var
g
=
b
.
data
.
key
.
children
,
f
=
d
?
null
:[],
i
=
0
,
m
=
a
.
length
;
i
<
m
;
i
++
){
if
(
j
.
apply
(
c
,[
a
[
i
],
e
],
!
1
)){
if
(
d
)
return
a
[
i
];
f
.
push
(
a
[
i
])}
var
k
=
h
.
getNodesByFilter
(
b
,
a
[
i
][
g
],
c
,
d
,
e
);
if
(
d
&&
k
)
return
k
;
f
=
d
?
k
:
f
.
concat
(
k
)}
return
f
},
getPreNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
g
=
[],
d
=
d
.
toLowerCase
(),
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
typeof
a
[
f
][
c
]
==
"
string
"
&&
a
[
f
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParamFuzzy
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByFilter
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
a
)
return
d
?
null
:[];
for
(
var
g
=
b
.
data
.
key
.
children
,
f
=
d
?
null
:[],
i
=
0
,
n
=
a
.
length
;
i
<
n
;
i
++
){
if
(
j
.
apply
(
c
,[
a
[
i
],
e
],
!
1
)){
if
(
d
)
return
a
[
i
];
f
.
push
(
a
[
i
])}
var
k
=
h
.
getNodesByFilter
(
b
,
a
[
i
][
g
],
c
,
d
,
e
);
if
(
d
&&
k
)
return
k
;
f
=
d
?
k
:
f
.
concat
(
k
)}
return
f
},
getPreNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
;
e
<
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
0
?
null
:
d
[
c
][
e
-
1
];
return
null
},
getRoot
:
function
(
b
){
return
b
?
v
[
b
.
treeId
]:
null
},
getRoots
:
function
(){
return
v
},
getSetting
:
function
(
b
){
return
r
[
b
]},
getSettings
:
function
(){
return
r
},
getZTreeTools
:
function
(
b
){
return
(
b
=
this
.
getRoot
(
this
.
getSetting
(
b
)))?
b
.
treeTools
:
null
},
initCache
:
function
(
b
){
for
(
var
a
=
0
,
c
=
z
.
length
;
a
<
c
;
a
++
)
z
[
a
].
apply
(
this
,
arguments
)},
initNode
:
function
(
b
,
a
,
c
,
d
,
e
,
g
){
for
(
var
f
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
;
e
<
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
0
?
null
:
d
[
c
][
e
-
1
];
return
null
},
getRoot
:
function
(
b
){
return
b
?
w
[
b
.
treeId
]:
null
},
getRoots
:
function
(){
return
w
},
getSetting
:
function
(
b
){
return
s
[
b
]},
getSettings
:
function
(){
return
s
},
getZTreeTools
:
function
(
b
){
return
(
b
=
this
.
getRoot
(
this
.
getSetting
(
b
)))?
b
.
treeTools
:
null
},
initCache
:
function
(
b
){
for
(
var
a
=
0
,
c
=
A
.
length
;
a
<
c
;
a
++
)
A
[
a
].
apply
(
this
,
arguments
)},
initNode
:
function
(
b
,
a
,
c
,
d
,
e
,
g
){
for
(
var
f
=
0
,
h
=
A
.
length
;
f
<
h
;
f
++
)
A
[
f
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
b
){
for
(
var
a
=
0
,
c
=
B
.
length
;
a
<
c
;
a
++
)
B
[
a
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
removeNodeCache
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
])
for
(
var
d
=
0
,
e
=
a
[
c
].
length
;
d
<
e
;
d
++
)
arguments
.
callee
(
b
,
a
[
c
][
d
]);
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
h
=
B
.
length
;
f
<
h
;
f
++
)
B
[
f
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
b
){
for
(
var
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
C
[
a
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
removeNodeCache
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
])
for
(
var
d
=
0
,
e
=
a
[
c
].
length
;
d
<
e
;
d
++
)
arguments
.
callee
(
b
,
a
[
c
][
d
]);
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
]
||!
h
.
getNodeCache
(
b
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
a
]),
d
--
,
e
--
},
setCache
:
function
(
b
,
a
){
w
[
b
.
treeId
]
=
a
},
setRoot
:
function
(
b
,
a
){
v
[
b
.
treeId
]
=
a
},
setZTreeTools
:
function
(
b
,
a
){
for
(
var
c
=
0
,
d
=
G
.
length
;
c
<
d
;
c
++
)
G
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
b
,
a
){
if
(
!
a
)
return
[];
var
c
=
b
.
data
.
key
.
children
,
d
=
[];
if
(
j
.
isArray
(
a
))
for
(
var
e
=
0
,
g
=
a
.
length
;
e
<
g
;
e
++
)
d
.
push
(
a
[
e
]),
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
]
||!
h
.
getNodeCache
(
b
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
a
]),
d
--
,
e
--
},
setCache
:
function
(
b
,
a
){
x
[
b
.
treeId
]
=
a
},
setRoot
:
function
(
b
,
a
){
w
[
b
.
treeId
]
=
a
},
setZTreeTools
:
function
(
b
,
a
){
for
(
var
c
=
0
,
d
=
H
.
length
;
c
<
d
;
c
++
)
H
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
b
,
a
){
if
(
!
a
)
return
[];
var
c
=
b
.
data
.
key
.
children
,
d
=
[];
if
(
j
.
isArray
(
a
))
for
(
var
e
=
0
,
g
=
a
.
length
;
e
<
g
;
e
++
)
d
.
push
(
a
[
e
]),
a
[
e
][
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
e
][
c
])));
else
d
.
push
(
a
),
a
[
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
c
])));
return
d
},
transformTozTreeFormat
:
function
(
b
,
a
){
var
c
,
d
,
e
=
b
.
data
.
simpleData
.
idKey
,
g
=
b
.
data
.
simpleData
.
pIdKey
,
f
=
b
.
data
.
key
.
children
;
if
(
!
e
||
e
==
""
||!
a
)
return
[];
if
(
j
.
isArray
(
a
)){
var
h
=
[],
i
=
[];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
e
]]
=
a
[
c
];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
g
]]
&&
a
[
c
][
e
]
!=
a
[
c
][
g
]?(
i
[
a
[
c
][
g
]][
f
]
||
(
i
[
a
[
c
][
g
]][
f
]
=
[]),
i
[
a
[
c
][
g
]][
f
].
push
(
a
[
c
])):
h
.
push
(
a
[
c
]);
return
h
}
else
return
[
a
]}},
a
[
e
][
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
e
][
c
])));
else
d
.
push
(
a
),
a
[
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
c
])));
return
d
},
transformTozTreeFormat
:
function
(
b
,
a
){
var
c
,
d
,
e
=
b
.
data
.
simpleData
.
idKey
,
g
=
b
.
data
.
simpleData
.
pIdKey
,
f
=
b
.
data
.
key
.
children
;
if
(
!
e
||
e
==
""
||!
a
)
return
[];
if
(
j
.
isArray
(
a
)){
var
h
=
[],
i
=
[];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
e
]]
=
a
[
c
];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
g
]]
&&
a
[
c
][
e
]
!=
a
[
c
][
g
]?(
i
[
a
[
c
][
g
]][
f
]
||
(
i
[
a
[
c
][
g
]][
f
]
=
[]),
i
[
a
[
c
][
g
]][
f
].
push
(
a
[
c
])):
h
.
push
(
a
[
c
]);
return
h
}
else
return
[
a
]}},
l
=
{
bindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
x
.
length
;
a
<
c
;
a
++
)
x
[
a
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
y
.
length
;
a
<
c
;
a
++
)
y
[
a
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
b
){
var
a
=
{
treeId
:
b
.
treeId
},
c
=
b
.
treeObj
;
b
.
view
.
txtSelectedEnable
||
c
.
bind
(
"
selectstart
"
,
u
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
});
c
.
bind
(
"
click
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
dblclick
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseover
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseout
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mousedown
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseup
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
contextmenu
"
,
l
=
{
bindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
y
.
length
;
a
<
c
;
a
++
)
y
[
a
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
z
.
length
;
a
<
c
;
a
++
)
z
[
a
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
b
){
var
a
=
{
treeId
:
b
.
treeId
},
c
=
b
.
treeObj
;
b
.
view
.
txtSelectedEnable
||
c
.
bind
(
"
selectstart
"
,
v
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
});
c
.
bind
(
"
click
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
dblclick
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseover
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseout
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mousedown
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseup
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
contextmenu
"
,
a
,
l
.
proxy
)},
unbindTree
:
function
(
b
){
b
.
treeObj
.
unbind
(
"
selectstart
"
,
u
).
unbind
(
"
click
"
,
l
.
proxy
).
unbind
(
"
dblclick
"
,
l
.
proxy
).
unbind
(
"
mouseover
"
,
l
.
proxy
).
unbind
(
"
mouseout
"
,
l
.
proxy
).
unbind
(
"
mousedown
"
,
l
.
proxy
).
unbind
(
"
mouseup
"
,
l
.
proxy
).
unbind
(
"
contextmenu
"
,
l
.
proxy
)},
doProxy
:
function
(
b
){
for
(
var
a
=
[],
c
=
0
,
d
=
t
.
length
;
c
<
d
;
c
++
){
var
e
=
t
[
c
].
apply
(
this
,
arguments
);
a
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
a
},
proxy
:
function
(
b
){
var
a
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
a
,
b
))
return
!
0
;
for
(
var
a
=
l
.
doProxy
(
b
),
c
=!
0
,
d
=
0
,
e
=
a
.
length
;
d
<
a
,
l
.
proxy
)},
unbindTree
:
function
(
b
){
b
.
treeObj
.
unbind
(
"
selectstart
"
,
v
).
unbind
(
"
click
"
,
l
.
proxy
).
unbind
(
"
dblclick
"
,
l
.
proxy
).
unbind
(
"
mouseover
"
,
l
.
proxy
).
unbind
(
"
mouseout
"
,
l
.
proxy
).
unbind
(
"
mousedown
"
,
l
.
proxy
).
unbind
(
"
mouseup
"
,
l
.
proxy
).
unbind
(
"
contextmenu
"
,
l
.
proxy
)},
doProxy
:
function
(
b
){
for
(
var
a
=
[],
c
=
0
,
d
=
u
.
length
;
c
<
d
;
c
++
){
var
e
=
u
[
c
].
apply
(
this
,
arguments
);
a
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
a
},
proxy
:
function
(
b
){
var
a
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
a
,
b
))
return
!
0
;
for
(
var
a
=
l
.
doProxy
(
b
),
c
=!
0
,
d
=
0
,
e
=
a
.
length
;
d
<
e
;
d
++
){
var
g
=
a
[
d
];
g
.
nodeEventCallback
&&
(
c
=
g
.
nodeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
);
g
.
treeEventCallback
&&
(
c
=
g
.
treeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
)}
return
c
}};
H
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
a
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
h
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
a
);
return
!
0
};
I
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
e
;
d
++
){
var
g
=
a
[
d
];
g
.
nodeEventCallback
&&
(
c
=
g
.
nodeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
);
g
.
treeEventCallback
&&
(
c
=
g
.
treeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
)}
return
c
}};
I
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
a
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
h
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
a
);
return
!
0
};
J
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
h
.
isSelectedNode
(
c
,
a
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
a
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
a
):
i
.
selectNode
(
c
,
a
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,[
b
,
c
.
treeId
,
a
,
d
]);
return
!
0
};
J
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
K
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
h
.
isSelectedNode
(
c
,
a
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
a
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
a
):
i
.
selectNode
(
c
,
a
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,[
b
,
c
.
treeId
,
a
,
d
]);
return
!
0
};
K
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
L
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
L
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
M
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
b
,
c
.
treeId
,
a
]);
return
typeof
c
.
callback
.
onRightClick
!=
"
function
"
};
u
=
function
(
b
){
b
=
b
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
M
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
N
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
b
,
c
.
treeId
,
a
]);
return
typeof
c
.
callback
.
onRightClick
!=
"
function
"
};
v
=
function
(
b
){
b
=
b
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
b
===
"
input
"
||
b
===
"
textarea
"
};
var
j
=
{
apply
:
function
(
b
,
a
,
c
){
return
typeof
b
==
"
function
"
?
b
.
apply
(
O
,
a
?
a
:[]):
c
},
canAsync
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
return
b
.
async
.
enable
&&
a
&&
a
.
isParent
&&!
(
a
.
zAsync
||
a
[
c
]
&&
a
[
c
].
length
>
0
)},
clone
:
function
(
b
){
if
(
b
===
null
)
return
null
;
var
a
=
j
.
isArray
(
b
)?[]:{},
c
;
for
(
c
in
b
)
a
[
c
]
=
b
[
c
]
instanceof
Date
?
new
Date
(
b
[
c
].
getTime
()):
typeof
b
[
c
]
===
"
object
"
?
arguments
.
callee
(
b
[
c
]):
b
[
c
];
return
a
},
eqs
:
function
(
b
,
a
){
return
b
.
toLowerCase
()
===
a
.
toLowerCase
()},
isArray
:
function
(
b
){
return
Object
.
prototype
.
toString
.
apply
(
b
)
===
return
b
===
"
input
"
||
b
===
"
textarea
"
};
var
j
=
{
apply
:
function
(
b
,
a
,
c
){
return
typeof
b
==
"
function
"
?
b
.
apply
(
P
,
a
?
a
:[]):
c
},
canAsync
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
return
b
.
async
.
enable
&&
a
&&
a
.
isParent
&&!
(
a
.
zAsync
||
a
[
c
]
&&
a
[
c
].
length
>
0
)},
clone
:
function
(
b
){
if
(
b
===
null
)
return
null
;
var
a
=
j
.
isArray
(
b
)?[]:{},
c
;
for
(
c
in
b
)
a
[
c
]
=
b
[
c
]
instanceof
Date
?
new
Date
(
b
[
c
].
getTime
()):
typeof
b
[
c
]
===
"
object
"
?
arguments
.
callee
(
b
[
c
]):
b
[
c
];
return
a
},
eqs
:
function
(
b
,
a
){
return
b
.
toLowerCase
()
===
a
.
toLowerCase
()},
isArray
:
function
(
b
){
return
Object
.
prototype
.
toString
.
apply
(
b
)
===
"
[object Array]
"
},
$
:
function
(
b
,
a
,
c
){
a
&&
typeof
a
!=
"
string
"
&&
(
c
=
a
,
a
=
""
);
return
typeof
b
==
"
string
"
?
q
(
b
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"
#
"
+
b
.
tId
+
a
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
b
,
a
,
c
){
if
(
!
a
)
return
null
;
for
(;
a
&&
a
.
id
!==
b
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
a
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
a
.
tagName
,
c
[
d
].
tagName
)
&&
a
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
a
;
a
=
a
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
b
){
return
q
(
b
).
parent
(
"
li
"
).
get
(
0
)
||
q
(
b
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
b
,
"
[object Array]
"
},
$
:
function
(
b
,
a
,
c
){
a
&&
typeof
a
!=
"
string
"
&&
(
c
=
a
,
a
=
""
);
return
typeof
b
==
"
string
"
?
q
(
b
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"
#
"
+
b
.
tId
+
a
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
b
,
a
,
c
){
if
(
!
a
)
return
null
;
for
(;
a
&&
a
.
id
!==
b
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
a
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
a
.
tagName
,
c
[
d
].
tagName
)
&&
a
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
a
;
a
=
a
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
b
){
return
q
(
b
).
parent
(
"
li
"
).
get
(
0
)
||
q
(
b
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
b
,
a
){
return
q
(
b
).
closest
(
"
#
"
+
a
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
b
.
data
.
keep
.
leaf
||!
a
||
a
.
isParent
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
b
.
data
.
simpleData
.
enable
&&
(
d
=
h
.
transformTozTreeFormat
(
b
,
d
)),
a
){
var
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
n
=
k
(
a
,
f
.
id
.
ICON
,
b
),
o
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
o
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
a
){
return
q
(
b
).
closest
(
"
#
"
+
a
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
b
.
data
.
keep
.
leaf
||!
a
||
a
.
isParent
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
b
.
data
.
simpleData
.
enable
&&
(
d
=
h
.
transformTozTreeFormat
(
b
,
d
)),
a
){
var
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
m
=
k
(
a
,
f
.
id
.
ICON
,
b
),
o
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
o
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
!
0
)}
else
h
.
addNodesData
(
b
,
h
.
getRoot
(
b
),
c
,
d
),
i
.
createNodes
(
b
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
b
,
a
,
c
,
d
,
e
,
g
,
f
){
if
(
!
c
)
return
[];
var
j
=
[],
m
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
m
],
l
,
Q
;
if
(
!
k
||
e
>=
k
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
q
=
c
.
length
;
s
<
q
;
s
++
){
var
p
=
c
[
s
];
g
&&
(
l
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
p
,
d
,
l
,
Q
,
f
),
h
.
addNodeCache
(
b
,
p
));
l
=
[];
p
[
m
]
&&
p
[
m
].
length
>
0
&&
(
l
=
i
.
appendNodes
(
b
,
a
+
1
,
p
[
m
],
p
,
-
1
,
g
,
f
&&
p
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
p
),
i
.
makeDOMNodeLine
(
j
,
b
,
p
),
h
.
getBeforeA
(
b
,
!
0
)}
else
h
.
addNodesData
(
b
,
h
.
getRoot
(
b
),
c
,
d
),
i
.
createNodes
(
b
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
b
,
a
,
c
,
d
,
e
,
g
,
f
){
if
(
!
c
)
return
[];
var
j
=
[],
k
=
b
.
data
.
key
.
children
,
l
=
(
d
?
d
:
h
.
getRoot
(
b
))[
k
],
r
,
Q
;
if
(
!
l
||
e
>=
l
.
length
)
e
=-
1
;
for
(
var
t
=
0
,
q
=
c
.
length
;
t
<
q
;
t
++
){
var
p
=
c
[
t
];
g
&&
(
r
=
(
e
===
0
||
l
.
length
==
c
.
length
)
&&
t
==
0
,
Q
=
e
<
0
&&
t
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
p
,
d
,
r
,
Q
,
f
),
h
.
addNodeCache
(
b
,
p
));
r
=
[];
p
[
k
]
&&
p
[
k
].
length
>
0
&&
(
r
=
i
.
appendNodes
(
b
,
a
+
1
,
p
[
k
],
p
,
-
1
,
g
,
f
&&
p
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
p
),
i
.
makeDOMNodeLine
(
j
,
b
,
p
),
h
.
getBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
p
),
h
.
getInnerBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
p
),
h
.
getInnerAfterA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
p
),
h
.
getAfterA
(
b
,
p
,
j
),
p
.
isParent
&&
p
.
open
&&
i
.
makeUlHtml
(
b
,
p
,
j
,
l
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
p
),
h
.
addCreatedNode
(
b
,
p
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
0
)
&&
a
.
parentTId
&&
(
i
.
appendParentULDom
(
b
,
a
.
getParentNode
()),
d
=
k
(
a
,
b
));
var
e
=
k
(
a
,
f
.
id
.
UL
,
b
);
e
.
get
(
0
)
&&
e
.
remove
();
e
=
i
.
appendNodes
(
b
,
a
.
level
+
1
,
a
[
b
.
data
.
key
.
children
],
a
,
-
1
,
!
1
,
!
0
);
p
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
p
),
h
.
getInnerBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
p
),
h
.
getInnerAfterA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
p
),
h
.
getAfterA
(
b
,
p
,
j
),
p
.
isParent
&&
p
.
open
&&
i
.
makeUlHtml
(
b
,
p
,
j
,
r
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
p
),
h
.
addCreatedNode
(
b
,
p
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
0
)
&&
a
.
parentTId
&&
(
i
.
appendParentULDom
(
b
,
a
.
getParentNode
()),
d
=
k
(
a
,
b
));
var
e
=
k
(
a
,
f
.
id
.
UL
,
b
);
e
.
get
(
0
)
&&
e
.
remove
();
e
=
i
.
appendNodes
(
b
,
a
.
level
+
1
,
a
[
b
.
data
.
key
.
children
],
a
,
-
1
,
!
1
,
!
0
);
i
.
makeUlHtml
(
b
,
a
,
c
,
e
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
b
,
a
,
c
,
d
){
var
e
,
g
;
if
(
a
&&!
a
.
isParent
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
a
&&
a
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
b
.
callback
.
beforeAsync
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
a
)
a
.
isAjaxing
=!
0
,
k
(
a
,
f
.
id
.
ICON
,
b
).
attr
({
style
:
""
,
"
class
"
:
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
ICO_LOADING
});
var
n
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
o
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
m
=
o
;
o
.
length
>
1
&&
(
m
=
o
[
1
],
o
=
o
[
0
]);
n
[
m
]
=
a
[
o
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
i
.
makeUlHtml
(
b
,
a
,
c
,
e
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
b
,
a
,
c
,
d
){
var
e
,
g
;
if
(
a
&&!
a
.
isParent
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
a
&&
a
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
b
.
callback
.
beforeAsync
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
a
)
a
.
isAjaxing
=!
0
,
k
(
a
,
f
.
id
.
ICON
,
b
).
attr
({
style
:
""
,
"
class
"
:
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
ICO_LOADING
});
var
m
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
o
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
o
;
o
.
length
>
1
&&
(
n
=
o
[
1
],
o
=
o
[
0
]);
m
[
n
]
=
a
[
o
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
n
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
l
in
b
.
async
.
otherParam
)
n
[
l
]
=
b
.
async
.
otherParam
[
l
];
var
P
=
h
.
getRoot
(
b
).
_ver
;
q
.
ajax
({
contentType
:
b
.
async
.
contentType
,
cache
:
!
1
,
type
:
b
.
async
.
type
,
url
:
j
.
apply
(
b
.
async
.
url
,[
b
.
treeId
,
a
],
b
.
async
.
url
),
data
:
n
,
dataType
:
b
.
async
.
dataType
,
success
:
function
(
e
){
if
(
P
==
h
.
getRoot
(
b
).
_ver
){
var
g
=
[];
try
{
g
=!
e
||
e
.
length
==
0
?[]:
typeof
e
==
"
string
"
?
eval
(
"
(
"
+
e
+
"
)
"
):
e
}
catch
(
n
){
g
=
e
}
if
(
a
)
a
.
isAjaxing
=
null
,
a
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
b
,
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
m
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
l
in
b
.
async
.
otherParam
)
m
[
l
]
=
b
.
async
.
otherParam
[
l
];
var
r
=
h
.
getRoot
(
b
).
_ver
;
q
.
ajax
({
contentType
:
b
.
async
.
contentType
,
cache
:
!
1
,
type
:
b
.
async
.
type
,
url
:
j
.
apply
(
b
.
async
.
url
,[
b
.
treeId
,
a
],
b
.
async
.
url
),
data
:
m
,
dataType
:
b
.
async
.
dataType
,
success
:
function
(
e
){
if
(
r
==
h
.
getRoot
(
b
).
_ver
){
var
g
=
[];
try
{
g
=!
e
||
e
.
length
==
0
?[]:
typeof
e
==
"
string
"
?
eval
(
"
(
"
+
e
+
"
)
"
):
e
}
catch
(
m
){
g
=
e
}
if
(
a
)
a
.
isAjaxing
=
null
,
a
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
b
,
a
);
g
&&
g
!==
""
?(
g
=
j
.
apply
(
b
.
async
.
dataFilter
,[
b
.
treeId
,
a
,
g
],
g
),
i
.
addNodes
(
b
,
a
,
-
1
,
g
?
j
.
clone
(
g
):[],
!!
c
)):
i
.
addNodes
(
b
,
a
,
-
1
,[],
!!
c
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
b
.
treeId
,
a
,
e
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
e
){
if
(
P
==
h
.
getRoot
(
b
).
_ver
){
if
(
a
)
a
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
b
.
treeId
,
a
,
c
,
d
,
e
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getRoot
(
b
).
curSelectedList
,
e
,
g
;
for
(
e
=
d
.
length
-
1
;
e
>=
0
;
e
--
)
if
(
g
=
d
[
e
],
a
===
g
||!
a
&&
(
!
c
||
c
!==
g
))
if
(
k
(
g
,
a
);
g
&&
g
!==
""
?(
g
=
j
.
apply
(
b
.
async
.
dataFilter
,[
b
.
treeId
,
a
,
g
],
g
),
i
.
addNodes
(
b
,
a
,
-
1
,
g
?
j
.
clone
(
g
):[],
!!
c
)):
i
.
addNodes
(
b
,
a
,
-
1
,[],
!!
c
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
b
.
treeId
,
a
,
e
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
e
){
if
(
r
==
h
.
getRoot
(
b
).
_ver
){
if
(
a
)
a
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
b
.
treeId
,
a
,
c
,
d
,
e
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getRoot
(
b
).
curSelectedList
,
e
,
g
;
for
(
e
=
d
.
length
-
1
;
e
>=
0
;
e
--
)
if
(
g
=
d
[
e
],
a
===
g
||!
a
&&
(
!
c
||
c
!==
g
))
if
(
k
(
g
,
f
.
id
.
A
,
b
).
removeClass
(
f
.
node
.
CURSELECTED
),
a
){
h
.
removeSelectedNode
(
b
,
a
);
break
}
else
d
.
splice
(
e
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
g
])},
createNodeCallback
:
function
(
b
){
if
(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
for
(
var
a
=
h
.
getRoot
(
b
);
a
.
createdNodes
.
length
>
0
;){
var
c
=
a
.
createdNodes
.
shift
();
j
.
apply
(
b
.
view
.
addDiyDom
,[
b
.
treeId
,
c
]);
b
.
callback
.
onNodeCreated
&&
b
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
b
.
treeId
,
c
])}},
createNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
j
=
b
.
data
.
key
.
children
,
f
.
id
.
A
,
b
).
removeClass
(
f
.
node
.
CURSELECTED
),
a
){
h
.
removeSelectedNode
(
b
,
a
);
break
}
else
d
.
splice
(
e
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
g
])},
createNodeCallback
:
function
(
b
){
if
(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
for
(
var
a
=
h
.
getRoot
(
b
);
a
.
createdNodes
.
length
>
0
;){
var
c
=
a
.
createdNodes
.
shift
();
j
.
apply
(
b
.
view
.
addDiyDom
,[
b
.
treeId
,
c
]);
b
.
callback
.
onNodeCreated
&&
b
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
b
.
treeId
,
c
])}},
createNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
j
=
b
.
data
.
key
.
children
,
j
=!
d
||
d
.
open
||!!
k
(
d
[
j
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
j
),
o
,
m
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
o
=
d
)):
o
=
b
.
treeObj
;
o
&&
(
e
>=
0
&&
(
m
=
o
.
children
()[
e
]),
e
>=
0
&&
m
?
q
(
m
).
before
(
a
.
join
(
""
)):
o
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
l
.
unbindTree
(
b
),
l
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
n
=
b
.
data
.
key
.
children
;
if
(
a
){
if
(
g
.
expandTriggerFlag
){
var
o
=
e
,
e
=
function
(){
o
&&
j
=!
d
||
d
.
open
||!!
k
(
d
[
j
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
j
),
o
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
o
=
d
)):
o
=
b
.
treeObj
;
o
&&
(
e
>=
0
&&
(
n
=
o
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
o
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
l
.
unbindTree
(
b
),
l
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
s
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
m
=
b
.
data
.
key
.
children
;
if
(
a
){
if
(
g
.
expandTriggerFlag
){
var
o
=
e
,
e
=
function
(){
o
&&
o
();
a
.
open
?
b
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
b
.
treeId
,
a
]):
b
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
b
.
treeId
,
a
])};
g
.
expandTriggerFlag
=!
1
}
if
(
!
a
.
open
&&
a
.
isParent
&&
(
!
k
(
a
,
f
.
id
.
UL
,
b
).
get
(
0
)
||
a
[
n
]
&&
a
[
n
].
length
>
0
&&!
k
(
a
[
n
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,[]);
else
{
var
c
=
k
(
a
,
f
.
id
.
UL
,
b
),
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
m
=
k
(
a
,
f
.
id
.
ICON
,
b
);
a
.
isParent
?(
a
.
open
=!
a
.
open
,
a
.
iconOpen
&&
a
.
iconClose
&&
m
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
o
();
a
.
open
?
b
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
b
.
treeId
,
a
]):
b
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
b
.
treeId
,
a
])};
g
.
expandTriggerFlag
=!
1
}
if
(
!
a
.
open
&&
a
.
isParent
&&
(
!
k
(
a
,
f
.
id
.
UL
,
b
).
get
(
0
)
||
a
[
m
]
&&
a
[
m
].
length
>
0
&&!
k
(
a
[
m
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,[]);
else
{
var
c
=
k
(
a
,
f
.
id
.
UL
,
b
),
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
n
=
k
(
a
,
f
.
id
.
ICON
,
b
);
a
.
isParent
?(
a
.
open
=!
a
.
open
,
a
.
iconOpen
&&
a
.
iconClose
&&
n
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
n
]
&&
a
[
n
].
length
>
0
?
c
.
slideDown
(
b
.
view
.
expandSpeed
,
e
):(
c
.
show
(),
j
.
apply
(
e
,[]))):(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
CLOSE
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
||!
(
a
[
n
]
&&
a
[
n
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
a
,
c
,
d
,
e
){
a
&&
(
a
.
parentTId
?(
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
),
a
.
parentTId
&&
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
m
]
&&
a
[
m
].
length
>
0
?
c
.
slideDown
(
b
.
view
.
expandSpeed
,
e
):(
c
.
show
(),
j
.
apply
(
e
,[]))):(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
CLOSE
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
||!
(
a
[
m
]
&&
a
[
m
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
a
,
c
,
d
,
e
){
a
&&
(
a
.
parentTId
?(
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
),
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
b
,
a
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
,
g
=
a
?
a
[
f
]:
g
[
f
],
f
=
a
?
!
1
:
d
,
j
=
h
.
getRoot
(
b
).
expandTriggerFlag
;
h
.
getRoot
(
b
).
expandTriggerFlag
=!
1
;
if
(
g
)
for
(
var
k
=
0
,
l
=
g
.
length
;
k
<
l
;
k
++
)
g
[
k
]
&&
i
.
expandCollapseSonNode
(
b
,
g
[
k
],
c
,
f
);
h
.
getRoot
(
b
).
expandTriggerFlag
=
j
;
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
)},
isSelectedNode
:
function
(
b
,
a
){
if
(
!
a
)
return
!
1
;
var
c
=
h
.
getRoot
(
b
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
i
.
expandCollapseParentNode
(
b
,
a
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
,
g
=
a
?
a
[
f
]:
g
[
f
],
f
=
a
?
!
1
:
d
,
j
=
h
.
getRoot
(
b
).
expandTriggerFlag
;
h
.
getRoot
(
b
).
expandTriggerFlag
=!
1
;
if
(
g
)
for
(
var
k
=
0
,
l
=
g
.
length
;
k
<
l
;
k
++
)
g
[
k
]
&&
i
.
expandCollapseSonNode
(
b
,
g
[
k
],
c
,
f
);
h
.
getRoot
(
b
).
expandTriggerFlag
=
j
;
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
)},
isSelectedNode
:
function
(
b
,
a
){
if
(
!
a
)
return
!
1
;
var
c
=
h
.
getRoot
(
b
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
1
;
d
>=
0
;
d
--
)
if
(
a
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeName
(
a
,
c
),
d
=
a
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"
&
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
);
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
ICON
,
"
' title='' treeNode
"
,
f
.
id
.
ICON
,
"
class='
"
,
i
.
makeNodeIcoClass
(
a
,
c
),
"
' style='
"
,
i
.
makeNodeIcoStyle
(
a
,
c
),
"
'></span><span id='
"
,
c
.
tId
,
f
.
id
.
SPAN
,
"
' class='
"
,
f
.
className
.
NAME
,
"
'>
"
,
d
,
"
</span>
"
)},
makeDOMNodeLine
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"
' title='' class='
"
,
1
;
d
>=
0
;
d
--
)
if
(
a
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeName
(
a
,
c
),
d
=
a
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"
&
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
);
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
ICON
,
"
' title='' treeNode
"
,
f
.
id
.
ICON
,
"
class='
"
,
i
.
makeNodeIcoClass
(
a
,
c
),
"
' style='
"
,
i
.
makeNodeIcoStyle
(
a
,
c
),
"
'></span><span id='
"
,
c
.
tId
,
f
.
id
.
SPAN
,
"
' class='
"
,
f
.
className
.
NAME
,
"
'>
"
,
d
,
"
</span>
"
)},
makeDOMNodeLine
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"
' title='' class='
"
,
i
.
makeNodeLineClass
(
a
,
c
),
"
' treeNode
"
,
f
.
id
.
SWITCH
,
"
></span>
"
)},
makeDOMNodeMainAfter
:
function
(
b
){
b
.
push
(
"
</li>
"
)},
makeDOMNodeMainBefore
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<li id='
"
,
c
.
tId
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
makeDOMNodeNameAfter
:
function
(
b
){
b
.
push
(
"
</a>
"
)},
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
n
=
[],
k
;
for
(
k
in
g
)
n
.
push
(
k
,
"
:
"
,
g
[
k
],
"
;
"
);
b
.
push
(
"
<a id='
"
,
c
.
tId
,
f
.
id
.
A
,
"
' class='
"
,
i
.
makeNodeLineClass
(
a
,
c
),
"
' treeNode
"
,
f
.
id
.
SWITCH
,
"
></span>
"
)},
makeDOMNodeMainAfter
:
function
(
b
){
b
.
push
(
"
</li>
"
)},
makeDOMNodeMainBefore
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<li id='
"
,
c
.
tId
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
makeDOMNodeNameAfter
:
function
(
b
){
b
.
push
(
"
</a>
"
)},
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
m
=
[],
k
;
for
(
k
in
g
)
m
.
push
(
k
,
"
:
"
,
g
[
k
],
"
;
"
);
b
.
push
(
"
<a id='
"
,
c
.
tId
,
f
.
id
.
A
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' treeNode
"
,
f
.
id
.
A
,
'
onclick="
'
,
c
.
click
||
""
,
'
"
'
,
e
!=
null
&&
e
.
length
>
0
?
"
href='
"
+
e
+
"
'
"
:
""
,
"
target='
"
,
i
.
makeNodeTarget
(
c
),
"
' style='
"
,
n
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
),
"
'
"
);
b
.
push
(
"
>
"
)},
makeNodeFontCss
:
function
(
b
,
a
){
var
c
=
j
.
apply
(
b
.
view
.
fontCss
,[
b
.
treeId
,
a
],
b
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"
function
"
?
c
:{}},
makeNodeIcoClass
:
function
(
b
,
a
){
var
c
=
[
"
ico
"
];
f
.
className
.
LEVEL
,
c
.
level
,
"
' treeNode
"
,
f
.
id
.
A
,
'
onclick="
'
,
c
.
click
||
""
,
'
"
'
,
e
!=
null
&&
e
.
length
>
0
?
"
href='
"
+
e
+
"
'
"
:
""
,
"
target='
"
,
i
.
makeNodeTarget
(
c
),
"
' style='
"
,
m
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
),
"
'
"
);
b
.
push
(
"
>
"
)},
makeNodeFontCss
:
function
(
b
,
a
){
var
c
=
j
.
apply
(
b
.
view
.
fontCss
,[
b
.
treeId
,
a
],
b
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"
function
"
?
c
:{}},
makeNodeIcoClass
:
function
(
b
,
a
){
var
c
=
[
"
ico
"
];
a
.
isAjaxing
||
(
c
[
0
]
=
(
a
.
iconSkin
?
a
.
iconSkin
+
"
_
"
:
""
)
+
c
[
0
],
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
));
return
f
.
className
.
BUTTON
+
"
"
+
c
.
join
(
"
_
"
)},
makeNodeIcoStyle
:
function
(
b
,
a
){
var
c
=
[];
if
(
!
a
.
isAjaxing
){
var
d
=
a
.
isParent
&&
a
.
iconOpen
&&
a
.
iconClose
?
a
.
open
?
a
.
iconOpen
:
a
.
iconClose
:
a
[
b
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"
background:url(
"
,
d
,
"
) 0 0 no-repeat;
"
);(
b
.
view
.
showIcon
==!
1
||!
j
.
apply
(
b
.
view
.
showIcon
,[
b
.
treeId
,
a
],
!
0
))
&&
c
.
push
(
"
width:0px;height:0px;
"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
b
,
a
.
isAjaxing
||
(
c
[
0
]
=
(
a
.
iconSkin
?
a
.
iconSkin
+
"
_
"
:
""
)
+
c
[
0
],
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
));
return
f
.
className
.
BUTTON
+
"
"
+
c
.
join
(
"
_
"
)},
makeNodeIcoStyle
:
function
(
b
,
a
){
var
c
=
[];
if
(
!
a
.
isAjaxing
){
var
d
=
a
.
isParent
&&
a
.
iconOpen
&&
a
.
iconClose
?
a
.
open
?
a
.
iconOpen
:
a
.
iconClose
:
a
[
b
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"
background:url(
"
,
d
,
"
) 0 0 no-repeat;
"
);(
b
.
view
.
showIcon
==!
1
||!
j
.
apply
(
b
.
view
.
showIcon
,[
b
.
treeId
,
a
],
!
0
))
&&
c
.
push
(
"
width:0px;height:0px;
"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
b
,
a
){
var
c
=
[];
b
.
view
.
showLine
?
a
.
level
==
0
&&
a
.
isFirstNode
&&
a
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
a
.
level
==
0
&&
a
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
a
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
a
)
+
c
.
join
(
"
_
"
)},
makeNodeLineClassEx
:
function
(
b
){
return
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
LEVEL
+
b
.
level
+
"
"
+
f
.
className
.
SWITCH
+
"
"
},
makeNodeTarget
:
function
(
b
){
return
b
.
target
||
"
_blank
"
},
a
){
var
c
=
[];
b
.
view
.
showLine
?
a
.
level
==
0
&&
a
.
isFirstNode
&&
a
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
a
.
level
==
0
&&
a
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
a
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
a
)
+
c
.
join
(
"
_
"
)},
makeNodeLineClassEx
:
function
(
b
){
return
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
LEVEL
+
b
.
level
+
"
"
+
f
.
className
.
SWITCH
+
"
"
},
makeNodeTarget
:
function
(
b
){
return
b
.
target
||
"
_blank
"
},
makeNodeUrl
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
url
;
return
a
[
c
]?
a
[
c
]:
null
},
makeUlHtml
:
function
(
b
,
a
,
c
,
d
){
c
.
push
(
"
<ul id='
"
,
a
.
tId
,
f
.
id
.
UL
,
"
' class='
"
,
f
.
className
.
LEVEL
,
a
.
level
,
"
"
,
i
.
makeUlLineClass
(
b
,
a
),
"
' style='display:
"
,
a
.
open
?
"
block
"
:
"
none
"
,
"
'>
"
);
c
.
push
(
d
);
c
.
push
(
"
</ul>
"
)},
makeUlLineClass
:
function
(
b
,
a
){
return
b
.
view
.
showLine
&&!
a
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
b
,
a
){
if
(
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
];
if
(
d
){
for
(
var
e
=
0
,
g
=
d
.
length
;
e
<
g
;
e
++
)
h
.
removeNodeCache
(
b
,
d
[
e
]);
h
.
removeSelectedNode
(
b
);
makeNodeUrl
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
url
;
return
a
[
c
]?
a
[
c
]:
null
},
makeUlHtml
:
function
(
b
,
a
,
c
,
d
){
c
.
push
(
"
<ul id='
"
,
a
.
tId
,
f
.
id
.
UL
,
"
' class='
"
,
f
.
className
.
LEVEL
,
a
.
level
,
"
"
,
i
.
makeUlLineClass
(
b
,
a
),
"
' style='display:
"
,
a
.
open
?
"
block
"
:
"
none
"
,
"
'>
"
);
c
.
push
(
d
);
c
.
push
(
"
</ul>
"
)},
makeUlLineClass
:
function
(
b
,
a
){
return
b
.
view
.
showLine
&&!
a
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
b
,
a
){
if
(
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
];
if
(
d
){
for
(
var
e
=
0
,
g
=
d
.
length
;
e
<
g
;
e
++
)
h
.
removeNodeCache
(
b
,
d
[
e
]);
h
.
removeSelectedNode
(
b
);
delete
a
[
c
];
b
.
data
.
keep
.
parent
?
k
(
a
,
f
.
id
.
UL
,
b
).
empty
():(
a
.
isParent
=!
1
,
a
.
open
=!
1
,
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
a
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
a
,
d
,
f
.
folder
.
DOCU
),
k
(
a
,
f
.
id
.
UL
,
b
).
remove
())}}},
s
etFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
].
length
>
0
)
a
[
c
][
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
].
length
;
if
(
d
>
0
)
a
[
c
][
d
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
),
d
=
b
.
data
.
key
.
children
,
e
=
a
.
parentTId
?
a
.
getParentNode
():
delete
a
[
c
];
b
.
data
.
keep
.
parent
?
k
(
a
,
f
.
id
.
UL
,
b
).
empty
():(
a
.
isParent
=!
1
,
a
.
open
=!
1
,
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
a
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
a
,
d
,
f
.
folder
.
DOCU
),
k
(
a
,
f
.
id
.
UL
,
b
).
remove
())}}},
s
crollIntoView
:
function
(
b
){
if
(
b
)
if
(
b
.
scrollIntoViewIfNeeded
)
b
.
scrollIntoViewIfNeeded
();
else
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
else
try
{
b
.
focus
().
blur
()}
catch
(
a
){}},
setFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
].
length
>
0
)
a
[
c
][
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
b
,
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
a
.
tId
)){
k
(
a
,
b
).
remove
();
h
.
removeNodeCache
(
b
,
a
);
h
.
removeSelectedNode
(
b
,
a
);
for
(
var
g
=
0
,
j
=
e
[
d
].
length
;
g
<
j
;
g
++
)
if
(
e
[
d
][
g
].
tId
==
a
.
tId
){
e
[
d
].
splice
(
g
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
o
,
g
=
e
[
d
].
length
;
if
(
!
b
.
data
.
keep
.
parent
&&
g
==
0
)
e
.
isParent
=!
1
,
e
.
open
=!
1
,
g
=
k
(
e
,
f
.
id
.
UL
,
b
),
j
=
k
(
e
,
f
.
id
.
SWITCH
,
b
),
o
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
].
length
;
if
(
d
>
0
)
a
[
c
][
d
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
),
d
=
b
.
data
.
key
.
children
,
e
=
a
.
parentTId
?
a
.
getParentNode
():
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
a
.
tId
)){
k
(
a
,
b
).
remove
();
h
.
removeNodeCache
(
b
,
a
);
h
.
removeSelectedNode
(
b
,
a
);
for
(
var
g
=
0
,
j
=
e
[
d
].
length
;
g
<
j
;
g
++
)
if
(
e
[
d
][
g
].
tId
==
a
.
tId
){
e
[
d
].
splice
(
g
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
o
,
o
,
f
.
folder
.
DOCU
),
g
.
css
(
"
display
"
,
"
none
"
);
else
if
(
b
.
view
.
showLine
&&
g
>
0
){
var
m
=
e
[
d
][
g
-
1
],
g
=
k
(
m
,
f
.
id
.
UL
,
b
),
j
=
k
(
m
,
f
.
id
.
SWITCH
,
b
);
o
=
k
(
m
,
f
.
id
.
ICON
,
b
);
e
==
c
?
e
[
d
].
length
==
1
?
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
ROOT
):(
c
=
k
(
e
[
d
][
0
],
f
.
id
.
SWITCH
,
b
),
i
.
replaceSwitchClass
(
e
[
d
][
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
BOTTOM
);
g
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
b
,
a
,
c
){
if
(
a
&&!
b
.
isAjaxing
&&
(
b
=
a
.
attr
(
"
class
"
),
b
!=
void
0
)){
b
=
b
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
b
[
b
.
length
-
g
=
e
[
d
].
length
;
if
(
!
b
.
data
.
keep
.
parent
&&
g
==
0
)
e
.
isParent
=!
1
,
e
.
open
=!
1
,
g
=
k
(
e
,
f
.
id
.
UL
,
b
),
j
=
k
(
e
,
f
.
id
.
SWITCH
,
b
),
o
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
o
,
f
.
folder
.
DOCU
),
g
.
css
(
"
display
"
,
"
none
"
);
else
if
(
b
.
view
.
showLine
&&
g
>
0
){
var
n
=
e
[
d
][
g
-
1
],
g
=
k
(
n
,
f
.
id
.
UL
,
b
),
j
=
k
(
n
,
f
.
id
.
SWITCH
,
b
);
o
=
k
(
n
,
f
.
id
.
ICON
,
b
);
e
==
c
?
e
[
d
].
length
==
1
?
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
ROOT
):(
c
=
k
(
e
[
d
][
0
],
f
.
id
.
SWITCH
,
b
),
i
.
replaceSwitchClass
(
e
[
d
][
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
n
,
1
]
=
c
}
a
.
attr
(
"
class
"
,
b
.
join
(
"
_
"
))}},
replaceSwitchClass
:
function
(
b
,
a
,
c
){
if
(
a
){
var
d
=
a
.
attr
(
"
class
"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
line
.
ROOT
:
case
f
.
line
.
ROOTS
:
case
f
.
line
.
CENTER
:
case
f
.
line
.
BOTTOM
:
case
f
.
line
.
NOLINE
:
d
[
0
]
=
i
.
makeNodeLineClassEx
(
b
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
c
}
a
.
attr
(
"
class
"
,
d
.
join
(
"
_
"
));
c
!==
f
.
folder
.
DOCU
?
a
.
removeAttr
(
"
disabled
"
):
a
.
attr
(
"
disabled
"
,
"
disabled
"
)}}},
selectNode
:
function
(
b
,
a
,
c
){
c
||
i
.
cancelPreSelectedNode
(
b
,
null
,
a
);
k
(
a
,
j
,
f
.
line
.
BOTTOM
);
g
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
b
,
a
,
c
){
if
(
a
&&!
b
.
isAjaxing
&&
(
b
=
a
.
attr
(
"
class
"
),
b
!=
void
0
)){
b
=
b
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
b
[
b
.
length
-
1
]
=
c
}
a
.
attr
(
"
class
"
,
b
.
join
(
"
_
"
))}},
replaceSwitchClass
:
function
(
b
,
a
,
c
){
if
(
a
){
var
d
=
a
.
attr
(
"
class
"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
line
.
ROOT
:
case
f
.
line
.
ROOTS
:
case
f
.
line
.
CENTER
:
case
f
.
line
.
BOTTOM
:
case
f
.
line
.
NOLINE
:
d
[
0
]
=
i
.
makeNodeLineClassEx
(
b
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
b
.
treeId
,
a
])},
setNodeFontCss
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeFontCss
(
b
,
a
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
b
,
a
){
if
(
a
){
var
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
UL
,
b
),
e
=
k
(
a
,
f
.
id
.
ICON
,
b
),
g
=
i
.
makeUlLineClass
(
b
,
a
);
g
.
length
==
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
g
);
c
.
attr
(
"
class
"
,
i
.
makeNodeLineClass
(
b
,
a
));
a
.
isParent
?
c
.
removeAttr
(
"
disabled
"
):
c
.
attr
(
"
disabled
"
,
"
disabled
"
);
e
.
removeAttr
(
"
style
"
);
c
}
a
.
attr
(
"
class
"
,
d
.
join
(
"
_
"
));
c
!==
f
.
folder
.
DOCU
?
a
.
removeAttr
(
"
disabled
"
):
a
.
attr
(
"
disabled
"
,
"
disabled
"
)}}},
selectNode
:
function
(
b
,
a
,
c
){
c
||
i
.
cancelPreSelectedNode
(
b
,
null
,
a
);
k
(
a
,
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
b
.
treeId
,
a
])},
setNodeFontCss
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeFontCss
(
b
,
a
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
b
,
a
){
if
(
a
){
var
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
UL
,
b
),
e
=
k
(
a
,
f
.
id
.
ICON
,
b
),
g
=
i
.
makeUlLineClass
(
b
,
a
);
g
.
length
==
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
a
))}},
setNodeName
:
function
(
b
,
a
){
var
c
=
h
.
getNodeTitle
(
b
,
a
),
d
=
k
(
a
,
f
.
id
.
SPAN
,
b
);
d
.
empty
();
b
.
view
.
nameIsHTML
?
d
.
html
(
h
.
getNodeName
(
b
,
a
)):
d
.
text
(
h
.
getNodeName
(
b
,
a
));
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
a
],
b
.
view
.
showTitle
)
&&
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
title
"
,
!
c
?
""
:
c
)},
setNodeTarget
:
function
(
b
,
a
){
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
target
"
,
i
.
makeNodeTarget
(
a
))},
setNodeUrl
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeUrl
(
b
,
a
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"
href
"
):
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
g
);
c
.
attr
(
"
class
"
,
i
.
makeNodeLineClass
(
b
,
a
));
a
.
isParent
?
c
.
removeAttr
(
"
disabled
"
):
c
.
attr
(
"
disabled
"
,
"
disabled
"
);
e
.
removeAttr
(
"
style
"
);
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
a
))}},
setNodeName
:
function
(
b
,
a
){
var
c
=
h
.
getNodeTitle
(
b
,
a
),
d
=
k
(
a
,
f
.
id
.
SPAN
,
b
);
d
.
empty
();
b
.
view
.
nameIsHTML
?
d
.
html
(
h
.
getNodeName
(
b
,
a
)):
d
.
text
(
h
.
getNodeName
(
b
,
a
));
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
a
],
b
.
view
.
showTitle
)
&&
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
title
"
,
!
c
?
""
:
c
)},
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
a
)?
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
b
.
async
.
enable
?
i
.
asyncNode
(
b
,
a
)
||
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
a
&&
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
)}};
q
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"
button
"
,
LEVEL
:
"
level
"
,
ICO_LOADING
:
"
ico_loading
"
,
SWITCH
:
"
switch
"
,
NAME
:
"
node_name
"
},
event
:{
NODECREATED
:
"
ztree_nodeCreated
"
,
CLICK
:
"
ztree_click
"
,
EXPAND
:
"
ztree_expand
"
,
COLLAPSE
:
"
ztree_collapse
"
,
ASYNC_SUCCESS
:
"
ztree_async_success
"
,
ASYNC_ERROR
:
"
ztree_async_error
"
,
setNodeTarget
:
function
(
b
,
a
){
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
target
"
,
i
.
makeNodeTarget
(
a
))},
setNodeUrl
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeUrl
(
b
,
a
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"
href
"
):
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
a
)?
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
b
.
async
.
enable
?
i
.
asyncNode
(
b
,
a
)
||
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
a
&&
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
)}};
q
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"
button
"
,
LEVEL
:
"
level
"
,
ICO_LOADING
:
"
ico_loading
"
,
SWITCH
:
"
switch
"
,
NAME
:
"
node_name
"
}
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
},
id
:{
A
:
"
_a
"
,
ICON
:
"
_ico
"
,
SPAN
:
"
_span
"
,
SWITCH
:
"
_switch
"
,
UL
:
"
_ul
"
},
line
:{
ROOT
:
"
root
"
,
ROOTS
:
"
roots
"
,
CENTER
:
"
center
"
,
BOTTOM
:
"
bottom
"
,
NOLINE
:
"
noline
"
,
LINE
:
"
line
"
},
folder
:{
OPEN
:
"
open
"
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
l
,
data
:
h
},
getZTreeObj
:
function
(
b
){
return
(
b
=
h
.
getZTreeTools
(
b
))?
b
:
null
},
destroy
:
function
(
b
){
if
(
b
&&
b
.
length
>
0
)
i
.
destroy
(
h
.
getSetting
(
b
));
else
for
(
var
a
in
r
)
i
.
destroy
(
r
[
a
])}
,
event
:{
NODECREATED
:
"
ztree_nodeCreated
"
,
CLICK
:
"
ztree_click
"
,
EXPAND
:
"
ztree_expand
"
,
COLLAPSE
:
"
ztree_collapse
"
,
ASYNC_SUCCESS
:
"
ztree_async_success
"
,
ASYNC_ERROR
:
"
ztree_async_error
"
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
},
id
:{
A
:
"
_a
"
,
ICON
:
"
_ico
"
,
SPAN
:
"
_span
"
,
SWITCH
:
"
_switch
"
,
UL
:
"
_ul
"
},
line
:{
ROOT
:
"
root
"
,
ROOTS
:
"
roots
"
,
CENTER
:
"
center
"
,
BOTTOM
:
"
bottom
"
,
NOLINE
:
"
noline
"
,
LINE
:
"
line
"
},
folder
:{
OPEN
:
"
open
"
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
b
.
attr
(
"
id
"
);
d
.
treeObj
=
b
;
d
.
treeObj
.
empty
();
r
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
d
.
view
.
expandSpeed
=
""
;
h
.
initRoot
(
d
);
b
=
h
.
getRoot
(
d
);
a
=
d
.
data
.
key
.
children
;
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
c
):
c
;
h
.
initCache
(
d
);
l
.
unbindTree
(
d
);
l
.
bindTree
(
d
);
l
.
unbindEvent
(
d
);
l
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
l
,
f
==!
0
)}
view
:
i
,
event
:
l
,
data
:
h
},
getZTreeObj
:
function
(
b
){
return
(
b
=
h
.
getZTreeTools
(
b
))?
b
:
null
},
destroy
:
function
(
b
){
if
(
b
&&
b
.
length
>
0
)
i
.
destroy
(
h
.
getSetting
(
b
));
else
for
(
var
a
in
s
)
i
.
destroy
(
s
[
a
])},
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
O
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
b
.
attr
(
"
id
"
);
d
.
treeObj
=
b
;
d
.
treeObj
.
empty
();
s
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
d
.
view
.
expandSpeed
=
""
;
h
.
initRoot
(
d
);
b
=
h
.
getRoot
(
d
);
a
=
d
.
data
.
key
.
children
;
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
l
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
l
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
m
){
function
l
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
if
(
b
&&
f
!==!
1
)
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
c
):
c
;
h
.
initCache
(
d
);
l
.
unbindTree
(
d
);
l
.
bindTree
(
d
);
l
.
unbindEvent
(
d
);
l
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
l
,
f
==!
0
)}
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
l
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
l
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
else
try
{
b
.
focus
().
blur
()}
catch
(
c
){}}
if
(
!
a
||!
a
.
isParent
)
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
m
=!!
m
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
m
&&!
b
&&
j
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
m
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
l
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
l
());
return
b
}
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
n
){
function
l
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
b
&&
f
!==!
1
&&
i
.
scrollIntoView
(
b
)}
if
(
!
a
||!
a
.
isParent
)
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
n
=!!
n
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
n
&&!
b
&&
j
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
n
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
getNodes
:
function
(){
return
h
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodeByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
h
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParamFuzzy
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"
function
"
?
a
,
b
,
!
0
,
l
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
l
());
return
b
},
getNodes
:
function
(){
return
h
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodeByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
h
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParamFuzzy
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
b
?
null
:[]:
h
.
getNodesByFilter
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
d
.
data
.
key
.
children
,
c
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
d
),
f
=
0
,
i
=
c
[
b
].
length
;
f
<
i
;
f
++
)
if
(
c
[
b
][
f
]
==
a
)
return
f
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
h
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
h
.
isSelectedNode
(
d
,
a
)},
reAsyncChildNodes
:
function
(
a
,
b
,
c
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"
function
"
?
b
?
null
:[]:
h
.
getNodesByFilter
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
d
.
data
.
key
.
children
,
c
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
d
),
f
=
0
,
i
=
c
[
b
].
length
;
f
<
i
;
f
++
)
if
(
c
[
b
][
f
]
==
a
)
return
f
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
h
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
h
.
isSelectedNode
(
d
,
a
)},
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
m
=
0
,
l
=
a
[
b
]?
a
[
b
].
length
:
0
;
m
<
l
;
m
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
m
]);
h
.
removeSelectedNode
(
d
);
a
[
b
]
=
[];
j
?
this
.
setting
.
treeObj
.
empty
():
k
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
h
.
getRoot
(
d
),
b
=
a
[
d
.
data
.
key
.
children
];
h
.
initRoot
(
d
);
a
[
d
.
data
.
key
.
children
]
=
b
;
h
.
initCache
(
d
);
i
.
createNodes
(
d
,
0
,
a
[
d
.
data
.
key
.
children
],
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
reAsyncChildNodes
:
function
(
a
,
b
,
c
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
l
=
0
,
q
=
a
[
b
]?
a
[
b
].
length
:
0
;
l
<
q
;
l
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
l
]);
h
.
removeSelectedNode
(
d
);
a
[
b
]
=
[];
j
?
this
.
setting
.
treeObj
.
empty
():
k
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
h
.
getRoot
(
d
),
b
=
a
[
d
.
data
.
key
.
children
];
h
.
initRoot
(
d
);
a
[
d
.
data
.
key
.
children
]
=
b
;
h
.
initCache
(
d
);
i
.
createNodes
(
d
,
var
b
=
a
[
d
.
data
.
key
.
children
];
i
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
j
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
i
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
f
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
){
function
c
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
if
(
b
)
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
else
try
{
b
.
focus
().
blur
()}
catch
(
f
){}}
if
(
a
&&
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
c
);
0
,
a
[
d
.
data
.
key
.
children
],
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
var
b
=
a
[
d
.
data
.
key
.
children
];
i
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
j
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
i
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
f
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
,
c
){
function
f
(){
if
(
!
c
){
var
b
=
k
(
a
,
d
).
get
(
0
);
i
.
scrollIntoView
(
b
)}}
if
(
a
&&
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
else
try
{
k
(
a
,
d
).
focus
().
blur
()}
catch
(
f
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
h
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
h
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
k
(
a
,
d
).
get
(
0
)
&&
j
.
uCanDo
(
d
)
&&
(
i
.
setNodeName
(
d
,
a
),
i
.
setNodeTarget
(
d
,
a
),
i
.
setNodeUrl
(
d
,
a
),
i
.
setNodeLineIcos
(
d
,
a
),
i
.
setNodeFontCss
(
d
,
a
))}};
b
.
treeTools
=
c
;
h
.
setZTreeTools
(
d
,
c
);
b
[
a
]
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
try
{
k
(
a
,
d
).
focus
().
blur
()}
catch
(
h
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
h
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
h
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
k
(
a
,
d
).
get
(
0
)
&&
j
.
uCanDo
(
d
)
&&
(
i
.
setNodeName
(
d
,
a
),
i
.
setNodeTarget
(
d
,
a
),
i
.
setNodeUrl
(
d
,
a
),
i
.
setNodeLineIcos
(
d
,
a
),
i
.
setNodeFontCss
(
d
,
a
))}};
b
.
treeTools
=
c
;
h
.
setZTreeTools
(
d
,
c
);
b
[
a
]
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
c
}};
var
P
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
P
.
consts
})(
jQuery
);
api/cn/zTreeObj.selectNode.html
浏览文件 @
ed1b9171
<div
class=
"apiDetail"
>
<div
class=
"apiDetail"
>
<div>
<div>
<h2><span>
Function(treeNode, addFlag)
</span><span
class=
"path"
>
zTreeObj.
</span>
selectNode
</h2>
<h2><span>
Function(treeNode, addFlag
, isSilent
)
</span><span
class=
"path"
>
zTreeObj.
</span>
selectNode
</h2>
<h3>
概述
<span
class=
"h3_info"
>
[ 依赖
<span
class=
"highlight_green"
>
jquery.ztree.core
</span>
核心 js ]
</span></h3>
<h3>
概述
<span
class=
"h3_info"
>
[ 依赖
<span
class=
"highlight_green"
>
jquery.ztree.core
</span>
核心 js ]
</span></h3>
<div
class=
"desc"
>
<div
class=
"desc"
>
<p></p>
<p></p>
...
@@ -17,8 +17,12 @@
...
@@ -17,8 +17,12 @@
<p
class=
"highlight_red"
>
请务必保证此节点数据对象 是 zTree 内部的数据对象
</p>
<p
class=
"highlight_red"
>
请务必保证此节点数据对象 是 zTree 内部的数据对象
</p>
<h4
class=
"topLine"
><b>
addFlag
</b><span>
Boolean
</span></h4>
<h4
class=
"topLine"
><b>
addFlag
</b><span>
Boolean
</span></h4>
<p>
addFlag = true 表示追加选中,会出现多点同时被选中的情况
</p>
<p>
addFlag = true 表示追加选中,会出现多点同时被选中的情况
</p>
<p>
addFlag = false 表示单独选中,原先被选中的节点会被取消选中状态
</p>
<p>
addFlag = false
(默认)
表示单独选中,原先被选中的节点会被取消选中状态
</p>
<p
class=
"highlight_red"
>
setting.view.selectedMulti = false 时,此参数无效,始终进行单独选中
</p>
<p
class=
"highlight_red"
>
setting.view.selectedMulti = false 时,此参数无效,始终进行单独选中
</p>
<h4
class=
"topLine"
><b>
isSilent
</b><span>
Boolean
</span></h4>
<p>
isSilent = true 选中节点时,不会让节点自动滚到到可视区域内
</p>
<p>
isSilent = false (默认)表示选中节点时,会让节点自动滚到到可视区域内
</p>
<p
class=
"highlight_red"
>
(v3.5.23+)
</p>
<h4
class=
"topLine"
><b>
返回值
</b><span>
无
</span></h4>
<h4
class=
"topLine"
><b>
返回值
</b><span>
无
</span></h4>
<p>
目前无任何返回值
</p>
<p>
目前无任何返回值
</p>
</div>
</div>
...
...
api/en/zTreeObj.selectNode.html
浏览文件 @
ed1b9171
<div
class=
"apiDetail"
>
<div
class=
"apiDetail"
>
<div>
<div>
<h2><span>
Function(treeNode, addFlag)
</span><span
class=
"path"
>
zTreeObj.
</span>
selectNode
</h2>
<h2><span>
Function(treeNode, addFlag
, isSilent
)
</span><span
class=
"path"
>
zTreeObj.
</span>
selectNode
</h2>
<h3>
Overview
<span
class=
"h3_info"
>
[ depends on
<span
class=
"highlight_green"
>
jquery.ztree.core
</span>
js ]
</span></h3>
<h3>
Overview
<span
class=
"h3_info"
>
[ depends on
<span
class=
"highlight_green"
>
jquery.ztree.core
</span>
js ]
</span></h3>
<div
class=
"desc"
>
<div
class=
"desc"
>
<p></p>
<p></p>
...
@@ -17,8 +17,11 @@
...
@@ -17,8 +17,11 @@
<p
class=
"highlight_red"
>
Please ensure that this data object is an internal node data object in zTree.
</p>
<p
class=
"highlight_red"
>
Please ensure that this data object is an internal node data object in zTree.
</p>
<h4
class=
"topLine"
><b>
addFlag
</b><span>
Boolean
</span></h4>
<h4
class=
"topLine"
><b>
addFlag
</b><span>
Boolean
</span></h4>
<p>
addFlag = true means: append to select node, don't affect the previously selected node, can select multiple nodes.
</p>
<p>
addFlag = true means: append to select node, don't affect the previously selected node, can select multiple nodes.
</p>
<p>
addFlag = false means: select single node, prior the selected node is deselected.
</p>
<p>
addFlag = false
(default)
means: select single node, prior the selected node is deselected.
</p>
<p
class=
"highlight_red"
>
If setting.view.selectedMulti = false, this para, this parameter is not valid, always select single node
</p>
<p
class=
"highlight_red"
>
If setting.view.selectedMulti = false, this para, this parameter is not valid, always select single node
</p>
<p>
isSilent = true means: when you select node, zTree will not scroll the node into view.
</p>
<p>
isSilent = false (default) means: when you select node, zTree will scroll the node into view.
</p>
<p
class=
"highlight_red"
>
(v3.5.23+)
</p>
<h4
class=
"topLine"
><b>
Return
</b><span>
none
</span></h4>
<h4
class=
"topLine"
><b>
Return
</b><span>
none
</span></h4>
<p>
no return value
</p>
<p>
no return value
</p>
</div>
</div>
...
...
js/jquery.ztree.all.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree core v3.5.2
2
* JQuery zTree core v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
var
settings
=
{},
roots
=
{},
caches
=
{},
var
settings
=
{},
roots
=
{},
caches
=
{},
...
@@ -1347,6 +1347,18 @@
...
@@ -1347,6 +1347,18 @@
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
}
}
},
},
scrollIntoView
:
function
(
dom
)
{
if
(
!
dom
)
{
return
;
}
if
(
dom
.
scrollIntoViewIfNeeded
)
{
dom
.
scrollIntoViewIfNeeded
();
}
else
if
(
dom
.
scrollIntoView
)
{
dom
.
scrollIntoView
(
false
);
}
else
{
try
{
dom
.
focus
().
blur
();}
catch
(
e
){}
}
},
setFirstNode
:
function
(
setting
,
parentNode
)
{
setFirstNode
:
function
(
setting
,
parentNode
)
{
var
childKey
=
setting
.
data
.
key
.
children
,
childLength
=
parentNode
[
childKey
].
length
;
var
childKey
=
setting
.
data
.
key
.
children
,
childLength
=
parentNode
[
childKey
].
length
;
if
(
childLength
>
0
)
{
if
(
childLength
>
0
)
{
...
@@ -1659,11 +1671,7 @@
...
@@ -1659,11 +1671,7 @@
function
showNodeFocus
()
{
function
showNodeFocus
()
{
var
a
=
$$
(
node
,
setting
).
get
(
0
);
var
a
=
$$
(
node
,
setting
).
get
(
0
);
if
(
a
&&
focus
!==
false
)
{
if
(
a
&&
focus
!==
false
)
{
if
(
a
.
scrollIntoView
)
{
view
.
scrollIntoView
(
a
);
a
.
scrollIntoView
(
false
);
}
else
{
try
{
a
.
focus
().
blur
();}
catch
(
e
){}
}
}
}
}
}
},
},
...
@@ -1756,7 +1764,7 @@
...
@@ -1756,7 +1764,7 @@
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
}
}
},
},
selectNode
:
function
(
node
,
addFlag
)
{
selectNode
:
function
(
node
,
addFlag
,
isSilent
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
if
(
tools
.
uCanDo
(
setting
))
{
if
(
tools
.
uCanDo
(
setting
))
{
addFlag
=
setting
.
view
.
selectedMulti
&&
addFlag
;
addFlag
=
setting
.
view
.
selectedMulti
&&
addFlag
;
...
@@ -1769,14 +1777,11 @@
...
@@ -1769,14 +1777,11 @@
}
}
function
showNodeFocus
()
{
function
showNodeFocus
()
{
var
a
=
$$
(
node
,
setting
).
get
(
0
);
if
(
isSilent
)
{
if
(
a
)
{
return
;
if
(
a
.
scrollIntoView
)
{
a
.
scrollIntoView
(
false
);
}
else
{
try
{
a
.
focus
().
blur
();}
catch
(
e
){}
}
}
}
var
a
=
$$
(
node
,
setting
).
get
(
0
);
view
.
scrollIntoView
(
a
);
}
}
},
},
transformTozTreeNodes
:
function
(
simpleNodes
)
{
transformTozTreeNodes
:
function
(
simpleNodes
)
{
...
@@ -1814,7 +1819,7 @@
...
@@ -1814,7 +1819,7 @@
consts
=
zt
.
consts
;
consts
=
zt
.
consts
;
})(
jQuery
);
})(
jQuery
);
/*
/*
* JQuery zTree excheck v3.5.2
2
* JQuery zTree excheck v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -1823,7 +1828,7 @@
...
@@ -1823,7 +1828,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of excheck
//default consts of excheck
...
@@ -2442,7 +2447,7 @@
...
@@ -2442,7 +2447,7 @@
}
}
})(
jQuery
);
})(
jQuery
);
/*
/*
* JQuery zTree exedit v3.5.2
2
* JQuery zTree exedit v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -2451,7 +2456,7 @@
...
@@ -2451,7 +2456,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of exedit
//default consts of exedit
...
@@ -3135,13 +3140,7 @@
...
@@ -3135,13 +3140,7 @@
view
.
selectNodes
(
targetSetting
,
newNodes
);
view
.
selectNodes
(
targetSetting
,
newNodes
);
var
a
=
$$
(
newNodes
[
0
],
setting
).
get
(
0
);
var
a
=
$$
(
newNodes
[
0
],
setting
).
get
(
0
);
if
(
a
)
{
view
.
scrollIntoView
(
a
);
if
(
a
.
scrollIntoView
)
{
a
.
scrollIntoView
(
false
);
}
else
{
try
{
a
.
focus
().
blur
();}
catch
(
e
){}
}
}
setting
.
treeObj
.
trigger
(
consts
.
event
.
DROP
,
[
event
,
targetSetting
.
treeId
,
newNodes
,
dragTargetNode
,
moveType
,
isCopy
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
DROP
,
[
event
,
targetSetting
.
treeId
,
newNodes
,
dragTargetNode
,
moveType
,
isCopy
]);
}
}
...
...
js/jquery.ztree.all.min.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree core v3.5.2
2
* JQuery zTree core v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -9,71 +9,71 @@
...
@@ -9,71 +9,71 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
q
){
var
H
,
I
,
J
,
K
,
L
,
M
,
u
,
r
=
{},
v
=
{},
w
=
{},
N
=
{
treeId
:
""
,
treeObj
:
null
,
view
:{
addDiyDom
:
null
,
autoCancelSelected
:
!
0
,
dblClickExpand
:
!
0
,
expandSpeed
:
"
fast
"
,
fontCss
:{},
nameIsHTML
:
!
1
,
selectedMulti
:
!
0
,
showIcon
:
!
0
,
showLine
:
!
0
,
showTitle
:
!
0
,
txtSelectedEnable
:
!
1
},
data
:{
key
:{
children
:
"
children
"
,
name
:
"
name
"
,
title
:
""
,
url
:
"
url
"
,
icon
:
"
icon
"
},
simpleData
:{
enable
:
!
1
,
idKey
:
"
id
"
,
pIdKey
:
"
pId
"
,
rootPId
:
null
},
keep
:{
parent
:
!
1
,
leaf
:
!
1
}},
async
:{
enable
:
!
1
,
contentType
:
"
application/x-www-form-urlencoded
"
,
type
:
"
post
"
,
dataType
:
"
text
"
,
(
function
(
q
){
var
I
,
J
,
K
,
L
,
M
,
N
,
v
,
s
=
{},
w
=
{},
x
=
{},
O
=
{
treeId
:
""
,
treeObj
:
null
,
view
:{
addDiyDom
:
null
,
autoCancelSelected
:
!
0
,
dblClickExpand
:
!
0
,
expandSpeed
:
"
fast
"
,
fontCss
:{},
nameIsHTML
:
!
1
,
selectedMulti
:
!
0
,
showIcon
:
!
0
,
showLine
:
!
0
,
showTitle
:
!
0
,
txtSelectedEnable
:
!
1
},
data
:{
key
:{
children
:
"
children
"
,
name
:
"
name
"
,
title
:
""
,
url
:
"
url
"
,
icon
:
"
icon
"
},
simpleData
:{
enable
:
!
1
,
idKey
:
"
id
"
,
pIdKey
:
"
pId
"
,
rootPId
:
null
},
keep
:{
parent
:
!
1
,
leaf
:
!
1
}},
async
:{
enable
:
!
1
,
contentType
:
"
application/x-www-form-urlencoded
"
,
type
:
"
post
"
,
dataType
:
"
text
"
,
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
x
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
y
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
[
a
,
c
,
g
])});
a
.
bind
(
c
.
CLICK
,
function
(
a
,
c
,
g
,
n
,
h
){
j
.
apply
(
b
.
callback
.
onClick
,[
c
,
g
,
n
,
h
])});
a
.
bind
(
c
.
EXPAND
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onExpand
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
COLLAPSE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onCollapse
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
a
,
c
,
g
,
n
){
j
.
apply
(
b
.
callback
.
onAsyncSuccess
,[
a
,
c
,
g
,
n
])});
a
.
bind
(
c
.
ASYNC_ERROR
,
function
(
a
,
c
,
g
,
n
,
h
,
f
){
j
.
apply
(
b
.
callback
.
onAsyncError
,[
a
,
c
,
g
,
n
,
h
,
f
])});
a
.
bind
(
c
.
REMOVE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onRemove
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
SELECTED
,
[
a
,
c
,
g
])});
a
.
bind
(
c
.
CLICK
,
function
(
a
,
c
,
g
,
m
,
h
){
j
.
apply
(
b
.
callback
.
onClick
,[
c
,
g
,
m
,
h
])});
a
.
bind
(
c
.
EXPAND
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onExpand
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
COLLAPSE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onCollapse
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
a
,
c
,
g
,
m
){
j
.
apply
(
b
.
callback
.
onAsyncSuccess
,[
a
,
c
,
g
,
m
])});
a
.
bind
(
c
.
ASYNC_ERROR
,
function
(
a
,
c
,
g
,
m
,
h
,
f
){
j
.
apply
(
b
.
callback
.
onAsyncError
,[
a
,
c
,
g
,
m
,
h
,
f
])});
a
.
bind
(
c
.
REMOVE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onRemove
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
SELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onSelected
,[
c
,
g
])});
a
.
bind
(
c
.
UNSELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onUnSelected
,[
c
,
g
])})}],
y
=
[
function
(
b
){
var
a
=
f
.
event
;
b
.
treeObj
.
unbind
(
a
.
NODECREATED
).
unbind
(
a
.
CLICK
).
unbind
(
a
.
EXPAND
).
unbind
(
a
.
COLLAPSE
).
unbind
(
a
.
ASYNC_SUCCESS
).
unbind
(
a
.
ASYNC_ERROR
).
unbind
(
a
.
REMOVE
).
unbind
(
a
.
SELECTED
).
unbind
(
a
.
UNSELECTED
)}],
z
=
[
function
(
b
){
var
a
=
h
.
getCache
(
b
);
a
||
(
a
=
{},
h
.
setCache
(
b
,
a
));
a
.
nodes
=
[];
a
.
doms
=
[]}],
A
=
[
function
(
b
,
a
,
c
,
d
,
e
,
g
){
if
(
c
){
var
n
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
;
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onSelected
,[
c
,
g
])});
a
.
bind
(
c
.
UNSELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onUnSelected
,[
c
,
g
])})}],
z
=
[
function
(
b
){
var
a
=
f
.
event
;
b
.
treeObj
.
unbind
(
a
.
NODECREATED
).
unbind
(
a
.
CLICK
).
unbind
(
a
.
EXPAND
).
unbind
(
a
.
COLLAPSE
).
unbind
(
a
.
ASYNC_SUCCESS
).
unbind
(
a
.
ASYNC_ERROR
).
unbind
(
a
.
REMOVE
).
unbind
(
a
.
SELECTED
).
unbind
(
a
.
UNSELECTED
)}],
A
=
[
function
(
b
){
var
a
=
h
.
getCache
(
b
);
a
||
(
a
=
{},
h
.
setCache
(
b
,
a
));
a
.
nodes
=
[];
a
.
doms
=
[]}],
B
=
[
function
(
b
,
a
,
c
,
d
,
e
,
g
){
if
(
c
){
var
m
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
;
c
.
level
=
a
;
c
.
tId
=
b
.
treeId
+
"
_
"
+
++
n
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"
string
"
?
j
.
eqs
(
c
.
open
,
"
true
"
):
!!
c
.
open
;
c
[
f
]
&&
c
[
f
].
length
>
0
?(
c
.
isParent
=!
0
,
c
.
zAsync
=!
0
):(
c
.
isParent
=
typeof
c
.
isParent
==
"
string
"
?
j
.
eqs
(
c
.
isParent
,
"
true
"
):
!!
c
.
isParent
,
c
.
open
=
c
.
isParent
&&!
b
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
c
.
isParent
);
c
.
isFirstNode
=
e
;
c
.
isLastNode
=
g
;
c
.
getParentNode
=
function
(){
return
h
.
getNodeCache
(
b
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
h
.
getPreNode
(
b
,
c
)};
c
.
getNextNode
=
function
(){
return
h
.
getNextNode
(
b
,
c
.
level
=
a
;
c
.
tId
=
b
.
treeId
+
"
_
"
+
++
m
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"
string
"
?
j
.
eqs
(
c
.
open
,
"
true
"
):
!!
c
.
open
;
c
[
f
]
&&
c
[
f
].
length
>
0
?(
c
.
isParent
=!
0
,
c
.
zAsync
=!
0
):(
c
.
isParent
=
typeof
c
.
isParent
==
"
string
"
?
j
.
eqs
(
c
.
isParent
,
"
true
"
):
!!
c
.
isParent
,
c
.
open
=
c
.
isParent
&&!
b
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
c
.
isParent
);
c
.
isFirstNode
=
e
;
c
.
isLastNode
=
g
;
c
.
getParentNode
=
function
(){
return
h
.
getNodeCache
(
b
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
h
.
getPreNode
(
b
,
c
)};
c
.
getNextNode
=
function
(){
return
h
.
getNextNode
(
b
,
c
)};
c
.
getIndex
=
function
(){
return
h
.
getNodeIndex
(
b
,
c
)};
c
.
getPath
=
function
(){
return
h
.
getNodePath
(
b
,
c
)};
c
.
isAjaxing
=!
1
;
h
.
fixPIdKeyValue
(
b
,
c
)}}],
t
=
[
function
(
b
){
var
a
=
b
.
target
,
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
""
,
e
=
null
,
g
=
""
,
n
=
""
,
i
=
null
,
m
=
null
,
k
=
null
;
if
(
j
.
eqs
(
b
.
type
,
"
mousedown
"
))
n
=
"
mousedown
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
mouseup
"
))
n
=
"
mouseup
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
contextmenu
"
))
n
=
"
contextmenu
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
click
"
))
if
(
j
.
eqs
(
a
.
tagName
,
"
span
"
)
&&
a
.
getAttribute
(
"
treeNode
"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
a
).
id
,
c
)};
c
.
getIndex
=
function
(){
return
h
.
getNodeIndex
(
b
,
c
)};
c
.
getPath
=
function
(){
return
h
.
getNodePath
(
b
,
c
)};
c
.
isAjaxing
=!
1
;
h
.
fixPIdKeyValue
(
b
,
c
)}}],
u
=
[
function
(
b
){
var
a
=
b
.
target
,
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
""
,
e
=
null
,
g
=
""
,
m
=
""
,
i
=
null
,
n
=
null
,
k
=
null
;
if
(
j
.
eqs
(
b
.
type
,
"
mousedown
"
))
m
=
"
mousedown
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
mouseup
"
))
m
=
"
mouseup
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
contextmenu
"
))
m
=
"
contextmenu
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
click
"
))
if
(
j
.
eqs
(
a
.
tagName
,
"
span
"
)
&&
a
.
getAttribute
(
"
treeNode
"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
a
).
id
,
g
=
"
switchNode
"
;
else
{
if
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
clickNode
"
}
else
if
(
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
(
n
=
"
dblclick
"
,
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
switchNode
"
;
if
(
n
.
length
>
0
&&
d
.
length
==
0
&&
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
;
if
(
d
.
length
>
0
)
switch
(
e
=
h
.
getNodeCache
(
c
,
d
),
g
){
case
"
switchNode
"
:
e
.
isParent
?
j
.
eqs
(
b
.
type
,
"
click
"
)
||
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
g
=
"
switchNode
"
;
else
{
if
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
clickNode
"
}
else
if
(
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
(
m
=
"
dblclick
"
,
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
switchNode
"
;
if
(
m
.
length
>
0
&&
d
.
length
==
0
&&
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
;
if
(
d
.
length
>
0
)
switch
(
e
=
h
.
getNodeCache
(
c
,
d
),
g
){
case
"
switchNode
"
:
e
.
isParent
?
j
.
eqs
(
b
.
type
,
"
click
"
)
||
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
e
],
c
.
view
.
dblClickExpand
)?
i
=
H
:
g
=
""
:
g
=
""
;
break
;
case
"
clickNode
"
:
i
=
I
}
switch
(
n
){
case
"
mousedown
"
:
m
=
J
;
break
;
case
"
mouseup
"
:
m
=
K
;
break
;
case
"
dblclick
"
:
m
=
L
;
break
;
case
"
contextmenu
"
:
m
=
M
}
return
{
stop
:
!
1
,
node
:
e
,
nodeEventType
:
g
,
nodeEventCallback
:
i
,
treeEventType
:
n
,
treeEventCallback
:
m
}}],
B
=
[
function
(
b
){
var
a
=
h
.
getRoot
(
b
);
a
||
(
a
=
{},
h
.
setRoot
(
b
,
a
));
a
[
b
.
data
.
key
.
children
]
=
[];
a
.
expandTriggerFlag
=!
1
;
a
.
curSelectedList
=
[];
a
.
noSelection
=!
0
;
a
.
createdNodes
=
[];
a
.
zId
=
0
;
a
.
_ver
=
(
new
Date
).
getTime
()}],
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
e
],
c
.
view
.
dblClickExpand
)?
i
=
I
:
g
=
""
:
g
=
""
;
break
;
case
"
clickNode
"
:
i
=
J
}
switch
(
m
){
case
"
mousedown
"
:
n
=
K
;
break
;
case
"
mouseup
"
:
n
=
L
;
break
;
case
"
dblclick
"
:
n
=
M
;
break
;
case
"
contextmenu
"
:
n
=
N
}
return
{
stop
:
!
1
,
node
:
e
,
nodeEventType
:
g
,
nodeEventCallback
:
i
,
treeEventType
:
m
,
treeEventCallback
:
n
}}],
C
=
[
function
(
b
){
var
a
=
h
.
getRoot
(
b
);
a
||
(
a
=
{},
h
.
setRoot
(
b
,
a
));
a
[
b
.
data
.
key
.
children
]
=
[];
a
.
expandTriggerFlag
=!
1
;
a
.
curSelectedList
=
[];
a
.
noSelection
=!
0
;
a
.
createdNodes
=
[];
a
.
zId
=
0
;
a
.
_ver
=
(
new
Date
).
getTime
()}],
C
=
[],
D
=
[],
E
=
[],
F
=
[],
G
=
[],
h
=
{
addNodeCache
:
function
(
b
,
a
){
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
a
},
getNodeCacheId
:
function
(
b
){
return
b
.
substring
(
b
.
lastIndexOf
(
"
_
"
)
+
1
)},
addAfterA
:
function
(
b
){
D
.
push
(
b
)},
addBeforeA
:
function
(
b
){
C
.
push
(
b
)},
addInnerAfterA
:
function
(
b
){
F
.
push
(
b
)},
addInnerBeforeA
:
function
(
b
){
E
.
push
(
b
)},
addInitBind
:
function
(
b
){
x
.
push
(
b
)},
addInitUnBind
:
function
(
b
){
y
.
push
(
b
)},
addInitCache
:
function
(
b
){
z
.
push
(
b
)},
addInitNode
:
function
(
b
){
A
.
push
(
b
)},
addInitProxy
:
function
(
b
,
a
){
a
?
t
.
splice
(
0
,
0
,
D
=
[],
E
=
[],
F
=
[],
G
=
[],
H
=
[],
h
=
{
addNodeCache
:
function
(
b
,
a
){
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
a
},
getNodeCacheId
:
function
(
b
){
return
b
.
substring
(
b
.
lastIndexOf
(
"
_
"
)
+
1
)},
addAfterA
:
function
(
b
){
E
.
push
(
b
)},
addBeforeA
:
function
(
b
){
D
.
push
(
b
)},
addInnerAfterA
:
function
(
b
){
G
.
push
(
b
)},
addInnerBeforeA
:
function
(
b
){
F
.
push
(
b
)},
addInitBind
:
function
(
b
){
y
.
push
(
b
)},
addInitUnBind
:
function
(
b
){
z
.
push
(
b
)},
addInitCache
:
function
(
b
){
A
.
push
(
b
)},
addInitNode
:
function
(
b
){
B
.
push
(
b
)},
addInitProxy
:
function
(
b
,
a
){
a
?
u
.
splice
(
0
,
0
,
b
):
t
.
push
(
b
)},
addInitRoot
:
function
(
b
){
B
.
push
(
b
)},
addNodesData
:
function
(
b
,
a
,
c
,
d
){
var
e
=
b
.
data
.
key
.
children
;
a
[
e
]?
c
>=
a
[
e
].
length
&&
(
c
=-
1
):(
a
[
e
]
=
[],
c
=-
1
);
if
(
a
[
e
].
length
>
0
&&
c
===
0
)
a
[
e
][
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
0
]);
else
if
(
a
[
e
].
length
>
0
&&
c
<
0
)
a
[
e
][
a
[
e
].
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
a
[
e
].
length
-
1
]);
a
.
isParent
=!
0
;
c
<
0
?
a
[
e
]
=
a
[
e
].
concat
(
d
):(
b
=
[
c
,
0
].
concat
(
d
),
a
[
e
].
splice
.
apply
(
a
[
e
],
b
))},
addSelectedNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
);
h
.
isSelectedNode
(
b
,
a
)
||
c
.
curSelectedList
.
push
(
a
)},
b
):
u
.
push
(
b
)},
addInitRoot
:
function
(
b
){
C
.
push
(
b
)},
addNodesData
:
function
(
b
,
a
,
c
,
d
){
var
e
=
b
.
data
.
key
.
children
;
a
[
e
]?
c
>=
a
[
e
].
length
&&
(
c
=-
1
):(
a
[
e
]
=
[],
c
=-
1
);
if
(
a
[
e
].
length
>
0
&&
c
===
0
)
a
[
e
][
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
0
]);
else
if
(
a
[
e
].
length
>
0
&&
c
<
0
)
a
[
e
][
a
[
e
].
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
a
[
e
].
length
-
1
]);
a
.
isParent
=!
0
;
c
<
0
?
a
[
e
]
=
a
[
e
].
concat
(
d
):(
b
=
[
c
,
0
].
concat
(
d
),
a
[
e
].
splice
.
apply
(
a
[
e
],
b
))},
addSelectedNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
);
h
.
isSelectedNode
(
b
,
a
)
||
c
.
curSelectedList
.
push
(
a
)},
addCreatedNode
:
function
(
b
,
a
){(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
&&
h
.
getRoot
(
b
).
createdNodes
.
push
(
a
)},
addZTreeTools
:
function
(
b
){
G
.
push
(
b
)},
exSetting
:
function
(
b
){
q
.
extend
(
!
0
,
N
,
b
)},
fixPIdKeyValue
:
function
(
b
,
a
){
b
.
data
.
simpleData
.
enable
&&
(
a
[
b
.
data
.
simpleData
.
pIdKey
]
=
a
.
parentTId
?
a
.
getParentNode
()[
b
.
data
.
simpleData
.
idKey
]:
b
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
C
.
length
;
d
<
e
;
d
++
)
C
[
d
].
apply
(
this
,
addCreatedNode
:
function
(
b
,
a
){(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
&&
h
.
getRoot
(
b
).
createdNodes
.
push
(
a
)},
addZTreeTools
:
function
(
b
){
H
.
push
(
b
)},
exSetting
:
function
(
b
){
q
.
extend
(
!
0
,
O
,
b
)},
fixPIdKeyValue
:
function
(
b
,
a
){
b
.
data
.
simpleData
.
enable
&&
(
a
[
b
.
data
.
simpleData
.
pIdKey
]
=
a
.
parentTId
?
a
.
getParentNode
()[
b
.
data
.
simpleData
.
idKey
]:
b
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getInnerAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
b
){
return
w
[
b
.
treeId
]},
getNodeIndex
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
;
return
-
1
},
getNextNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
arguments
)},
getInnerAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
G
.
length
;
d
<
e
;
d
++
)
G
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
b
){
return
x
[
b
.
treeId
]},
getNodeIndex
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
;
return
-
1
},
getNextNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
g
?
null
:
d
[
c
][
e
+
1
];
return
null
},
getNodeByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
null
;
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
0
,
n
=
a
.
length
;
g
<
n
;
g
++
){
if
(
a
[
g
][
c
]
==
d
)
return
a
[
g
];
var
f
=
h
.
getNodeByParam
(
b
,
a
[
g
][
e
],
c
,
d
);
if
(
f
)
return
f
}
return
null
},
getNodeCache
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
=
w
[
b
.
treeId
].
nodes
[
h
.
getNodeCacheId
(
a
)];
return
c
?
c
:
null
},
getNodeName
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
name
]},
getNodePath
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
g
?
null
:
d
[
c
][
e
+
1
];
return
null
},
getNodeByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
null
;
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
0
,
m
=
a
.
length
;
g
<
m
;
g
++
){
if
(
a
[
g
][
c
]
==
d
)
return
a
[
g
];
var
f
=
h
.
getNodeByParam
(
b
,
a
[
g
][
e
],
c
,
d
);
if
(
f
)
return
f
}
return
null
},
getNodeCache
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
=
x
[
b
.
treeId
].
nodes
[
h
.
getNodeCacheId
(
a
)];
return
c
?
c
:
null
},
getNodeName
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
name
]},
getNodePath
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
;(
c
=
a
.
parentTId
?
a
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
a
);
return
c
},
getNodeTitle
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
title
===
""
?
b
.
data
.
key
.
name
:
b
.
data
.
key
.
title
]},
getNodes
:
function
(
b
){
return
h
.
getRoot
(
b
)[
b
.
data
.
key
.
children
]},
getNodesByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
a
[
f
][
c
]
==
d
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParam
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByParamFuzzy
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
var
c
;(
c
=
a
.
parentTId
?
a
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
a
);
return
c
},
getNodeTitle
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
title
===
""
?
b
.
data
.
key
.
name
:
b
.
data
.
key
.
title
]},
getNodes
:
function
(
b
){
return
h
.
getRoot
(
b
)[
b
.
data
.
key
.
children
]},
getNodesByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
a
[
f
][
c
]
==
d
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParam
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByParamFuzzy
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
d
=
d
.
toLowerCase
(),
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
typeof
a
[
f
][
c
]
==
"
string
"
&&
a
[
f
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParamFuzzy
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByFilter
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
a
)
return
d
?
null
:[];
for
(
var
g
=
b
.
data
.
key
.
children
,
f
=
d
?
null
:[],
i
=
0
,
m
=
a
.
length
;
i
<
m
;
i
++
){
if
(
j
.
apply
(
c
,[
a
[
i
],
e
],
!
1
)){
if
(
d
)
return
a
[
i
];
f
.
push
(
a
[
i
])}
var
k
=
h
.
getNodesByFilter
(
b
,
a
[
i
][
g
],
c
,
d
,
e
);
if
(
d
&&
k
)
return
k
;
f
=
d
?
k
:
f
.
concat
(
k
)}
return
f
},
getPreNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
g
=
[],
d
=
d
.
toLowerCase
(),
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
typeof
a
[
f
][
c
]
==
"
string
"
&&
a
[
f
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParamFuzzy
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByFilter
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
a
)
return
d
?
null
:[];
for
(
var
g
=
b
.
data
.
key
.
children
,
f
=
d
?
null
:[],
i
=
0
,
n
=
a
.
length
;
i
<
n
;
i
++
){
if
(
j
.
apply
(
c
,[
a
[
i
],
e
],
!
1
)){
if
(
d
)
return
a
[
i
];
f
.
push
(
a
[
i
])}
var
k
=
h
.
getNodesByFilter
(
b
,
a
[
i
][
g
],
c
,
d
,
e
);
if
(
d
&&
k
)
return
k
;
f
=
d
?
k
:
f
.
concat
(
k
)}
return
f
},
getPreNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
;
e
<
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
0
?
null
:
d
[
c
][
e
-
1
];
return
null
},
getRoot
:
function
(
b
){
return
b
?
v
[
b
.
treeId
]:
null
},
getRoots
:
function
(){
return
v
},
getSetting
:
function
(
b
){
return
r
[
b
]},
getSettings
:
function
(){
return
r
},
getZTreeTools
:
function
(
b
){
return
(
b
=
this
.
getRoot
(
this
.
getSetting
(
b
)))?
b
.
treeTools
:
null
},
initCache
:
function
(
b
){
for
(
var
a
=
0
,
c
=
z
.
length
;
a
<
c
;
a
++
)
z
[
a
].
apply
(
this
,
arguments
)},
initNode
:
function
(
b
,
a
,
c
,
d
,
e
,
g
){
for
(
var
f
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
;
e
<
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
0
?
null
:
d
[
c
][
e
-
1
];
return
null
},
getRoot
:
function
(
b
){
return
b
?
w
[
b
.
treeId
]:
null
},
getRoots
:
function
(){
return
w
},
getSetting
:
function
(
b
){
return
s
[
b
]},
getSettings
:
function
(){
return
s
},
getZTreeTools
:
function
(
b
){
return
(
b
=
this
.
getRoot
(
this
.
getSetting
(
b
)))?
b
.
treeTools
:
null
},
initCache
:
function
(
b
){
for
(
var
a
=
0
,
c
=
A
.
length
;
a
<
c
;
a
++
)
A
[
a
].
apply
(
this
,
arguments
)},
initNode
:
function
(
b
,
a
,
c
,
d
,
e
,
g
){
for
(
var
f
=
0
,
h
=
A
.
length
;
f
<
h
;
f
++
)
A
[
f
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
b
){
for
(
var
a
=
0
,
c
=
B
.
length
;
a
<
c
;
a
++
)
B
[
a
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
removeNodeCache
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
])
for
(
var
d
=
0
,
e
=
a
[
c
].
length
;
d
<
e
;
d
++
)
arguments
.
callee
(
b
,
a
[
c
][
d
]);
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
h
=
B
.
length
;
f
<
h
;
f
++
)
B
[
f
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
b
){
for
(
var
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
C
[
a
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
removeNodeCache
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
])
for
(
var
d
=
0
,
e
=
a
[
c
].
length
;
d
<
e
;
d
++
)
arguments
.
callee
(
b
,
a
[
c
][
d
]);
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
]
||!
h
.
getNodeCache
(
b
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
a
]),
d
--
,
e
--
},
setCache
:
function
(
b
,
a
){
w
[
b
.
treeId
]
=
a
},
setRoot
:
function
(
b
,
a
){
v
[
b
.
treeId
]
=
a
},
setZTreeTools
:
function
(
b
,
a
){
for
(
var
c
=
0
,
d
=
G
.
length
;
c
<
d
;
c
++
)
G
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
b
,
a
){
if
(
!
a
)
return
[];
var
c
=
b
.
data
.
key
.
children
,
d
=
[];
if
(
j
.
isArray
(
a
))
for
(
var
e
=
0
,
g
=
a
.
length
;
e
<
g
;
e
++
)
d
.
push
(
a
[
e
]),
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
]
||!
h
.
getNodeCache
(
b
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
a
]),
d
--
,
e
--
},
setCache
:
function
(
b
,
a
){
x
[
b
.
treeId
]
=
a
},
setRoot
:
function
(
b
,
a
){
w
[
b
.
treeId
]
=
a
},
setZTreeTools
:
function
(
b
,
a
){
for
(
var
c
=
0
,
d
=
H
.
length
;
c
<
d
;
c
++
)
H
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
b
,
a
){
if
(
!
a
)
return
[];
var
c
=
b
.
data
.
key
.
children
,
d
=
[];
if
(
j
.
isArray
(
a
))
for
(
var
e
=
0
,
g
=
a
.
length
;
e
<
g
;
e
++
)
d
.
push
(
a
[
e
]),
a
[
e
][
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
e
][
c
])));
else
d
.
push
(
a
),
a
[
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
c
])));
return
d
},
transformTozTreeFormat
:
function
(
b
,
a
){
var
c
,
d
,
e
=
b
.
data
.
simpleData
.
idKey
,
g
=
b
.
data
.
simpleData
.
pIdKey
,
f
=
b
.
data
.
key
.
children
;
if
(
!
e
||
e
==
""
||!
a
)
return
[];
if
(
j
.
isArray
(
a
)){
var
h
=
[],
i
=
[];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
e
]]
=
a
[
c
];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
g
]]
&&
a
[
c
][
e
]
!=
a
[
c
][
g
]?(
i
[
a
[
c
][
g
]][
f
]
||
(
i
[
a
[
c
][
g
]][
f
]
=
[]),
i
[
a
[
c
][
g
]][
f
].
push
(
a
[
c
])):
h
.
push
(
a
[
c
]);
return
h
}
else
return
[
a
]}},
a
[
e
][
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
e
][
c
])));
else
d
.
push
(
a
),
a
[
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
c
])));
return
d
},
transformTozTreeFormat
:
function
(
b
,
a
){
var
c
,
d
,
e
=
b
.
data
.
simpleData
.
idKey
,
g
=
b
.
data
.
simpleData
.
pIdKey
,
f
=
b
.
data
.
key
.
children
;
if
(
!
e
||
e
==
""
||!
a
)
return
[];
if
(
j
.
isArray
(
a
)){
var
h
=
[],
i
=
[];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
e
]]
=
a
[
c
];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
g
]]
&&
a
[
c
][
e
]
!=
a
[
c
][
g
]?(
i
[
a
[
c
][
g
]][
f
]
||
(
i
[
a
[
c
][
g
]][
f
]
=
[]),
i
[
a
[
c
][
g
]][
f
].
push
(
a
[
c
])):
h
.
push
(
a
[
c
]);
return
h
}
else
return
[
a
]}},
l
=
{
bindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
x
.
length
;
a
<
c
;
a
++
)
x
[
a
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
y
.
length
;
a
<
c
;
a
++
)
y
[
a
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
b
){
var
a
=
{
treeId
:
b
.
treeId
},
c
=
b
.
treeObj
;
b
.
view
.
txtSelectedEnable
||
c
.
bind
(
"
selectstart
"
,
u
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
});
c
.
bind
(
"
click
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
dblclick
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseover
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseout
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mousedown
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseup
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
contextmenu
"
,
l
=
{
bindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
y
.
length
;
a
<
c
;
a
++
)
y
[
a
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
z
.
length
;
a
<
c
;
a
++
)
z
[
a
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
b
){
var
a
=
{
treeId
:
b
.
treeId
},
c
=
b
.
treeObj
;
b
.
view
.
txtSelectedEnable
||
c
.
bind
(
"
selectstart
"
,
v
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
});
c
.
bind
(
"
click
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
dblclick
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseover
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseout
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mousedown
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseup
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
contextmenu
"
,
a
,
l
.
proxy
)},
unbindTree
:
function
(
b
){
b
.
treeObj
.
unbind
(
"
selectstart
"
,
u
).
unbind
(
"
click
"
,
l
.
proxy
).
unbind
(
"
dblclick
"
,
l
.
proxy
).
unbind
(
"
mouseover
"
,
l
.
proxy
).
unbind
(
"
mouseout
"
,
l
.
proxy
).
unbind
(
"
mousedown
"
,
l
.
proxy
).
unbind
(
"
mouseup
"
,
l
.
proxy
).
unbind
(
"
contextmenu
"
,
l
.
proxy
)},
doProxy
:
function
(
b
){
for
(
var
a
=
[],
c
=
0
,
d
=
t
.
length
;
c
<
d
;
c
++
){
var
e
=
t
[
c
].
apply
(
this
,
arguments
);
a
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
a
},
proxy
:
function
(
b
){
var
a
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
a
,
b
))
return
!
0
;
for
(
var
a
=
l
.
doProxy
(
b
),
c
=!
0
,
d
=
0
,
e
=
a
.
length
;
d
<
a
,
l
.
proxy
)},
unbindTree
:
function
(
b
){
b
.
treeObj
.
unbind
(
"
selectstart
"
,
v
).
unbind
(
"
click
"
,
l
.
proxy
).
unbind
(
"
dblclick
"
,
l
.
proxy
).
unbind
(
"
mouseover
"
,
l
.
proxy
).
unbind
(
"
mouseout
"
,
l
.
proxy
).
unbind
(
"
mousedown
"
,
l
.
proxy
).
unbind
(
"
mouseup
"
,
l
.
proxy
).
unbind
(
"
contextmenu
"
,
l
.
proxy
)},
doProxy
:
function
(
b
){
for
(
var
a
=
[],
c
=
0
,
d
=
u
.
length
;
c
<
d
;
c
++
){
var
e
=
u
[
c
].
apply
(
this
,
arguments
);
a
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
a
},
proxy
:
function
(
b
){
var
a
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
a
,
b
))
return
!
0
;
for
(
var
a
=
l
.
doProxy
(
b
),
c
=!
0
,
d
=
0
,
e
=
a
.
length
;
d
<
e
;
d
++
){
var
g
=
a
[
d
];
g
.
nodeEventCallback
&&
(
c
=
g
.
nodeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
);
g
.
treeEventCallback
&&
(
c
=
g
.
treeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
)}
return
c
}};
H
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
a
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
h
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
a
);
return
!
0
};
I
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
e
;
d
++
){
var
g
=
a
[
d
];
g
.
nodeEventCallback
&&
(
c
=
g
.
nodeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
);
g
.
treeEventCallback
&&
(
c
=
g
.
treeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
)}
return
c
}};
I
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
a
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
h
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
a
);
return
!
0
};
J
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
h
.
isSelectedNode
(
c
,
a
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
a
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
a
):
i
.
selectNode
(
c
,
a
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,[
b
,
c
.
treeId
,
a
,
d
]);
return
!
0
};
J
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
K
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
h
.
isSelectedNode
(
c
,
a
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
a
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
a
):
i
.
selectNode
(
c
,
a
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,[
b
,
c
.
treeId
,
a
,
d
]);
return
!
0
};
K
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
L
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
L
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
M
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
b
,
c
.
treeId
,
a
]);
return
typeof
c
.
callback
.
onRightClick
!=
"
function
"
};
u
=
function
(
b
){
b
=
b
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
M
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
N
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
b
,
c
.
treeId
,
a
]);
return
typeof
c
.
callback
.
onRightClick
!=
"
function
"
};
v
=
function
(
b
){
b
=
b
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
b
===
"
input
"
||
b
===
"
textarea
"
};
var
j
=
{
apply
:
function
(
b
,
a
,
c
){
return
typeof
b
==
"
function
"
?
b
.
apply
(
O
,
a
?
a
:[]):
c
},
canAsync
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
return
b
.
async
.
enable
&&
a
&&
a
.
isParent
&&!
(
a
.
zAsync
||
a
[
c
]
&&
a
[
c
].
length
>
0
)},
clone
:
function
(
b
){
if
(
b
===
null
)
return
null
;
var
a
=
j
.
isArray
(
b
)?[]:{},
c
;
for
(
c
in
b
)
a
[
c
]
=
b
[
c
]
instanceof
Date
?
new
Date
(
b
[
c
].
getTime
()):
typeof
b
[
c
]
===
"
object
"
?
arguments
.
callee
(
b
[
c
]):
b
[
c
];
return
a
},
eqs
:
function
(
b
,
a
){
return
b
.
toLowerCase
()
===
a
.
toLowerCase
()},
isArray
:
function
(
b
){
return
Object
.
prototype
.
toString
.
apply
(
b
)
===
return
b
===
"
input
"
||
b
===
"
textarea
"
};
var
j
=
{
apply
:
function
(
b
,
a
,
c
){
return
typeof
b
==
"
function
"
?
b
.
apply
(
P
,
a
?
a
:[]):
c
},
canAsync
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
return
b
.
async
.
enable
&&
a
&&
a
.
isParent
&&!
(
a
.
zAsync
||
a
[
c
]
&&
a
[
c
].
length
>
0
)},
clone
:
function
(
b
){
if
(
b
===
null
)
return
null
;
var
a
=
j
.
isArray
(
b
)?[]:{},
c
;
for
(
c
in
b
)
a
[
c
]
=
b
[
c
]
instanceof
Date
?
new
Date
(
b
[
c
].
getTime
()):
typeof
b
[
c
]
===
"
object
"
?
arguments
.
callee
(
b
[
c
]):
b
[
c
];
return
a
},
eqs
:
function
(
b
,
a
){
return
b
.
toLowerCase
()
===
a
.
toLowerCase
()},
isArray
:
function
(
b
){
return
Object
.
prototype
.
toString
.
apply
(
b
)
===
"
[object Array]
"
},
$
:
function
(
b
,
a
,
c
){
a
&&
typeof
a
!=
"
string
"
&&
(
c
=
a
,
a
=
""
);
return
typeof
b
==
"
string
"
?
q
(
b
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"
#
"
+
b
.
tId
+
a
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
b
,
a
,
c
){
if
(
!
a
)
return
null
;
for
(;
a
&&
a
.
id
!==
b
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
a
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
a
.
tagName
,
c
[
d
].
tagName
)
&&
a
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
a
;
a
=
a
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
b
){
return
q
(
b
).
parent
(
"
li
"
).
get
(
0
)
||
q
(
b
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
b
,
"
[object Array]
"
},
$
:
function
(
b
,
a
,
c
){
a
&&
typeof
a
!=
"
string
"
&&
(
c
=
a
,
a
=
""
);
return
typeof
b
==
"
string
"
?
q
(
b
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"
#
"
+
b
.
tId
+
a
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
b
,
a
,
c
){
if
(
!
a
)
return
null
;
for
(;
a
&&
a
.
id
!==
b
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
a
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
a
.
tagName
,
c
[
d
].
tagName
)
&&
a
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
a
;
a
=
a
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
b
){
return
q
(
b
).
parent
(
"
li
"
).
get
(
0
)
||
q
(
b
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
b
,
a
){
return
q
(
b
).
closest
(
"
#
"
+
a
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
b
.
data
.
keep
.
leaf
||!
a
||
a
.
isParent
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
b
.
data
.
simpleData
.
enable
&&
(
d
=
h
.
transformTozTreeFormat
(
b
,
d
)),
a
){
var
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
n
=
k
(
a
,
f
.
id
.
ICON
,
b
),
o
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
o
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
a
){
return
q
(
b
).
closest
(
"
#
"
+
a
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
b
.
data
.
keep
.
leaf
||!
a
||
a
.
isParent
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
b
.
data
.
simpleData
.
enable
&&
(
d
=
h
.
transformTozTreeFormat
(
b
,
d
)),
a
){
var
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
m
=
k
(
a
,
f
.
id
.
ICON
,
b
),
o
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
o
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
!
0
)}
else
h
.
addNodesData
(
b
,
h
.
getRoot
(
b
),
c
,
d
),
i
.
createNodes
(
b
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
b
,
a
,
c
,
d
,
e
,
g
,
f
){
if
(
!
c
)
return
[];
var
j
=
[],
m
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
m
],
l
,
Q
;
if
(
!
k
||
e
>=
k
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
q
=
c
.
length
;
s
<
q
;
s
++
){
var
p
=
c
[
s
];
g
&&
(
l
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
p
,
d
,
l
,
Q
,
f
),
h
.
addNodeCache
(
b
,
p
));
l
=
[];
p
[
m
]
&&
p
[
m
].
length
>
0
&&
(
l
=
i
.
appendNodes
(
b
,
a
+
1
,
p
[
m
],
p
,
-
1
,
g
,
f
&&
p
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
p
),
i
.
makeDOMNodeLine
(
j
,
b
,
p
),
h
.
getBeforeA
(
b
,
!
0
)}
else
h
.
addNodesData
(
b
,
h
.
getRoot
(
b
),
c
,
d
),
i
.
createNodes
(
b
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
b
,
a
,
c
,
d
,
e
,
g
,
f
){
if
(
!
c
)
return
[];
var
j
=
[],
k
=
b
.
data
.
key
.
children
,
l
=
(
d
?
d
:
h
.
getRoot
(
b
))[
k
],
r
,
Q
;
if
(
!
l
||
e
>=
l
.
length
)
e
=-
1
;
for
(
var
t
=
0
,
q
=
c
.
length
;
t
<
q
;
t
++
){
var
p
=
c
[
t
];
g
&&
(
r
=
(
e
===
0
||
l
.
length
==
c
.
length
)
&&
t
==
0
,
Q
=
e
<
0
&&
t
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
p
,
d
,
r
,
Q
,
f
),
h
.
addNodeCache
(
b
,
p
));
r
=
[];
p
[
k
]
&&
p
[
k
].
length
>
0
&&
(
r
=
i
.
appendNodes
(
b
,
a
+
1
,
p
[
k
],
p
,
-
1
,
g
,
f
&&
p
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
p
),
i
.
makeDOMNodeLine
(
j
,
b
,
p
),
h
.
getBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
p
),
h
.
getInnerBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
p
),
h
.
getInnerAfterA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
p
),
h
.
getAfterA
(
b
,
p
,
j
),
p
.
isParent
&&
p
.
open
&&
i
.
makeUlHtml
(
b
,
p
,
j
,
l
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
p
),
h
.
addCreatedNode
(
b
,
p
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
0
)
&&
a
.
parentTId
&&
(
i
.
appendParentULDom
(
b
,
a
.
getParentNode
()),
d
=
k
(
a
,
b
));
var
e
=
k
(
a
,
f
.
id
.
UL
,
b
);
e
.
get
(
0
)
&&
e
.
remove
();
e
=
i
.
appendNodes
(
b
,
a
.
level
+
1
,
a
[
b
.
data
.
key
.
children
],
a
,
-
1
,
!
1
,
!
0
);
p
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
p
),
h
.
getInnerBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
p
),
h
.
getInnerAfterA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
p
),
h
.
getAfterA
(
b
,
p
,
j
),
p
.
isParent
&&
p
.
open
&&
i
.
makeUlHtml
(
b
,
p
,
j
,
r
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
p
),
h
.
addCreatedNode
(
b
,
p
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
0
)
&&
a
.
parentTId
&&
(
i
.
appendParentULDom
(
b
,
a
.
getParentNode
()),
d
=
k
(
a
,
b
));
var
e
=
k
(
a
,
f
.
id
.
UL
,
b
);
e
.
get
(
0
)
&&
e
.
remove
();
e
=
i
.
appendNodes
(
b
,
a
.
level
+
1
,
a
[
b
.
data
.
key
.
children
],
a
,
-
1
,
!
1
,
!
0
);
i
.
makeUlHtml
(
b
,
a
,
c
,
e
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
b
,
a
,
c
,
d
){
var
e
,
g
;
if
(
a
&&!
a
.
isParent
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
a
&&
a
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
b
.
callback
.
beforeAsync
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
a
)
a
.
isAjaxing
=!
0
,
k
(
a
,
f
.
id
.
ICON
,
b
).
attr
({
style
:
""
,
"
class
"
:
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
ICO_LOADING
});
var
n
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
o
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
m
=
o
;
o
.
length
>
1
&&
(
m
=
o
[
1
],
o
=
o
[
0
]);
n
[
m
]
=
a
[
o
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
i
.
makeUlHtml
(
b
,
a
,
c
,
e
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
b
,
a
,
c
,
d
){
var
e
,
g
;
if
(
a
&&!
a
.
isParent
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
a
&&
a
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
b
.
callback
.
beforeAsync
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
a
)
a
.
isAjaxing
=!
0
,
k
(
a
,
f
.
id
.
ICON
,
b
).
attr
({
style
:
""
,
"
class
"
:
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
ICO_LOADING
});
var
m
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
o
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
o
;
o
.
length
>
1
&&
(
n
=
o
[
1
],
o
=
o
[
0
]);
m
[
n
]
=
a
[
o
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
n
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
l
in
b
.
async
.
otherParam
)
n
[
l
]
=
b
.
async
.
otherParam
[
l
];
var
P
=
h
.
getRoot
(
b
).
_ver
;
q
.
ajax
({
contentType
:
b
.
async
.
contentType
,
cache
:
!
1
,
type
:
b
.
async
.
type
,
url
:
j
.
apply
(
b
.
async
.
url
,[
b
.
treeId
,
a
],
b
.
async
.
url
),
data
:
n
,
dataType
:
b
.
async
.
dataType
,
success
:
function
(
e
){
if
(
P
==
h
.
getRoot
(
b
).
_ver
){
var
g
=
[];
try
{
g
=!
e
||
e
.
length
==
0
?[]:
typeof
e
==
"
string
"
?
eval
(
"
(
"
+
e
+
"
)
"
):
e
}
catch
(
n
){
g
=
e
}
if
(
a
)
a
.
isAjaxing
=
null
,
a
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
b
,
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
m
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
l
in
b
.
async
.
otherParam
)
m
[
l
]
=
b
.
async
.
otherParam
[
l
];
var
r
=
h
.
getRoot
(
b
).
_ver
;
q
.
ajax
({
contentType
:
b
.
async
.
contentType
,
cache
:
!
1
,
type
:
b
.
async
.
type
,
url
:
j
.
apply
(
b
.
async
.
url
,[
b
.
treeId
,
a
],
b
.
async
.
url
),
data
:
m
,
dataType
:
b
.
async
.
dataType
,
success
:
function
(
e
){
if
(
r
==
h
.
getRoot
(
b
).
_ver
){
var
g
=
[];
try
{
g
=!
e
||
e
.
length
==
0
?[]:
typeof
e
==
"
string
"
?
eval
(
"
(
"
+
e
+
"
)
"
):
e
}
catch
(
m
){
g
=
e
}
if
(
a
)
a
.
isAjaxing
=
null
,
a
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
b
,
a
);
g
&&
g
!==
""
?(
g
=
j
.
apply
(
b
.
async
.
dataFilter
,[
b
.
treeId
,
a
,
g
],
g
),
i
.
addNodes
(
b
,
a
,
-
1
,
g
?
j
.
clone
(
g
):[],
!!
c
)):
i
.
addNodes
(
b
,
a
,
-
1
,[],
!!
c
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
b
.
treeId
,
a
,
e
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
e
){
if
(
P
==
h
.
getRoot
(
b
).
_ver
){
if
(
a
)
a
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
b
.
treeId
,
a
,
c
,
d
,
e
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getRoot
(
b
).
curSelectedList
,
e
,
g
;
for
(
e
=
d
.
length
-
1
;
e
>=
0
;
e
--
)
if
(
g
=
d
[
e
],
a
===
g
||!
a
&&
(
!
c
||
c
!==
g
))
if
(
k
(
g
,
a
);
g
&&
g
!==
""
?(
g
=
j
.
apply
(
b
.
async
.
dataFilter
,[
b
.
treeId
,
a
,
g
],
g
),
i
.
addNodes
(
b
,
a
,
-
1
,
g
?
j
.
clone
(
g
):[],
!!
c
)):
i
.
addNodes
(
b
,
a
,
-
1
,[],
!!
c
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
b
.
treeId
,
a
,
e
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
e
){
if
(
r
==
h
.
getRoot
(
b
).
_ver
){
if
(
a
)
a
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
b
.
treeId
,
a
,
c
,
d
,
e
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getRoot
(
b
).
curSelectedList
,
e
,
g
;
for
(
e
=
d
.
length
-
1
;
e
>=
0
;
e
--
)
if
(
g
=
d
[
e
],
a
===
g
||!
a
&&
(
!
c
||
c
!==
g
))
if
(
k
(
g
,
f
.
id
.
A
,
b
).
removeClass
(
f
.
node
.
CURSELECTED
),
a
){
h
.
removeSelectedNode
(
b
,
a
);
break
}
else
d
.
splice
(
e
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
g
])},
createNodeCallback
:
function
(
b
){
if
(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
for
(
var
a
=
h
.
getRoot
(
b
);
a
.
createdNodes
.
length
>
0
;){
var
c
=
a
.
createdNodes
.
shift
();
j
.
apply
(
b
.
view
.
addDiyDom
,[
b
.
treeId
,
c
]);
b
.
callback
.
onNodeCreated
&&
b
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
b
.
treeId
,
c
])}},
createNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
j
=
b
.
data
.
key
.
children
,
f
.
id
.
A
,
b
).
removeClass
(
f
.
node
.
CURSELECTED
),
a
){
h
.
removeSelectedNode
(
b
,
a
);
break
}
else
d
.
splice
(
e
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
g
])},
createNodeCallback
:
function
(
b
){
if
(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
for
(
var
a
=
h
.
getRoot
(
b
);
a
.
createdNodes
.
length
>
0
;){
var
c
=
a
.
createdNodes
.
shift
();
j
.
apply
(
b
.
view
.
addDiyDom
,[
b
.
treeId
,
c
]);
b
.
callback
.
onNodeCreated
&&
b
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
b
.
treeId
,
c
])}},
createNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
j
=
b
.
data
.
key
.
children
,
j
=!
d
||
d
.
open
||!!
k
(
d
[
j
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
j
),
o
,
m
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
o
=
d
)):
o
=
b
.
treeObj
;
o
&&
(
e
>=
0
&&
(
m
=
o
.
children
()[
e
]),
e
>=
0
&&
m
?
q
(
m
).
before
(
a
.
join
(
""
)):
o
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
l
.
unbindTree
(
b
),
l
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
n
=
b
.
data
.
key
.
children
;
if
(
a
){
if
(
g
.
expandTriggerFlag
){
var
o
=
e
,
e
=
function
(){
o
&&
j
=!
d
||
d
.
open
||!!
k
(
d
[
j
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
j
),
o
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
o
=
d
)):
o
=
b
.
treeObj
;
o
&&
(
e
>=
0
&&
(
n
=
o
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
o
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
l
.
unbindTree
(
b
),
l
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
s
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
m
=
b
.
data
.
key
.
children
;
if
(
a
){
if
(
g
.
expandTriggerFlag
){
var
o
=
e
,
e
=
function
(){
o
&&
o
();
a
.
open
?
b
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
b
.
treeId
,
a
]):
b
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
b
.
treeId
,
a
])};
g
.
expandTriggerFlag
=!
1
}
if
(
!
a
.
open
&&
a
.
isParent
&&
(
!
k
(
a
,
f
.
id
.
UL
,
b
).
get
(
0
)
||
a
[
n
]
&&
a
[
n
].
length
>
0
&&!
k
(
a
[
n
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,[]);
else
{
var
c
=
k
(
a
,
f
.
id
.
UL
,
b
),
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
m
=
k
(
a
,
f
.
id
.
ICON
,
b
);
a
.
isParent
?(
a
.
open
=!
a
.
open
,
a
.
iconOpen
&&
a
.
iconClose
&&
m
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
o
();
a
.
open
?
b
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
b
.
treeId
,
a
]):
b
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
b
.
treeId
,
a
])};
g
.
expandTriggerFlag
=!
1
}
if
(
!
a
.
open
&&
a
.
isParent
&&
(
!
k
(
a
,
f
.
id
.
UL
,
b
).
get
(
0
)
||
a
[
m
]
&&
a
[
m
].
length
>
0
&&!
k
(
a
[
m
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,[]);
else
{
var
c
=
k
(
a
,
f
.
id
.
UL
,
b
),
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
n
=
k
(
a
,
f
.
id
.
ICON
,
b
);
a
.
isParent
?(
a
.
open
=!
a
.
open
,
a
.
iconOpen
&&
a
.
iconClose
&&
n
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
n
]
&&
a
[
n
].
length
>
0
?
c
.
slideDown
(
b
.
view
.
expandSpeed
,
e
):(
c
.
show
(),
j
.
apply
(
e
,[]))):(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
CLOSE
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
||!
(
a
[
n
]
&&
a
[
n
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
a
,
c
,
d
,
e
){
a
&&
(
a
.
parentTId
?(
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
),
a
.
parentTId
&&
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
m
]
&&
a
[
m
].
length
>
0
?
c
.
slideDown
(
b
.
view
.
expandSpeed
,
e
):(
c
.
show
(),
j
.
apply
(
e
,[]))):(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
CLOSE
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
||!
(
a
[
m
]
&&
a
[
m
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
a
,
c
,
d
,
e
){
a
&&
(
a
.
parentTId
?(
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
),
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
b
,
a
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
,
g
=
a
?
a
[
f
]:
g
[
f
],
f
=
a
?
!
1
:
d
,
j
=
h
.
getRoot
(
b
).
expandTriggerFlag
;
h
.
getRoot
(
b
).
expandTriggerFlag
=!
1
;
if
(
g
)
for
(
var
k
=
0
,
l
=
g
.
length
;
k
<
l
;
k
++
)
g
[
k
]
&&
i
.
expandCollapseSonNode
(
b
,
g
[
k
],
c
,
f
);
h
.
getRoot
(
b
).
expandTriggerFlag
=
j
;
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
)},
isSelectedNode
:
function
(
b
,
a
){
if
(
!
a
)
return
!
1
;
var
c
=
h
.
getRoot
(
b
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
i
.
expandCollapseParentNode
(
b
,
a
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
,
g
=
a
?
a
[
f
]:
g
[
f
],
f
=
a
?
!
1
:
d
,
j
=
h
.
getRoot
(
b
).
expandTriggerFlag
;
h
.
getRoot
(
b
).
expandTriggerFlag
=!
1
;
if
(
g
)
for
(
var
k
=
0
,
l
=
g
.
length
;
k
<
l
;
k
++
)
g
[
k
]
&&
i
.
expandCollapseSonNode
(
b
,
g
[
k
],
c
,
f
);
h
.
getRoot
(
b
).
expandTriggerFlag
=
j
;
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
)},
isSelectedNode
:
function
(
b
,
a
){
if
(
!
a
)
return
!
1
;
var
c
=
h
.
getRoot
(
b
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
1
;
d
>=
0
;
d
--
)
if
(
a
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeName
(
a
,
c
),
d
=
a
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"
&
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
);
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
ICON
,
"
' title='' treeNode
"
,
f
.
id
.
ICON
,
"
class='
"
,
i
.
makeNodeIcoClass
(
a
,
c
),
"
' style='
"
,
i
.
makeNodeIcoStyle
(
a
,
c
),
"
'></span><span id='
"
,
c
.
tId
,
f
.
id
.
SPAN
,
"
' class='
"
,
f
.
className
.
NAME
,
"
'>
"
,
d
,
"
</span>
"
)},
makeDOMNodeLine
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"
' title='' class='
"
,
1
;
d
>=
0
;
d
--
)
if
(
a
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeName
(
a
,
c
),
d
=
a
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"
&
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
);
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
ICON
,
"
' title='' treeNode
"
,
f
.
id
.
ICON
,
"
class='
"
,
i
.
makeNodeIcoClass
(
a
,
c
),
"
' style='
"
,
i
.
makeNodeIcoStyle
(
a
,
c
),
"
'></span><span id='
"
,
c
.
tId
,
f
.
id
.
SPAN
,
"
' class='
"
,
f
.
className
.
NAME
,
"
'>
"
,
d
,
"
</span>
"
)},
makeDOMNodeLine
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"
' title='' class='
"
,
i
.
makeNodeLineClass
(
a
,
c
),
"
' treeNode
"
,
f
.
id
.
SWITCH
,
"
></span>
"
)},
makeDOMNodeMainAfter
:
function
(
b
){
b
.
push
(
"
</li>
"
)},
makeDOMNodeMainBefore
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<li id='
"
,
c
.
tId
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
makeDOMNodeNameAfter
:
function
(
b
){
b
.
push
(
"
</a>
"
)},
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
n
=
[],
k
;
for
(
k
in
g
)
n
.
push
(
k
,
"
:
"
,
g
[
k
],
"
;
"
);
b
.
push
(
"
<a id='
"
,
c
.
tId
,
f
.
id
.
A
,
"
' class='
"
,
i
.
makeNodeLineClass
(
a
,
c
),
"
' treeNode
"
,
f
.
id
.
SWITCH
,
"
></span>
"
)},
makeDOMNodeMainAfter
:
function
(
b
){
b
.
push
(
"
</li>
"
)},
makeDOMNodeMainBefore
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<li id='
"
,
c
.
tId
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
makeDOMNodeNameAfter
:
function
(
b
){
b
.
push
(
"
</a>
"
)},
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
m
=
[],
k
;
for
(
k
in
g
)
m
.
push
(
k
,
"
:
"
,
g
[
k
],
"
;
"
);
b
.
push
(
"
<a id='
"
,
c
.
tId
,
f
.
id
.
A
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' treeNode
"
,
f
.
id
.
A
,
'
onclick="
'
,
c
.
click
||
""
,
'
"
'
,
e
!=
null
&&
e
.
length
>
0
?
"
href='
"
+
e
+
"
'
"
:
""
,
"
target='
"
,
i
.
makeNodeTarget
(
c
),
"
' style='
"
,
n
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
),
"
'
"
);
b
.
push
(
"
>
"
)},
makeNodeFontCss
:
function
(
b
,
a
){
var
c
=
j
.
apply
(
b
.
view
.
fontCss
,[
b
.
treeId
,
a
],
b
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"
function
"
?
c
:{}},
makeNodeIcoClass
:
function
(
b
,
a
){
var
c
=
[
"
ico
"
];
f
.
className
.
LEVEL
,
c
.
level
,
"
' treeNode
"
,
f
.
id
.
A
,
'
onclick="
'
,
c
.
click
||
""
,
'
"
'
,
e
!=
null
&&
e
.
length
>
0
?
"
href='
"
+
e
+
"
'
"
:
""
,
"
target='
"
,
i
.
makeNodeTarget
(
c
),
"
' style='
"
,
m
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
),
"
'
"
);
b
.
push
(
"
>
"
)},
makeNodeFontCss
:
function
(
b
,
a
){
var
c
=
j
.
apply
(
b
.
view
.
fontCss
,[
b
.
treeId
,
a
],
b
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"
function
"
?
c
:{}},
makeNodeIcoClass
:
function
(
b
,
a
){
var
c
=
[
"
ico
"
];
a
.
isAjaxing
||
(
c
[
0
]
=
(
a
.
iconSkin
?
a
.
iconSkin
+
"
_
"
:
""
)
+
c
[
0
],
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
));
return
f
.
className
.
BUTTON
+
"
"
+
c
.
join
(
"
_
"
)},
makeNodeIcoStyle
:
function
(
b
,
a
){
var
c
=
[];
if
(
!
a
.
isAjaxing
){
var
d
=
a
.
isParent
&&
a
.
iconOpen
&&
a
.
iconClose
?
a
.
open
?
a
.
iconOpen
:
a
.
iconClose
:
a
[
b
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"
background:url(
"
,
d
,
"
) 0 0 no-repeat;
"
);(
b
.
view
.
showIcon
==!
1
||!
j
.
apply
(
b
.
view
.
showIcon
,[
b
.
treeId
,
a
],
!
0
))
&&
c
.
push
(
"
width:0px;height:0px;
"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
b
,
a
.
isAjaxing
||
(
c
[
0
]
=
(
a
.
iconSkin
?
a
.
iconSkin
+
"
_
"
:
""
)
+
c
[
0
],
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
));
return
f
.
className
.
BUTTON
+
"
"
+
c
.
join
(
"
_
"
)},
makeNodeIcoStyle
:
function
(
b
,
a
){
var
c
=
[];
if
(
!
a
.
isAjaxing
){
var
d
=
a
.
isParent
&&
a
.
iconOpen
&&
a
.
iconClose
?
a
.
open
?
a
.
iconOpen
:
a
.
iconClose
:
a
[
b
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"
background:url(
"
,
d
,
"
) 0 0 no-repeat;
"
);(
b
.
view
.
showIcon
==!
1
||!
j
.
apply
(
b
.
view
.
showIcon
,[
b
.
treeId
,
a
],
!
0
))
&&
c
.
push
(
"
width:0px;height:0px;
"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
b
,
a
){
var
c
=
[];
b
.
view
.
showLine
?
a
.
level
==
0
&&
a
.
isFirstNode
&&
a
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
a
.
level
==
0
&&
a
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
a
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
a
)
+
c
.
join
(
"
_
"
)},
makeNodeLineClassEx
:
function
(
b
){
return
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
LEVEL
+
b
.
level
+
"
"
+
f
.
className
.
SWITCH
+
"
"
},
makeNodeTarget
:
function
(
b
){
return
b
.
target
||
"
_blank
"
},
a
){
var
c
=
[];
b
.
view
.
showLine
?
a
.
level
==
0
&&
a
.
isFirstNode
&&
a
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
a
.
level
==
0
&&
a
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
a
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
a
)
+
c
.
join
(
"
_
"
)},
makeNodeLineClassEx
:
function
(
b
){
return
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
LEVEL
+
b
.
level
+
"
"
+
f
.
className
.
SWITCH
+
"
"
},
makeNodeTarget
:
function
(
b
){
return
b
.
target
||
"
_blank
"
},
makeNodeUrl
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
url
;
return
a
[
c
]?
a
[
c
]:
null
},
makeUlHtml
:
function
(
b
,
a
,
c
,
d
){
c
.
push
(
"
<ul id='
"
,
a
.
tId
,
f
.
id
.
UL
,
"
' class='
"
,
f
.
className
.
LEVEL
,
a
.
level
,
"
"
,
i
.
makeUlLineClass
(
b
,
a
),
"
' style='display:
"
,
a
.
open
?
"
block
"
:
"
none
"
,
"
'>
"
);
c
.
push
(
d
);
c
.
push
(
"
</ul>
"
)},
makeUlLineClass
:
function
(
b
,
a
){
return
b
.
view
.
showLine
&&!
a
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
b
,
a
){
if
(
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
];
if
(
d
){
for
(
var
e
=
0
,
g
=
d
.
length
;
e
<
g
;
e
++
)
h
.
removeNodeCache
(
b
,
d
[
e
]);
h
.
removeSelectedNode
(
b
);
makeNodeUrl
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
url
;
return
a
[
c
]?
a
[
c
]:
null
},
makeUlHtml
:
function
(
b
,
a
,
c
,
d
){
c
.
push
(
"
<ul id='
"
,
a
.
tId
,
f
.
id
.
UL
,
"
' class='
"
,
f
.
className
.
LEVEL
,
a
.
level
,
"
"
,
i
.
makeUlLineClass
(
b
,
a
),
"
' style='display:
"
,
a
.
open
?
"
block
"
:
"
none
"
,
"
'>
"
);
c
.
push
(
d
);
c
.
push
(
"
</ul>
"
)},
makeUlLineClass
:
function
(
b
,
a
){
return
b
.
view
.
showLine
&&!
a
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
b
,
a
){
if
(
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
];
if
(
d
){
for
(
var
e
=
0
,
g
=
d
.
length
;
e
<
g
;
e
++
)
h
.
removeNodeCache
(
b
,
d
[
e
]);
h
.
removeSelectedNode
(
b
);
delete
a
[
c
];
b
.
data
.
keep
.
parent
?
k
(
a
,
f
.
id
.
UL
,
b
).
empty
():(
a
.
isParent
=!
1
,
a
.
open
=!
1
,
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
a
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
a
,
d
,
f
.
folder
.
DOCU
),
k
(
a
,
f
.
id
.
UL
,
b
).
remove
())}}},
s
etFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
].
length
>
0
)
a
[
c
][
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
].
length
;
if
(
d
>
0
)
a
[
c
][
d
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
),
d
=
b
.
data
.
key
.
children
,
e
=
a
.
parentTId
?
a
.
getParentNode
():
delete
a
[
c
];
b
.
data
.
keep
.
parent
?
k
(
a
,
f
.
id
.
UL
,
b
).
empty
():(
a
.
isParent
=!
1
,
a
.
open
=!
1
,
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
a
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
a
,
d
,
f
.
folder
.
DOCU
),
k
(
a
,
f
.
id
.
UL
,
b
).
remove
())}}},
s
crollIntoView
:
function
(
b
){
if
(
b
)
if
(
b
.
scrollIntoViewIfNeeded
)
b
.
scrollIntoViewIfNeeded
();
else
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
else
try
{
b
.
focus
().
blur
()}
catch
(
a
){}},
setFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
].
length
>
0
)
a
[
c
][
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
b
,
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
a
.
tId
)){
k
(
a
,
b
).
remove
();
h
.
removeNodeCache
(
b
,
a
);
h
.
removeSelectedNode
(
b
,
a
);
for
(
var
g
=
0
,
j
=
e
[
d
].
length
;
g
<
j
;
g
++
)
if
(
e
[
d
][
g
].
tId
==
a
.
tId
){
e
[
d
].
splice
(
g
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
o
,
g
=
e
[
d
].
length
;
if
(
!
b
.
data
.
keep
.
parent
&&
g
==
0
)
e
.
isParent
=!
1
,
e
.
open
=!
1
,
g
=
k
(
e
,
f
.
id
.
UL
,
b
),
j
=
k
(
e
,
f
.
id
.
SWITCH
,
b
),
o
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
].
length
;
if
(
d
>
0
)
a
[
c
][
d
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
),
d
=
b
.
data
.
key
.
children
,
e
=
a
.
parentTId
?
a
.
getParentNode
():
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
a
.
tId
)){
k
(
a
,
b
).
remove
();
h
.
removeNodeCache
(
b
,
a
);
h
.
removeSelectedNode
(
b
,
a
);
for
(
var
g
=
0
,
j
=
e
[
d
].
length
;
g
<
j
;
g
++
)
if
(
e
[
d
][
g
].
tId
==
a
.
tId
){
e
[
d
].
splice
(
g
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
o
,
o
,
f
.
folder
.
DOCU
),
g
.
css
(
"
display
"
,
"
none
"
);
else
if
(
b
.
view
.
showLine
&&
g
>
0
){
var
m
=
e
[
d
][
g
-
1
],
g
=
k
(
m
,
f
.
id
.
UL
,
b
),
j
=
k
(
m
,
f
.
id
.
SWITCH
,
b
);
o
=
k
(
m
,
f
.
id
.
ICON
,
b
);
e
==
c
?
e
[
d
].
length
==
1
?
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
ROOT
):(
c
=
k
(
e
[
d
][
0
],
f
.
id
.
SWITCH
,
b
),
i
.
replaceSwitchClass
(
e
[
d
][
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
BOTTOM
);
g
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
b
,
a
,
c
){
if
(
a
&&!
b
.
isAjaxing
&&
(
b
=
a
.
attr
(
"
class
"
),
b
!=
void
0
)){
b
=
b
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
b
[
b
.
length
-
g
=
e
[
d
].
length
;
if
(
!
b
.
data
.
keep
.
parent
&&
g
==
0
)
e
.
isParent
=!
1
,
e
.
open
=!
1
,
g
=
k
(
e
,
f
.
id
.
UL
,
b
),
j
=
k
(
e
,
f
.
id
.
SWITCH
,
b
),
o
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
o
,
f
.
folder
.
DOCU
),
g
.
css
(
"
display
"
,
"
none
"
);
else
if
(
b
.
view
.
showLine
&&
g
>
0
){
var
n
=
e
[
d
][
g
-
1
],
g
=
k
(
n
,
f
.
id
.
UL
,
b
),
j
=
k
(
n
,
f
.
id
.
SWITCH
,
b
);
o
=
k
(
n
,
f
.
id
.
ICON
,
b
);
e
==
c
?
e
[
d
].
length
==
1
?
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
ROOT
):(
c
=
k
(
e
[
d
][
0
],
f
.
id
.
SWITCH
,
b
),
i
.
replaceSwitchClass
(
e
[
d
][
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
n
,
1
]
=
c
}
a
.
attr
(
"
class
"
,
b
.
join
(
"
_
"
))}},
replaceSwitchClass
:
function
(
b
,
a
,
c
){
if
(
a
){
var
d
=
a
.
attr
(
"
class
"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
line
.
ROOT
:
case
f
.
line
.
ROOTS
:
case
f
.
line
.
CENTER
:
case
f
.
line
.
BOTTOM
:
case
f
.
line
.
NOLINE
:
d
[
0
]
=
i
.
makeNodeLineClassEx
(
b
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
c
}
a
.
attr
(
"
class
"
,
d
.
join
(
"
_
"
));
c
!==
f
.
folder
.
DOCU
?
a
.
removeAttr
(
"
disabled
"
):
a
.
attr
(
"
disabled
"
,
"
disabled
"
)}}},
selectNode
:
function
(
b
,
a
,
c
){
c
||
i
.
cancelPreSelectedNode
(
b
,
null
,
a
);
k
(
a
,
j
,
f
.
line
.
BOTTOM
);
g
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
b
,
a
,
c
){
if
(
a
&&!
b
.
isAjaxing
&&
(
b
=
a
.
attr
(
"
class
"
),
b
!=
void
0
)){
b
=
b
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
b
[
b
.
length
-
1
]
=
c
}
a
.
attr
(
"
class
"
,
b
.
join
(
"
_
"
))}},
replaceSwitchClass
:
function
(
b
,
a
,
c
){
if
(
a
){
var
d
=
a
.
attr
(
"
class
"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
line
.
ROOT
:
case
f
.
line
.
ROOTS
:
case
f
.
line
.
CENTER
:
case
f
.
line
.
BOTTOM
:
case
f
.
line
.
NOLINE
:
d
[
0
]
=
i
.
makeNodeLineClassEx
(
b
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
b
.
treeId
,
a
])},
setNodeFontCss
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeFontCss
(
b
,
a
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
b
,
a
){
if
(
a
){
var
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
UL
,
b
),
e
=
k
(
a
,
f
.
id
.
ICON
,
b
),
g
=
i
.
makeUlLineClass
(
b
,
a
);
g
.
length
==
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
g
);
c
.
attr
(
"
class
"
,
i
.
makeNodeLineClass
(
b
,
a
));
a
.
isParent
?
c
.
removeAttr
(
"
disabled
"
):
c
.
attr
(
"
disabled
"
,
"
disabled
"
);
e
.
removeAttr
(
"
style
"
);
c
}
a
.
attr
(
"
class
"
,
d
.
join
(
"
_
"
));
c
!==
f
.
folder
.
DOCU
?
a
.
removeAttr
(
"
disabled
"
):
a
.
attr
(
"
disabled
"
,
"
disabled
"
)}}},
selectNode
:
function
(
b
,
a
,
c
){
c
||
i
.
cancelPreSelectedNode
(
b
,
null
,
a
);
k
(
a
,
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
b
.
treeId
,
a
])},
setNodeFontCss
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeFontCss
(
b
,
a
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
b
,
a
){
if
(
a
){
var
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
UL
,
b
),
e
=
k
(
a
,
f
.
id
.
ICON
,
b
),
g
=
i
.
makeUlLineClass
(
b
,
a
);
g
.
length
==
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
a
))}},
setNodeName
:
function
(
b
,
a
){
var
c
=
h
.
getNodeTitle
(
b
,
a
),
d
=
k
(
a
,
f
.
id
.
SPAN
,
b
);
d
.
empty
();
b
.
view
.
nameIsHTML
?
d
.
html
(
h
.
getNodeName
(
b
,
a
)):
d
.
text
(
h
.
getNodeName
(
b
,
a
));
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
a
],
b
.
view
.
showTitle
)
&&
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
title
"
,
!
c
?
""
:
c
)},
setNodeTarget
:
function
(
b
,
a
){
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
target
"
,
i
.
makeNodeTarget
(
a
))},
setNodeUrl
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeUrl
(
b
,
a
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"
href
"
):
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
g
);
c
.
attr
(
"
class
"
,
i
.
makeNodeLineClass
(
b
,
a
));
a
.
isParent
?
c
.
removeAttr
(
"
disabled
"
):
c
.
attr
(
"
disabled
"
,
"
disabled
"
);
e
.
removeAttr
(
"
style
"
);
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
a
))}},
setNodeName
:
function
(
b
,
a
){
var
c
=
h
.
getNodeTitle
(
b
,
a
),
d
=
k
(
a
,
f
.
id
.
SPAN
,
b
);
d
.
empty
();
b
.
view
.
nameIsHTML
?
d
.
html
(
h
.
getNodeName
(
b
,
a
)):
d
.
text
(
h
.
getNodeName
(
b
,
a
));
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
a
],
b
.
view
.
showTitle
)
&&
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
title
"
,
!
c
?
""
:
c
)},
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
a
)?
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
b
.
async
.
enable
?
i
.
asyncNode
(
b
,
a
)
||
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
a
&&
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
)}};
q
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"
button
"
,
LEVEL
:
"
level
"
,
ICO_LOADING
:
"
ico_loading
"
,
SWITCH
:
"
switch
"
,
NAME
:
"
node_name
"
},
event
:{
NODECREATED
:
"
ztree_nodeCreated
"
,
CLICK
:
"
ztree_click
"
,
EXPAND
:
"
ztree_expand
"
,
COLLAPSE
:
"
ztree_collapse
"
,
ASYNC_SUCCESS
:
"
ztree_async_success
"
,
ASYNC_ERROR
:
"
ztree_async_error
"
,
setNodeTarget
:
function
(
b
,
a
){
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
target
"
,
i
.
makeNodeTarget
(
a
))},
setNodeUrl
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeUrl
(
b
,
a
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"
href
"
):
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
a
)?
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
b
.
async
.
enable
?
i
.
asyncNode
(
b
,
a
)
||
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
a
&&
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
)}};
q
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"
button
"
,
LEVEL
:
"
level
"
,
ICO_LOADING
:
"
ico_loading
"
,
SWITCH
:
"
switch
"
,
NAME
:
"
node_name
"
}
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
},
id
:{
A
:
"
_a
"
,
ICON
:
"
_ico
"
,
SPAN
:
"
_span
"
,
SWITCH
:
"
_switch
"
,
UL
:
"
_ul
"
},
line
:{
ROOT
:
"
root
"
,
ROOTS
:
"
roots
"
,
CENTER
:
"
center
"
,
BOTTOM
:
"
bottom
"
,
NOLINE
:
"
noline
"
,
LINE
:
"
line
"
},
folder
:{
OPEN
:
"
open
"
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
l
,
data
:
h
},
getZTreeObj
:
function
(
b
){
return
(
b
=
h
.
getZTreeTools
(
b
))?
b
:
null
},
destroy
:
function
(
b
){
if
(
b
&&
b
.
length
>
0
)
i
.
destroy
(
h
.
getSetting
(
b
));
else
for
(
var
a
in
r
)
i
.
destroy
(
r
[
a
])}
,
event
:{
NODECREATED
:
"
ztree_nodeCreated
"
,
CLICK
:
"
ztree_click
"
,
EXPAND
:
"
ztree_expand
"
,
COLLAPSE
:
"
ztree_collapse
"
,
ASYNC_SUCCESS
:
"
ztree_async_success
"
,
ASYNC_ERROR
:
"
ztree_async_error
"
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
},
id
:{
A
:
"
_a
"
,
ICON
:
"
_ico
"
,
SPAN
:
"
_span
"
,
SWITCH
:
"
_switch
"
,
UL
:
"
_ul
"
},
line
:{
ROOT
:
"
root
"
,
ROOTS
:
"
roots
"
,
CENTER
:
"
center
"
,
BOTTOM
:
"
bottom
"
,
NOLINE
:
"
noline
"
,
LINE
:
"
line
"
},
folder
:{
OPEN
:
"
open
"
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
b
.
attr
(
"
id
"
);
d
.
treeObj
=
b
;
d
.
treeObj
.
empty
();
r
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
d
.
view
.
expandSpeed
=
""
;
h
.
initRoot
(
d
);
b
=
h
.
getRoot
(
d
);
a
=
d
.
data
.
key
.
children
;
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
c
):
c
;
h
.
initCache
(
d
);
l
.
unbindTree
(
d
);
l
.
bindTree
(
d
);
l
.
unbindEvent
(
d
);
l
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
l
,
f
==!
0
)}
view
:
i
,
event
:
l
,
data
:
h
},
getZTreeObj
:
function
(
b
){
return
(
b
=
h
.
getZTreeTools
(
b
))?
b
:
null
},
destroy
:
function
(
b
){
if
(
b
&&
b
.
length
>
0
)
i
.
destroy
(
h
.
getSetting
(
b
));
else
for
(
var
a
in
s
)
i
.
destroy
(
s
[
a
])},
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
O
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
b
.
attr
(
"
id
"
);
d
.
treeObj
=
b
;
d
.
treeObj
.
empty
();
s
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
d
.
view
.
expandSpeed
=
""
;
h
.
initRoot
(
d
);
b
=
h
.
getRoot
(
d
);
a
=
d
.
data
.
key
.
children
;
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
l
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
l
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
m
){
function
l
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
if
(
b
&&
f
!==!
1
)
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
c
):
c
;
h
.
initCache
(
d
);
l
.
unbindTree
(
d
);
l
.
bindTree
(
d
);
l
.
unbindEvent
(
d
);
l
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
l
,
f
==!
0
)}
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
l
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
l
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
else
try
{
b
.
focus
().
blur
()}
catch
(
c
){}}
if
(
!
a
||!
a
.
isParent
)
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
m
=!!
m
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
m
&&!
b
&&
j
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
m
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
l
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
l
());
return
b
}
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
n
){
function
l
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
b
&&
f
!==!
1
&&
i
.
scrollIntoView
(
b
)}
if
(
!
a
||!
a
.
isParent
)
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
n
=!!
n
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
n
&&!
b
&&
j
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
n
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
getNodes
:
function
(){
return
h
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodeByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
h
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParamFuzzy
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"
function
"
?
a
,
b
,
!
0
,
l
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
l
());
return
b
},
getNodes
:
function
(){
return
h
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodeByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
h
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParamFuzzy
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
b
?
null
:[]:
h
.
getNodesByFilter
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
d
.
data
.
key
.
children
,
c
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
d
),
f
=
0
,
i
=
c
[
b
].
length
;
f
<
i
;
f
++
)
if
(
c
[
b
][
f
]
==
a
)
return
f
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
h
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
h
.
isSelectedNode
(
d
,
a
)},
reAsyncChildNodes
:
function
(
a
,
b
,
c
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"
function
"
?
b
?
null
:[]:
h
.
getNodesByFilter
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
d
.
data
.
key
.
children
,
c
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
d
),
f
=
0
,
i
=
c
[
b
].
length
;
f
<
i
;
f
++
)
if
(
c
[
b
][
f
]
==
a
)
return
f
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
h
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
h
.
isSelectedNode
(
d
,
a
)},
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
m
=
0
,
l
=
a
[
b
]?
a
[
b
].
length
:
0
;
m
<
l
;
m
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
m
]);
h
.
removeSelectedNode
(
d
);
a
[
b
]
=
[];
j
?
this
.
setting
.
treeObj
.
empty
():
k
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
h
.
getRoot
(
d
),
b
=
a
[
d
.
data
.
key
.
children
];
h
.
initRoot
(
d
);
a
[
d
.
data
.
key
.
children
]
=
b
;
h
.
initCache
(
d
);
i
.
createNodes
(
d
,
0
,
a
[
d
.
data
.
key
.
children
],
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
reAsyncChildNodes
:
function
(
a
,
b
,
c
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
l
=
0
,
q
=
a
[
b
]?
a
[
b
].
length
:
0
;
l
<
q
;
l
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
l
]);
h
.
removeSelectedNode
(
d
);
a
[
b
]
=
[];
j
?
this
.
setting
.
treeObj
.
empty
():
k
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
h
.
getRoot
(
d
),
b
=
a
[
d
.
data
.
key
.
children
];
h
.
initRoot
(
d
);
a
[
d
.
data
.
key
.
children
]
=
b
;
h
.
initCache
(
d
);
i
.
createNodes
(
d
,
var
b
=
a
[
d
.
data
.
key
.
children
];
i
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
j
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
i
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
f
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
){
function
c
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
if
(
b
)
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
else
try
{
b
.
focus
().
blur
()}
catch
(
f
){}}
if
(
a
&&
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
c
);
0
,
a
[
d
.
data
.
key
.
children
],
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
var
b
=
a
[
d
.
data
.
key
.
children
];
i
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
j
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
i
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
f
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
,
c
){
function
f
(){
if
(
!
c
){
var
b
=
k
(
a
,
d
).
get
(
0
);
i
.
scrollIntoView
(
b
)}}
if
(
a
&&
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
else
try
{
k
(
a
,
d
).
focus
().
blur
()}
catch
(
f
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
h
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
h
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
k
(
a
,
d
).
get
(
0
)
&&
j
.
uCanDo
(
d
)
&&
(
i
.
setNodeName
(
d
,
a
),
i
.
setNodeTarget
(
d
,
a
),
i
.
setNodeUrl
(
d
,
a
),
i
.
setNodeLineIcos
(
d
,
a
),
i
.
setNodeFontCss
(
d
,
a
))}};
b
.
treeTools
=
c
;
h
.
setZTreeTools
(
d
,
c
);
b
[
a
]
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
try
{
k
(
a
,
d
).
focus
().
blur
()}
catch
(
h
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
h
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
h
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
k
(
a
,
d
).
get
(
0
)
&&
j
.
uCanDo
(
d
)
&&
(
i
.
setNodeName
(
d
,
a
),
i
.
setNodeTarget
(
d
,
a
),
i
.
setNodeUrl
(
d
,
a
),
i
.
setNodeLineIcos
(
d
,
a
),
i
.
setNodeFontCss
(
d
,
a
))}};
b
.
treeTools
=
c
;
h
.
setZTreeTools
(
d
,
c
);
b
[
a
]
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
c
}};
var
P
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
P
.
consts
})(
jQuery
);
/*
/*
* JQuery zTree excheck v3.5.2
2
* JQuery zTree excheck v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -82,7 +82,7 @@ return c}};var O=q.fn.zTree,k=j.$,f=O.consts})(jQuery);
...
@@ -82,7 +82,7 @@ return c}};var O=q.fn.zTree,k=j.$,f=O.consts})(jQuery);
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
m
){
var
p
,
q
,
r
,
o
=
{
event
:{
CHECK
:
"
ztree_check
"
},
id
:{
CHECK
:
"
_check
"
},
checkbox
:{
STYLE
:
"
checkbox
"
,
DEFAULT
:
"
chk
"
,
DISABLED
:
"
disable
"
,
FALSE
:
"
false
"
,
TRUE
:
"
true
"
,
FULL
:
"
full
"
,
PART
:
"
part
"
,
FOCUS
:
"
focus
"
},
radio
:{
STYLE
:
"
radio
"
,
TYPE_ALL
:
"
all
"
,
TYPE_LEVEL
:
"
level
"
}},
v
=
{
check
:{
enable
:
!
1
,
autoCheckTrigger
:
!
1
,
chkStyle
:
o
.
checkbox
.
STYLE
,
nocheckInherit
:
!
1
,
chkDisabledInherit
:
!
1
,
radioType
:
o
.
radio
.
TYPE_LEVEL
,
chkboxType
:{
Y
:
"
ps
"
,
N
:
"
ps
"
}},
data
:{
key
:{
checked
:
"
checked
"
}},
callback
:{
beforeCheck
:
null
,
onCheck
:
null
}};
p
=
function
(
c
,
(
function
(
m
){
var
p
,
q
,
r
,
o
=
{
event
:{
CHECK
:
"
ztree_check
"
},
id
:{
CHECK
:
"
_check
"
},
checkbox
:{
STYLE
:
"
checkbox
"
,
DEFAULT
:
"
chk
"
,
DISABLED
:
"
disable
"
,
FALSE
:
"
false
"
,
TRUE
:
"
true
"
,
FULL
:
"
full
"
,
PART
:
"
part
"
,
FOCUS
:
"
focus
"
},
radio
:{
STYLE
:
"
radio
"
,
TYPE_ALL
:
"
all
"
,
TYPE_LEVEL
:
"
level
"
}},
v
=
{
check
:{
enable
:
!
1
,
autoCheckTrigger
:
!
1
,
chkStyle
:
o
.
checkbox
.
STYLE
,
nocheckInherit
:
!
1
,
chkDisabledInherit
:
!
1
,
radioType
:
o
.
radio
.
TYPE_LEVEL
,
chkboxType
:{
Y
:
"
ps
"
,
N
:
"
ps
"
}},
data
:{
key
:{
checked
:
"
checked
"
}},
callback
:{
beforeCheck
:
null
,
onCheck
:
null
}};
p
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
b
.
data
.
key
.
checked
;
if
(
k
.
apply
(
b
.
callback
.
beforeCheck
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
a
[
d
]
=!
a
[
d
];
e
.
checkNodeRelation
(
b
,
a
);
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
e
.
setChkClass
(
b
,
d
,
a
);
e
.
repairParentChkClassWithSelf
(
b
,
a
);
b
.
treeObj
.
trigger
(
j
.
event
.
CHECK
,[
c
,
b
.
treeId
,
a
]);
return
!
0
};
q
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
a
.
check_Focus
=!
0
;
e
.
setChkClass
(
b
,
d
,
a
);
return
!
0
};
r
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
b
.
data
.
key
.
checked
;
if
(
k
.
apply
(
b
.
callback
.
beforeCheck
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
a
[
d
]
=!
a
[
d
];
e
.
checkNodeRelation
(
b
,
a
);
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
e
.
setChkClass
(
b
,
d
,
a
);
e
.
repairParentChkClassWithSelf
(
b
,
a
);
b
.
treeObj
.
trigger
(
j
.
event
.
CHECK
,[
c
,
b
.
treeId
,
a
]);
return
!
0
};
q
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
a
.
check_Focus
=!
0
;
e
.
setChkClass
(
b
,
d
,
a
);
return
!
0
};
r
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===
...
@@ -108,7 +108,7 @@ j.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,i
...
@@ -108,7 +108,7 @@ j.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,i
d
&&
g
.
makeChkFlag
(
c
,
d
);
return
f
}})(
jQuery
);
d
&&
g
.
makeChkFlag
(
c
,
d
);
return
f
}})(
jQuery
);
/*
/*
* JQuery zTree exedit v3.5.2
2
* JQuery zTree exedit v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -117,7 +117,7 @@ d&&g.makeChkFlag(c,d);return f}})(jQuery);
...
@@ -117,7 +117,7 @@ d&&g.makeChkFlag(c,d);return f}})(jQuery);
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
v
){
var
J
=
{
event
:{
DRAG
:
"
ztree_drag
"
,
DROP
:
"
ztree_drop
"
,
RENAME
:
"
ztree_rename
"
,
DRAGMOVE
:
"
ztree_dragmove
"
},
id
:{
EDIT
:
"
_edit
"
,
INPUT
:
"
_input
"
,
REMOVE
:
"
_remove
"
},
move
:{
TYPE_INNER
:
"
inner
"
,
TYPE_PREV
:
"
prev
"
,
TYPE_NEXT
:
"
next
"
},
node
:{
CURSELECTED_EDIT
:
"
curSelectedNode_Edit
"
,
TMPTARGET_TREE
:
"
tmpTargetzTree
"
,
TMPTARGET_NODE
:
"
tmpTargetNode
"
}},
x
=
{
onHoverOverNode
:
function
(
b
,
a
){
var
c
=
m
.
getSetting
(
b
.
data
.
treeId
),
d
=
m
.
getRoot
(
c
);
if
(
d
.
curHoverNode
!=
a
)
x
.
onHoverOutNode
(
b
);
d
.
curHoverNode
=
a
;
f
.
addHoverDom
(
c
,
a
)},
onHoverOutNode
:
function
(
b
){
var
b
=
(
function
(
v
){
var
J
=
{
event
:{
DRAG
:
"
ztree_drag
"
,
DROP
:
"
ztree_drop
"
,
RENAME
:
"
ztree_rename
"
,
DRAGMOVE
:
"
ztree_dragmove
"
},
id
:{
EDIT
:
"
_edit
"
,
INPUT
:
"
_input
"
,
REMOVE
:
"
_remove
"
},
move
:{
TYPE_INNER
:
"
inner
"
,
TYPE_PREV
:
"
prev
"
,
TYPE_NEXT
:
"
next
"
},
node
:{
CURSELECTED_EDIT
:
"
curSelectedNode_Edit
"
,
TMPTARGET_TREE
:
"
tmpTargetzTree
"
,
TMPTARGET_NODE
:
"
tmpTargetNode
"
}},
x
=
{
onHoverOverNode
:
function
(
b
,
a
){
var
c
=
m
.
getSetting
(
b
.
data
.
treeId
),
d
=
m
.
getRoot
(
c
);
if
(
d
.
curHoverNode
!=
a
)
x
.
onHoverOutNode
(
b
);
d
.
curHoverNode
=
a
;
f
.
addHoverDom
(
c
,
a
)},
onHoverOutNode
:
function
(
b
){
var
b
=
m
.
getSetting
(
b
.
data
.
treeId
),
a
=
m
.
getRoot
(
b
);
if
(
a
.
curHoverNode
&&!
m
.
isSelectedNode
(
b
,
a
.
curHoverNode
))
f
.
removeTreeDom
(
b
,
a
.
curHoverNode
),
a
.
curHoverNode
=
null
},
onMousedownNode
:
function
(
b
,
a
){
function
c
(
b
){
if
(
B
.
dragFlag
==
0
&&
Math
.
abs
(
O
-
b
.
clientX
)
<
e
.
edit
.
drag
.
minMoveSize
&&
Math
.
abs
(
P
-
b
.
clientY
)
<
e
.
edit
.
drag
.
minMoveSize
)
return
!
0
;
var
a
,
c
,
n
,
k
,
i
;
i
=
e
.
data
.
key
.
children
;
M
.
css
(
"
cursor
"
,
"
pointer
"
);
if
(
B
.
dragFlag
==
0
){
if
(
g
.
apply
(
e
.
callback
.
beforeDrag
,[
e
.
treeId
,
l
],
!
0
)
==!
1
)
return
r
(
b
),
!
0
;
for
(
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
){
if
(
a
==
0
)
B
.
dragNodeShowBefore
=
m
.
getSetting
(
b
.
data
.
treeId
),
a
=
m
.
getRoot
(
b
);
if
(
a
.
curHoverNode
&&!
m
.
isSelectedNode
(
b
,
a
.
curHoverNode
))
f
.
removeTreeDom
(
b
,
a
.
curHoverNode
),
a
.
curHoverNode
=
null
},
onMousedownNode
:
function
(
b
,
a
){
function
c
(
b
){
if
(
B
.
dragFlag
==
0
&&
Math
.
abs
(
O
-
b
.
clientX
)
<
e
.
edit
.
drag
.
minMoveSize
&&
Math
.
abs
(
P
-
b
.
clientY
)
<
e
.
edit
.
drag
.
minMoveSize
)
return
!
0
;
var
a
,
c
,
n
,
k
,
i
;
i
=
e
.
data
.
key
.
children
;
M
.
css
(
"
cursor
"
,
"
pointer
"
);
if
(
B
.
dragFlag
==
0
){
if
(
g
.
apply
(
e
.
callback
.
beforeDrag
,[
e
.
treeId
,
l
],
!
0
)
==!
1
)
return
r
(
b
),
!
0
;
for
(
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
){
if
(
a
==
0
)
B
.
dragNodeShowBefore
=
...
@@ -134,8 +134,8 @@ H=n?i?0.25:k?0.5:1:-1,N=k?i?0.75:n?0.5:0:-1,y=(b.clientY+y-p)/F.height(),(H==1||
...
@@ -134,8 +134,8 @@ H=n?i?0.25:k?0.5:1:-1,N=k?i?0.75:n?0.5:0:-1,y=(b.clientY+y-p)/F.height(),(H==1||
h
.
edit
.
drag
.
autoOpenTime
+
50
),
window
.
zTreeMoveTargetNodeTId
=
z
.
tId
}}
else
if
(
w
=
d
.
move
.
TYPE_INNER
,
s
&&
g
.
apply
(
h
.
edit
.
drag
.
inner
,[
h
.
treeId
,
l
,
null
],
!!
h
.
edit
.
drag
.
inner
)?
s
.
addClass
(
d
.
node
.
TMPTARGET_TREE
):
s
=
null
,
A
.
css
({
display
:
"
none
"
}),
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
T
=
u
;
U
=
w
;
e
.
treeObj
.
trigger
(
d
.
event
.
DRAGMOVE
,[
b
,
e
.
treeId
,
l
])}
return
!
1
}
function
r
(
b
){
if
(
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
U
=
T
=
h
.
edit
.
drag
.
autoOpenTime
+
50
),
window
.
zTreeMoveTargetNodeTId
=
z
.
tId
}}
else
if
(
w
=
d
.
move
.
TYPE_INNER
,
s
&&
g
.
apply
(
h
.
edit
.
drag
.
inner
,[
h
.
treeId
,
l
,
null
],
!!
h
.
edit
.
drag
.
inner
)?
s
.
addClass
(
d
.
node
.
TMPTARGET_TREE
):
s
=
null
,
A
.
css
({
display
:
"
none
"
}),
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
T
=
u
;
U
=
w
;
e
.
treeObj
.
trigger
(
d
.
event
.
DRAGMOVE
,[
b
,
e
.
treeId
,
l
])}
return
!
1
}
function
r
(
b
){
if
(
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
U
=
T
=
null
;
G
.
unbind
(
"
mousemove
"
,
c
);
G
.
unbind
(
"
mouseup
"
,
r
);
G
.
unbind
(
"
selectstart
"
,
k
);
M
.
css
(
"
cursor
"
,
"
auto
"
);
s
&&
(
s
.
removeClass
(
d
.
node
.
TMPTARGET_TREE
),
u
&&
v
(
"
#
"
+
u
+
d
.
id
.
A
,
s
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
d
.
move
.
TYPE_PREV
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_NEXT
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_INNER
));
g
.
showIfameMask
(
e
,
!
1
);
t
.
showHoverDom
=!
0
;
if
(
B
.
dragFlag
!=
0
){
B
.
dragFlag
=
0
;
var
a
,
i
,
j
;
for
(
a
=
0
,
i
=
l
.
length
;
a
<
i
;
a
++
)
j
=
l
[
a
],
j
.
isParent
&&
B
.
dragNodeShowBefore
[
j
.
tId
]
&&!
j
.
open
&&
(
f
.
expandCollapseNode
(
e
,
null
;
G
.
unbind
(
"
mousemove
"
,
c
);
G
.
unbind
(
"
mouseup
"
,
r
);
G
.
unbind
(
"
selectstart
"
,
k
);
M
.
css
(
"
cursor
"
,
"
auto
"
);
s
&&
(
s
.
removeClass
(
d
.
node
.
TMPTARGET_TREE
),
u
&&
v
(
"
#
"
+
u
+
d
.
id
.
A
,
s
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
d
.
move
.
TYPE_PREV
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_NEXT
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_INNER
));
g
.
showIfameMask
(
e
,
!
1
);
t
.
showHoverDom
=!
0
;
if
(
B
.
dragFlag
!=
0
){
B
.
dragFlag
=
0
;
var
a
,
i
,
j
;
for
(
a
=
0
,
i
=
l
.
length
;
a
<
i
;
a
++
)
j
=
l
[
a
],
j
.
isParent
&&
B
.
dragNodeShowBefore
[
j
.
tId
]
&&!
j
.
open
&&
(
f
.
expandCollapseNode
(
e
,
j
,
!
j
.
open
),
delete
B
.
dragNodeShowBefore
[
j
.
tId
]);
D
&&
D
.
remove
();
A
&&
A
.
remove
();
var
p
=
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
||!
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
;
!
p
&&
s
&&
u
&&
l
[
0
].
parentTId
&&
u
==
l
[
0
].
parentTId
&&
w
==
d
.
move
.
TYPE_INNER
&&
(
s
=
null
);
if
(
s
){
var
q
=
u
==
null
?
null
:
m
.
getNodeCache
(
h
,
u
);
if
(
g
.
apply
(
e
.
callback
.
beforeDrop
,[
h
.
treeId
,
l
,
q
,
w
,
p
],
!
0
)
==!
1
)
f
.
selectNodes
(
x
,
l
);
else
{
var
C
=
p
?
g
.
clone
(
l
):
l
;
a
=
function
(){
if
(
K
){
if
(
!
p
)
for
(
var
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
)
f
.
removeNode
(
e
,
l
[
a
]);
w
==
d
.
move
.
TYPE_INNER
?
j
,
!
j
.
open
),
delete
B
.
dragNodeShowBefore
[
j
.
tId
]);
D
&&
D
.
remove
();
A
&&
A
.
remove
();
var
p
=
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
||!
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
;
!
p
&&
s
&&
u
&&
l
[
0
].
parentTId
&&
u
==
l
[
0
].
parentTId
&&
w
==
d
.
move
.
TYPE_INNER
&&
(
s
=
null
);
if
(
s
){
var
q
=
u
==
null
?
null
:
m
.
getNodeCache
(
h
,
u
);
if
(
g
.
apply
(
e
.
callback
.
beforeDrop
,[
h
.
treeId
,
l
,
q
,
w
,
p
],
!
0
)
==!
1
)
f
.
selectNodes
(
x
,
l
);
else
{
var
C
=
p
?
g
.
clone
(
l
):
l
;
a
=
function
(){
if
(
K
){
if
(
!
p
)
for
(
var
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
)
f
.
removeNode
(
e
,
l
[
a
]);
w
==
d
.
move
.
TYPE_INNER
?
f
.
addNodes
(
h
,
q
,
-
1
,
C
):
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
)}
else
if
(
p
&&
w
==
d
.
move
.
TYPE_INNER
)
f
.
addNodes
(
h
,
q
,
-
1
,
C
);
else
if
(
p
)
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
);
else
if
(
w
!=
d
.
move
.
TYPE_NEXT
)
for
(
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
f
.
moveNode
(
h
,
q
,
C
[
a
],
w
,
!
1
);
else
for
(
a
=-
1
,
c
=
C
.
length
-
1
;
a
<
c
;
c
--
)
f
.
moveNode
(
h
,
q
,
C
[
c
],
w
,
!
1
);
f
.
selectNodes
(
h
,
C
);
if
(
a
=
o
(
C
[
0
],
e
).
get
(
0
))
if
(
a
.
scrollIntoView
)
a
.
scrollIntoView
(
!
1
);
else
try
{
a
.
focus
().
blur
()}
catch
(
r
){}
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,
f
.
addNodes
(
h
,
q
,
-
1
,
C
):
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
)}
else
if
(
p
&&
w
==
d
.
move
.
TYPE_INNER
)
f
.
addNodes
(
h
,
q
,
-
1
,
C
);
else
if
(
p
)
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
);
else
if
(
w
!=
d
.
move
.
TYPE_NEXT
)
for
(
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
f
.
moveNode
(
h
,
q
,
C
[
a
],
w
,
!
1
);
else
for
(
a
=-
1
,
c
=
C
.
length
-
1
;
a
<
c
;
c
--
)
f
.
moveNode
(
h
,
q
,
C
[
c
],
w
,
!
1
);
f
.
selectNodes
(
h
,
C
);
a
=
o
(
C
[
0
],
e
).
get
(
0
);
f
.
scrollIntoView
(
a
);
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,[
b
,
h
.
treeId
,
C
,
q
,
w
,
p
])};
[
b
,
h
.
treeId
,
C
,
q
,
w
,
p
])};
w
==
d
.
move
.
TYPE_INNER
&&
g
.
canAsync
(
h
,
q
)?
f
.
asyncNode
(
h
,
q
,
!
1
,
a
):
a
()}}
else
f
.
selectNodes
(
x
,
l
),
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,[
b
,
e
.
treeId
,
l
,
null
,
null
,
null
])}}
function
k
(){
return
!
1
}
var
i
,
j
,
e
=
m
.
getSetting
(
b
.
data
.
treeId
),
B
=
m
.
getRoot
(
e
),
t
=
m
.
getRoots
();
if
(
b
.
button
==
2
||!
e
.
edit
.
enable
||!
e
.
edit
.
drag
.
isCopy
&&!
e
.
edit
.
drag
.
isMove
)
return
!
0
;
var
p
=
b
.
target
,
q
=
m
.
getRoot
(
e
).
curSelectedList
,
l
=
[];
if
(
m
.
isSelectedNode
(
e
,
a
))
for
(
i
=
0
,
j
=
q
.
length
;
i
<
j
;
i
++
){
if
(
q
[
i
].
editNameFlag
&&
g
.
eqs
(
p
.
tagName
,
"
input
"
)
&&
p
.
getAttribute
(
"
treeNode
"
+
w
==
d
.
move
.
TYPE_INNER
&&
g
.
canAsync
(
h
,
q
)?
f
.
asyncNode
(
h
,
q
,
!
1
,
a
):
a
()}}
else
f
.
selectNodes
(
x
,
l
),
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,[
b
,
e
.
treeId
,
l
,
null
,
null
,
null
])}}
function
k
(){
return
!
1
}
var
i
,
j
,
e
=
m
.
getSetting
(
b
.
data
.
treeId
),
B
=
m
.
getRoot
(
e
),
t
=
m
.
getRoots
();
if
(
b
.
button
==
2
||!
e
.
edit
.
enable
||!
e
.
edit
.
drag
.
isCopy
&&!
e
.
edit
.
drag
.
isMove
)
return
!
0
;
var
p
=
b
.
target
,
q
=
m
.
getRoot
(
e
).
curSelectedList
,
l
=
[];
if
(
m
.
isSelectedNode
(
e
,
a
))
for
(
i
=
0
,
j
=
q
.
length
;
i
<
j
;
i
++
){
if
(
q
[
i
].
editNameFlag
&&
g
.
eqs
(
p
.
tagName
,
"
input
"
)
&&
p
.
getAttribute
(
"
treeNode
"
+
d
.
id
.
INPUT
)
!==
null
)
return
!
0
;
l
.
push
(
q
[
i
]);
if
(
l
[
0
].
parentTId
!==
q
[
i
].
parentTId
){
l
=
[
a
];
break
}}
else
l
=
[
a
];
f
.
editNodeBlur
=!
0
;
f
.
cancelCurEditNode
(
e
);
var
G
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
),
M
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
.
body
),
D
,
A
,
s
,
K
=!
1
,
h
=
e
,
x
=
e
,
I
,
R
,
T
=
null
,
U
=
null
,
u
=
null
,
w
=
d
.
move
.
TYPE_INNER
,
O
=
b
.
clientX
,
P
=
b
.
clientY
,
L
=
(
new
Date
).
getTime
();
g
.
uCanDo
(
e
)
&&
G
.
bind
(
"
mousemove
"
,
c
);
G
.
bind
(
"
mouseup
"
,
r
);
G
.
bind
(
"
selectstart
"
,
k
);
b
.
preventDefault
&&
b
.
preventDefault
();
return
!
0
}};
v
.
extend
(
!
0
,
v
.
fn
.
zTree
.
consts
,
J
);
v
.
extend
(
!
0
,
d
.
id
.
INPUT
)
!==
null
)
return
!
0
;
l
.
push
(
q
[
i
]);
if
(
l
[
0
].
parentTId
!==
q
[
i
].
parentTId
){
l
=
[
a
];
break
}}
else
l
=
[
a
];
f
.
editNodeBlur
=!
0
;
f
.
cancelCurEditNode
(
e
);
var
G
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
),
M
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
.
body
),
D
,
A
,
s
,
K
=!
1
,
h
=
e
,
x
=
e
,
I
,
R
,
T
=
null
,
U
=
null
,
u
=
null
,
w
=
d
.
move
.
TYPE_INNER
,
O
=
b
.
clientX
,
P
=
b
.
clientY
,
L
=
(
new
Date
).
getTime
();
g
.
uCanDo
(
e
)
&&
G
.
bind
(
"
mousemove
"
,
c
);
G
.
bind
(
"
mouseup
"
,
r
);
G
.
bind
(
"
selectstart
"
,
k
);
b
.
preventDefault
&&
b
.
preventDefault
();
return
!
0
}};
v
.
extend
(
!
0
,
v
.
fn
.
zTree
.
consts
,
J
);
v
.
extend
(
!
0
,
v
.
fn
.
zTree
.
_z
,{
tools
:{
getAbs
:
function
(
b
){
b
=
b
.
getBoundingClientRect
();
return
[
b
.
left
+
(
document
.
body
.
scrollLeft
+
document
.
documentElement
.
scrollLeft
),
b
.
top
+
(
document
.
body
.
scrollTop
+
document
.
documentElement
.
scrollTop
)]},
inputFocus
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
g
.
setCursorPosition
(
b
.
get
(
0
),
b
.
val
().
length
))},
inputSelect
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
b
.
select
())},
setCursorPosition
:
function
(
b
,
a
){
if
(
b
.
setSelectionRange
)
b
.
focus
(),
b
.
setSelectionRange
(
a
,
a
);
else
if
(
b
.
createTextRange
){
var
c
=
b
.
createTextRange
();
v
.
fn
.
zTree
.
_z
,{
tools
:{
getAbs
:
function
(
b
){
b
=
b
.
getBoundingClientRect
();
return
[
b
.
left
+
(
document
.
body
.
scrollLeft
+
document
.
documentElement
.
scrollLeft
),
b
.
top
+
(
document
.
body
.
scrollTop
+
document
.
documentElement
.
scrollTop
)]},
inputFocus
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
g
.
setCursorPosition
(
b
.
get
(
0
),
b
.
val
().
length
))},
inputSelect
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
b
.
select
())},
setCursorPosition
:
function
(
b
,
a
){
if
(
b
.
setSelectionRange
)
b
.
focus
(),
b
.
setSelectionRange
(
a
,
a
);
else
if
(
b
.
createTextRange
){
var
c
=
b
.
createTextRange
();
c
.
collapse
(
!
0
);
c
.
moveEnd
(
"
character
"
,
a
);
c
.
moveStart
(
"
character
"
,
a
);
c
.
select
()}},
showIfameMask
:
function
(
b
,
a
){
for
(
var
c
=
m
.
getRoot
(
b
);
c
.
dragMaskList
.
length
>
0
;)
c
.
dragMaskList
[
0
].
remove
(),
c
.
dragMaskList
.
shift
();
if
(
a
)
for
(
var
d
=
o
(
"
iframe
"
,
b
),
f
=
0
,
i
=
d
.
length
;
f
<
i
;
f
++
){
var
j
=
d
.
get
(
f
),
e
=
g
.
getAbs
(
j
),
j
=
o
(
"
<div id='zTreeMask_
"
+
f
+
"
' class='zTreeMask' style='top:
"
+
e
[
1
]
+
"
px; left:
"
+
e
[
0
]
+
"
px; width:
"
+
j
.
offsetWidth
+
"
px; height:
"
+
j
.
offsetHeight
+
"
px;'></div>
"
,
b
);
j
.
appendTo
(
o
(
"
body
"
,
b
));
c
.
dragMaskList
.
push
(
j
)}}},
view
:{
addEditBtn
:
function
(
b
,
c
.
collapse
(
!
0
);
c
.
moveEnd
(
"
character
"
,
a
);
c
.
moveStart
(
"
character
"
,
a
);
c
.
select
()}},
showIfameMask
:
function
(
b
,
a
){
for
(
var
c
=
m
.
getRoot
(
b
);
c
.
dragMaskList
.
length
>
0
;)
c
.
dragMaskList
[
0
].
remove
(),
c
.
dragMaskList
.
shift
();
if
(
a
)
for
(
var
d
=
o
(
"
iframe
"
,
b
),
f
=
0
,
i
=
d
.
length
;
f
<
i
;
f
++
){
var
j
=
d
.
get
(
f
),
e
=
g
.
getAbs
(
j
),
j
=
o
(
"
<div id='zTreeMask_
"
+
f
+
"
' class='zTreeMask' style='top:
"
+
e
[
1
]
+
"
px; left:
"
+
e
[
0
]
+
"
px; width:
"
+
j
.
offsetWidth
+
"
px; height:
"
+
j
.
offsetHeight
+
"
px;'></div>
"
,
b
);
j
.
appendTo
(
o
(
"
body
"
,
b
));
c
.
dragMaskList
.
push
(
j
)}}},
view
:{
addEditBtn
:
function
(
b
,
...
...
js/jquery.ztree.core.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree core v3.5.2
2
* JQuery zTree core v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
var
settings
=
{},
roots
=
{},
caches
=
{},
var
settings
=
{},
roots
=
{},
caches
=
{},
...
@@ -1346,6 +1346,18 @@
...
@@ -1346,6 +1346,18 @@
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
}
}
},
},
scrollIntoView
:
function
(
dom
)
{
if
(
!
dom
)
{
return
;
}
if
(
dom
.
scrollIntoViewIfNeeded
)
{
dom
.
scrollIntoViewIfNeeded
();
}
else
if
(
dom
.
scrollIntoView
)
{
dom
.
scrollIntoView
(
false
);
}
else
{
try
{
dom
.
focus
().
blur
();}
catch
(
e
){}
}
},
setFirstNode
:
function
(
setting
,
parentNode
)
{
setFirstNode
:
function
(
setting
,
parentNode
)
{
var
childKey
=
setting
.
data
.
key
.
children
,
childLength
=
parentNode
[
childKey
].
length
;
var
childKey
=
setting
.
data
.
key
.
children
,
childLength
=
parentNode
[
childKey
].
length
;
if
(
childLength
>
0
)
{
if
(
childLength
>
0
)
{
...
@@ -1658,11 +1670,7 @@
...
@@ -1658,11 +1670,7 @@
function
showNodeFocus
()
{
function
showNodeFocus
()
{
var
a
=
$$
(
node
,
setting
).
get
(
0
);
var
a
=
$$
(
node
,
setting
).
get
(
0
);
if
(
a
&&
focus
!==
false
)
{
if
(
a
&&
focus
!==
false
)
{
if
(
a
.
scrollIntoView
)
{
view
.
scrollIntoView
(
a
);
a
.
scrollIntoView
(
false
);
}
else
{
try
{
a
.
focus
().
blur
();}
catch
(
e
){}
}
}
}
}
}
},
},
...
@@ -1755,7 +1763,7 @@
...
@@ -1755,7 +1763,7 @@
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
}
}
},
},
selectNode
:
function
(
node
,
addFlag
)
{
selectNode
:
function
(
node
,
addFlag
,
isSilent
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
if
(
tools
.
uCanDo
(
setting
))
{
if
(
tools
.
uCanDo
(
setting
))
{
addFlag
=
setting
.
view
.
selectedMulti
&&
addFlag
;
addFlag
=
setting
.
view
.
selectedMulti
&&
addFlag
;
...
@@ -1768,14 +1776,11 @@
...
@@ -1768,14 +1776,11 @@
}
}
function
showNodeFocus
()
{
function
showNodeFocus
()
{
var
a
=
$$
(
node
,
setting
).
get
(
0
);
if
(
isSilent
)
{
if
(
a
)
{
return
;
if
(
a
.
scrollIntoView
)
{
a
.
scrollIntoView
(
false
);
}
else
{
try
{
a
.
focus
().
blur
();}
catch
(
e
){}
}
}
}
var
a
=
$$
(
node
,
setting
).
get
(
0
);
view
.
scrollIntoView
(
a
);
}
}
},
},
transformTozTreeNodes
:
function
(
simpleNodes
)
{
transformTozTreeNodes
:
function
(
simpleNodes
)
{
...
...
js/jquery.ztree.core.min.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree core v3.5.2
2
* JQuery zTree core v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,65 +8,65 @@
...
@@ -8,65 +8,65 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
q
){
var
H
,
I
,
J
,
K
,
L
,
M
,
u
,
r
=
{},
v
=
{},
w
=
{},
N
=
{
treeId
:
""
,
treeObj
:
null
,
view
:{
addDiyDom
:
null
,
autoCancelSelected
:
!
0
,
dblClickExpand
:
!
0
,
expandSpeed
:
"
fast
"
,
fontCss
:{},
nameIsHTML
:
!
1
,
selectedMulti
:
!
0
,
showIcon
:
!
0
,
showLine
:
!
0
,
showTitle
:
!
0
,
txtSelectedEnable
:
!
1
},
data
:{
key
:{
children
:
"
children
"
,
name
:
"
name
"
,
title
:
""
,
url
:
"
url
"
,
icon
:
"
icon
"
},
simpleData
:{
enable
:
!
1
,
idKey
:
"
id
"
,
pIdKey
:
"
pId
"
,
rootPId
:
null
},
keep
:{
parent
:
!
1
,
leaf
:
!
1
}},
async
:{
enable
:
!
1
,
contentType
:
"
application/x-www-form-urlencoded
"
,
type
:
"
post
"
,
dataType
:
"
text
"
,
(
function
(
q
){
var
I
,
J
,
K
,
L
,
M
,
N
,
v
,
s
=
{},
w
=
{},
x
=
{},
O
=
{
treeId
:
""
,
treeObj
:
null
,
view
:{
addDiyDom
:
null
,
autoCancelSelected
:
!
0
,
dblClickExpand
:
!
0
,
expandSpeed
:
"
fast
"
,
fontCss
:{},
nameIsHTML
:
!
1
,
selectedMulti
:
!
0
,
showIcon
:
!
0
,
showLine
:
!
0
,
showTitle
:
!
0
,
txtSelectedEnable
:
!
1
},
data
:{
key
:{
children
:
"
children
"
,
name
:
"
name
"
,
title
:
""
,
url
:
"
url
"
,
icon
:
"
icon
"
},
simpleData
:{
enable
:
!
1
,
idKey
:
"
id
"
,
pIdKey
:
"
pId
"
,
rootPId
:
null
},
keep
:{
parent
:
!
1
,
leaf
:
!
1
}},
async
:{
enable
:
!
1
,
contentType
:
"
application/x-www-form-urlencoded
"
,
type
:
"
post
"
,
dataType
:
"
text
"
,
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
x
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
y
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
[
a
,
c
,
g
])});
a
.
bind
(
c
.
CLICK
,
function
(
a
,
c
,
g
,
n
,
h
){
j
.
apply
(
b
.
callback
.
onClick
,[
c
,
g
,
n
,
h
])});
a
.
bind
(
c
.
EXPAND
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onExpand
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
COLLAPSE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onCollapse
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
a
,
c
,
g
,
n
){
j
.
apply
(
b
.
callback
.
onAsyncSuccess
,[
a
,
c
,
g
,
n
])});
a
.
bind
(
c
.
ASYNC_ERROR
,
function
(
a
,
c
,
g
,
n
,
h
,
f
){
j
.
apply
(
b
.
callback
.
onAsyncError
,[
a
,
c
,
g
,
n
,
h
,
f
])});
a
.
bind
(
c
.
REMOVE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onRemove
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
SELECTED
,
[
a
,
c
,
g
])});
a
.
bind
(
c
.
CLICK
,
function
(
a
,
c
,
g
,
m
,
h
){
j
.
apply
(
b
.
callback
.
onClick
,[
c
,
g
,
m
,
h
])});
a
.
bind
(
c
.
EXPAND
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onExpand
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
COLLAPSE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onCollapse
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
a
,
c
,
g
,
m
){
j
.
apply
(
b
.
callback
.
onAsyncSuccess
,[
a
,
c
,
g
,
m
])});
a
.
bind
(
c
.
ASYNC_ERROR
,
function
(
a
,
c
,
g
,
m
,
h
,
f
){
j
.
apply
(
b
.
callback
.
onAsyncError
,[
a
,
c
,
g
,
m
,
h
,
f
])});
a
.
bind
(
c
.
REMOVE
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onRemove
,[
a
,
c
,
g
])});
a
.
bind
(
c
.
SELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onSelected
,[
c
,
g
])});
a
.
bind
(
c
.
UNSELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onUnSelected
,[
c
,
g
])})}],
y
=
[
function
(
b
){
var
a
=
f
.
event
;
b
.
treeObj
.
unbind
(
a
.
NODECREATED
).
unbind
(
a
.
CLICK
).
unbind
(
a
.
EXPAND
).
unbind
(
a
.
COLLAPSE
).
unbind
(
a
.
ASYNC_SUCCESS
).
unbind
(
a
.
ASYNC_ERROR
).
unbind
(
a
.
REMOVE
).
unbind
(
a
.
SELECTED
).
unbind
(
a
.
UNSELECTED
)}],
z
=
[
function
(
b
){
var
a
=
h
.
getCache
(
b
);
a
||
(
a
=
{},
h
.
setCache
(
b
,
a
));
a
.
nodes
=
[];
a
.
doms
=
[]}],
A
=
[
function
(
b
,
a
,
c
,
d
,
e
,
g
){
if
(
c
){
var
n
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
;
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onSelected
,[
c
,
g
])});
a
.
bind
(
c
.
UNSELECTED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onUnSelected
,[
c
,
g
])})}],
z
=
[
function
(
b
){
var
a
=
f
.
event
;
b
.
treeObj
.
unbind
(
a
.
NODECREATED
).
unbind
(
a
.
CLICK
).
unbind
(
a
.
EXPAND
).
unbind
(
a
.
COLLAPSE
).
unbind
(
a
.
ASYNC_SUCCESS
).
unbind
(
a
.
ASYNC_ERROR
).
unbind
(
a
.
REMOVE
).
unbind
(
a
.
SELECTED
).
unbind
(
a
.
UNSELECTED
)}],
A
=
[
function
(
b
){
var
a
=
h
.
getCache
(
b
);
a
||
(
a
=
{},
h
.
setCache
(
b
,
a
));
a
.
nodes
=
[];
a
.
doms
=
[]}],
B
=
[
function
(
b
,
a
,
c
,
d
,
e
,
g
){
if
(
c
){
var
m
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
;
c
.
level
=
a
;
c
.
tId
=
b
.
treeId
+
"
_
"
+
++
n
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"
string
"
?
j
.
eqs
(
c
.
open
,
"
true
"
):
!!
c
.
open
;
c
[
f
]
&&
c
[
f
].
length
>
0
?(
c
.
isParent
=!
0
,
c
.
zAsync
=!
0
):(
c
.
isParent
=
typeof
c
.
isParent
==
"
string
"
?
j
.
eqs
(
c
.
isParent
,
"
true
"
):
!!
c
.
isParent
,
c
.
open
=
c
.
isParent
&&!
b
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
c
.
isParent
);
c
.
isFirstNode
=
e
;
c
.
isLastNode
=
g
;
c
.
getParentNode
=
function
(){
return
h
.
getNodeCache
(
b
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
h
.
getPreNode
(
b
,
c
)};
c
.
getNextNode
=
function
(){
return
h
.
getNextNode
(
b
,
c
.
level
=
a
;
c
.
tId
=
b
.
treeId
+
"
_
"
+
++
m
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"
string
"
?
j
.
eqs
(
c
.
open
,
"
true
"
):
!!
c
.
open
;
c
[
f
]
&&
c
[
f
].
length
>
0
?(
c
.
isParent
=!
0
,
c
.
zAsync
=!
0
):(
c
.
isParent
=
typeof
c
.
isParent
==
"
string
"
?
j
.
eqs
(
c
.
isParent
,
"
true
"
):
!!
c
.
isParent
,
c
.
open
=
c
.
isParent
&&!
b
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
c
.
isParent
);
c
.
isFirstNode
=
e
;
c
.
isLastNode
=
g
;
c
.
getParentNode
=
function
(){
return
h
.
getNodeCache
(
b
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
h
.
getPreNode
(
b
,
c
)};
c
.
getNextNode
=
function
(){
return
h
.
getNextNode
(
b
,
c
)};
c
.
getIndex
=
function
(){
return
h
.
getNodeIndex
(
b
,
c
)};
c
.
getPath
=
function
(){
return
h
.
getNodePath
(
b
,
c
)};
c
.
isAjaxing
=!
1
;
h
.
fixPIdKeyValue
(
b
,
c
)}}],
t
=
[
function
(
b
){
var
a
=
b
.
target
,
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
""
,
e
=
null
,
g
=
""
,
n
=
""
,
i
=
null
,
m
=
null
,
k
=
null
;
if
(
j
.
eqs
(
b
.
type
,
"
mousedown
"
))
n
=
"
mousedown
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
mouseup
"
))
n
=
"
mouseup
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
contextmenu
"
))
n
=
"
contextmenu
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
click
"
))
if
(
j
.
eqs
(
a
.
tagName
,
"
span
"
)
&&
a
.
getAttribute
(
"
treeNode
"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
a
).
id
,
c
)};
c
.
getIndex
=
function
(){
return
h
.
getNodeIndex
(
b
,
c
)};
c
.
getPath
=
function
(){
return
h
.
getNodePath
(
b
,
c
)};
c
.
isAjaxing
=!
1
;
h
.
fixPIdKeyValue
(
b
,
c
)}}],
u
=
[
function
(
b
){
var
a
=
b
.
target
,
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
""
,
e
=
null
,
g
=
""
,
m
=
""
,
i
=
null
,
n
=
null
,
k
=
null
;
if
(
j
.
eqs
(
b
.
type
,
"
mousedown
"
))
m
=
"
mousedown
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
mouseup
"
))
m
=
"
mouseup
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
contextmenu
"
))
m
=
"
contextmenu
"
;
else
if
(
j
.
eqs
(
b
.
type
,
"
click
"
))
if
(
j
.
eqs
(
a
.
tagName
,
"
span
"
)
&&
a
.
getAttribute
(
"
treeNode
"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
a
).
id
,
g
=
"
switchNode
"
;
else
{
if
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
clickNode
"
}
else
if
(
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
(
n
=
"
dblclick
"
,
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
switchNode
"
;
if
(
n
.
length
>
0
&&
d
.
length
==
0
&&
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
;
if
(
d
.
length
>
0
)
switch
(
e
=
h
.
getNodeCache
(
c
,
d
),
g
){
case
"
switchNode
"
:
e
.
isParent
?
j
.
eqs
(
b
.
type
,
"
click
"
)
||
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
g
=
"
switchNode
"
;
else
{
if
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
clickNode
"
}
else
if
(
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
(
m
=
"
dblclick
"
,
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
,
g
=
"
switchNode
"
;
if
(
m
.
length
>
0
&&
d
.
length
==
0
&&
(
k
=
j
.
getMDom
(
c
,
a
,[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
k
).
id
;
if
(
d
.
length
>
0
)
switch
(
e
=
h
.
getNodeCache
(
c
,
d
),
g
){
case
"
switchNode
"
:
e
.
isParent
?
j
.
eqs
(
b
.
type
,
"
click
"
)
||
j
.
eqs
(
b
.
type
,
"
dblclick
"
)
&&
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
e
],
c
.
view
.
dblClickExpand
)?
i
=
H
:
g
=
""
:
g
=
""
;
break
;
case
"
clickNode
"
:
i
=
I
}
switch
(
n
){
case
"
mousedown
"
:
m
=
J
;
break
;
case
"
mouseup
"
:
m
=
K
;
break
;
case
"
dblclick
"
:
m
=
L
;
break
;
case
"
contextmenu
"
:
m
=
M
}
return
{
stop
:
!
1
,
node
:
e
,
nodeEventType
:
g
,
nodeEventCallback
:
i
,
treeEventType
:
n
,
treeEventCallback
:
m
}}],
B
=
[
function
(
b
){
var
a
=
h
.
getRoot
(
b
);
a
||
(
a
=
{},
h
.
setRoot
(
b
,
a
));
a
[
b
.
data
.
key
.
children
]
=
[];
a
.
expandTriggerFlag
=!
1
;
a
.
curSelectedList
=
[];
a
.
noSelection
=!
0
;
a
.
createdNodes
=
[];
a
.
zId
=
0
;
a
.
_ver
=
(
new
Date
).
getTime
()}],
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
e
],
c
.
view
.
dblClickExpand
)?
i
=
I
:
g
=
""
:
g
=
""
;
break
;
case
"
clickNode
"
:
i
=
J
}
switch
(
m
){
case
"
mousedown
"
:
n
=
K
;
break
;
case
"
mouseup
"
:
n
=
L
;
break
;
case
"
dblclick
"
:
n
=
M
;
break
;
case
"
contextmenu
"
:
n
=
N
}
return
{
stop
:
!
1
,
node
:
e
,
nodeEventType
:
g
,
nodeEventCallback
:
i
,
treeEventType
:
m
,
treeEventCallback
:
n
}}],
C
=
[
function
(
b
){
var
a
=
h
.
getRoot
(
b
);
a
||
(
a
=
{},
h
.
setRoot
(
b
,
a
));
a
[
b
.
data
.
key
.
children
]
=
[];
a
.
expandTriggerFlag
=!
1
;
a
.
curSelectedList
=
[];
a
.
noSelection
=!
0
;
a
.
createdNodes
=
[];
a
.
zId
=
0
;
a
.
_ver
=
(
new
Date
).
getTime
()}],
C
=
[],
D
=
[],
E
=
[],
F
=
[],
G
=
[],
h
=
{
addNodeCache
:
function
(
b
,
a
){
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
a
},
getNodeCacheId
:
function
(
b
){
return
b
.
substring
(
b
.
lastIndexOf
(
"
_
"
)
+
1
)},
addAfterA
:
function
(
b
){
D
.
push
(
b
)},
addBeforeA
:
function
(
b
){
C
.
push
(
b
)},
addInnerAfterA
:
function
(
b
){
F
.
push
(
b
)},
addInnerBeforeA
:
function
(
b
){
E
.
push
(
b
)},
addInitBind
:
function
(
b
){
x
.
push
(
b
)},
addInitUnBind
:
function
(
b
){
y
.
push
(
b
)},
addInitCache
:
function
(
b
){
z
.
push
(
b
)},
addInitNode
:
function
(
b
){
A
.
push
(
b
)},
addInitProxy
:
function
(
b
,
a
){
a
?
t
.
splice
(
0
,
0
,
D
=
[],
E
=
[],
F
=
[],
G
=
[],
H
=
[],
h
=
{
addNodeCache
:
function
(
b
,
a
){
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
a
},
getNodeCacheId
:
function
(
b
){
return
b
.
substring
(
b
.
lastIndexOf
(
"
_
"
)
+
1
)},
addAfterA
:
function
(
b
){
E
.
push
(
b
)},
addBeforeA
:
function
(
b
){
D
.
push
(
b
)},
addInnerAfterA
:
function
(
b
){
G
.
push
(
b
)},
addInnerBeforeA
:
function
(
b
){
F
.
push
(
b
)},
addInitBind
:
function
(
b
){
y
.
push
(
b
)},
addInitUnBind
:
function
(
b
){
z
.
push
(
b
)},
addInitCache
:
function
(
b
){
A
.
push
(
b
)},
addInitNode
:
function
(
b
){
B
.
push
(
b
)},
addInitProxy
:
function
(
b
,
a
){
a
?
u
.
splice
(
0
,
0
,
b
):
t
.
push
(
b
)},
addInitRoot
:
function
(
b
){
B
.
push
(
b
)},
addNodesData
:
function
(
b
,
a
,
c
,
d
){
var
e
=
b
.
data
.
key
.
children
;
a
[
e
]?
c
>=
a
[
e
].
length
&&
(
c
=-
1
):(
a
[
e
]
=
[],
c
=-
1
);
if
(
a
[
e
].
length
>
0
&&
c
===
0
)
a
[
e
][
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
0
]);
else
if
(
a
[
e
].
length
>
0
&&
c
<
0
)
a
[
e
][
a
[
e
].
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
a
[
e
].
length
-
1
]);
a
.
isParent
=!
0
;
c
<
0
?
a
[
e
]
=
a
[
e
].
concat
(
d
):(
b
=
[
c
,
0
].
concat
(
d
),
a
[
e
].
splice
.
apply
(
a
[
e
],
b
))},
addSelectedNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
);
h
.
isSelectedNode
(
b
,
a
)
||
c
.
curSelectedList
.
push
(
a
)},
b
):
u
.
push
(
b
)},
addInitRoot
:
function
(
b
){
C
.
push
(
b
)},
addNodesData
:
function
(
b
,
a
,
c
,
d
){
var
e
=
b
.
data
.
key
.
children
;
a
[
e
]?
c
>=
a
[
e
].
length
&&
(
c
=-
1
):(
a
[
e
]
=
[],
c
=-
1
);
if
(
a
[
e
].
length
>
0
&&
c
===
0
)
a
[
e
][
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
0
]);
else
if
(
a
[
e
].
length
>
0
&&
c
<
0
)
a
[
e
][
a
[
e
].
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
b
,
a
[
e
][
a
[
e
].
length
-
1
]);
a
.
isParent
=!
0
;
c
<
0
?
a
[
e
]
=
a
[
e
].
concat
(
d
):(
b
=
[
c
,
0
].
concat
(
d
),
a
[
e
].
splice
.
apply
(
a
[
e
],
b
))},
addSelectedNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
);
h
.
isSelectedNode
(
b
,
a
)
||
c
.
curSelectedList
.
push
(
a
)},
addCreatedNode
:
function
(
b
,
a
){(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
&&
h
.
getRoot
(
b
).
createdNodes
.
push
(
a
)},
addZTreeTools
:
function
(
b
){
G
.
push
(
b
)},
exSetting
:
function
(
b
){
q
.
extend
(
!
0
,
N
,
b
)},
fixPIdKeyValue
:
function
(
b
,
a
){
b
.
data
.
simpleData
.
enable
&&
(
a
[
b
.
data
.
simpleData
.
pIdKey
]
=
a
.
parentTId
?
a
.
getParentNode
()[
b
.
data
.
simpleData
.
idKey
]:
b
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
C
.
length
;
d
<
e
;
d
++
)
C
[
d
].
apply
(
this
,
addCreatedNode
:
function
(
b
,
a
){(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
&&
h
.
getRoot
(
b
).
createdNodes
.
push
(
a
)},
addZTreeTools
:
function
(
b
){
H
.
push
(
b
)},
exSetting
:
function
(
b
){
q
.
extend
(
!
0
,
O
,
b
)},
fixPIdKeyValue
:
function
(
b
,
a
){
b
.
data
.
simpleData
.
enable
&&
(
a
[
b
.
data
.
simpleData
.
pIdKey
]
=
a
.
parentTId
?
a
.
getParentNode
()[
b
.
data
.
simpleData
.
idKey
]:
b
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getInnerAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
b
){
return
w
[
b
.
treeId
]},
getNodeIndex
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
;
return
-
1
},
getNextNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
arguments
)},
getInnerAfterA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
G
.
length
;
d
<
e
;
d
++
)
G
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
b
,
a
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
b
){
return
x
[
b
.
treeId
]},
getNodeIndex
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
;
return
-
1
},
getNextNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
g
?
null
:
d
[
c
][
e
+
1
];
return
null
},
getNodeByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
null
;
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
0
,
n
=
a
.
length
;
g
<
n
;
g
++
){
if
(
a
[
g
][
c
]
==
d
)
return
a
[
g
];
var
f
=
h
.
getNodeByParam
(
b
,
a
[
g
][
e
],
c
,
d
);
if
(
f
)
return
f
}
return
null
},
getNodeCache
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
=
w
[
b
.
treeId
].
nodes
[
h
.
getNodeCacheId
(
a
)];
return
c
?
c
:
null
},
getNodeName
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
name
]},
getNodePath
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
-
1
;
e
<=
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
g
?
null
:
d
[
c
][
e
+
1
];
return
null
},
getNodeByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
null
;
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
0
,
m
=
a
.
length
;
g
<
m
;
g
++
){
if
(
a
[
g
][
c
]
==
d
)
return
a
[
g
];
var
f
=
h
.
getNodeByParam
(
b
,
a
[
g
][
e
],
c
,
d
);
if
(
f
)
return
f
}
return
null
},
getNodeCache
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
=
x
[
b
.
treeId
].
nodes
[
h
.
getNodeCacheId
(
a
)];
return
c
?
c
:
null
},
getNodeName
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
name
]},
getNodePath
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
var
c
;(
c
=
a
.
parentTId
?
a
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
a
);
return
c
},
getNodeTitle
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
title
===
""
?
b
.
data
.
key
.
name
:
b
.
data
.
key
.
title
]},
getNodes
:
function
(
b
){
return
h
.
getRoot
(
b
)[
b
.
data
.
key
.
children
]},
getNodesByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
a
[
f
][
c
]
==
d
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParam
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByParamFuzzy
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
var
c
;(
c
=
a
.
parentTId
?
a
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
a
);
return
c
},
getNodeTitle
:
function
(
b
,
a
){
return
""
+
a
[
b
.
data
.
key
.
title
===
""
?
b
.
data
.
key
.
name
:
b
.
data
.
key
.
title
]},
getNodes
:
function
(
b
){
return
h
.
getRoot
(
b
)[
b
.
data
.
key
.
children
]},
getNodesByParam
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
a
[
f
][
c
]
==
d
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParam
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByParamFuzzy
:
function
(
b
,
a
,
c
,
d
){
if
(
!
a
||!
c
)
return
[];
for
(
var
e
=
b
.
data
.
key
.
children
,
g
=
[],
d
=
d
.
toLowerCase
(),
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
typeof
a
[
f
][
c
]
==
"
string
"
&&
a
[
f
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParamFuzzy
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByFilter
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
a
)
return
d
?
null
:[];
for
(
var
g
=
b
.
data
.
key
.
children
,
f
=
d
?
null
:[],
i
=
0
,
m
=
a
.
length
;
i
<
m
;
i
++
){
if
(
j
.
apply
(
c
,[
a
[
i
],
e
],
!
1
)){
if
(
d
)
return
a
[
i
];
f
.
push
(
a
[
i
])}
var
k
=
h
.
getNodesByFilter
(
b
,
a
[
i
][
g
],
c
,
d
,
e
);
if
(
d
&&
k
)
return
k
;
f
=
d
?
k
:
f
.
concat
(
k
)}
return
f
},
getPreNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
g
=
[],
d
=
d
.
toLowerCase
(),
f
=
0
,
i
=
a
.
length
;
f
<
i
;
f
++
)
typeof
a
[
f
][
c
]
==
"
string
"
&&
a
[
f
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
a
[
f
]),
g
=
g
.
concat
(
h
.
getNodesByParamFuzzy
(
b
,
a
[
f
][
e
],
c
,
d
));
return
g
},
getNodesByFilter
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
a
)
return
d
?
null
:[];
for
(
var
g
=
b
.
data
.
key
.
children
,
f
=
d
?
null
:[],
i
=
0
,
n
=
a
.
length
;
i
<
n
;
i
++
){
if
(
j
.
apply
(
c
,[
a
[
i
],
e
],
!
1
)){
if
(
d
)
return
a
[
i
];
f
.
push
(
a
[
i
])}
var
k
=
h
.
getNodesByFilter
(
b
,
a
[
i
][
g
],
c
,
d
,
e
);
if
(
d
&&
k
)
return
k
;
f
=
d
?
k
:
f
.
concat
(
k
)}
return
f
},
getPreNode
:
function
(
b
,
a
){
if
(
!
a
)
return
null
;
for
(
var
c
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
;
e
<
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
0
?
null
:
d
[
c
][
e
-
1
];
return
null
},
getRoot
:
function
(
b
){
return
b
?
v
[
b
.
treeId
]:
null
},
getRoots
:
function
(){
return
v
},
getSetting
:
function
(
b
){
return
r
[
b
]},
getSettings
:
function
(){
return
r
},
getZTreeTools
:
function
(
b
){
return
(
b
=
this
.
getRoot
(
this
.
getSetting
(
b
)))?
b
.
treeTools
:
null
},
initCache
:
function
(
b
){
for
(
var
a
=
0
,
c
=
z
.
length
;
a
<
c
;
a
++
)
z
[
a
].
apply
(
this
,
arguments
)},
initNode
:
function
(
b
,
a
,
c
,
d
,
e
,
g
){
for
(
var
f
=
b
.
data
.
key
.
children
,
d
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
b
),
e
=
0
,
g
=
d
[
c
].
length
;
e
<
g
;
e
++
)
if
(
d
[
c
][
e
]
===
a
)
return
e
==
0
?
null
:
d
[
c
][
e
-
1
];
return
null
},
getRoot
:
function
(
b
){
return
b
?
w
[
b
.
treeId
]:
null
},
getRoots
:
function
(){
return
w
},
getSetting
:
function
(
b
){
return
s
[
b
]},
getSettings
:
function
(){
return
s
},
getZTreeTools
:
function
(
b
){
return
(
b
=
this
.
getRoot
(
this
.
getSetting
(
b
)))?
b
.
treeTools
:
null
},
initCache
:
function
(
b
){
for
(
var
a
=
0
,
c
=
A
.
length
;
a
<
c
;
a
++
)
A
[
a
].
apply
(
this
,
arguments
)},
initNode
:
function
(
b
,
a
,
c
,
d
,
e
,
g
){
for
(
var
f
=
0
,
h
=
A
.
length
;
f
<
h
;
f
++
)
A
[
f
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
b
){
for
(
var
a
=
0
,
c
=
B
.
length
;
a
<
c
;
a
++
)
B
[
a
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
removeNodeCache
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
])
for
(
var
d
=
0
,
e
=
a
[
c
].
length
;
d
<
e
;
d
++
)
arguments
.
callee
(
b
,
a
[
c
][
d
]);
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
h
=
B
.
length
;
f
<
h
;
f
++
)
B
[
f
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
b
){
for
(
var
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
C
[
a
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
removeNodeCache
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
])
for
(
var
d
=
0
,
e
=
a
[
c
].
length
;
d
<
e
;
d
++
)
arguments
.
callee
(
b
,
a
[
c
][
d
]);
h
.
getCache
(
b
).
nodes
[
h
.
getNodeCacheId
(
a
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
b
,
a
){
for
(
var
c
=
h
.
getRoot
(
b
),
d
=
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
]
||!
h
.
getNodeCache
(
b
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
a
]),
d
--
,
e
--
},
setCache
:
function
(
b
,
a
){
w
[
b
.
treeId
]
=
a
},
setRoot
:
function
(
b
,
a
){
v
[
b
.
treeId
]
=
a
},
setZTreeTools
:
function
(
b
,
a
){
for
(
var
c
=
0
,
d
=
G
.
length
;
c
<
d
;
c
++
)
G
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
b
,
a
){
if
(
!
a
)
return
[];
var
c
=
b
.
data
.
key
.
children
,
d
=
[];
if
(
j
.
isArray
(
a
))
for
(
var
e
=
0
,
g
=
a
.
length
;
e
<
g
;
e
++
)
d
.
push
(
a
[
e
]),
0
,
e
=
c
.
curSelectedList
.
length
;
d
<
e
;
d
++
)
if
(
a
===
c
.
curSelectedList
[
d
]
||!
h
.
getNodeCache
(
b
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
a
]),
d
--
,
e
--
},
setCache
:
function
(
b
,
a
){
x
[
b
.
treeId
]
=
a
},
setRoot
:
function
(
b
,
a
){
w
[
b
.
treeId
]
=
a
},
setZTreeTools
:
function
(
b
,
a
){
for
(
var
c
=
0
,
d
=
H
.
length
;
c
<
d
;
c
++
)
H
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
b
,
a
){
if
(
!
a
)
return
[];
var
c
=
b
.
data
.
key
.
children
,
d
=
[];
if
(
j
.
isArray
(
a
))
for
(
var
e
=
0
,
g
=
a
.
length
;
e
<
g
;
e
++
)
d
.
push
(
a
[
e
]),
a
[
e
][
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
e
][
c
])));
else
d
.
push
(
a
),
a
[
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
c
])));
return
d
},
transformTozTreeFormat
:
function
(
b
,
a
){
var
c
,
d
,
e
=
b
.
data
.
simpleData
.
idKey
,
g
=
b
.
data
.
simpleData
.
pIdKey
,
f
=
b
.
data
.
key
.
children
;
if
(
!
e
||
e
==
""
||!
a
)
return
[];
if
(
j
.
isArray
(
a
)){
var
h
=
[],
i
=
[];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
e
]]
=
a
[
c
];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
g
]]
&&
a
[
c
][
e
]
!=
a
[
c
][
g
]?(
i
[
a
[
c
][
g
]][
f
]
||
(
i
[
a
[
c
][
g
]][
f
]
=
[]),
i
[
a
[
c
][
g
]][
f
].
push
(
a
[
c
])):
h
.
push
(
a
[
c
]);
return
h
}
else
return
[
a
]}},
a
[
e
][
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
e
][
c
])));
else
d
.
push
(
a
),
a
[
c
]
&&
(
d
=
d
.
concat
(
h
.
transformToArrayFormat
(
b
,
a
[
c
])));
return
d
},
transformTozTreeFormat
:
function
(
b
,
a
){
var
c
,
d
,
e
=
b
.
data
.
simpleData
.
idKey
,
g
=
b
.
data
.
simpleData
.
pIdKey
,
f
=
b
.
data
.
key
.
children
;
if
(
!
e
||
e
==
""
||!
a
)
return
[];
if
(
j
.
isArray
(
a
)){
var
h
=
[],
i
=
[];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
e
]]
=
a
[
c
];
for
(
c
=
0
,
d
=
a
.
length
;
c
<
d
;
c
++
)
i
[
a
[
c
][
g
]]
&&
a
[
c
][
e
]
!=
a
[
c
][
g
]?(
i
[
a
[
c
][
g
]][
f
]
||
(
i
[
a
[
c
][
g
]][
f
]
=
[]),
i
[
a
[
c
][
g
]][
f
].
push
(
a
[
c
])):
h
.
push
(
a
[
c
]);
return
h
}
else
return
[
a
]}},
l
=
{
bindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
x
.
length
;
a
<
c
;
a
++
)
x
[
a
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
y
.
length
;
a
<
c
;
a
++
)
y
[
a
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
b
){
var
a
=
{
treeId
:
b
.
treeId
},
c
=
b
.
treeObj
;
b
.
view
.
txtSelectedEnable
||
c
.
bind
(
"
selectstart
"
,
u
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
});
c
.
bind
(
"
click
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
dblclick
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseover
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseout
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mousedown
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseup
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
contextmenu
"
,
l
=
{
bindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
y
.
length
;
a
<
c
;
a
++
)
y
[
a
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
b
){
for
(
var
a
=
0
,
c
=
z
.
length
;
a
<
c
;
a
++
)
z
[
a
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
b
){
var
a
=
{
treeId
:
b
.
treeId
},
c
=
b
.
treeObj
;
b
.
view
.
txtSelectedEnable
||
c
.
bind
(
"
selectstart
"
,
v
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
});
c
.
bind
(
"
click
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
dblclick
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseover
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseout
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mousedown
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
mouseup
"
,
a
,
l
.
proxy
);
c
.
bind
(
"
contextmenu
"
,
a
,
l
.
proxy
)},
unbindTree
:
function
(
b
){
b
.
treeObj
.
unbind
(
"
selectstart
"
,
u
).
unbind
(
"
click
"
,
l
.
proxy
).
unbind
(
"
dblclick
"
,
l
.
proxy
).
unbind
(
"
mouseover
"
,
l
.
proxy
).
unbind
(
"
mouseout
"
,
l
.
proxy
).
unbind
(
"
mousedown
"
,
l
.
proxy
).
unbind
(
"
mouseup
"
,
l
.
proxy
).
unbind
(
"
contextmenu
"
,
l
.
proxy
)},
doProxy
:
function
(
b
){
for
(
var
a
=
[],
c
=
0
,
d
=
t
.
length
;
c
<
d
;
c
++
){
var
e
=
t
[
c
].
apply
(
this
,
arguments
);
a
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
a
},
proxy
:
function
(
b
){
var
a
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
a
,
b
))
return
!
0
;
for
(
var
a
=
l
.
doProxy
(
b
),
c
=!
0
,
d
=
0
,
e
=
a
.
length
;
d
<
a
,
l
.
proxy
)},
unbindTree
:
function
(
b
){
b
.
treeObj
.
unbind
(
"
selectstart
"
,
v
).
unbind
(
"
click
"
,
l
.
proxy
).
unbind
(
"
dblclick
"
,
l
.
proxy
).
unbind
(
"
mouseover
"
,
l
.
proxy
).
unbind
(
"
mouseout
"
,
l
.
proxy
).
unbind
(
"
mousedown
"
,
l
.
proxy
).
unbind
(
"
mouseup
"
,
l
.
proxy
).
unbind
(
"
contextmenu
"
,
l
.
proxy
)},
doProxy
:
function
(
b
){
for
(
var
a
=
[],
c
=
0
,
d
=
u
.
length
;
c
<
d
;
c
++
){
var
e
=
u
[
c
].
apply
(
this
,
arguments
);
a
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
a
},
proxy
:
function
(
b
){
var
a
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
a
,
b
))
return
!
0
;
for
(
var
a
=
l
.
doProxy
(
b
),
c
=!
0
,
d
=
0
,
e
=
a
.
length
;
d
<
e
;
d
++
){
var
g
=
a
[
d
];
g
.
nodeEventCallback
&&
(
c
=
g
.
nodeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
);
g
.
treeEventCallback
&&
(
c
=
g
.
treeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
)}
return
c
}};
H
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
a
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
h
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
a
);
return
!
0
};
I
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
e
;
d
++
){
var
g
=
a
[
d
];
g
.
nodeEventCallback
&&
(
c
=
g
.
nodeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
);
g
.
treeEventCallback
&&
(
c
=
g
.
treeEventCallback
.
apply
(
g
,[
b
,
g
.
node
])
&&
c
)}
return
c
}};
I
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
if
(
a
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
h
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
a
);
return
!
0
};
J
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
h
.
isSelectedNode
(
c
,
a
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
a
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
a
):
i
.
selectNode
(
c
,
a
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,[
b
,
c
.
treeId
,
a
,
d
]);
return
!
0
};
J
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
K
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
h
.
isSelectedNode
(
c
,
a
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
a
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
a
):
i
.
selectNode
(
c
,
a
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,[
b
,
c
.
treeId
,
a
,
d
]);
return
!
0
};
K
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
L
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
L
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
M
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
b
,
c
.
treeId
,
a
]);
return
typeof
c
.
callback
.
onRightClick
!=
"
function
"
};
u
=
function
(
b
){
b
=
b
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
M
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
b
,
c
.
treeId
,
a
]);
return
!
0
};
N
=
function
(
b
,
a
){
var
c
=
h
.
getSetting
(
b
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
a
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
b
,
c
.
treeId
,
a
]);
return
typeof
c
.
callback
.
onRightClick
!=
"
function
"
};
v
=
function
(
b
){
b
=
b
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
b
===
"
input
"
||
b
===
"
textarea
"
};
var
j
=
{
apply
:
function
(
b
,
a
,
c
){
return
typeof
b
==
"
function
"
?
b
.
apply
(
O
,
a
?
a
:[]):
c
},
canAsync
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
return
b
.
async
.
enable
&&
a
&&
a
.
isParent
&&!
(
a
.
zAsync
||
a
[
c
]
&&
a
[
c
].
length
>
0
)},
clone
:
function
(
b
){
if
(
b
===
null
)
return
null
;
var
a
=
j
.
isArray
(
b
)?[]:{},
c
;
for
(
c
in
b
)
a
[
c
]
=
b
[
c
]
instanceof
Date
?
new
Date
(
b
[
c
].
getTime
()):
typeof
b
[
c
]
===
"
object
"
?
arguments
.
callee
(
b
[
c
]):
b
[
c
];
return
a
},
eqs
:
function
(
b
,
a
){
return
b
.
toLowerCase
()
===
a
.
toLowerCase
()},
isArray
:
function
(
b
){
return
Object
.
prototype
.
toString
.
apply
(
b
)
===
return
b
===
"
input
"
||
b
===
"
textarea
"
};
var
j
=
{
apply
:
function
(
b
,
a
,
c
){
return
typeof
b
==
"
function
"
?
b
.
apply
(
P
,
a
?
a
:[]):
c
},
canAsync
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
return
b
.
async
.
enable
&&
a
&&
a
.
isParent
&&!
(
a
.
zAsync
||
a
[
c
]
&&
a
[
c
].
length
>
0
)},
clone
:
function
(
b
){
if
(
b
===
null
)
return
null
;
var
a
=
j
.
isArray
(
b
)?[]:{},
c
;
for
(
c
in
b
)
a
[
c
]
=
b
[
c
]
instanceof
Date
?
new
Date
(
b
[
c
].
getTime
()):
typeof
b
[
c
]
===
"
object
"
?
arguments
.
callee
(
b
[
c
]):
b
[
c
];
return
a
},
eqs
:
function
(
b
,
a
){
return
b
.
toLowerCase
()
===
a
.
toLowerCase
()},
isArray
:
function
(
b
){
return
Object
.
prototype
.
toString
.
apply
(
b
)
===
"
[object Array]
"
},
$
:
function
(
b
,
a
,
c
){
a
&&
typeof
a
!=
"
string
"
&&
(
c
=
a
,
a
=
""
);
return
typeof
b
==
"
string
"
?
q
(
b
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"
#
"
+
b
.
tId
+
a
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
b
,
a
,
c
){
if
(
!
a
)
return
null
;
for
(;
a
&&
a
.
id
!==
b
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
a
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
a
.
tagName
,
c
[
d
].
tagName
)
&&
a
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
a
;
a
=
a
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
b
){
return
q
(
b
).
parent
(
"
li
"
).
get
(
0
)
||
q
(
b
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
b
,
"
[object Array]
"
},
$
:
function
(
b
,
a
,
c
){
a
&&
typeof
a
!=
"
string
"
&&
(
c
=
a
,
a
=
""
);
return
typeof
b
==
"
string
"
?
q
(
b
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"
#
"
+
b
.
tId
+
a
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
b
,
a
,
c
){
if
(
!
a
)
return
null
;
for
(;
a
&&
a
.
id
!==
b
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
a
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
a
.
tagName
,
c
[
d
].
tagName
)
&&
a
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
a
;
a
=
a
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
b
){
return
q
(
b
).
parent
(
"
li
"
).
get
(
0
)
||
q
(
b
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
b
,
a
){
return
q
(
b
).
closest
(
"
#
"
+
a
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
b
.
data
.
keep
.
leaf
||!
a
||
a
.
isParent
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
b
.
data
.
simpleData
.
enable
&&
(
d
=
h
.
transformTozTreeFormat
(
b
,
d
)),
a
){
var
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
n
=
k
(
a
,
f
.
id
.
ICON
,
b
),
o
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
o
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
a
){
return
q
(
b
).
closest
(
"
#
"
+
a
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
!
b
.
data
.
keep
.
leaf
||!
a
||
a
.
isParent
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
b
.
data
.
simpleData
.
enable
&&
(
d
=
h
.
transformTozTreeFormat
(
b
,
d
)),
a
){
var
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
m
=
k
(
a
,
f
.
id
.
ICON
,
b
),
o
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
o
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
!
0
)}
else
h
.
addNodesData
(
b
,
h
.
getRoot
(
b
),
c
,
d
),
i
.
createNodes
(
b
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
b
,
a
,
c
,
d
,
e
,
g
,
f
){
if
(
!
c
)
return
[];
var
j
=
[],
m
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
m
],
l
,
Q
;
if
(
!
k
||
e
>=
k
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
q
=
c
.
length
;
s
<
q
;
s
++
){
var
p
=
c
[
s
];
g
&&
(
l
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
p
,
d
,
l
,
Q
,
f
),
h
.
addNodeCache
(
b
,
p
));
l
=
[];
p
[
m
]
&&
p
[
m
].
length
>
0
&&
(
l
=
i
.
appendNodes
(
b
,
a
+
1
,
p
[
m
],
p
,
-
1
,
g
,
f
&&
p
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
p
),
i
.
makeDOMNodeLine
(
j
,
b
,
p
),
h
.
getBeforeA
(
b
,
!
0
)}
else
h
.
addNodesData
(
b
,
h
.
getRoot
(
b
),
c
,
d
),
i
.
createNodes
(
b
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
b
,
a
,
c
,
d
,
e
,
g
,
f
){
if
(
!
c
)
return
[];
var
j
=
[],
k
=
b
.
data
.
key
.
children
,
l
=
(
d
?
d
:
h
.
getRoot
(
b
))[
k
],
r
,
Q
;
if
(
!
l
||
e
>=
l
.
length
)
e
=-
1
;
for
(
var
t
=
0
,
q
=
c
.
length
;
t
<
q
;
t
++
){
var
p
=
c
[
t
];
g
&&
(
r
=
(
e
===
0
||
l
.
length
==
c
.
length
)
&&
t
==
0
,
Q
=
e
<
0
&&
t
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
p
,
d
,
r
,
Q
,
f
),
h
.
addNodeCache
(
b
,
p
));
r
=
[];
p
[
k
]
&&
p
[
k
].
length
>
0
&&
(
r
=
i
.
appendNodes
(
b
,
a
+
1
,
p
[
k
],
p
,
-
1
,
g
,
f
&&
p
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
p
),
i
.
makeDOMNodeLine
(
j
,
b
,
p
),
h
.
getBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
p
),
h
.
getInnerBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
p
),
h
.
getInnerAfterA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
p
),
h
.
getAfterA
(
b
,
p
,
j
),
p
.
isParent
&&
p
.
open
&&
i
.
makeUlHtml
(
b
,
p
,
j
,
l
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
p
),
h
.
addCreatedNode
(
b
,
p
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
0
)
&&
a
.
parentTId
&&
(
i
.
appendParentULDom
(
b
,
a
.
getParentNode
()),
d
=
k
(
a
,
b
));
var
e
=
k
(
a
,
f
.
id
.
UL
,
b
);
e
.
get
(
0
)
&&
e
.
remove
();
e
=
i
.
appendNodes
(
b
,
a
.
level
+
1
,
a
[
b
.
data
.
key
.
children
],
a
,
-
1
,
!
1
,
!
0
);
p
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
p
),
h
.
getInnerBeforeA
(
b
,
p
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
p
),
h
.
getInnerAfterA
(
b
,
p
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
p
),
h
.
getAfterA
(
b
,
p
,
j
),
p
.
isParent
&&
p
.
open
&&
i
.
makeUlHtml
(
b
,
p
,
j
,
r
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
p
),
h
.
addCreatedNode
(
b
,
p
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
0
)
&&
a
.
parentTId
&&
(
i
.
appendParentULDom
(
b
,
a
.
getParentNode
()),
d
=
k
(
a
,
b
));
var
e
=
k
(
a
,
f
.
id
.
UL
,
b
);
e
.
get
(
0
)
&&
e
.
remove
();
e
=
i
.
appendNodes
(
b
,
a
.
level
+
1
,
a
[
b
.
data
.
key
.
children
],
a
,
-
1
,
!
1
,
!
0
);
i
.
makeUlHtml
(
b
,
a
,
c
,
e
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
b
,
a
,
c
,
d
){
var
e
,
g
;
if
(
a
&&!
a
.
isParent
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
a
&&
a
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
b
.
callback
.
beforeAsync
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
a
)
a
.
isAjaxing
=!
0
,
k
(
a
,
f
.
id
.
ICON
,
b
).
attr
({
style
:
""
,
"
class
"
:
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
ICO_LOADING
});
var
n
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
o
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
m
=
o
;
o
.
length
>
1
&&
(
m
=
o
[
1
],
o
=
o
[
0
]);
n
[
m
]
=
a
[
o
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
i
.
makeUlHtml
(
b
,
a
,
c
,
e
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
b
,
a
,
c
,
d
){
var
e
,
g
;
if
(
a
&&!
a
.
isParent
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
a
&&
a
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
b
.
callback
.
beforeAsync
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
a
)
a
.
isAjaxing
=!
0
,
k
(
a
,
f
.
id
.
ICON
,
b
).
attr
({
style
:
""
,
"
class
"
:
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
ICO_LOADING
});
var
m
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
o
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
o
;
o
.
length
>
1
&&
(
n
=
o
[
1
],
o
=
o
[
0
]);
m
[
n
]
=
a
[
o
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
n
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
l
in
b
.
async
.
otherParam
)
n
[
l
]
=
b
.
async
.
otherParam
[
l
];
var
P
=
h
.
getRoot
(
b
).
_ver
;
q
.
ajax
({
contentType
:
b
.
async
.
contentType
,
cache
:
!
1
,
type
:
b
.
async
.
type
,
url
:
j
.
apply
(
b
.
async
.
url
,[
b
.
treeId
,
a
],
b
.
async
.
url
),
data
:
n
,
dataType
:
b
.
async
.
dataType
,
success
:
function
(
e
){
if
(
P
==
h
.
getRoot
(
b
).
_ver
){
var
g
=
[];
try
{
g
=!
e
||
e
.
length
==
0
?[]:
typeof
e
==
"
string
"
?
eval
(
"
(
"
+
e
+
"
)
"
):
e
}
catch
(
n
){
g
=
e
}
if
(
a
)
a
.
isAjaxing
=
null
,
a
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
b
,
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
m
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
l
in
b
.
async
.
otherParam
)
m
[
l
]
=
b
.
async
.
otherParam
[
l
];
var
r
=
h
.
getRoot
(
b
).
_ver
;
q
.
ajax
({
contentType
:
b
.
async
.
contentType
,
cache
:
!
1
,
type
:
b
.
async
.
type
,
url
:
j
.
apply
(
b
.
async
.
url
,[
b
.
treeId
,
a
],
b
.
async
.
url
),
data
:
m
,
dataType
:
b
.
async
.
dataType
,
success
:
function
(
e
){
if
(
r
==
h
.
getRoot
(
b
).
_ver
){
var
g
=
[];
try
{
g
=!
e
||
e
.
length
==
0
?[]:
typeof
e
==
"
string
"
?
eval
(
"
(
"
+
e
+
"
)
"
):
e
}
catch
(
m
){
g
=
e
}
if
(
a
)
a
.
isAjaxing
=
null
,
a
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
b
,
a
);
g
&&
g
!==
""
?(
g
=
j
.
apply
(
b
.
async
.
dataFilter
,[
b
.
treeId
,
a
,
g
],
g
),
i
.
addNodes
(
b
,
a
,
-
1
,
g
?
j
.
clone
(
g
):[],
!!
c
)):
i
.
addNodes
(
b
,
a
,
-
1
,[],
!!
c
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
b
.
treeId
,
a
,
e
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
e
){
if
(
P
==
h
.
getRoot
(
b
).
_ver
){
if
(
a
)
a
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
b
.
treeId
,
a
,
c
,
d
,
e
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getRoot
(
b
).
curSelectedList
,
e
,
g
;
for
(
e
=
d
.
length
-
1
;
e
>=
0
;
e
--
)
if
(
g
=
d
[
e
],
a
===
g
||!
a
&&
(
!
c
||
c
!==
g
))
if
(
k
(
g
,
a
);
g
&&
g
!==
""
?(
g
=
j
.
apply
(
b
.
async
.
dataFilter
,[
b
.
treeId
,
a
,
g
],
g
),
i
.
addNodes
(
b
,
a
,
-
1
,
g
?
j
.
clone
(
g
):[],
!!
c
)):
i
.
addNodes
(
b
,
a
,
-
1
,[],
!!
c
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
b
.
treeId
,
a
,
e
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
e
){
if
(
r
==
h
.
getRoot
(
b
).
_ver
){
if
(
a
)
a
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
b
.
treeId
,
a
,
c
,
d
,
e
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getRoot
(
b
).
curSelectedList
,
e
,
g
;
for
(
e
=
d
.
length
-
1
;
e
>=
0
;
e
--
)
if
(
g
=
d
[
e
],
a
===
g
||!
a
&&
(
!
c
||
c
!==
g
))
if
(
k
(
g
,
f
.
id
.
A
,
b
).
removeClass
(
f
.
node
.
CURSELECTED
),
a
){
h
.
removeSelectedNode
(
b
,
a
);
break
}
else
d
.
splice
(
e
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
g
])},
createNodeCallback
:
function
(
b
){
if
(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
for
(
var
a
=
h
.
getRoot
(
b
);
a
.
createdNodes
.
length
>
0
;){
var
c
=
a
.
createdNodes
.
shift
();
j
.
apply
(
b
.
view
.
addDiyDom
,[
b
.
treeId
,
c
]);
b
.
callback
.
onNodeCreated
&&
b
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
b
.
treeId
,
c
])}},
createNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
j
=
b
.
data
.
key
.
children
,
f
.
id
.
A
,
b
).
removeClass
(
f
.
node
.
CURSELECTED
),
a
){
h
.
removeSelectedNode
(
b
,
a
);
break
}
else
d
.
splice
(
e
,
1
),
b
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
b
.
treeId
,
g
])},
createNodeCallback
:
function
(
b
){
if
(
b
.
callback
.
onNodeCreated
||
b
.
view
.
addDiyDom
)
for
(
var
a
=
h
.
getRoot
(
b
);
a
.
createdNodes
.
length
>
0
;){
var
c
=
a
.
createdNodes
.
shift
();
j
.
apply
(
b
.
view
.
addDiyDom
,[
b
.
treeId
,
c
]);
b
.
callback
.
onNodeCreated
&&
b
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
b
.
treeId
,
c
])}},
createNodes
:
function
(
b
,
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
j
=
b
.
data
.
key
.
children
,
j
=!
d
||
d
.
open
||!!
k
(
d
[
j
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
j
),
o
,
m
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
o
=
d
)):
o
=
b
.
treeObj
;
o
&&
(
e
>=
0
&&
(
m
=
o
.
children
()[
e
]),
e
>=
0
&&
m
?
q
(
m
).
before
(
a
.
join
(
""
)):
o
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
l
.
unbindTree
(
b
),
l
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
n
=
b
.
data
.
key
.
children
;
if
(
a
){
if
(
g
.
expandTriggerFlag
){
var
o
=
e
,
e
=
function
(){
o
&&
j
=!
d
||
d
.
open
||!!
k
(
d
[
j
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
j
),
o
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
o
=
d
)):
o
=
b
.
treeObj
;
o
&&
(
e
>=
0
&&
(
n
=
o
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
o
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
l
.
unbindTree
(
b
),
l
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
s
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
m
=
b
.
data
.
key
.
children
;
if
(
a
){
if
(
g
.
expandTriggerFlag
){
var
o
=
e
,
e
=
function
(){
o
&&
o
();
a
.
open
?
b
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
b
.
treeId
,
a
]):
b
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
b
.
treeId
,
a
])};
g
.
expandTriggerFlag
=!
1
}
if
(
!
a
.
open
&&
a
.
isParent
&&
(
!
k
(
a
,
f
.
id
.
UL
,
b
).
get
(
0
)
||
a
[
n
]
&&
a
[
n
].
length
>
0
&&!
k
(
a
[
n
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,[]);
else
{
var
c
=
k
(
a
,
f
.
id
.
UL
,
b
),
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
m
=
k
(
a
,
f
.
id
.
ICON
,
b
);
a
.
isParent
?(
a
.
open
=!
a
.
open
,
a
.
iconOpen
&&
a
.
iconClose
&&
m
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
o
();
a
.
open
?
b
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
b
.
treeId
,
a
]):
b
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
b
.
treeId
,
a
])};
g
.
expandTriggerFlag
=!
1
}
if
(
!
a
.
open
&&
a
.
isParent
&&
(
!
k
(
a
,
f
.
id
.
UL
,
b
).
get
(
0
)
||
a
[
m
]
&&
a
[
m
].
length
>
0
&&!
k
(
a
[
m
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,[]);
else
{
var
c
=
k
(
a
,
f
.
id
.
UL
,
b
),
g
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
n
=
k
(
a
,
f
.
id
.
ICON
,
b
);
a
.
isParent
?(
a
.
open
=!
a
.
open
,
a
.
iconOpen
&&
a
.
iconClose
&&
n
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
n
]
&&
a
[
n
].
length
>
0
?
c
.
slideDown
(
b
.
view
.
expandSpeed
,
e
):(
c
.
show
(),
j
.
apply
(
e
,[]))):(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
m
,
f
.
folder
.
CLOSE
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
||!
(
a
[
n
]
&&
a
[
n
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
a
,
c
,
d
,
e
){
a
&&
(
a
.
parentTId
?(
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
),
a
.
parentTId
&&
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
m
]
&&
a
[
m
].
length
>
0
?
c
.
slideDown
(
b
.
view
.
expandSpeed
,
e
):(
c
.
show
(),
j
.
apply
(
e
,[]))):(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
CLOSE
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
||!
(
a
[
m
]
&&
a
[
m
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
a
,
c
,
d
,
e
){
a
&&
(
a
.
parentTId
?(
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
),
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
b
,
a
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
,
g
=
a
?
a
[
f
]:
g
[
f
],
f
=
a
?
!
1
:
d
,
j
=
h
.
getRoot
(
b
).
expandTriggerFlag
;
h
.
getRoot
(
b
).
expandTriggerFlag
=!
1
;
if
(
g
)
for
(
var
k
=
0
,
l
=
g
.
length
;
k
<
l
;
k
++
)
g
[
k
]
&&
i
.
expandCollapseSonNode
(
b
,
g
[
k
],
c
,
f
);
h
.
getRoot
(
b
).
expandTriggerFlag
=
j
;
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
)},
isSelectedNode
:
function
(
b
,
a
){
if
(
!
a
)
return
!
1
;
var
c
=
h
.
getRoot
(
b
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
i
.
expandCollapseParentNode
(
b
,
a
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
f
=
b
.
data
.
key
.
children
,
g
=
a
?
a
[
f
]:
g
[
f
],
f
=
a
?
!
1
:
d
,
j
=
h
.
getRoot
(
b
).
expandTriggerFlag
;
h
.
getRoot
(
b
).
expandTriggerFlag
=!
1
;
if
(
g
)
for
(
var
k
=
0
,
l
=
g
.
length
;
k
<
l
;
k
++
)
g
[
k
]
&&
i
.
expandCollapseSonNode
(
b
,
g
[
k
],
c
,
f
);
h
.
getRoot
(
b
).
expandTriggerFlag
=
j
;
i
.
expandCollapseNode
(
b
,
a
,
c
,
d
,
e
)},
isSelectedNode
:
function
(
b
,
a
){
if
(
!
a
)
return
!
1
;
var
c
=
h
.
getRoot
(
b
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
1
;
d
>=
0
;
d
--
)
if
(
a
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeName
(
a
,
c
),
d
=
a
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"
&
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
);
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
ICON
,
"
' title='' treeNode
"
,
f
.
id
.
ICON
,
"
class='
"
,
i
.
makeNodeIcoClass
(
a
,
c
),
"
' style='
"
,
i
.
makeNodeIcoStyle
(
a
,
c
),
"
'></span><span id='
"
,
c
.
tId
,
f
.
id
.
SPAN
,
"
' class='
"
,
f
.
className
.
NAME
,
"
'>
"
,
d
,
"
</span>
"
)},
makeDOMNodeLine
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"
' title='' class='
"
,
1
;
d
>=
0
;
d
--
)
if
(
a
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeName
(
a
,
c
),
d
=
a
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"
&
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
);
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
ICON
,
"
' title='' treeNode
"
,
f
.
id
.
ICON
,
"
class='
"
,
i
.
makeNodeIcoClass
(
a
,
c
),
"
' style='
"
,
i
.
makeNodeIcoStyle
(
a
,
c
),
"
'></span><span id='
"
,
c
.
tId
,
f
.
id
.
SPAN
,
"
' class='
"
,
f
.
className
.
NAME
,
"
'>
"
,
d
,
"
</span>
"
)},
makeDOMNodeLine
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<span id='
"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"
' title='' class='
"
,
i
.
makeNodeLineClass
(
a
,
c
),
"
' treeNode
"
,
f
.
id
.
SWITCH
,
"
></span>
"
)},
makeDOMNodeMainAfter
:
function
(
b
){
b
.
push
(
"
</li>
"
)},
makeDOMNodeMainBefore
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<li id='
"
,
c
.
tId
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
makeDOMNodeNameAfter
:
function
(
b
){
b
.
push
(
"
</a>
"
)},
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
n
=
[],
k
;
for
(
k
in
g
)
n
.
push
(
k
,
"
:
"
,
g
[
k
],
"
;
"
);
b
.
push
(
"
<a id='
"
,
c
.
tId
,
f
.
id
.
A
,
"
' class='
"
,
i
.
makeNodeLineClass
(
a
,
c
),
"
' treeNode
"
,
f
.
id
.
SWITCH
,
"
></span>
"
)},
makeDOMNodeMainAfter
:
function
(
b
){
b
.
push
(
"
</li>
"
)},
makeDOMNodeMainBefore
:
function
(
b
,
a
,
c
){
b
.
push
(
"
<li id='
"
,
c
.
tId
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
makeDOMNodeNameAfter
:
function
(
b
){
b
.
push
(
"
</a>
"
)},
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
m
=
[],
k
;
for
(
k
in
g
)
m
.
push
(
k
,
"
:
"
,
g
[
k
],
"
;
"
);
b
.
push
(
"
<a id='
"
,
c
.
tId
,
f
.
id
.
A
,
"
' class='
"
,
f
.
className
.
LEVEL
,
c
.
level
,
"
' treeNode
"
,
f
.
id
.
A
,
'
onclick="
'
,
c
.
click
||
""
,
'
"
'
,
e
!=
null
&&
e
.
length
>
0
?
"
href='
"
+
e
+
"
'
"
:
""
,
"
target='
"
,
i
.
makeNodeTarget
(
c
),
"
' style='
"
,
n
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
),
"
'
"
);
b
.
push
(
"
>
"
)},
makeNodeFontCss
:
function
(
b
,
a
){
var
c
=
j
.
apply
(
b
.
view
.
fontCss
,[
b
.
treeId
,
a
],
b
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"
function
"
?
c
:{}},
makeNodeIcoClass
:
function
(
b
,
a
){
var
c
=
[
"
ico
"
];
f
.
className
.
LEVEL
,
c
.
level
,
"
' treeNode
"
,
f
.
id
.
A
,
'
onclick="
'
,
c
.
click
||
""
,
'
"
'
,
e
!=
null
&&
e
.
length
>
0
?
"
href='
"
+
e
+
"
'
"
:
""
,
"
target='
"
,
i
.
makeNodeTarget
(
c
),
"
' style='
"
,
m
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
"
>
"
),
"
'
"
);
b
.
push
(
"
>
"
)},
makeNodeFontCss
:
function
(
b
,
a
){
var
c
=
j
.
apply
(
b
.
view
.
fontCss
,[
b
.
treeId
,
a
],
b
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"
function
"
?
c
:{}},
makeNodeIcoClass
:
function
(
b
,
a
){
var
c
=
[
"
ico
"
];
a
.
isAjaxing
||
(
c
[
0
]
=
(
a
.
iconSkin
?
a
.
iconSkin
+
"
_
"
:
""
)
+
c
[
0
],
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
));
return
f
.
className
.
BUTTON
+
"
"
+
c
.
join
(
"
_
"
)},
makeNodeIcoStyle
:
function
(
b
,
a
){
var
c
=
[];
if
(
!
a
.
isAjaxing
){
var
d
=
a
.
isParent
&&
a
.
iconOpen
&&
a
.
iconClose
?
a
.
open
?
a
.
iconOpen
:
a
.
iconClose
:
a
[
b
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"
background:url(
"
,
d
,
"
) 0 0 no-repeat;
"
);(
b
.
view
.
showIcon
==!
1
||!
j
.
apply
(
b
.
view
.
showIcon
,[
b
.
treeId
,
a
],
!
0
))
&&
c
.
push
(
"
width:0px;height:0px;
"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
b
,
a
.
isAjaxing
||
(
c
[
0
]
=
(
a
.
iconSkin
?
a
.
iconSkin
+
"
_
"
:
""
)
+
c
[
0
],
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
));
return
f
.
className
.
BUTTON
+
"
"
+
c
.
join
(
"
_
"
)},
makeNodeIcoStyle
:
function
(
b
,
a
){
var
c
=
[];
if
(
!
a
.
isAjaxing
){
var
d
=
a
.
isParent
&&
a
.
iconOpen
&&
a
.
iconClose
?
a
.
open
?
a
.
iconOpen
:
a
.
iconClose
:
a
[
b
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"
background:url(
"
,
d
,
"
) 0 0 no-repeat;
"
);(
b
.
view
.
showIcon
==!
1
||!
j
.
apply
(
b
.
view
.
showIcon
,[
b
.
treeId
,
a
],
!
0
))
&&
c
.
push
(
"
width:0px;height:0px;
"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
b
,
a
){
var
c
=
[];
b
.
view
.
showLine
?
a
.
level
==
0
&&
a
.
isFirstNode
&&
a
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
a
.
level
==
0
&&
a
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
a
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
a
)
+
c
.
join
(
"
_
"
)},
makeNodeLineClassEx
:
function
(
b
){
return
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
LEVEL
+
b
.
level
+
"
"
+
f
.
className
.
SWITCH
+
"
"
},
makeNodeTarget
:
function
(
b
){
return
b
.
target
||
"
_blank
"
},
a
){
var
c
=
[];
b
.
view
.
showLine
?
a
.
level
==
0
&&
a
.
isFirstNode
&&
a
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
a
.
level
==
0
&&
a
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
a
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
a
.
isParent
?
c
.
push
(
a
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
a
)
+
c
.
join
(
"
_
"
)},
makeNodeLineClassEx
:
function
(
b
){
return
f
.
className
.
BUTTON
+
"
"
+
f
.
className
.
LEVEL
+
b
.
level
+
"
"
+
f
.
className
.
SWITCH
+
"
"
},
makeNodeTarget
:
function
(
b
){
return
b
.
target
||
"
_blank
"
},
makeNodeUrl
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
url
;
return
a
[
c
]?
a
[
c
]:
null
},
makeUlHtml
:
function
(
b
,
a
,
c
,
d
){
c
.
push
(
"
<ul id='
"
,
a
.
tId
,
f
.
id
.
UL
,
"
' class='
"
,
f
.
className
.
LEVEL
,
a
.
level
,
"
"
,
i
.
makeUlLineClass
(
b
,
a
),
"
' style='display:
"
,
a
.
open
?
"
block
"
:
"
none
"
,
"
'>
"
);
c
.
push
(
d
);
c
.
push
(
"
</ul>
"
)},
makeUlLineClass
:
function
(
b
,
a
){
return
b
.
view
.
showLine
&&!
a
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
b
,
a
){
if
(
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
];
if
(
d
){
for
(
var
e
=
0
,
g
=
d
.
length
;
e
<
g
;
e
++
)
h
.
removeNodeCache
(
b
,
d
[
e
]);
h
.
removeSelectedNode
(
b
);
makeNodeUrl
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
url
;
return
a
[
c
]?
a
[
c
]:
null
},
makeUlHtml
:
function
(
b
,
a
,
c
,
d
){
c
.
push
(
"
<ul id='
"
,
a
.
tId
,
f
.
id
.
UL
,
"
' class='
"
,
f
.
className
.
LEVEL
,
a
.
level
,
"
"
,
i
.
makeUlLineClass
(
b
,
a
),
"
' style='display:
"
,
a
.
open
?
"
block
"
:
"
none
"
,
"
'>
"
);
c
.
push
(
d
);
c
.
push
(
"
</ul>
"
)},
makeUlLineClass
:
function
(
b
,
a
){
return
b
.
view
.
showLine
&&!
a
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
b
,
a
){
if
(
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
];
if
(
d
){
for
(
var
e
=
0
,
g
=
d
.
length
;
e
<
g
;
e
++
)
h
.
removeNodeCache
(
b
,
d
[
e
]);
h
.
removeSelectedNode
(
b
);
delete
a
[
c
];
b
.
data
.
keep
.
parent
?
k
(
a
,
f
.
id
.
UL
,
b
).
empty
():(
a
.
isParent
=!
1
,
a
.
open
=!
1
,
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
a
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
a
,
d
,
f
.
folder
.
DOCU
),
k
(
a
,
f
.
id
.
UL
,
b
).
remove
())}}},
s
etFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
].
length
>
0
)
a
[
c
][
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
].
length
;
if
(
d
>
0
)
a
[
c
][
d
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
),
d
=
b
.
data
.
key
.
children
,
e
=
a
.
parentTId
?
a
.
getParentNode
():
delete
a
[
c
];
b
.
data
.
keep
.
parent
?
k
(
a
,
f
.
id
.
UL
,
b
).
empty
():(
a
.
isParent
=!
1
,
a
.
open
=!
1
,
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
a
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
a
,
d
,
f
.
folder
.
DOCU
),
k
(
a
,
f
.
id
.
UL
,
b
).
remove
())}}},
s
crollIntoView
:
function
(
b
){
if
(
b
)
if
(
b
.
scrollIntoViewIfNeeded
)
b
.
scrollIntoViewIfNeeded
();
else
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
else
try
{
b
.
focus
().
blur
()}
catch
(
a
){}},
setFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
if
(
a
[
c
].
length
>
0
)
a
[
c
][
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
b
,
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
a
.
tId
)){
k
(
a
,
b
).
remove
();
h
.
removeNodeCache
(
b
,
a
);
h
.
removeSelectedNode
(
b
,
a
);
for
(
var
g
=
0
,
j
=
e
[
d
].
length
;
g
<
j
;
g
++
)
if
(
e
[
d
][
g
].
tId
==
a
.
tId
){
e
[
d
].
splice
(
g
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
o
,
g
=
e
[
d
].
length
;
if
(
!
b
.
data
.
keep
.
parent
&&
g
==
0
)
e
.
isParent
=!
1
,
e
.
open
=!
1
,
g
=
k
(
e
,
f
.
id
.
UL
,
b
),
j
=
k
(
e
,
f
.
id
.
SWITCH
,
b
),
o
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
a
){
var
c
=
b
.
data
.
key
.
children
,
d
=
a
[
c
].
length
;
if
(
d
>
0
)
a
[
c
][
d
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
b
,
a
){
var
c
=
h
.
getRoot
(
b
),
d
=
b
.
data
.
key
.
children
,
e
=
a
.
parentTId
?
a
.
getParentNode
():
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
a
.
tId
)){
k
(
a
,
b
).
remove
();
h
.
removeNodeCache
(
b
,
a
);
h
.
removeSelectedNode
(
b
,
a
);
for
(
var
g
=
0
,
j
=
e
[
d
].
length
;
g
<
j
;
g
++
)
if
(
e
[
d
][
g
].
tId
==
a
.
tId
){
e
[
d
].
splice
(
g
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
o
,
o
,
f
.
folder
.
DOCU
),
g
.
css
(
"
display
"
,
"
none
"
);
else
if
(
b
.
view
.
showLine
&&
g
>
0
){
var
m
=
e
[
d
][
g
-
1
],
g
=
k
(
m
,
f
.
id
.
UL
,
b
),
j
=
k
(
m
,
f
.
id
.
SWITCH
,
b
);
o
=
k
(
m
,
f
.
id
.
ICON
,
b
);
e
==
c
?
e
[
d
].
length
==
1
?
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
ROOT
):(
c
=
k
(
e
[
d
][
0
],
f
.
id
.
SWITCH
,
b
),
i
.
replaceSwitchClass
(
e
[
d
][
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
m
,
j
,
f
.
line
.
BOTTOM
);
g
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
b
,
a
,
c
){
if
(
a
&&!
b
.
isAjaxing
&&
(
b
=
a
.
attr
(
"
class
"
),
b
!=
void
0
)){
b
=
b
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
b
[
b
.
length
-
g
=
e
[
d
].
length
;
if
(
!
b
.
data
.
keep
.
parent
&&
g
==
0
)
e
.
isParent
=!
1
,
e
.
open
=!
1
,
g
=
k
(
e
,
f
.
id
.
UL
,
b
),
j
=
k
(
e
,
f
.
id
.
SWITCH
,
b
),
o
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
o
,
f
.
folder
.
DOCU
),
g
.
css
(
"
display
"
,
"
none
"
);
else
if
(
b
.
view
.
showLine
&&
g
>
0
){
var
n
=
e
[
d
][
g
-
1
],
g
=
k
(
n
,
f
.
id
.
UL
,
b
),
j
=
k
(
n
,
f
.
id
.
SWITCH
,
b
);
o
=
k
(
n
,
f
.
id
.
ICON
,
b
);
e
==
c
?
e
[
d
].
length
==
1
?
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
ROOT
):(
c
=
k
(
e
[
d
][
0
],
f
.
id
.
SWITCH
,
b
),
i
.
replaceSwitchClass
(
e
[
d
][
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
n
,
1
]
=
c
}
a
.
attr
(
"
class
"
,
b
.
join
(
"
_
"
))}},
replaceSwitchClass
:
function
(
b
,
a
,
c
){
if
(
a
){
var
d
=
a
.
attr
(
"
class
"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
line
.
ROOT
:
case
f
.
line
.
ROOTS
:
case
f
.
line
.
CENTER
:
case
f
.
line
.
BOTTOM
:
case
f
.
line
.
NOLINE
:
d
[
0
]
=
i
.
makeNodeLineClassEx
(
b
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
c
}
a
.
attr
(
"
class
"
,
d
.
join
(
"
_
"
));
c
!==
f
.
folder
.
DOCU
?
a
.
removeAttr
(
"
disabled
"
):
a
.
attr
(
"
disabled
"
,
"
disabled
"
)}}},
selectNode
:
function
(
b
,
a
,
c
){
c
||
i
.
cancelPreSelectedNode
(
b
,
null
,
a
);
k
(
a
,
j
,
f
.
line
.
BOTTOM
);
g
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
b
,
a
,
c
){
if
(
a
&&!
b
.
isAjaxing
&&
(
b
=
a
.
attr
(
"
class
"
),
b
!=
void
0
)){
b
=
b
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
b
[
b
.
length
-
1
]
=
c
}
a
.
attr
(
"
class
"
,
b
.
join
(
"
_
"
))}},
replaceSwitchClass
:
function
(
b
,
a
,
c
){
if
(
a
){
var
d
=
a
.
attr
(
"
class
"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"
_
"
);
switch
(
c
){
case
f
.
line
.
ROOT
:
case
f
.
line
.
ROOTS
:
case
f
.
line
.
CENTER
:
case
f
.
line
.
BOTTOM
:
case
f
.
line
.
NOLINE
:
d
[
0
]
=
i
.
makeNodeLineClassEx
(
b
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
b
.
treeId
,
a
])},
setNodeFontCss
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeFontCss
(
b
,
a
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
b
,
a
){
if
(
a
){
var
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
UL
,
b
),
e
=
k
(
a
,
f
.
id
.
ICON
,
b
),
g
=
i
.
makeUlLineClass
(
b
,
a
);
g
.
length
==
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
g
);
c
.
attr
(
"
class
"
,
i
.
makeNodeLineClass
(
b
,
a
));
a
.
isParent
?
c
.
removeAttr
(
"
disabled
"
):
c
.
attr
(
"
disabled
"
,
"
disabled
"
);
e
.
removeAttr
(
"
style
"
);
c
}
a
.
attr
(
"
class
"
,
d
.
join
(
"
_
"
));
c
!==
f
.
folder
.
DOCU
?
a
.
removeAttr
(
"
disabled
"
):
a
.
attr
(
"
disabled
"
,
"
disabled
"
)}}},
selectNode
:
function
(
b
,
a
,
c
){
c
||
i
.
cancelPreSelectedNode
(
b
,
null
,
a
);
k
(
a
,
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
b
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
b
.
treeId
,
a
])},
setNodeFontCss
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeFontCss
(
b
,
a
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
b
,
a
){
if
(
a
){
var
c
=
k
(
a
,
f
.
id
.
SWITCH
,
b
),
d
=
k
(
a
,
f
.
id
.
UL
,
b
),
e
=
k
(
a
,
f
.
id
.
ICON
,
b
),
g
=
i
.
makeUlLineClass
(
b
,
a
);
g
.
length
==
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
a
))}},
setNodeName
:
function
(
b
,
a
){
var
c
=
h
.
getNodeTitle
(
b
,
a
),
d
=
k
(
a
,
f
.
id
.
SPAN
,
b
);
d
.
empty
();
b
.
view
.
nameIsHTML
?
d
.
html
(
h
.
getNodeName
(
b
,
a
)):
d
.
text
(
h
.
getNodeName
(
b
,
a
));
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
a
],
b
.
view
.
showTitle
)
&&
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
title
"
,
!
c
?
""
:
c
)},
setNodeTarget
:
function
(
b
,
a
){
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
target
"
,
i
.
makeNodeTarget
(
a
))},
setNodeUrl
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeUrl
(
b
,
a
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"
href
"
):
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
g
);
c
.
attr
(
"
class
"
,
i
.
makeNodeLineClass
(
b
,
a
));
a
.
isParent
?
c
.
removeAttr
(
"
disabled
"
):
c
.
attr
(
"
disabled
"
,
"
disabled
"
);
e
.
removeAttr
(
"
style
"
);
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
a
))}},
setNodeName
:
function
(
b
,
a
){
var
c
=
h
.
getNodeTitle
(
b
,
a
),
d
=
k
(
a
,
f
.
id
.
SPAN
,
b
);
d
.
empty
();
b
.
view
.
nameIsHTML
?
d
.
html
(
h
.
getNodeName
(
b
,
a
)):
d
.
text
(
h
.
getNodeName
(
b
,
a
));
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
a
],
b
.
view
.
showTitle
)
&&
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
title
"
,
!
c
?
""
:
c
)},
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
a
)?
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
b
.
async
.
enable
?
i
.
asyncNode
(
b
,
a
)
||
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
a
&&
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
)}};
q
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"
button
"
,
LEVEL
:
"
level
"
,
ICO_LOADING
:
"
ico_loading
"
,
SWITCH
:
"
switch
"
,
NAME
:
"
node_name
"
},
event
:{
NODECREATED
:
"
ztree_nodeCreated
"
,
CLICK
:
"
ztree_click
"
,
EXPAND
:
"
ztree_expand
"
,
COLLAPSE
:
"
ztree_collapse
"
,
ASYNC_SUCCESS
:
"
ztree_async_success
"
,
ASYNC_ERROR
:
"
ztree_async_error
"
,
setNodeTarget
:
function
(
b
,
a
){
k
(
a
,
f
.
id
.
A
,
b
).
attr
(
"
target
"
,
i
.
makeNodeTarget
(
a
))},
setNodeUrl
:
function
(
b
,
a
){
var
c
=
k
(
a
,
f
.
id
.
A
,
b
),
d
=
i
.
makeNodeUrl
(
b
,
a
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"
href
"
):
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
a
)?
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
b
.
async
.
enable
?
i
.
asyncNode
(
b
,
a
)
||
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
):
a
&&
i
.
expandCollapseNode
(
b
,
a
,
!
a
.
open
)}};
q
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"
button
"
,
LEVEL
:
"
level
"
,
ICO_LOADING
:
"
ico_loading
"
,
SWITCH
:
"
switch
"
,
NAME
:
"
node_name
"
}
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
},
id
:{
A
:
"
_a
"
,
ICON
:
"
_ico
"
,
SPAN
:
"
_span
"
,
SWITCH
:
"
_switch
"
,
UL
:
"
_ul
"
},
line
:{
ROOT
:
"
root
"
,
ROOTS
:
"
roots
"
,
CENTER
:
"
center
"
,
BOTTOM
:
"
bottom
"
,
NOLINE
:
"
noline
"
,
LINE
:
"
line
"
},
folder
:{
OPEN
:
"
open
"
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
l
,
data
:
h
},
getZTreeObj
:
function
(
b
){
return
(
b
=
h
.
getZTreeTools
(
b
))?
b
:
null
},
destroy
:
function
(
b
){
if
(
b
&&
b
.
length
>
0
)
i
.
destroy
(
h
.
getSetting
(
b
));
else
for
(
var
a
in
r
)
i
.
destroy
(
r
[
a
])}
,
event
:{
NODECREATED
:
"
ztree_nodeCreated
"
,
CLICK
:
"
ztree_click
"
,
EXPAND
:
"
ztree_expand
"
,
COLLAPSE
:
"
ztree_collapse
"
,
ASYNC_SUCCESS
:
"
ztree_async_success
"
,
ASYNC_ERROR
:
"
ztree_async_error
"
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
},
id
:{
A
:
"
_a
"
,
ICON
:
"
_ico
"
,
SPAN
:
"
_span
"
,
SWITCH
:
"
_switch
"
,
UL
:
"
_ul
"
},
line
:{
ROOT
:
"
root
"
,
ROOTS
:
"
roots
"
,
CENTER
:
"
center
"
,
BOTTOM
:
"
bottom
"
,
NOLINE
:
"
noline
"
,
LINE
:
"
line
"
},
folder
:{
OPEN
:
"
open
"
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
b
.
attr
(
"
id
"
);
d
.
treeObj
=
b
;
d
.
treeObj
.
empty
();
r
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
d
.
view
.
expandSpeed
=
""
;
h
.
initRoot
(
d
);
b
=
h
.
getRoot
(
d
);
a
=
d
.
data
.
key
.
children
;
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
c
):
c
;
h
.
initCache
(
d
);
l
.
unbindTree
(
d
);
l
.
bindTree
(
d
);
l
.
unbindEvent
(
d
);
l
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
l
,
f
==!
0
)}
view
:
i
,
event
:
l
,
data
:
h
},
getZTreeObj
:
function
(
b
){
return
(
b
=
h
.
getZTreeTools
(
b
))?
b
:
null
},
destroy
:
function
(
b
){
if
(
b
&&
b
.
length
>
0
)
i
.
destroy
(
h
.
getSetting
(
b
));
else
for
(
var
a
in
s
)
i
.
destroy
(
s
[
a
])},
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
O
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
b
.
attr
(
"
id
"
);
d
.
treeObj
=
b
;
d
.
treeObj
.
empty
();
s
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
d
.
view
.
expandSpeed
=
""
;
h
.
initRoot
(
d
);
b
=
h
.
getRoot
(
d
);
a
=
d
.
data
.
key
.
children
;
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
l
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
l
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
m
){
function
l
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
if
(
b
&&
f
!==!
1
)
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
c
):
c
;
h
.
initCache
(
d
);
l
.
unbindTree
(
d
);
l
.
bindTree
(
d
);
l
.
unbindEvent
(
d
);
l
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
l
,
f
==!
0
)}
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
l
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
l
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
else
try
{
b
.
focus
().
blur
()}
catch
(
c
){}}
if
(
!
a
||!
a
.
isParent
)
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
m
=!!
m
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
m
&&!
b
&&
j
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
m
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
l
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
l
());
return
b
}
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
n
){
function
l
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
b
&&
f
!==!
1
&&
i
.
scrollIntoView
(
b
)}
if
(
!
a
||!
a
.
isParent
)
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
n
=!!
n
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
n
&&!
b
&&
j
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
n
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
getNodes
:
function
(){
return
h
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodeByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
h
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParamFuzzy
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"
function
"
?
a
,
b
,
!
0
,
l
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
l
());
return
b
},
getNodes
:
function
(){
return
h
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodeByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
h
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParam
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
h
.
getNodesByParamFuzzy
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
)},
b
?
null
:[]:
h
.
getNodesByFilter
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
d
.
data
.
key
.
children
,
c
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
d
),
f
=
0
,
i
=
c
[
b
].
length
;
f
<
i
;
f
++
)
if
(
c
[
b
][
f
]
==
a
)
return
f
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
h
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
h
.
isSelectedNode
(
d
,
a
)},
reAsyncChildNodes
:
function
(
a
,
b
,
c
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"
function
"
?
b
?
null
:[]:
h
.
getNodesByFilter
(
d
,
c
?
c
[
d
.
data
.
key
.
children
]:
h
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
d
.
data
.
key
.
children
,
c
=
a
.
parentTId
?
a
.
getParentNode
():
h
.
getRoot
(
d
),
f
=
0
,
i
=
c
[
b
].
length
;
f
<
i
;
f
++
)
if
(
c
[
b
][
f
]
==
a
)
return
f
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
h
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
h
.
isSelectedNode
(
d
,
a
)},
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
m
=
0
,
l
=
a
[
b
]?
a
[
b
].
length
:
0
;
m
<
l
;
m
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
m
]);
h
.
removeSelectedNode
(
d
);
a
[
b
]
=
[];
j
?
this
.
setting
.
treeObj
.
empty
():
k
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
h
.
getRoot
(
d
),
b
=
a
[
d
.
data
.
key
.
children
];
h
.
initRoot
(
d
);
a
[
d
.
data
.
key
.
children
]
=
b
;
h
.
initCache
(
d
);
i
.
createNodes
(
d
,
0
,
a
[
d
.
data
.
key
.
children
],
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
reAsyncChildNodes
:
function
(
a
,
b
,
c
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
l
=
0
,
q
=
a
[
b
]?
a
[
b
].
length
:
0
;
l
<
q
;
l
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
l
]);
h
.
removeSelectedNode
(
d
);
a
[
b
]
=
[];
j
?
this
.
setting
.
treeObj
.
empty
():
k
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
h
.
getRoot
(
d
),
b
=
a
[
d
.
data
.
key
.
children
];
h
.
initRoot
(
d
);
a
[
d
.
data
.
key
.
children
]
=
b
;
h
.
initCache
(
d
);
i
.
createNodes
(
d
,
var
b
=
a
[
d
.
data
.
key
.
children
];
i
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
j
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
i
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
f
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
){
function
c
(){
var
b
=
k
(
a
,
d
).
get
(
0
);
if
(
b
)
if
(
b
.
scrollIntoView
)
b
.
scrollIntoView
(
!
1
);
else
try
{
b
.
focus
().
blur
()}
catch
(
f
){}}
if
(
a
&&
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
c
);
0
,
a
[
d
.
data
.
key
.
children
],
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
var
b
=
a
[
d
.
data
.
key
.
children
];
i
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
j
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
i
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
f
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
,
c
){
function
f
(){
if
(
!
c
){
var
b
=
k
(
a
,
d
).
get
(
0
);
i
.
scrollIntoView
(
b
)}}
if
(
a
&&
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
else
try
{
k
(
a
,
d
).
focus
().
blur
()}
catch
(
f
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
h
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
h
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
k
(
a
,
d
).
get
(
0
)
&&
j
.
uCanDo
(
d
)
&&
(
i
.
setNodeName
(
d
,
a
),
i
.
setNodeTarget
(
d
,
a
),
i
.
setNodeUrl
(
d
,
a
),
i
.
setNodeLineIcos
(
d
,
a
),
i
.
setNodeFontCss
(
d
,
a
))}};
b
.
treeTools
=
c
;
h
.
setZTreeTools
(
d
,
c
);
b
[
a
]
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
try
{
k
(
a
,
d
).
focus
().
blur
()}
catch
(
h
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
h
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
h
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
k
(
a
,
d
).
get
(
0
)
&&
j
.
uCanDo
(
d
)
&&
(
i
.
setNodeName
(
d
,
a
),
i
.
setNodeTarget
(
d
,
a
),
i
.
setNodeUrl
(
d
,
a
),
i
.
setNodeLineIcos
(
d
,
a
),
i
.
setNodeFontCss
(
d
,
a
))}};
b
.
treeTools
=
c
;
h
.
setZTreeTools
(
d
,
c
);
b
[
a
]
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
c
}};
var
P
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
P
.
consts
})(
jQuery
);
js/jquery.ztree.excheck.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree excheck v3.5.2
2
* JQuery zTree excheck v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of excheck
//default consts of excheck
...
...
js/jquery.ztree.excheck.min.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree excheck v3.5.2
2
* JQuery zTree excheck v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
m
){
var
p
,
q
,
r
,
o
=
{
event
:{
CHECK
:
"
ztree_check
"
},
id
:{
CHECK
:
"
_check
"
},
checkbox
:{
STYLE
:
"
checkbox
"
,
DEFAULT
:
"
chk
"
,
DISABLED
:
"
disable
"
,
FALSE
:
"
false
"
,
TRUE
:
"
true
"
,
FULL
:
"
full
"
,
PART
:
"
part
"
,
FOCUS
:
"
focus
"
},
radio
:{
STYLE
:
"
radio
"
,
TYPE_ALL
:
"
all
"
,
TYPE_LEVEL
:
"
level
"
}},
v
=
{
check
:{
enable
:
!
1
,
autoCheckTrigger
:
!
1
,
chkStyle
:
o
.
checkbox
.
STYLE
,
nocheckInherit
:
!
1
,
chkDisabledInherit
:
!
1
,
radioType
:
o
.
radio
.
TYPE_LEVEL
,
chkboxType
:{
Y
:
"
ps
"
,
N
:
"
ps
"
}},
data
:{
key
:{
checked
:
"
checked
"
}},
callback
:{
beforeCheck
:
null
,
onCheck
:
null
}};
p
=
function
(
c
,
(
function
(
m
){
var
p
,
q
,
r
,
o
=
{
event
:{
CHECK
:
"
ztree_check
"
},
id
:{
CHECK
:
"
_check
"
},
checkbox
:{
STYLE
:
"
checkbox
"
,
DEFAULT
:
"
chk
"
,
DISABLED
:
"
disable
"
,
FALSE
:
"
false
"
,
TRUE
:
"
true
"
,
FULL
:
"
full
"
,
PART
:
"
part
"
,
FOCUS
:
"
focus
"
},
radio
:{
STYLE
:
"
radio
"
,
TYPE_ALL
:
"
all
"
,
TYPE_LEVEL
:
"
level
"
}},
v
=
{
check
:{
enable
:
!
1
,
autoCheckTrigger
:
!
1
,
chkStyle
:
o
.
checkbox
.
STYLE
,
nocheckInherit
:
!
1
,
chkDisabledInherit
:
!
1
,
radioType
:
o
.
radio
.
TYPE_LEVEL
,
chkboxType
:{
Y
:
"
ps
"
,
N
:
"
ps
"
}},
data
:{
key
:{
checked
:
"
checked
"
}},
callback
:{
beforeCheck
:
null
,
onCheck
:
null
}};
p
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
b
.
data
.
key
.
checked
;
if
(
k
.
apply
(
b
.
callback
.
beforeCheck
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
a
[
d
]
=!
a
[
d
];
e
.
checkNodeRelation
(
b
,
a
);
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
e
.
setChkClass
(
b
,
d
,
a
);
e
.
repairParentChkClassWithSelf
(
b
,
a
);
b
.
treeObj
.
trigger
(
j
.
event
.
CHECK
,[
c
,
b
.
treeId
,
a
]);
return
!
0
};
q
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
a
.
check_Focus
=!
0
;
e
.
setChkClass
(
b
,
d
,
a
);
return
!
0
};
r
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
b
.
data
.
key
.
checked
;
if
(
k
.
apply
(
b
.
callback
.
beforeCheck
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
a
[
d
]
=!
a
[
d
];
e
.
checkNodeRelation
(
b
,
a
);
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
e
.
setChkClass
(
b
,
d
,
a
);
e
.
repairParentChkClassWithSelf
(
b
,
a
);
b
.
treeObj
.
trigger
(
j
.
event
.
CHECK
,[
c
,
b
.
treeId
,
a
]);
return
!
0
};
q
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
g
.
getSetting
(
c
.
data
.
treeId
),
d
=
n
(
a
,
j
.
id
.
CHECK
,
b
);
a
.
check_Focus
=!
0
;
e
.
setChkClass
(
b
,
d
,
a
);
return
!
0
};
r
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===
...
...
js/jquery.ztree.exedit.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree exedit v3.5.2
2
* JQuery zTree exedit v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of exedit
//default consts of exedit
...
@@ -692,13 +692,7 @@
...
@@ -692,13 +692,7 @@
view
.
selectNodes
(
targetSetting
,
newNodes
);
view
.
selectNodes
(
targetSetting
,
newNodes
);
var
a
=
$$
(
newNodes
[
0
],
setting
).
get
(
0
);
var
a
=
$$
(
newNodes
[
0
],
setting
).
get
(
0
);
if
(
a
)
{
view
.
scrollIntoView
(
a
);
if
(
a
.
scrollIntoView
)
{
a
.
scrollIntoView
(
false
);
}
else
{
try
{
a
.
focus
().
blur
();}
catch
(
e
){}
}
}
setting
.
treeObj
.
trigger
(
consts
.
event
.
DROP
,
[
event
,
targetSetting
.
treeId
,
newNodes
,
dragTargetNode
,
moveType
,
isCopy
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
DROP
,
[
event
,
targetSetting
.
treeId
,
newNodes
,
dragTargetNode
,
moveType
,
isCopy
]);
}
}
...
...
js/jquery.ztree.exedit.min.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree exedit v3.5.2
2
* JQuery zTree exedit v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
v
){
var
J
=
{
event
:{
DRAG
:
"
ztree_drag
"
,
DROP
:
"
ztree_drop
"
,
RENAME
:
"
ztree_rename
"
,
DRAGMOVE
:
"
ztree_dragmove
"
},
id
:{
EDIT
:
"
_edit
"
,
INPUT
:
"
_input
"
,
REMOVE
:
"
_remove
"
},
move
:{
TYPE_INNER
:
"
inner
"
,
TYPE_PREV
:
"
prev
"
,
TYPE_NEXT
:
"
next
"
},
node
:{
CURSELECTED_EDIT
:
"
curSelectedNode_Edit
"
,
TMPTARGET_TREE
:
"
tmpTargetzTree
"
,
TMPTARGET_NODE
:
"
tmpTargetNode
"
}},
x
=
{
onHoverOverNode
:
function
(
b
,
a
){
var
c
=
m
.
getSetting
(
b
.
data
.
treeId
),
d
=
m
.
getRoot
(
c
);
if
(
d
.
curHoverNode
!=
a
)
x
.
onHoverOutNode
(
b
);
d
.
curHoverNode
=
a
;
f
.
addHoverDom
(
c
,
a
)},
onHoverOutNode
:
function
(
b
){
var
b
=
(
function
(
v
){
var
J
=
{
event
:{
DRAG
:
"
ztree_drag
"
,
DROP
:
"
ztree_drop
"
,
RENAME
:
"
ztree_rename
"
,
DRAGMOVE
:
"
ztree_dragmove
"
},
id
:{
EDIT
:
"
_edit
"
,
INPUT
:
"
_input
"
,
REMOVE
:
"
_remove
"
},
move
:{
TYPE_INNER
:
"
inner
"
,
TYPE_PREV
:
"
prev
"
,
TYPE_NEXT
:
"
next
"
},
node
:{
CURSELECTED_EDIT
:
"
curSelectedNode_Edit
"
,
TMPTARGET_TREE
:
"
tmpTargetzTree
"
,
TMPTARGET_NODE
:
"
tmpTargetNode
"
}},
x
=
{
onHoverOverNode
:
function
(
b
,
a
){
var
c
=
m
.
getSetting
(
b
.
data
.
treeId
),
d
=
m
.
getRoot
(
c
);
if
(
d
.
curHoverNode
!=
a
)
x
.
onHoverOutNode
(
b
);
d
.
curHoverNode
=
a
;
f
.
addHoverDom
(
c
,
a
)},
onHoverOutNode
:
function
(
b
){
var
b
=
m
.
getSetting
(
b
.
data
.
treeId
),
a
=
m
.
getRoot
(
b
);
if
(
a
.
curHoverNode
&&!
m
.
isSelectedNode
(
b
,
a
.
curHoverNode
))
f
.
removeTreeDom
(
b
,
a
.
curHoverNode
),
a
.
curHoverNode
=
null
},
onMousedownNode
:
function
(
b
,
a
){
function
c
(
b
){
if
(
B
.
dragFlag
==
0
&&
Math
.
abs
(
O
-
b
.
clientX
)
<
e
.
edit
.
drag
.
minMoveSize
&&
Math
.
abs
(
P
-
b
.
clientY
)
<
e
.
edit
.
drag
.
minMoveSize
)
return
!
0
;
var
a
,
c
,
n
,
k
,
i
;
i
=
e
.
data
.
key
.
children
;
M
.
css
(
"
cursor
"
,
"
pointer
"
);
if
(
B
.
dragFlag
==
0
){
if
(
g
.
apply
(
e
.
callback
.
beforeDrag
,[
e
.
treeId
,
l
],
!
0
)
==!
1
)
return
r
(
b
),
!
0
;
for
(
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
){
if
(
a
==
0
)
B
.
dragNodeShowBefore
=
m
.
getSetting
(
b
.
data
.
treeId
),
a
=
m
.
getRoot
(
b
);
if
(
a
.
curHoverNode
&&!
m
.
isSelectedNode
(
b
,
a
.
curHoverNode
))
f
.
removeTreeDom
(
b
,
a
.
curHoverNode
),
a
.
curHoverNode
=
null
},
onMousedownNode
:
function
(
b
,
a
){
function
c
(
b
){
if
(
B
.
dragFlag
==
0
&&
Math
.
abs
(
O
-
b
.
clientX
)
<
e
.
edit
.
drag
.
minMoveSize
&&
Math
.
abs
(
P
-
b
.
clientY
)
<
e
.
edit
.
drag
.
minMoveSize
)
return
!
0
;
var
a
,
c
,
n
,
k
,
i
;
i
=
e
.
data
.
key
.
children
;
M
.
css
(
"
cursor
"
,
"
pointer
"
);
if
(
B
.
dragFlag
==
0
){
if
(
g
.
apply
(
e
.
callback
.
beforeDrag
,[
e
.
treeId
,
l
],
!
0
)
==!
1
)
return
r
(
b
),
!
0
;
for
(
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
){
if
(
a
==
0
)
B
.
dragNodeShowBefore
=
...
@@ -25,8 +25,8 @@ H=n?i?0.25:k?0.5:1:-1,N=k?i?0.75:n?0.5:0:-1,y=(b.clientY+y-p)/F.height(),(H==1||
...
@@ -25,8 +25,8 @@ H=n?i?0.25:k?0.5:1:-1,N=k?i?0.75:n?0.5:0:-1,y=(b.clientY+y-p)/F.height(),(H==1||
h
.
edit
.
drag
.
autoOpenTime
+
50
),
window
.
zTreeMoveTargetNodeTId
=
z
.
tId
}}
else
if
(
w
=
d
.
move
.
TYPE_INNER
,
s
&&
g
.
apply
(
h
.
edit
.
drag
.
inner
,[
h
.
treeId
,
l
,
null
],
!!
h
.
edit
.
drag
.
inner
)?
s
.
addClass
(
d
.
node
.
TMPTARGET_TREE
):
s
=
null
,
A
.
css
({
display
:
"
none
"
}),
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
T
=
u
;
U
=
w
;
e
.
treeObj
.
trigger
(
d
.
event
.
DRAGMOVE
,[
b
,
e
.
treeId
,
l
])}
return
!
1
}
function
r
(
b
){
if
(
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
U
=
T
=
h
.
edit
.
drag
.
autoOpenTime
+
50
),
window
.
zTreeMoveTargetNodeTId
=
z
.
tId
}}
else
if
(
w
=
d
.
move
.
TYPE_INNER
,
s
&&
g
.
apply
(
h
.
edit
.
drag
.
inner
,[
h
.
treeId
,
l
,
null
],
!!
h
.
edit
.
drag
.
inner
)?
s
.
addClass
(
d
.
node
.
TMPTARGET_TREE
):
s
=
null
,
A
.
css
({
display
:
"
none
"
}),
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
T
=
u
;
U
=
w
;
e
.
treeObj
.
trigger
(
d
.
event
.
DRAGMOVE
,[
b
,
e
.
treeId
,
l
])}
return
!
1
}
function
r
(
b
){
if
(
window
.
zTreeMoveTimer
)
clearTimeout
(
window
.
zTreeMoveTimer
),
window
.
zTreeMoveTargetNodeTId
=
null
;
U
=
T
=
null
;
G
.
unbind
(
"
mousemove
"
,
c
);
G
.
unbind
(
"
mouseup
"
,
r
);
G
.
unbind
(
"
selectstart
"
,
k
);
M
.
css
(
"
cursor
"
,
"
auto
"
);
s
&&
(
s
.
removeClass
(
d
.
node
.
TMPTARGET_TREE
),
u
&&
v
(
"
#
"
+
u
+
d
.
id
.
A
,
s
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
d
.
move
.
TYPE_PREV
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_NEXT
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_INNER
));
g
.
showIfameMask
(
e
,
!
1
);
t
.
showHoverDom
=!
0
;
if
(
B
.
dragFlag
!=
0
){
B
.
dragFlag
=
0
;
var
a
,
i
,
j
;
for
(
a
=
0
,
i
=
l
.
length
;
a
<
i
;
a
++
)
j
=
l
[
a
],
j
.
isParent
&&
B
.
dragNodeShowBefore
[
j
.
tId
]
&&!
j
.
open
&&
(
f
.
expandCollapseNode
(
e
,
null
;
G
.
unbind
(
"
mousemove
"
,
c
);
G
.
unbind
(
"
mouseup
"
,
r
);
G
.
unbind
(
"
selectstart
"
,
k
);
M
.
css
(
"
cursor
"
,
"
auto
"
);
s
&&
(
s
.
removeClass
(
d
.
node
.
TMPTARGET_TREE
),
u
&&
v
(
"
#
"
+
u
+
d
.
id
.
A
,
s
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
d
.
move
.
TYPE_PREV
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_NEXT
).
removeClass
(
d
.
node
.
TMPTARGET_NODE
+
"
_
"
+
J
.
move
.
TYPE_INNER
));
g
.
showIfameMask
(
e
,
!
1
);
t
.
showHoverDom
=!
0
;
if
(
B
.
dragFlag
!=
0
){
B
.
dragFlag
=
0
;
var
a
,
i
,
j
;
for
(
a
=
0
,
i
=
l
.
length
;
a
<
i
;
a
++
)
j
=
l
[
a
],
j
.
isParent
&&
B
.
dragNodeShowBefore
[
j
.
tId
]
&&!
j
.
open
&&
(
f
.
expandCollapseNode
(
e
,
j
,
!
j
.
open
),
delete
B
.
dragNodeShowBefore
[
j
.
tId
]);
D
&&
D
.
remove
();
A
&&
A
.
remove
();
var
p
=
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
||!
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
;
!
p
&&
s
&&
u
&&
l
[
0
].
parentTId
&&
u
==
l
[
0
].
parentTId
&&
w
==
d
.
move
.
TYPE_INNER
&&
(
s
=
null
);
if
(
s
){
var
q
=
u
==
null
?
null
:
m
.
getNodeCache
(
h
,
u
);
if
(
g
.
apply
(
e
.
callback
.
beforeDrop
,[
h
.
treeId
,
l
,
q
,
w
,
p
],
!
0
)
==!
1
)
f
.
selectNodes
(
x
,
l
);
else
{
var
C
=
p
?
g
.
clone
(
l
):
l
;
a
=
function
(){
if
(
K
){
if
(
!
p
)
for
(
var
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
)
f
.
removeNode
(
e
,
l
[
a
]);
w
==
d
.
move
.
TYPE_INNER
?
j
,
!
j
.
open
),
delete
B
.
dragNodeShowBefore
[
j
.
tId
]);
D
&&
D
.
remove
();
A
&&
A
.
remove
();
var
p
=
(
b
.
ctrlKey
||
b
.
metaKey
)
&&
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
||!
e
.
edit
.
drag
.
isMove
&&
e
.
edit
.
drag
.
isCopy
;
!
p
&&
s
&&
u
&&
l
[
0
].
parentTId
&&
u
==
l
[
0
].
parentTId
&&
w
==
d
.
move
.
TYPE_INNER
&&
(
s
=
null
);
if
(
s
){
var
q
=
u
==
null
?
null
:
m
.
getNodeCache
(
h
,
u
);
if
(
g
.
apply
(
e
.
callback
.
beforeDrop
,[
h
.
treeId
,
l
,
q
,
w
,
p
],
!
0
)
==!
1
)
f
.
selectNodes
(
x
,
l
);
else
{
var
C
=
p
?
g
.
clone
(
l
):
l
;
a
=
function
(){
if
(
K
){
if
(
!
p
)
for
(
var
a
=
0
,
c
=
l
.
length
;
a
<
c
;
a
++
)
f
.
removeNode
(
e
,
l
[
a
]);
w
==
d
.
move
.
TYPE_INNER
?
f
.
addNodes
(
h
,
q
,
-
1
,
C
):
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
)}
else
if
(
p
&&
w
==
d
.
move
.
TYPE_INNER
)
f
.
addNodes
(
h
,
q
,
-
1
,
C
);
else
if
(
p
)
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
);
else
if
(
w
!=
d
.
move
.
TYPE_NEXT
)
for
(
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
f
.
moveNode
(
h
,
q
,
C
[
a
],
w
,
!
1
);
else
for
(
a
=-
1
,
c
=
C
.
length
-
1
;
a
<
c
;
c
--
)
f
.
moveNode
(
h
,
q
,
C
[
c
],
w
,
!
1
);
f
.
selectNodes
(
h
,
C
);
if
(
a
=
o
(
C
[
0
],
e
).
get
(
0
))
if
(
a
.
scrollIntoView
)
a
.
scrollIntoView
(
!
1
);
else
try
{
a
.
focus
().
blur
()}
catch
(
r
){}
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,
f
.
addNodes
(
h
,
q
,
-
1
,
C
):
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
)}
else
if
(
p
&&
w
==
d
.
move
.
TYPE_INNER
)
f
.
addNodes
(
h
,
q
,
-
1
,
C
);
else
if
(
p
)
f
.
addNodes
(
h
,
q
.
getParentNode
(),
w
==
d
.
move
.
TYPE_PREV
?
q
.
getIndex
():
q
.
getIndex
()
+
1
,
C
);
else
if
(
w
!=
d
.
move
.
TYPE_NEXT
)
for
(
a
=
0
,
c
=
C
.
length
;
a
<
c
;
a
++
)
f
.
moveNode
(
h
,
q
,
C
[
a
],
w
,
!
1
);
else
for
(
a
=-
1
,
c
=
C
.
length
-
1
;
a
<
c
;
c
--
)
f
.
moveNode
(
h
,
q
,
C
[
c
],
w
,
!
1
);
f
.
selectNodes
(
h
,
C
);
a
=
o
(
C
[
0
],
e
).
get
(
0
);
f
.
scrollIntoView
(
a
);
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,[
b
,
h
.
treeId
,
C
,
q
,
w
,
p
])};
[
b
,
h
.
treeId
,
C
,
q
,
w
,
p
])};
w
==
d
.
move
.
TYPE_INNER
&&
g
.
canAsync
(
h
,
q
)?
f
.
asyncNode
(
h
,
q
,
!
1
,
a
):
a
()}}
else
f
.
selectNodes
(
x
,
l
),
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,[
b
,
e
.
treeId
,
l
,
null
,
null
,
null
])}}
function
k
(){
return
!
1
}
var
i
,
j
,
e
=
m
.
getSetting
(
b
.
data
.
treeId
),
B
=
m
.
getRoot
(
e
),
t
=
m
.
getRoots
();
if
(
b
.
button
==
2
||!
e
.
edit
.
enable
||!
e
.
edit
.
drag
.
isCopy
&&!
e
.
edit
.
drag
.
isMove
)
return
!
0
;
var
p
=
b
.
target
,
q
=
m
.
getRoot
(
e
).
curSelectedList
,
l
=
[];
if
(
m
.
isSelectedNode
(
e
,
a
))
for
(
i
=
0
,
j
=
q
.
length
;
i
<
j
;
i
++
){
if
(
q
[
i
].
editNameFlag
&&
g
.
eqs
(
p
.
tagName
,
"
input
"
)
&&
p
.
getAttribute
(
"
treeNode
"
+
w
==
d
.
move
.
TYPE_INNER
&&
g
.
canAsync
(
h
,
q
)?
f
.
asyncNode
(
h
,
q
,
!
1
,
a
):
a
()}}
else
f
.
selectNodes
(
x
,
l
),
e
.
treeObj
.
trigger
(
d
.
event
.
DROP
,[
b
,
e
.
treeId
,
l
,
null
,
null
,
null
])}}
function
k
(){
return
!
1
}
var
i
,
j
,
e
=
m
.
getSetting
(
b
.
data
.
treeId
),
B
=
m
.
getRoot
(
e
),
t
=
m
.
getRoots
();
if
(
b
.
button
==
2
||!
e
.
edit
.
enable
||!
e
.
edit
.
drag
.
isCopy
&&!
e
.
edit
.
drag
.
isMove
)
return
!
0
;
var
p
=
b
.
target
,
q
=
m
.
getRoot
(
e
).
curSelectedList
,
l
=
[];
if
(
m
.
isSelectedNode
(
e
,
a
))
for
(
i
=
0
,
j
=
q
.
length
;
i
<
j
;
i
++
){
if
(
q
[
i
].
editNameFlag
&&
g
.
eqs
(
p
.
tagName
,
"
input
"
)
&&
p
.
getAttribute
(
"
treeNode
"
+
d
.
id
.
INPUT
)
!==
null
)
return
!
0
;
l
.
push
(
q
[
i
]);
if
(
l
[
0
].
parentTId
!==
q
[
i
].
parentTId
){
l
=
[
a
];
break
}}
else
l
=
[
a
];
f
.
editNodeBlur
=!
0
;
f
.
cancelCurEditNode
(
e
);
var
G
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
),
M
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
.
body
),
D
,
A
,
s
,
K
=!
1
,
h
=
e
,
x
=
e
,
I
,
R
,
T
=
null
,
U
=
null
,
u
=
null
,
w
=
d
.
move
.
TYPE_INNER
,
O
=
b
.
clientX
,
P
=
b
.
clientY
,
L
=
(
new
Date
).
getTime
();
g
.
uCanDo
(
e
)
&&
G
.
bind
(
"
mousemove
"
,
c
);
G
.
bind
(
"
mouseup
"
,
r
);
G
.
bind
(
"
selectstart
"
,
k
);
b
.
preventDefault
&&
b
.
preventDefault
();
return
!
0
}};
v
.
extend
(
!
0
,
v
.
fn
.
zTree
.
consts
,
J
);
v
.
extend
(
!
0
,
d
.
id
.
INPUT
)
!==
null
)
return
!
0
;
l
.
push
(
q
[
i
]);
if
(
l
[
0
].
parentTId
!==
q
[
i
].
parentTId
){
l
=
[
a
];
break
}}
else
l
=
[
a
];
f
.
editNodeBlur
=!
0
;
f
.
cancelCurEditNode
(
e
);
var
G
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
),
M
=
v
(
e
.
treeObj
.
get
(
0
).
ownerDocument
.
body
),
D
,
A
,
s
,
K
=!
1
,
h
=
e
,
x
=
e
,
I
,
R
,
T
=
null
,
U
=
null
,
u
=
null
,
w
=
d
.
move
.
TYPE_INNER
,
O
=
b
.
clientX
,
P
=
b
.
clientY
,
L
=
(
new
Date
).
getTime
();
g
.
uCanDo
(
e
)
&&
G
.
bind
(
"
mousemove
"
,
c
);
G
.
bind
(
"
mouseup
"
,
r
);
G
.
bind
(
"
selectstart
"
,
k
);
b
.
preventDefault
&&
b
.
preventDefault
();
return
!
0
}};
v
.
extend
(
!
0
,
v
.
fn
.
zTree
.
consts
,
J
);
v
.
extend
(
!
0
,
v
.
fn
.
zTree
.
_z
,{
tools
:{
getAbs
:
function
(
b
){
b
=
b
.
getBoundingClientRect
();
return
[
b
.
left
+
(
document
.
body
.
scrollLeft
+
document
.
documentElement
.
scrollLeft
),
b
.
top
+
(
document
.
body
.
scrollTop
+
document
.
documentElement
.
scrollTop
)]},
inputFocus
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
g
.
setCursorPosition
(
b
.
get
(
0
),
b
.
val
().
length
))},
inputSelect
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
b
.
select
())},
setCursorPosition
:
function
(
b
,
a
){
if
(
b
.
setSelectionRange
)
b
.
focus
(),
b
.
setSelectionRange
(
a
,
a
);
else
if
(
b
.
createTextRange
){
var
c
=
b
.
createTextRange
();
v
.
fn
.
zTree
.
_z
,{
tools
:{
getAbs
:
function
(
b
){
b
=
b
.
getBoundingClientRect
();
return
[
b
.
left
+
(
document
.
body
.
scrollLeft
+
document
.
documentElement
.
scrollLeft
),
b
.
top
+
(
document
.
body
.
scrollTop
+
document
.
documentElement
.
scrollTop
)]},
inputFocus
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
g
.
setCursorPosition
(
b
.
get
(
0
),
b
.
val
().
length
))},
inputSelect
:
function
(
b
){
b
.
get
(
0
)
&&
(
b
.
focus
(),
b
.
select
())},
setCursorPosition
:
function
(
b
,
a
){
if
(
b
.
setSelectionRange
)
b
.
focus
(),
b
.
setSelectionRange
(
a
,
a
);
else
if
(
b
.
createTextRange
){
var
c
=
b
.
createTextRange
();
c
.
collapse
(
!
0
);
c
.
moveEnd
(
"
character
"
,
a
);
c
.
moveStart
(
"
character
"
,
a
);
c
.
select
()}},
showIfameMask
:
function
(
b
,
a
){
for
(
var
c
=
m
.
getRoot
(
b
);
c
.
dragMaskList
.
length
>
0
;)
c
.
dragMaskList
[
0
].
remove
(),
c
.
dragMaskList
.
shift
();
if
(
a
)
for
(
var
d
=
o
(
"
iframe
"
,
b
),
f
=
0
,
i
=
d
.
length
;
f
<
i
;
f
++
){
var
j
=
d
.
get
(
f
),
e
=
g
.
getAbs
(
j
),
j
=
o
(
"
<div id='zTreeMask_
"
+
f
+
"
' class='zTreeMask' style='top:
"
+
e
[
1
]
+
"
px; left:
"
+
e
[
0
]
+
"
px; width:
"
+
j
.
offsetWidth
+
"
px; height:
"
+
j
.
offsetHeight
+
"
px;'></div>
"
,
b
);
j
.
appendTo
(
o
(
"
body
"
,
b
));
c
.
dragMaskList
.
push
(
j
)}}},
view
:{
addEditBtn
:
function
(
b
,
c
.
collapse
(
!
0
);
c
.
moveEnd
(
"
character
"
,
a
);
c
.
moveStart
(
"
character
"
,
a
);
c
.
select
()}},
showIfameMask
:
function
(
b
,
a
){
for
(
var
c
=
m
.
getRoot
(
b
);
c
.
dragMaskList
.
length
>
0
;)
c
.
dragMaskList
[
0
].
remove
(),
c
.
dragMaskList
.
shift
();
if
(
a
)
for
(
var
d
=
o
(
"
iframe
"
,
b
),
f
=
0
,
i
=
d
.
length
;
f
<
i
;
f
++
){
var
j
=
d
.
get
(
f
),
e
=
g
.
getAbs
(
j
),
j
=
o
(
"
<div id='zTreeMask_
"
+
f
+
"
' class='zTreeMask' style='top:
"
+
e
[
1
]
+
"
px; left:
"
+
e
[
0
]
+
"
px; width:
"
+
j
.
offsetWidth
+
"
px; height:
"
+
j
.
offsetHeight
+
"
px;'></div>
"
,
b
);
j
.
appendTo
(
o
(
"
body
"
,
b
));
c
.
dragMaskList
.
push
(
j
)}}},
view
:{
addEditBtn
:
function
(
b
,
...
...
js/jquery.ztree.exhide.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree exHideNodes v3.5.2
2
* JQuery zTree exHideNodes v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
$
){
(
function
(
$
){
//default init node of exLib
//default init node of exLib
...
...
js/jquery.ztree.exhide.min.js
浏览文件 @
ed1b9171
/*
/*
* JQuery zTree exHideNodes v3.5.2
2
* JQuery zTree exHideNodes v3.5.2
3
* http://zTree.me/
* http://zTree.me/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/mit-license.php
*
*
* email: hunter.z@263.net
* email: hunter.z@263.net
* Date: 2016-0
3
-01
* Date: 2016-0
4
-01
*/
*/
(
function
(
i
){
i
.
extend
(
!
0
,
i
.
fn
.
zTree
.
_z
,{
view
:{
clearOldFirstNode
:
function
(
c
,
a
){
for
(
var
b
=
a
.
getNextNode
();
b
;){
if
(
b
.
isFirstNode
){
b
.
isFirstNode
=!
1
;
d
.
setNodeLineIcos
(
c
,
b
);
break
}
if
(
b
.
isLastNode
)
break
;
b
=
b
.
getNextNode
()}},
clearOldLastNode
:
function
(
c
,
a
,
b
){
for
(
a
=
a
.
getPreNode
();
a
;){
if
(
a
.
isLastNode
){
a
.
isLastNode
=!
1
;
b
&&
d
.
setNodeLineIcos
(
c
,
a
);
break
}
if
(
a
.
isFirstNode
)
break
;
a
=
a
.
getPreNode
()}},
makeDOMNodeMainBefore
:
function
(
c
,
a
,
b
){
c
.
push
(
"
<li
"
,
b
.
isHidden
?
"
style='display:none;'
"
:
""
,
"
id='
"
,
b
.
tId
,
"
' class='
"
,
l
.
className
.
LEVEL
,
(
function
(
i
){
i
.
extend
(
!
0
,
i
.
fn
.
zTree
.
_z
,{
view
:{
clearOldFirstNode
:
function
(
c
,
a
){
for
(
var
b
=
a
.
getNextNode
();
b
;){
if
(
b
.
isFirstNode
){
b
.
isFirstNode
=!
1
;
d
.
setNodeLineIcos
(
c
,
b
);
break
}
if
(
b
.
isLastNode
)
break
;
b
=
b
.
getNextNode
()}},
clearOldLastNode
:
function
(
c
,
a
,
b
){
for
(
a
=
a
.
getPreNode
();
a
;){
if
(
a
.
isLastNode
){
a
.
isLastNode
=!
1
;
b
&&
d
.
setNodeLineIcos
(
c
,
a
);
break
}
if
(
a
.
isFirstNode
)
break
;
a
=
a
.
getPreNode
()}},
makeDOMNodeMainBefore
:
function
(
c
,
a
,
b
){
c
.
push
(
"
<li
"
,
b
.
isHidden
?
"
style='display:none;'
"
:
""
,
"
id='
"
,
b
.
tId
,
"
' class='
"
,
l
.
className
.
LEVEL
,
b
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
showNode
:
function
(
c
,
a
){
a
.
isHidden
=!
1
;
f
.
initShowForExCheck
(
c
,
a
);
j
(
a
,
c
).
show
()},
showNodes
:
function
(
c
,
a
,
b
){
if
(
a
&&
a
.
length
!=
0
){
var
e
=
{},
g
,
k
;
for
(
g
=
0
,
k
=
a
.
length
;
g
<
k
;
g
++
){
var
h
=
a
[
g
];
if
(
!
e
[
h
.
parentTId
]){
var
i
=
h
.
getParentNode
();
e
[
h
.
parentTId
]
=
i
===
null
?
f
.
getRoot
(
c
):
h
.
getParentNode
()}
d
.
showNode
(
c
,
h
,
b
)}
for
(
var
j
in
e
)
a
=
e
[
j
][
c
.
data
.
key
.
children
],
d
.
setFirstNodeForShow
(
c
,
a
),
d
.
setLastNodeForShow
(
c
,
a
)}},
hideNode
:
function
(
c
,
a
){
a
.
isHidden
=!
0
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=
b
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
)},
showNode
:
function
(
c
,
a
){
a
.
isHidden
=!
1
;
f
.
initShowForExCheck
(
c
,
a
);
j
(
a
,
c
).
show
()},
showNodes
:
function
(
c
,
a
,
b
){
if
(
a
&&
a
.
length
!=
0
){
var
e
=
{},
g
,
k
;
for
(
g
=
0
,
k
=
a
.
length
;
g
<
k
;
g
++
){
var
h
=
a
[
g
];
if
(
!
e
[
h
.
parentTId
]){
var
i
=
h
.
getParentNode
();
e
[
h
.
parentTId
]
=
i
===
null
?
f
.
getRoot
(
c
):
h
.
getParentNode
()}
d
.
showNode
(
c
,
h
,
b
)}
for
(
var
j
in
e
)
a
=
e
[
j
][
c
.
data
.
key
.
children
],
d
.
setFirstNodeForShow
(
c
,
a
),
d
.
setLastNodeForShow
(
c
,
a
)}},
hideNode
:
function
(
c
,
a
){
a
.
isHidden
=!
0
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=
...
...
log v3.x.txt
浏览文件 @
ed1b9171
...
@@ -14,234 +14,237 @@
...
@@ -14,234 +14,237 @@
</font>
</font>
*2016.04.01* v3.5.23
* [修改] selectNode 方法 增加 isSilent 参数,可以禁止 选中节点时,自动滚动到视图
*2016.03.01* v3.5.22
*2016.03.01* v3.5.22
*
【修改】
metro Demo 的样式错误
*
[修改]
metro Demo 的样式错误
*
【修改】
增加 <a> 的 padding 后, 导致 setting.edit.drag.inner 无效
*
[修改]
增加 <a> 的 padding 后, 导致 setting.edit.drag.inner 无效
*2016.02.17* v3.5.21
*2016.02.17* v3.5.21
*
【修改】
zTree js 文件名 (为了便于发布到 https://cdnjs.com/)
*
[修改]
zTree js 文件名 (为了便于发布到 https://cdnjs.com/)
*2016.01.20* v3.5.20
*2016.01.20* v3.5.20
*
【修改】
checkAllNodes() 方法不处理 (chkDisabled = true) 的父节点的子节点的 bug
*
[修改]
checkAllNodes() 方法不处理 (chkDisabled = true) 的父节点的子节点的 bug
*2015.12.04* v3.5.19.3
*2015.12.04* v3.5.19.3
*
【修改】
为避免定位节点时抢焦点, 使用 scrollIntoView 方法替换之前的 focus 方法(对于IE6等旧浏览器仍然使用 focus方法)
*
[修改]
为避免定位节点时抢焦点, 使用 scrollIntoView 方法替换之前的 focus 方法(对于IE6等旧浏览器仍然使用 focus方法)
*2015.11.15* v3.5.19.2
*2015.11.15* v3.5.19.2
*
【增加】
给节点名称的 span 标签增加 class,便于用户设置 css
*
[增加]
给节点名称的 span 标签增加 class,便于用户设置 css
*2015.10.26* v3.5.19.1
*2015.10.26* v3.5.19.1
*
【修改】
addNodes 新方法 导致 拖拽节点时报错
*
[修改]
addNodes 新方法 导致 拖拽节点时报错
*
【增加】
treeNode.getIndex 方法,可以快速获取 节点在 子节点中的位置
*
[增加]
treeNode.getIndex 方法,可以快速获取 节点在 子节点中的位置
*
【增加】
treeNode.getPath 方法,可以快速获取 节点的所有父节点
*
[增加]
treeNode.getPath 方法,可以快速获取 节点的所有父节点
*2015.10.22* v3.5.19
*2015.10.22* v3.5.19
*
【修改】
addNodes 方法支持直接添加新节点到任意位置 addNodes(parentNode, index, newNodes, isSilent)
*
[修改]
addNodes 方法支持直接添加新节点到任意位置 addNodes(parentNode, index, newNodes, isSilent)
*
【修改】
selectstart 事件未解绑导致的内存泄漏
*
[修改]
selectstart 事件未解绑导致的内存泄漏
*2015.08.26* v3.5.18
*2015.08.26* v3.5.18
*
【修改】
onSelected/onUnSelected 回调参数,由 (event, treeId, node) 修改为 (treeId, node);另外 删除 已选择的节点时,也会触发 onUnSelected 回调
*
[修改]
onSelected/onUnSelected 回调参数,由 (event, treeId, node) 修改为 (treeId, node);另外 删除 已选择的节点时,也会触发 onUnSelected 回调
*
【增加】
Allow nodes to specify their own icon using an 'icon' property of the 'setting.data.key'
*
[增加]
Allow nodes to specify their own icon using an 'icon' property of the 'setting.data.key'
*
【增加】
metro 风格 demo
*
[增加]
metro 风格 demo
*
【增加】
awesome 风格 demo
*
[增加]
awesome 风格 demo
*
【增加】
回调 onSelected / onUnSelected
*
[增加]
回调 onSelected / onUnSelected
*2015.02.15* v3.5.17
*2015.02.15* v3.5.17
*
【修改】
excheck 扩展中 removeClass 与 jQueryUI 1.9 冲突的问题,目前放弃 removeClass 方法
*
[修改]
excheck 扩展中 removeClass 与 jQueryUI 1.9 冲突的问题,目前放弃 removeClass 方法
*
【修改】
优化 exhide 扩展包初始化效率,避免数据多时 ie8 假死的 bug(感谢:https://github.com/sarxos)
*
[修改]
优化 exhide 扩展包初始化效率,避免数据多时 ie8 假死的 bug(感谢:https://github.com/sarxos)
*
【修改】
若干 Demo & API 的小错误
*
[修改]
若干 Demo & API 的小错误
*
【修改】
异步加载 低版本 IE 缓存严重的问题
*
[修改]
异步加载 低版本 IE 缓存严重的问题
*
【修改】
在 onRename 回调中使用 updateNode 方法无效的问题
*
[修改]
在 onRename 回调中使用 updateNode 方法无效的问题
*2014.03.09* v3.5.16
*2014.03.09* v3.5.16
*
【增加】
onDragMove 回调,便于控制 zTree 节点与其他 DOM 的拖拽操作。(感谢 yumi301)
*
[增加]
onDragMove 回调,便于控制 zTree 节点与其他 DOM 的拖拽操作。(感谢 yumi301)
*
【增加】
针对 Mac 系统 Cmd 键的支持, Cmd 键 + 左键 也可以多选节点
*
[增加]
针对 Mac 系统 Cmd 键的支持, Cmd 键 + 左键 也可以多选节点
*
【修改】
使用 destory 方法销毁树以后,依然可以从 getZTreeObj 方法中获取到 zTree 对象的 bug。
*
[修改]
使用 destory 方法销毁树以后,依然可以从 getZTreeObj 方法中获取到 zTree 对象的 bug。
*
【修改】
onCheck 回调的 event,恢复为 zTree 自身的 event 事件,同时利用 srcEvent 传递原始 event 对象。(感谢 yumi301)
*
[修改]
onCheck 回调的 event,恢复为 zTree 自身的 event 事件,同时利用 srcEvent 传递原始 event 对象。(感谢 yumi301)
*
【修改】
拖拽多个节点时,超出 maxShowNodeNum 设置个数的节点会失去 被选择状态的 bug
*
[修改]
拖拽多个节点时,超出 maxShowNodeNum 设置个数的节点会失去 被选择状态的 bug
*
【修改】
excheck & exedit 扩展包的 zTree 方法中 setting 数据错误导致 checkNode、updateNode 等方法操作 radio 失效的 bug
*
[修改]
excheck & exedit 扩展包的 zTree 方法中 setting 数据错误导致 checkNode、updateNode 等方法操作 radio 失效的 bug
*
【修改】
不加载 exedit 扩展包时,使用 removeNode 方法无法触发 beforeRemove 和 onRemove 回调的 bug
*
[修改]
不加载 exedit 扩展包时,使用 removeNode 方法无法触发 beforeRemove 和 onRemove 回调的 bug
*2013.10.19* v3.5.15
*2013.10.19* v3.5.15
*
【增加】
setting.view.txtSelectedEnable 属性,满足部分项目中客户对于可以选择节点文本信息的强烈欲望。
*
[增加]
setting.view.txtSelectedEnable 属性,满足部分项目中客户对于可以选择节点文本信息的强烈欲望。
*
【修改】
exhide 扩展包导致操作子节点后 isLastNode 属性异常 的bug
*
[修改]
exhide 扩展包导致操作子节点后 isLastNode 属性异常 的bug
*
【修改】
使用 cancelEditName 方法时,beforeRename & onRename 的 isCancel 始终为 false 的bug
*
[修改]
使用 cancelEditName 方法时,beforeRename & onRename 的 isCancel 始终为 false 的bug
*
【修改】
编辑状态, beforeRename 回调 return false 时,提示信息导致 input 失去焦点后, 当树再次得到焦点时,让 input 自动获取焦点
*
[修改]
编辑状态, beforeRename 回调 return false 时,提示信息导致 input 失去焦点后, 当树再次得到焦点时,让 input 自动获取焦点
*
【修改】
判断拖拽到节点的 <a> 标签中自定义的无 id 组件判断错误的bug
*
[修改]
判断拖拽到节点的 <a> 标签中自定义的无 id 组件判断错误的bug
*
【修改】
async_edit.html demo 中 添加按钮 显示的 bug
*
[修改]
async_edit.html demo 中 添加按钮 显示的 bug
*
【修改】
当没有开启异步加载模式下,对于没有子节点的父节点,即使设置 open=true 在初始化时也不会设置为展开状态的bug (对于异步加载模式下依然会强行设置为折叠状态)
*
[修改]
当没有开启异步加载模式下,对于没有子节点的父节点,即使设置 open=true 在初始化时也不会设置为展开状态的bug (对于异步加载模式下依然会强行设置为折叠状态)
*2013.06.28* v3.5.14
*2013.06.28* v3.5.14
*
【修改】
拖拽节点时 iframe 遮罩异常的bug
*
[修改]
拖拽节点时 iframe 遮罩异常的bug
*
【修改】
清空子节点后重新添加子节点无法显示的bug
*
[修改]
清空子节点后重新添加子节点无法显示的bug
*2013.06.02* v3.5.13
*2013.06.02* v3.5.13
*
【增加】
beforeRename & onRename 增加 isCancel 参数,可以监控用户 ESC 取消编辑的事件
*
[增加]
beforeRename & onRename 增加 isCancel 参数,可以监控用户 ESC 取消编辑的事件
*
【修改】
初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug
*
[修改]
初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug
*
【修改】
多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。
*
[修改]
多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。
*
【修改】
多棵树拖拽时,会触发 addHoverDom 的bug。
*
[修改]
多棵树拖拽时,会触发 addHoverDom 的bug。
*
【修改】
多棵树拖拽时,由于 beforeDrog 或 prev / inner / next 返回 false 后未触发原始节点的 addHoverDom 的bug
*
[修改]
多棵树拖拽时,由于 beforeDrog 或 prev / inner / next 返回 false 后未触发原始节点的 addHoverDom 的bug
*
【修改】
异步加载时,对于未加载子节点的父节点使用 expandNode 方法时, sonSign 设置为 true后,导致异步加载的节点无法正常显示的bug
*
[修改]
异步加载时,对于未加载子节点的父节点使用 expandNode 方法时, sonSign 设置为 true后,导致异步加载的节点无法正常显示的bug
*
【修改】
一次性加载全部数据,如果父节点 A 未展开,但下一级的父节点 A1 设置了 open=true 的时候,使用 expandAll 方法导致 A1 的下一级父节点出现重复的 bug
*
[修改]
一次性加载全部数据,如果父节点 A 未展开,但下一级的父节点 A1 设置了 open=true 的时候,使用 expandAll 方法导致 A1 的下一级父节点出现重复的 bug
*
【修改】
增加对 iframe 的支持,可以只在主页面加载 zTree 的 js,在 iframe 内创建树 [https://github.com/zTree/zTree_v3/issues/7 Issue Info]
*
[修改]
增加对 iframe 的支持,可以只在主页面加载 zTree 的 js,在 iframe 内创建树 [https://github.com/zTree/zTree_v3/issues/7 Issue Info]
*
【修改】
引入 exhide 扩展包 导致页面上同时加载多棵树时,根节点 的 连接线图标出现异常 的 bug [http://tieba.baidu.com/p/2277416574]
*
[修改]
引入 exhide 扩展包 导致页面上同时加载多棵树时,根节点 的 连接线图标出现异常 的 bug [http://tieba.baidu.com/p/2277416574]
*
【修改】
excheck & exedit 扩展包中事件代理获取节点 tId 的方法,保证适当修改 DOM 结构也能得到 tId
*
[修改]
excheck & exedit 扩展包中事件代理获取节点 tId 的方法,保证适当修改 DOM 结构也能得到 tId
*2013.03.11* v3.5.12
*2013.03.11* v3.5.12
*
【修改】
由于 jquery 1.9 中移除 event.srcElement 导致的 js 报错的bug。
*
[修改]
由于 jquery 1.9 中移除 event.srcElement 导致的 js 报错的bug。
*
【修改】
在异步加载模式下,使用 moveNode 方法,且 moveType != "inner" 时,也会导致 targetNode 自动加载子节点的 bug
*
[修改]
在异步加载模式下,使用 moveNode 方法,且 moveType != "inner" 时,也会导致 targetNode 自动加载子节点的 bug
*
【修改】
对已经显示的节点(nochecked=true)使用 showNodes 或 showNode 方法后,导致勾选框出现的bug。
*
[修改]
对已经显示的节点(nochecked=true)使用 showNodes 或 showNode 方法后,导致勾选框出现的bug。
*
【修改】
对已经隐藏的节点(nochecked=false)使用 hideNodes 或 hideNode 方法后,导致勾选框消失的bug。
*
[修改]
对已经隐藏的节点(nochecked=false)使用 hideNodes 或 hideNode 方法后,导致勾选框消失的bug。
*
【修改】
getNodesByParamFuzzy 支持 大小写模糊。
*
[修改]
getNodesByParamFuzzy 支持 大小写模糊。
*
【修改】
className 结构,提取 _consts.className.BUTTON / LEVEL / ICO_LOADING / SWITCH,便于快速修改 css 冲突。
*
[修改]
className 结构,提取 _consts.className.BUTTON / LEVEL / ICO_LOADING / SWITCH,便于快速修改 css 冲突。
例如:与 WordPress 产生冲突后,直接修改 core 中的 "button" 和 "level" 即可。 Issue: https://github.com/zTree/zTree_v3/issues/2
例如:与 WordPress 产生冲突后,直接修改 core 中的 "button" 和 "level" 即可。 Issue: https://github.com/zTree/zTree_v3/issues/2
*2013.01.28* v3.5.02
*2013.01.28* v3.5.02
*
【增加】
setting.check.chkDisabledInherit 属性,用于设置 chkDisabled 在初始化时子节点是否可以继承父节点的 chkDisabled 属性
*
[增加]
setting.check.chkDisabledInherit 属性,用于设置 chkDisabled 在初始化时子节点是否可以继承父节点的 chkDisabled 属性
*
【删除】
内部 noSel 方法,使用 selectstart事件 和 "-moz-user-select"样式 处理禁止 节点文字被选择的功能
*
[删除]
内部 noSel 方法,使用 selectstart事件 和 "-moz-user-select"样式 处理禁止 节点文字被选择的功能
*
【修改】
不兼容 jQuery 1.9 的bug
*
[修改]
不兼容 jQuery 1.9 的bug
*
【修改】
onDrop 的触发规则,保证异步加载模式下,可以在延迟加载结束后触发,避免 onDrop 中被拖拽的节点是已经更新后的数据。
*
[修改]
onDrop 的触发规则,保证异步加载模式下,可以在延迟加载结束后触发,避免 onDrop 中被拖拽的节点是已经更新后的数据。
*
【修改】
setChkDisabled 方法,增加 inheritParent, inheritChildren 参数设置是否让父子节点继承 disabled
*
[修改]
setChkDisabled 方法,增加 inheritParent, inheritChildren 参数设置是否让父子节点继承 disabled
*
【修改】
异步加载时 拼接参数的方法,由 string 修改为 json 对象
*
[修改]
异步加载时 拼接参数的方法,由 string 修改为 json 对象
*
【修正】
1-2-3 3级节点时,如果 2级节点 全部设置为 nocheck 或 chkDisabled后,勾选3级节点时,1级节点的半勾选状态错误的 bug
*
[修正]
1-2-3 3级节点时,如果 2级节点 全部设置为 nocheck 或 chkDisabled后,勾选3级节点时,1级节点的半勾选状态错误的 bug
*
【修改】
Demo: checkbox_nocheck.html & checkbox_chkDisabled.html;
*
[修改]
Demo: checkbox_nocheck.html & checkbox_chkDisabled.html;
*
【修改】
Demo: edit_super.html,增加 showRenameBtn & showRemoveBtn 的演示
*
[修改]
Demo: edit_super.html,增加 showRenameBtn & showRemoveBtn 的演示
*
【修改】
Demo: asyncForAll, 将 post 修改为 get;为了避免由于 IE10 的 bug 造成的客户端 以及 服务端崩溃
*
[修改]
Demo: asyncForAll, 将 post 修改为 get;为了避免由于 IE10 的 bug 造成的客户端 以及 服务端崩溃
IE10 ajax Post 无法提交参数的bug (http://bugs.jquery.com/ticket/12790)
IE10 ajax Post 无法提交参数的bug (http://bugs.jquery.com/ticket/12790)
*2012.12.21* v3.5.01
*2012.12.21* v3.5.01
*
【优化】
clone 方法
*
[优化]
clone 方法
*
【修正】
对于初始化无 children 属性的父节点进行 reAsyncChildNodes 操作时出错的 bug
*
[修正]
对于初始化无 children 属性的父节点进行 reAsyncChildNodes 操作时出错的 bug
*
【修正】
beforeRename 回调中使用 cancelEditName 方法后,再 return false 导致无法重新进行编辑的 bug
*
[修正]
beforeRename 回调中使用 cancelEditName 方法后,再 return false 导致无法重新进行编辑的 bug
*
【修正】
exedit 扩展包让 setting.data.key.url 失效的 bug
*
[修正]
exedit 扩展包让 setting.data.key.url 失效的 bug
*
【修正】
setting.check.autoCheckTrigger 设置为 true 时,onCheck 回调缺少 event 参数的 bug
*
[修正]
setting.check.autoCheckTrigger 设置为 true 时,onCheck 回调缺少 event 参数的 bug
*
【修正】
singlepath.html Demo 中的 bug
*
[修正]
singlepath.html Demo 中的 bug
*2012.11.20* v3.5
*2012.11.20* v3.5
*
【优化】
原先的 clone 方法 (特别感谢:愚人码头)
*
[优化]
原先的 clone 方法 (特别感谢:愚人码头)
*
【修改】
隐藏父节点后,使用 expandAll 方法导致 父节点展开的 bug
*
[修改]
隐藏父节点后,使用 expandAll 方法导致 父节点展开的 bug
*
【修改】
使用 jQuery v1.7 以上时,设置 zTree 容器 ul 隐藏(visibility: hidden;)后, 调用 selectNode 导致 IE 浏览器报错 Can't move focus 的 bug
*
[修改]
使用 jQuery v1.7 以上时,设置 zTree 容器 ul 隐藏(visibility: hidden;)后, 调用 selectNode 导致 IE 浏览器报错 Can't move focus 的 bug
*
【修改】
正在异步加载时,执行 destory 或 init 方法后,异步加载的节点影响新树的 bug
*
[修改]
正在异步加载时,执行 destory 或 init 方法后,异步加载的节点影响新树的 bug
*
【修改】
方法 reAsyncChildNodes 在 refresh 的时候未清空内部 cache 导致内存泄露 的 bug
*
[修改]
方法 reAsyncChildNodes 在 refresh 的时候未清空内部 cache 导致内存泄露 的 bug
*
【修改】
批量节点拖拽到其他父节点内(inner)时,导致顺序反转 的 bug
*
[修改]
批量节点拖拽到其他父节点内(inner)时,导致顺序反转 的 bug
*
【修改】
对于 使用 html格式的 节点无法触发 双击事件 的 bug
*
[修改]
对于 使用 html格式的 节点无法触发 双击事件 的 bug
*
【修改】
onCheck 回调中的 event ,保证与触发事件中的 event 一致
*
[修改]
onCheck 回调中的 event ,保证与触发事件中的 event 一致
*
【修改】
异步加载时,在 onNodeCreated 中执行 selectNode 后,导致节点折叠的 bug
*
[修改]
异步加载时,在 onNodeCreated 中执行 selectNode 后,导致节点折叠的 bug
*
【修改】
API 中 dataFilter 的参数名称 childNodes -> responseData
*
[修改]
API 中 dataFilter 的参数名称 childNodes -> responseData
*
【修改】
API 中 iconSkin 的 举例内容
*
[修改]
API 中 iconSkin 的 举例内容
*
【修改】
API 中 chkDisabled 的说明
*
[修改]
API 中 chkDisabled 的说明
*
【修改】
Demo 中 index.html 内的 loadReady 重复绑定问题
*
[修改]
Demo 中 index.html 内的 loadReady 重复绑定问题
*2012.09.03* v3.4
*2012.09.03* v3.4
*
【增加】
Demo —— OutLook 样式的左侧菜单
*
[增加]
Demo —— OutLook 样式的左侧菜单
*
【增加】
清空 zTree 的方法 $.fn.zTree.destory(treeId) & zTree.destory()
*
[增加]
清空 zTree 的方法 $.fn.zTree.destory(treeId) & zTree.destory()
*
【修改】
core核心文件内 _eventProxy 方法中获取 tId 的方法,提高 DOM 的灵活性
*
[修改]
core核心文件内 _eventProxy 方法中获取 tId 的方法,提高 DOM 的灵活性
*
【修改】
初始化时 多层父节点的 checkbox 半选状态计算错误的 bug
*
[修改]
初始化时 多层父节点的 checkbox 半选状态计算错误的 bug
*
【修改】
同时选中父、子节点后,利用 getSelectedNodes 获取选中节点并利用 removeNode 删除时报错的 bug
*
[修改]
同时选中父、子节点后,利用 getSelectedNodes 获取选中节点并利用 removeNode 删除时报错的 bug
*
【修改】
treeNode.chkDisabled / nocheck 属性,支持字符串格式的 "false"/"true"
*
[修改]
treeNode.chkDisabled / nocheck 属性,支持字符串格式的 "false"/"true"
*
【修改】
异步加载模式下无法利用 server 返回 xml 并且 在 dataFilter 中继续处理的 bug
*
[修改]
异步加载模式下无法利用 server 返回 xml 并且 在 dataFilter 中继续处理的 bug
*
【修改】
title 只允许设置为 string 类型值的问题。 修正后允许设置为 number 类型的值
*
[修改]
title 只允许设置为 string 类型值的问题。 修正后允许设置为 number 类型的值
*
【修改】
zId 计数规则 & Cache 保存,减少 IE9 的 bug 造成的内存泄漏
*
[修改]
zId 计数规则 & Cache 保存,减少 IE9 的 bug 造成的内存泄漏
*
【修改】
API 页面搜索功能导致 IE 崩溃的 bug
*
[修改]
API 页面搜索功能导致 IE 崩溃的 bug
*2012.07.16* v3.3
*2012.07.16* v3.3
*
【增加】
扩展库 exhide -- 节点隐藏功能
*
[增加]
扩展库 exhide -- 节点隐藏功能
*
【修改】
getNodesByFilter 方法,添加 invokeParam 自定义参数
*
[修改]
getNodesByFilter 方法,添加 invokeParam 自定义参数
*
【修改】
拖拽中测试代码未删除,导致出现黄颜色的 iframe 遮罩层的 bug
*
[修改]
拖拽中测试代码未删除,导致出现黄颜色的 iframe 遮罩层的 bug
*
【修改】
延迟加载方法 对于使用 expandAll 进行全部展开时,导致 onNodeCreated 回调 和 addDiyDom 方法触发过早的 bug
*
[修改]
延迟加载方法 对于使用 expandAll 进行全部展开时,导致 onNodeCreated 回调 和 addDiyDom 方法触发过早的 bug
*
【修改】
使用 moveNode 移动尚未生成 DOM 的节点时,视图会出现异常的 bug
*
[修改]
使用 moveNode 移动尚未生成 DOM 的节点时,视图会出现异常的 bug
*
【修改】
删除节点后,相关节点的 isFirstNode 属性未重置的 bug
*
[修改]
删除节点后,相关节点的 isFirstNode 属性未重置的 bug
*
【修改】
getPreNode(),getNextNode() 方法在对于特殊情况时计算错误的 bug
*
[修改]
getPreNode(),getNextNode() 方法在对于特殊情况时计算错误的 bug
*
【修改】
设置 title 之后,如果重新将 title 内容设置为空后,会导致无法更新 title 的 bug
*
[修改]
设置 title 之后,如果重新将 title 内容设置为空后,会导致无法更新 title 的 bug
*
【修改】
针对 setting.check.chkStyle=="radio" && setting.check.radioType=="all" 的情况时,getTreeCheckedNodes方法优化,找到一个结果就 break
*
[修改]
针对 setting.check.chkStyle=="radio" && setting.check.radioType=="all" 的情况时,getTreeCheckedNodes方法优化,找到一个结果就 break
*
【修改】
zTreeObj.getCheckedNodes(false) 在 radioType = "all" 时计算错误的 bug
*
[修改]
zTreeObj.getCheckedNodes(false) 在 radioType = "all" 时计算错误的 bug
*
【修改】
完善 API 中 beforeDrop / onDrop 的关于 treeId 的说明
*
[修改]
完善 API 中 beforeDrop / onDrop 的关于 treeId 的说明
*2012.05.13* v3.2
*2012.05.13* v3.2
*
【增加】
setting.data.key.url 允许修改 treeNode.url 属性
*
[增加]
setting.data.key.url 允许修改 treeNode.url 属性
*
【增加】
getNodesByFilter(filter, isSingle) 方法
*
[增加]
getNodesByFilter(filter, isSingle) 方法
*
【增加】
"与其他 DOM 拖拽互动" 的 Demo (http://www.ztree.me/v3/demo.php#_511)
*
[增加]
"与其他 DOM 拖拽互动" 的 Demo (http://www.ztree.me/v3/demo.php#_511)
*
【增加】
"异步加载模式下全部展开" 的 Demo (http://www.ztree.me/v3/demo.php#_512)
*
[增加]
"异步加载模式下全部展开" 的 Demo (http://www.ztree.me/v3/demo.php#_512)
*
【修改】
代码结构,将 addNodes、removeNode、removeChildNodes 方法 和 beforeRemove、onRemove 回调 转移到 core 内
*
[修改]
代码结构,将 addNodes、removeNode、removeChildNodes 方法 和 beforeRemove、onRemove 回调 转移到 core 内
*
【修改】
IE7的环境下无子节点的父节点反复展开出现多余空行的 bug
*
[修改]
IE7的环境下无子节点的父节点反复展开出现多余空行的 bug
*
【修改】
异步加载时,如果出现网络异常等,会导致 图标显示错误的 bug
*
[修改]
异步加载时,如果出现网络异常等,会导致 图标显示错误的 bug
*
【修改】
dataFilter中 return null 导致异常 的 bug
*
[修改]
dataFilter中 return null 导致异常 的 bug
*
【修改】
removeChildNodes 方法清空子节点后,无法正常添加节点的 bug
*
[修改]
removeChildNodes 方法清空子节点后,无法正常添加节点的 bug
*
【修改】
moveNode 后节点中的自定义元素的事件丢失的 bug
*
[修改]
moveNode 后节点中的自定义元素的事件丢失的 bug
*
【修改】
moveNode 方法中设置 isSilent = true 时,如果移动到已展开的 父节点后,出现异常的 bug
*
[修改]
moveNode 方法中设置 isSilent = true 时,如果移动到已展开的 父节点后,出现异常的 bug
*
【修改】
onClick/onDrag/onDrop 回调中 event 不是原始 event 的 bug
*
[修改]
onClick/onDrag/onDrop 回调中 event 不是原始 event 的 bug
*
【修改】
onDrop 回调中 当拖拽无效时,无法获得 treeNodes 的 bug
*
[修改]
onDrop 回调中 当拖拽无效时,无法获得 treeNodes 的 bug
*
【修改】
onDrop 无法判断拖拽是 移动还是复制的问题
*
[修改]
onDrop 无法判断拖拽是 移动还是复制的问题
*
【修改】
未开启异步加载模式时,拖拽节点到子节点为空的父节点内时 出现异常 的 bug
*
[修改]
未开启异步加载模式时,拖拽节点到子节点为空的父节点内时 出现异常 的 bug
*
【修改】
拖拽过程中,反复在 父节点图标上划动时,会出现停顿的 bug
*
[修改]
拖拽过程中,反复在 父节点图标上划动时,会出现停顿的 bug
(需要css 结构—— button -> span.button)
(需要css 结构—— button -> span.button)
*
【修改】
拖拽操作时箭头 与 targetNode 背景之间的细节现实问题,便于用户拖拽时更容易区分 prev、next 和 inner 操作
*
[修改]
拖拽操作时箭头 与 targetNode 背景之间的细节现实问题,便于用户拖拽时更容易区分 prev、next 和 inner 操作
*
【修改】
拖拽操作时IE6/7 下 在 节点<a> 右侧 10px 内会导致 targetNode = root 的 bug
*
[修改]
拖拽操作时IE6/7 下 在 节点<a> 右侧 10px 内会导致 targetNode = root 的 bug
*
【修改】
编辑模式下 默认的编辑按钮、删除按钮点击后,如果相应的 before 回调 return false 时会触发 onClick 回调的 bug
*
[修改]
编辑模式下 默认的编辑按钮、删除按钮点击后,如果相应的 before 回调 return false 时会触发 onClick 回调的 bug
*2012.02.14* v3.1
*2012.02.14* v3.1
*
【增加】
ajax 的参数 setting.async.contentType ,让提交参数适用于 json 数据提交 (主要适用于 .Net 的开发)。
*
[增加]
ajax 的参数 setting.async.contentType ,让提交参数适用于 json 数据提交 (主要适用于 .Net 的开发)。
*
【增加】
setting.edit.editNameSelectAll, 用于设定编辑节点名称时初次显示 input 后 text 内容为全选
*
[增加]
setting.edit.editNameSelectAll, 用于设定编辑节点名称时初次显示 input 后 text 内容为全选
*
【修改】
异步加载 规则,不再仅仅依靠父节点的子节点数来判定,增加内部属性 zAsync,保证默认状态下父节点及时无子节点也只能异步加载一次,除非使用 reAsyncChildNodes 方法强行控制异步加载。
*
[修改]
异步加载 规则,不再仅仅依靠父节点的子节点数来判定,增加内部属性 zAsync,保证默认状态下父节点及时无子节点也只能异步加载一次,除非使用 reAsyncChildNodes 方法强行控制异步加载。
*
【修改】
放大浏览器后导致 界面出现多余连接线的bug (需要更新:icon 图标和 css )
*
[修改]
放大浏览器后导致 界面出现多余连接线的bug (需要更新:icon 图标和 css )
*
【修改】
在编辑状态,如果节点名超过编辑框宽度,左右键在框内不起作用的bug(IE 6 7 8 出现)
*
[修改]
在编辑状态,如果节点名超过编辑框宽度,左右键在框内不起作用的bug(IE 6 7 8 出现)
CSS 中 filter:alpha(opacity=80) 造成的,应该是 ie 的 bug,需要更新 css 文件
CSS 中 filter:alpha(opacity=80) 造成的,应该是 ie 的 bug,需要更新 css 文件
*
【修改】
title 设置后,如果属性不存在,则默认为 title 为空,便于数据容错和用户灵活使用
*
[修改]
title 设置后,如果属性不存在,则默认为 title 为空,便于数据容错和用户灵活使用
*
【修改】
editName 方法如果针对尚未展开的 父节点,会导致该父节点自动展开的 bug
*
[修改]
editName 方法如果针对尚未展开的 父节点,会导致该父节点自动展开的 bug
*
【修改】
title 中存在标签时导致 title 显示异常的bug(例如:蓝色字22%"'`<input/>`)
*
[修改]
title 中存在标签时导致 title 显示异常的bug(例如:蓝色字22%"'`<input/>`)
*2012.01.10* v3.0
*2012.01.10* v3.0
*
【增加】
setting.check.autoCheckTrigger 默认值 false,可以设置联动选中时是否触发事件回调函数
*
[增加]
setting.check.autoCheckTrigger 默认值 false,可以设置联动选中时是否触发事件回调函数
*
【增加】
setting.callback.beforeEditName 回调函数,以保证用户可以捕获点击编辑按钮的事件
*
[增加]
setting.callback.beforeEditName 回调函数,以保证用户可以捕获点击编辑按钮的事件
*
【增加】
treeNode.chkDisabled 属性,显示 checkbox 但是用户无法修改 checkbox 状态,并且该 checkbox 会影响父节点的 checkbox 的半选状态
*
[增加]
treeNode.chkDisabled 属性,显示 checkbox 但是用户无法修改 checkbox 状态,并且该 checkbox 会影响父节点的 checkbox 的半选状态
*
【增加】
setting.check.nocheckInherit 属性,用户设置子节点继承 nocheck 属性,用于批量初始化节点,不适用于已经显示的节点
*
[增加]
setting.check.nocheckInherit 属性,用户设置子节点继承 nocheck 属性,用于批量初始化节点,不适用于已经显示的节点
*
【增加】
setting.edit.drag.autoExpandTrigger 默认值 false,可以设置自动展开、折叠操作时是否触发事件回调函数
*
[增加]
setting.edit.drag.autoExpandTrigger 默认值 false,可以设置自动展开、折叠操作时是否触发事件回调函数
*
【增加】
setting.view.nameIsHTML 默认值 false,允许用户对 name 设置 DOM 对象
*
[增加]
setting.view.nameIsHTML 默认值 false,允许用户对 name 设置 DOM 对象
*
【增加】
treeNode.click 属性的说明文档
*
[增加]
treeNode.click 属性的说明文档
*
【增加】
treeObj.setChkDisabled 方法用于设置 checkbox / radio disabled 状态
*
[增加]
treeObj.setChkDisabled 方法用于设置 checkbox / radio disabled 状态
*
【增加】
treeNode.halfCheck 属性,用于强制设定节点的半选状态
*
[增加]
treeNode.halfCheck 属性,用于强制设定节点的半选状态
*
【修改】
异步加载 & 编辑功能 共存时,拖拽节点 或 增加节点 导致 ie 上报错的 bug (apply 方法引起)
*
[修改]
异步加载 & 编辑功能 共存时,拖拽节点 或 增加节点 导致 ie 上报错的 bug (apply 方法引起)
*
【修改】
zTreeStyle 样式冲突
*
[修改]
zTreeStyle 样式冲突
*
【修改】
setting.data.key.title 默认值设置为 "",初始化时自动赋值为 setting.data.key.name 这样可避免希望 title 与 name 一致的用户反复设置参数
*
[修改]
setting.data.key.title 默认值设置为 "",初始化时自动赋值为 setting.data.key.name 这样可避免希望 title 与 name 一致的用户反复设置参数
*
【修改】
点击叶子节点的连接线会触发 expand 事件的 bug
*
[修改]
点击叶子节点的连接线会触发 expand 事件的 bug
*
【修改】
IE 下 点击叶子节点连线会出现虚线框的 bug
*
[修改]
IE 下 点击叶子节点连线会出现虚线框的 bug
*
【修改】
updateNode 导致 checkbox 半选状态错误的 bug
*
[修改]
updateNode 导致 checkbox 半选状态错误的 bug
*
【修改】
checkNode 方法实现 toggle 操作, 取消 expandAll 方法的 toggle 操作
*
[修改]
checkNode 方法实现 toggle 操作, 取消 expandAll 方法的 toggle 操作
*
【修改】
zTree 内鼠标移动会抢页面上 input 内的焦点的 bug
*
[修改]
zTree 内鼠标移动会抢页面上 input 内的焦点的 bug
*
【修改】
beforeRename / onRename 的触发方式——即使名称内容未改变也会触发,便于用户配合 beforeEditName 捕获编辑状态的结束,赋予用户更多调整规则的权利
*
[修改]
beforeRename / onRename 的触发方式——即使名称内容未改变也会触发,便于用户配合 beforeEditName 捕获编辑状态的结束,赋予用户更多调整规则的权利
*
【修改】
与 easyUI 共存时无法拖拽的bug
*
[修改]
与 easyUI 共存时无法拖拽的bug
*
【修改】
beforeRename 在 Firefox 下如果利用 alert,会触发两次的 bug
*
[修改]
beforeRename 在 Firefox 下如果利用 alert,会触发两次的 bug
*
【修改】
checkNode/expandNode/removeNode 方法,默认不触发回调函数,恢复 v2.6 的默认状态,同时增加 callbackFlag 参数,设置为 true 时,可以触发回调函数
*
[修改]
checkNode/expandNode/removeNode 方法,默认不触发回调函数,恢复 v2.6 的默认状态,同时增加 callbackFlag 参数,设置为 true 时,可以触发回调函数
*
【修改】
IE9下“根据参数查找节点”的Demo 报错:行14 重新声明常量属性(Demo 自身的问题,定义了history变量)
*
[修改]
IE9下“根据参数查找节点”的Demo 报错:行14 重新声明常量属性(Demo 自身的问题,定义了history变量)
*
【修改】
初始化 zTree 时 onNodeCreated 事件回调函数中无法 用 getZTreeObj 获取 zTree 对象的 bug
*
[修改]
初始化 zTree 时 onNodeCreated 事件回调函数中无法 用 getZTreeObj 获取 zTree 对象的 bug
*
【修改】
setting.edit.drag.prev / next / inner 参数,增加被拖拽的节点集合
*
[修改]
setting.edit.drag.prev / next / inner 参数,增加被拖拽的节点集合
*
【修改】
异步加载模式下,otherParam 使用Array数组会出错的 bug。例如: ["id", "1", "name", "test"]
*
[修改]
异步加载模式下,otherParam 使用Array数组会出错的 bug。例如: ["id", "1", "name", "test"]
*
【修改】
FireFox 下多棵树拖拽异常的 bug
*
[修改]
FireFox 下多棵树拖拽异常的 bug
*
【修改】
exedit 中调用 excheck库的方法时没有进行容错处理,导致如果只加入 exedit 而没有 excheck的时候,会出现 js 错误
*
[修改]
exedit 中调用 excheck库的方法时没有进行容错处理,导致如果只加入 exedit 而没有 excheck的时候,会出现 js 错误
*
【修改】
显示 checkbox 的 zTree 在编辑模式下,移动节点不会更新父节点半选状态的 bug
*
[修改]
显示 checkbox 的 zTree 在编辑模式下,移动节点不会更新父节点半选状态的 bug
*
【修改】
treeNode.childs --> children; treeObject.removeChilds --> removeChildNodes; setting.data.key.childs --> children(英文不好惹的祸!抱歉了!)
*
[修改]
treeNode.childs --> children; treeObject.removeChilds --> removeChildNodes; setting.data.key.childs --> children(英文不好惹的祸!抱歉了!)
*
【修改】
onRemove 回调中得到的 treeNode 还可以查找 preNode、nextNode 的bug。 修正后,getPreNode 和 getNextNode 都返回 null; 为了便于查找父节点,getParentNode 仍保留
*
[修改]
onRemove 回调中得到的 treeNode 还可以查找 preNode、nextNode 的bug。 修正后,getPreNode 和 getNextNode 都返回 null; 为了便于查找父节点,getParentNode 仍保留
*
【修改】
简单数据模式下,如果 id 与 pId 的值相同会导致该节点无法正常加载的 bug
*
[修改]
简单数据模式下,如果 id 与 pId 的值相同会导致该节点无法正常加载的 bug
*
【修改】
移动或删除中间节点会导致最后一个节点连接线图标变小的 bug
*
[修改]
移动或删除中间节点会导致最后一个节点连接线图标变小的 bug
*2011.09.05* v3.0 beta
*2011.09.05* v3.0 beta
*
【修改】
zTree 的 js 代码架构全面修改,并且拆分
*
[修改]
zTree 的 js 代码架构全面修改,并且拆分
*
【修改】
zTree 的 css 样式全面修改,对浏览器可以更好地兼容,同时解决了以前1个像素差的问题
*
[修改]
zTree 的 css 样式全面修改,对浏览器可以更好地兼容,同时解决了以前1个像素差的问题
*
【优化】
采用延迟加载技术,一次性加载大数据量的节点性能飞速提升
*
[优化]
采用延迟加载技术,一次性加载大数据量的节点性能飞速提升
*
【增加】
支持多节点同时选中、拖拽
*
[增加]
支持多节点同时选中、拖拽
*
【增加】
checkNode、checkAllNodes 等多种方法
*
[增加]
checkNode、checkAllNodes 等多种方法
*
【增加】
IE6 自动取消动画展开、折叠的功能
*
[增加]
IE6 自动取消动画展开、折叠的功能
*
【修正】
异步加载 & 编辑模式 能够更完美的共存
*
[修正]
异步加载 & 编辑模式 能够更完美的共存
*
【修正】
setting 配置更加合理,并且增加了若干项配置参数
*
[修正]
setting 配置更加合理,并且增加了若干项配置参数
*
【修正】
treeNode 节点数据的属性更加合理,并且增加了一些方法
*
[修正]
treeNode 节点数据的属性更加合理,并且增加了一些方法
*
【修正】
拖拽操作更加灵活方便,更容易制定自己的规则
*
[修正]
拖拽操作更加灵活方便,更容易制定自己的规则
*
【修正】
其他若干修改,详细对比请参考 url:[http://www.ztree.me/v3/faq.php#_101 zTree v3.0 常见问题]
*
[修正]
其他若干修改,详细对比请参考 url:[http://www.ztree.me/v3/faq.php#_101 zTree v3.0 常见问题]
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录