Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GitCode
1024程序员开源挑战赛(10.23-11.14)
提交
4856c8ad
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看板
提交
4856c8ad
编写于
1月 20, 2017
作者:
Z
ztree
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed issue: scrollIntoViewIfNeeded will throw error , because IE8 has not HTMLElement
上级
1bb25330
变更
13
显示空白变更内容
内联
并排
Showing
13 changed file
with
3889 addition
and
3826 deletion
+3889
-3826
README.md
README.md
+1
-1
api/apiCss/jquery.ztree.core.js
api/apiCss/jquery.ztree.core.js
+39
-39
js/jquery.ztree.all.js
js/jquery.ztree.all.js
+1906
-1876
js/jquery.ztree.all.min.js
js/jquery.ztree.all.min.js
+43
-43
js/jquery.ztree.core.js
js/jquery.ztree.core.js
+1846
-1816
js/jquery.ztree.core.min.js
js/jquery.ztree.core.min.js
+39
-39
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
+2
-2
js/jquery.ztree.exedit.min.js
js/jquery.ztree.exedit.min.js
+2
-2
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
+3
-0
未找到文件。
README.md
浏览文件 @
4856c8ad
jQuery Tree Plugin ---- zTree
jQuery Tree Plugin ---- zTree
============
============
last verson : 3.5.2
7
last verson : 3.5.2
8
**Donate to zTree**
: http://www.treejs.cn/v3/donate.php
**Donate to zTree**
: http://www.treejs.cn/v3/donate.php
...
...
api/apiCss/jquery.ztree.core.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree core v3.5.2
7
* JQuery zTree core v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
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
"
,
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
}},
x
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
...
@@ -35,40 +35,40 @@ e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node]
...
@@ -35,40 +35,40 @@ e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node]
(
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
};
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
);
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
};
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
();
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
"
?
j
.
clone
(
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
(
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
"
?
j
.
clone
(
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]
"
},
isElement
:
function
(
b
){
return
typeof
HTMLElement
===
"
object
"
?
b
instanceof
HTMLElement
:
b
&&
typeof
b
===
"
object
"
&&
b
!==
null
&&
b
.
nodeType
===
1
&&
typeof
b
.
nodeName
===
"
string
"
},
$
:
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
)
!==
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
),
l
=
k
(
a
,
f
.
id
.
ICON
,
b
),
p
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
l
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
p
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
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
),
l
=
k
(
a
,
f
.
id
.
ICON
,
b
),
p
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
)
,
!
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
=
[],
n
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
n
],
m
,
Q
;
if
(
!
k
||
e
>=
k
.
length
-
c
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
R
=
c
.
length
;
s
<
R
;
s
++
){
var
o
=
c
[
s
];
g
&&
(
m
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
o
,
d
,
m
,
Q
,
f
),
h
.
addNodeCache
(
b
,
o
));
m
=
[];
o
[
n
]
&&
o
[
n
].
length
>
0
&&
(
m
=
i
.
appendNodes
(
b
,
a
+
1
,
o
[
n
],
o
,
-
1
,
g
,
f
&&
o
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
o
),
i
.
makeDOMNodeLine
(
j
,
b
,
o
),
h
.
getBeforeA
(
b
,
i
.
replaceIcoClass
(
a
,
l
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
p
.
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
=
[],
n
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
n
],
m
,
Q
;
if
(
!
k
||
e
>=
k
.
length
-
c
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
R
=
c
.
length
;
s
<
R
;
s
++
){
var
o
=
c
[
s
];
g
&&
(
m
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
o
,
d
,
o
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
o
),
h
.
getInnerBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
o
),
h
.
getInnerAfterA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
o
),
h
.
getAfterA
(
b
,
o
,
j
),
o
.
isParent
&&
o
.
open
&&
i
.
makeUlHtml
(
b
,
o
,
j
,
m
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
o
),
h
.
addCreatedNode
(
b
,
o
))}
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
);
m
,
Q
,
f
),
h
.
addNodeCache
(
b
,
o
));
m
=
[];
o
[
n
]
&&
o
[
n
].
length
>
0
&&
(
m
=
i
.
appendNodes
(
b
,
a
+
1
,
o
[
n
],
o
,
-
1
,
g
,
f
&&
o
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
o
),
i
.
makeDOMNodeLine
(
j
,
b
,
o
),
h
.
getBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
o
),
h
.
getInnerBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
o
),
h
.
getInnerAfterA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
o
),
h
.
getAfterA
(
b
,
o
,
j
),
o
.
isParent
&&
o
.
open
&&
i
.
makeUlHtml
(
b
,
o
,
j
,
m
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
o
),
h
.
addCreatedNode
(
b
,
o
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
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
l
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
p
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
p
;
p
.
length
>
1
&&
(
n
=
p
[
1
],
p
=
p
[
0
]);
l
[
n
]
=
a
[
p
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
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
});
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
l
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
m
in
b
.
async
.
otherParam
)
l
[
m
]
=
b
.
async
.
otherParam
[
m
];
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
:
b
.
async
.
contentType
.
indexOf
(
"
application/json
"
)
>-
1
?
JSON
.
stringify
(
l
):
l
,
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
(
"
(
"
+
var
l
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
p
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
p
;
p
.
length
>
1
&&
(
n
=
p
[
1
],
p
=
p
[
0
]);
l
[
n
]
=
a
[
p
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
l
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
m
in
b
.
async
.
otherParam
)
l
[
m
]
=
b
.
async
.
otherParam
[
m
];
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
:
b
.
async
.
contentType
.
indexOf
(
"
application/json
"
)
>
e
+
"
)
"
):
e
}
catch
(
l
){
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
,
-
1
?
JSON
.
stringify
(
l
):
l
,
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
(
l
){
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
,
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
);
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
();
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
l
=
b
.
data
.
key
.
children
,
l
=!
d
||
d
.
open
||!!
k
(
d
[
l
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
l
),
j
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
j
=
d
)):
j
=
b
.
treeObj
;
j
&&
(
e
>=
0
&&
(
n
=
j
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
j
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
m
.
unbindTree
(
b
),
m
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
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
),
l
=
b
.
data
.
key
.
children
,
l
=!
d
||
d
.
open
||!!
k
(
d
[
l
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
l
),
j
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
j
=
d
)):
j
=
b
.
treeObj
;
j
&&
(
e
>=
0
&&
(
n
=
j
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
j
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
l
=
b
.
data
.
key
.
children
,
p
;
if
(
a
){
if
(
g
.
expandTriggerFlag
)
p
=
e
,
e
=
function
(){
p
&&
p
();
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
[
l
]
&&
a
[
l
].
length
>
0
&&!
k
(
a
[
l
][
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
"
,
h
.
initRoot
(
b
),
m
.
unbindTree
(
b
),
m
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
l
=
b
.
data
.
key
.
children
,
p
;
if
(
a
){
if
(
g
.
expandTriggerFlag
)
p
=
e
,
e
=
function
(){
p
&&
p
();
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
[
l
]
&&
a
[
l
].
length
>
0
&&!
k
(
a
[
l
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
l
]
&&
a
[
l
].
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
[
l
]
&&
a
[
l
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
[]);
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
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
l
]
&&
a
[
l
].
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
[
l
]
&&
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
,
m
=
g
.
length
;
k
<
m
;
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
[
l
].
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
,
m
=
g
.
length
;
k
<
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
,
m
;
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='
"
,
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
),
l
=
[],
k
;
for
(
k
in
g
)
l
.
push
(
k
,
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>
"
)}
,
"
:
"
,
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='
"
,
l
.
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
"
?
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
l
=
[],
k
;
for
(
k
in
g
)
l
.
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='
"
,
l
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
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
(
""
)},
"
>
"
),
"
'
"
);
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
:
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
||
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
);
"
_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
);
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
,
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
())}}},
scrollIntoView
:
function
(
b
){
if
(
b
){
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
function
(
a
){
function
b
(
a
,
d
,
e
,
f
){
return
{
left
:
a
,
top
:
d
,
width
:
e
,
height
:
f
,
right
:
a
+
e
,
bottom
:
d
+
f
,
translate
:
function
(
g
,
h
){
return
b
(
g
+
a
,
h
+
d
,
e
,
f
)},
relativeFromTo
:
function
(
h
,
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
())}}},
scrollIntoView
:
function
(
b
){
if
(
b
){
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
i
){
var
j
=
a
,
l
=
d
,
h
=
h
.
offsetParent
,
i
=
i
.
offsetParent
;
if
(
h
===
i
)
return
g
;
for
(;
h
;
h
=
h
.
offsetParent
)
j
+=
h
.
offsetLeft
+
h
.
clientLeft
,
l
+=
h
.
offsetTop
+
h
.
clientTop
;
for
(;
i
;
i
=
i
.
offsetParent
)
j
-=
i
.
offsetLeft
+
i
.
clientLeft
,
l
-=
i
.
offsetTop
+
i
.
clientTop
;
return
b
(
j
,
l
,
e
,
f
)}}}
for
(
var
d
,
e
=
this
,
g
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);(
d
=
e
.
parentNode
)
instanceof
HTMLElement
;){
var
f
=
d
.
offsetLeft
+
d
.
clientLeft
,
h
=
d
.
offsetTop
+
d
.
clientTop
,
g
=
g
.
relativeFromTo
(
e
,
d
).
translate
(
-
f
,
-
h
);
d
.
scrollLeft
=!
1
===
a
||
g
.
left
<
=
function
(
a
){
function
b
(
a
,
d
,
e
,
f
){
return
{
left
:
a
,
top
:
d
,
width
:
e
,
height
:
f
,
right
:
a
+
e
,
bottom
:
d
+
f
,
translate
:
function
(
g
,
h
){
return
b
(
g
+
a
,
h
+
d
,
e
,
f
)},
relativeFromTo
:
function
(
h
,
i
){
var
j
=
a
,
l
=
d
,
h
=
h
.
offsetParent
,
i
=
i
.
offsetParent
;
if
(
h
===
i
)
return
g
;
for
(;
h
;
h
=
h
.
offsetParent
)
j
+=
h
.
offsetLeft
+
h
.
clientLeft
,
l
+=
h
.
offsetTop
+
h
.
clientTop
;
for
(;
i
;
i
=
i
.
offsetParent
)
j
-=
i
.
offsetLeft
+
i
.
clientLeft
,
l
-=
i
.
offsetTop
+
i
.
clientTop
;
return
b
(
j
,
l
,
e
,
f
)}}}
for
(
var
d
,
e
=
this
,
g
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);
j
.
isElement
(
d
=
d
.
scrollLeft
+
d
.
clientWidth
&&
d
.
scrollLeft
<=
g
.
right
-
d
.
clientWidth
+
d
.
clientWidth
?
Math
.
min
(
g
.
left
,
Math
.
max
(
g
.
right
-
d
.
clientWidth
,
d
.
scrollLeft
)):(
g
.
right
-
d
.
clientWidth
+
g
.
left
)
/
2
;
d
.
scrollTop
=!
1
===
a
||
g
.
top
<=
d
.
scrollTop
+
d
.
clientHeight
&&
d
.
scrollTop
<=
g
.
bottom
-
d
.
clientHeight
+
d
.
clientHeight
?
Math
.
min
(
g
.
top
,
Math
.
max
(
g
.
bottom
-
d
.
clientHeight
,
d
.
scrollTop
)):(
g
.
bottom
-
d
.
clientHeight
+
g
.
top
)
/
2
;
g
=
g
.
translate
(
f
-
d
.
scrollLeft
,
h
-
d
.
scrollTop
);
e
=
d
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
e
.
parentNode
);){
var
f
=
d
.
offsetLeft
+
d
.
clientLeft
,
h
=
d
.
offsetTop
+
d
.
clientTop
,
g
=
g
.
relativeFromTo
(
e
,
d
).
translate
(
-
f
,
-
h
);
d
.
scrollLeft
=!
1
===
a
||
g
.
left
<=
d
.
scrollLeft
+
d
.
clientWidth
&&
d
.
scrollLeft
<=
g
.
right
-
d
.
clientWidth
+
d
.
clientWidth
?
Math
.
min
(
g
.
left
,
Math
.
max
(
g
.
right
-
d
.
clientWidth
,
d
.
scrollLeft
)):(
g
.
right
-
d
.
clientWidth
+
g
.
left
)
/
2
;
d
.
scrollTop
=!
1
===
a
||
g
.
top
<=
d
.
scrollTop
+
d
.
clientHeight
&&
d
.
scrollTop
<=
g
.
bottom
-
d
.
clientHeight
+
d
.
clientHeight
?
Math
.
min
(
g
.
top
,
Math
.
max
(
g
.
bottom
-
d
.
clientHeight
,
d
.
scrollTop
)):(
g
.
bottom
-
d
.
clientHeight
+
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
():
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
,
g
.
top
)
/
2
;
g
=
g
.
translate
(
f
-
d
.
scrollLeft
,
h
-
d
.
scrollTop
);
e
=
d
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
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
():
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
p
,
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
),
p
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
p
,
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
);
p
=
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
)
,
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
p
,
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
),
p
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
p
,
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
,
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
n
,
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
]
=
b
);
p
=
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
,
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
,
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
,
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
=
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
,
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
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
"
);
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
.
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
"
);
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
[
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
"
):
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
"
,
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
"
):
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
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
"
,
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
"
,
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
"
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
}
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
m
,
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
])},
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
;
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
:
m
,
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
])},
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
c
):
c
;
h
.
initCache
(
d
);
m
.
unbindTree
(
d
);
m
.
bindTree
(
d
);
m
.
unbindEvent
(
d
);
m
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
m
,
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
m
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
m
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
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
);
m
.
unbindTree
(
d
);
m
.
bindTree
(
d
);
m
.
unbindEvent
(
d
);
m
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
m
,
f
==!
0
)}
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
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
,
n
){
function
m
(){
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
===
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
m
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
m
},
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
,
n
){
function
m
(){
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
,
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
n
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
m
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
m
());
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
,
[
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
,
a
,
b
,
!
0
,
m
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
m
());
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
)
,
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
"
?
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
<
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
"
?
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
,
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
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
n
=
0
,
m
=
a
[
b
]?
a
[
b
].
length
:
0
;
n
<
m
;
n
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
n
]);
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
]
;
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
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
n
=
0
,
m
=
a
[
b
]?
a
[
b
].
length
:
0
;
n
<
m
;
n
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
n
]);
h
.
removeSelectedNode
(
d
)
;
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
;
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
=
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
;
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
)
=
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
if
(
!
c
)
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
]
&&
!
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
,
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
if
(
!
c
)
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
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
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
);
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
js/jquery.ztree.all.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree core v3.5.2
7
* JQuery zTree core v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -9,9 +9,9 @@
...
@@ -9,9 +9,9 @@
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
)
{
(
function
(
$
)
{
var
settings
=
{},
roots
=
{},
caches
=
{},
var
settings
=
{},
roots
=
{},
caches
=
{},
//default consts of core
//default consts of core
_consts
=
{
_consts
=
{
...
@@ -104,27 +104,27 @@
...
@@ -104,27 +104,27 @@
dataFilter
:
null
dataFilter
:
null
},
},
callback
:
{
callback
:
{
beforeAsync
:
null
,
beforeAsync
:
null
,
beforeClick
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onCollapse
:
null
,
onRemove
:
null
onRemove
:
null
}
}
},
},
//default root of core
//default root of core
...
@@ -144,7 +144,7 @@
...
@@ -144,7 +144,7 @@
r
.
_ver
=
(
new
Date
()).
getTime
();
r
.
_ver
=
(
new
Date
()).
getTime
();
},
},
//default cache of core
//default cache of core
_initCache
=
function
(
setting
)
{
_initCache
=
function
(
setting
)
{
var
c
=
data
.
getCache
(
setting
);
var
c
=
data
.
getCache
(
setting
);
if
(
!
c
)
{
if
(
!
c
)
{
c
=
{};
c
=
{};
...
@@ -154,7 +154,7 @@
...
@@ -154,7 +154,7 @@
c
.
doms
=
[];
c
.
doms
=
[];
},
},
//default bindEvent of core
//default bindEvent of core
_bindEvent
=
function
(
setting
)
{
_bindEvent
=
function
(
setting
)
{
var
o
=
setting
.
treeObj
,
var
o
=
setting
.
treeObj
,
c
=
consts
.
event
;
c
=
consts
.
event
;
o
.
bind
(
c
.
NODECREATED
,
function
(
event
,
treeId
,
node
)
{
o
.
bind
(
c
.
NODECREATED
,
function
(
event
,
treeId
,
node
)
{
...
@@ -192,7 +192,7 @@
...
@@ -192,7 +192,7 @@
tools
.
apply
(
setting
.
callback
.
onUnSelected
,
[
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onUnSelected
,
[
treeId
,
node
]);
});
});
},
},
_unbindEvent
=
function
(
setting
)
{
_unbindEvent
=
function
(
setting
)
{
var
o
=
setting
.
treeObj
,
var
o
=
setting
.
treeObj
,
c
=
consts
.
event
;
c
=
consts
.
event
;
o
.
unbind
(
c
.
NODECREATED
)
o
.
unbind
(
c
.
NODECREATED
)
...
@@ -206,7 +206,7 @@
...
@@ -206,7 +206,7 @@
.
unbind
(
c
.
UNSELECTED
);
.
unbind
(
c
.
UNSELECTED
);
},
},
//default event proxy of core
//default event proxy of core
_eventProxy
=
function
(
event
)
{
_eventProxy
=
function
(
event
)
{
var
target
=
event
.
target
,
var
target
=
event
.
target
,
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
tId
=
""
,
node
=
null
,
tId
=
""
,
node
=
null
,
...
@@ -221,11 +221,11 @@
...
@@ -221,11 +221,11 @@
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
contextmenu
"
))
{
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
contextmenu
"
))
{
treeEventType
=
"
contextmenu
"
;
treeEventType
=
"
contextmenu
"
;
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
click
"
))
{
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
click
"
))
{
if
(
tools
.
eqs
(
target
.
tagName
,
"
span
"
)
&&
target
.
getAttribute
(
"
treeNode
"
+
consts
.
id
.
SWITCH
)
!==
null
)
{
if
(
tools
.
eqs
(
target
.
tagName
,
"
span
"
)
&&
target
.
getAttribute
(
"
treeNode
"
+
consts
.
id
.
SWITCH
)
!==
null
)
{
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
nodeEventType
=
"
switchNode
"
;
nodeEventType
=
"
switchNode
"
;
}
else
{
}
else
{
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
if
(
tmp
)
{
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
nodeEventType
=
"
clickNode
"
;
nodeEventType
=
"
clickNode
"
;
...
@@ -233,18 +233,20 @@
...
@@ -233,18 +233,20 @@
}
}
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
dblclick
"
))
{
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
dblclick
"
))
{
treeEventType
=
"
dblclick
"
;
treeEventType
=
"
dblclick
"
;
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
if
(
tmp
)
{
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
nodeEventType
=
"
switchNode
"
;
nodeEventType
=
"
switchNode
"
;
}
}
}
}
if
(
treeEventType
.
length
>
0
&&
tId
.
length
==
0
)
{
if
(
treeEventType
.
length
>
0
&&
tId
.
length
==
0
)
{
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;}
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
}
}
}
// event to node
// event to node
if
(
tId
.
length
>
0
)
{
if
(
tId
.
length
>
0
)
{
node
=
data
.
getNodeCache
(
setting
,
tId
);
node
=
data
.
getNodeCache
(
setting
,
tId
);
switch
(
nodeEventType
)
{
switch
(
nodeEventType
)
{
case
"
switchNode
"
:
case
"
switchNode
"
:
...
@@ -288,7 +290,7 @@
...
@@ -288,7 +290,7 @@
return
proxyResult
return
proxyResult
},
},
//default init node of core
//default init node of core
_initNode
=
function
(
setting
,
level
,
n
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
)
{
_initNode
=
function
(
setting
,
level
,
n
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
)
{
if
(
!
n
)
return
;
if
(
!
n
)
return
;
var
r
=
data
.
getRoot
(
setting
),
var
r
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
...
@@ -306,11 +308,21 @@
...
@@ -306,11 +308,21 @@
}
}
n
.
isFirstNode
=
isFirstNode
;
n
.
isFirstNode
=
isFirstNode
;
n
.
isLastNode
=
isLastNode
;
n
.
isLastNode
=
isLastNode
;
n
.
getParentNode
=
function
()
{
return
data
.
getNodeCache
(
setting
,
n
.
parentTId
);};
n
.
getParentNode
=
function
()
{
n
.
getPreNode
=
function
()
{
return
data
.
getPreNode
(
setting
,
n
);};
return
data
.
getNodeCache
(
setting
,
n
.
parentTId
);
n
.
getNextNode
=
function
()
{
return
data
.
getNextNode
(
setting
,
n
);};
};
n
.
getIndex
=
function
()
{
return
data
.
getNodeIndex
(
setting
,
n
);};
n
.
getPreNode
=
function
()
{
n
.
getPath
=
function
()
{
return
data
.
getNodePath
(
setting
,
n
);};
return
data
.
getPreNode
(
setting
,
n
);
};
n
.
getNextNode
=
function
()
{
return
data
.
getNextNode
(
setting
,
n
);
};
n
.
getIndex
=
function
()
{
return
data
.
getNodeIndex
(
setting
,
n
);
};
n
.
getPath
=
function
()
{
return
data
.
getNodePath
(
setting
,
n
);
};
n
.
isAjaxing
=
false
;
n
.
isAjaxing
=
false
;
data
.
fixPIdKeyValue
(
setting
,
n
);
data
.
fixPIdKeyValue
(
setting
,
n
);
},
},
...
@@ -329,47 +341,47 @@
...
@@ -329,47 +341,47 @@
},
},
//method of operate data
//method of operate data
data
=
{
data
=
{
addNodeCache
:
function
(
setting
,
node
)
{
addNodeCache
:
function
(
setting
,
node
)
{
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
node
;
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
node
;
},
},
getNodeCacheId
:
function
(
tId
)
{
getNodeCacheId
:
function
(
tId
)
{
return
tId
.
substring
(
tId
.
lastIndexOf
(
"
_
"
)
+
1
);
return
tId
.
substring
(
tId
.
lastIndexOf
(
"
_
"
)
+
1
);
},
},
addAfterA
:
function
(
afterA
)
{
addAfterA
:
function
(
afterA
)
{
_init
.
afterA
.
push
(
afterA
);
_init
.
afterA
.
push
(
afterA
);
},
},
addBeforeA
:
function
(
beforeA
)
{
addBeforeA
:
function
(
beforeA
)
{
_init
.
beforeA
.
push
(
beforeA
);
_init
.
beforeA
.
push
(
beforeA
);
},
},
addInnerAfterA
:
function
(
innerAfterA
)
{
addInnerAfterA
:
function
(
innerAfterA
)
{
_init
.
innerAfterA
.
push
(
innerAfterA
);
_init
.
innerAfterA
.
push
(
innerAfterA
);
},
},
addInnerBeforeA
:
function
(
innerBeforeA
)
{
addInnerBeforeA
:
function
(
innerBeforeA
)
{
_init
.
innerBeforeA
.
push
(
innerBeforeA
);
_init
.
innerBeforeA
.
push
(
innerBeforeA
);
},
},
addInitBind
:
function
(
bindEvent
)
{
addInitBind
:
function
(
bindEvent
)
{
_init
.
bind
.
push
(
bindEvent
);
_init
.
bind
.
push
(
bindEvent
);
},
},
addInitUnBind
:
function
(
unbindEvent
)
{
addInitUnBind
:
function
(
unbindEvent
)
{
_init
.
unbind
.
push
(
unbindEvent
);
_init
.
unbind
.
push
(
unbindEvent
);
},
},
addInitCache
:
function
(
initCache
)
{
addInitCache
:
function
(
initCache
)
{
_init
.
caches
.
push
(
initCache
);
_init
.
caches
.
push
(
initCache
);
},
},
addInitNode
:
function
(
initNode
)
{
addInitNode
:
function
(
initNode
)
{
_init
.
nodes
.
push
(
initNode
);
_init
.
nodes
.
push
(
initNode
);
},
},
addInitProxy
:
function
(
initProxy
,
isFirst
)
{
addInitProxy
:
function
(
initProxy
,
isFirst
)
{
if
(
!!
isFirst
)
{
if
(
!!
isFirst
)
{
_init
.
proxys
.
splice
(
0
,
0
,
initProxy
);
_init
.
proxys
.
splice
(
0
,
0
,
initProxy
);
}
else
{
}
else
{
_init
.
proxys
.
push
(
initProxy
);
_init
.
proxys
.
push
(
initProxy
);
}
}
},
},
addInitRoot
:
function
(
initRoot
)
{
addInitRoot
:
function
(
initRoot
)
{
_init
.
roots
.
push
(
initRoot
);
_init
.
roots
.
push
(
initRoot
);
},
},
addNodesData
:
function
(
setting
,
parentNode
,
index
,
nodes
)
{
addNodesData
:
function
(
setting
,
parentNode
,
index
,
nodes
)
{
var
childKey
=
setting
.
data
.
key
.
children
,
params
;
var
childKey
=
setting
.
data
.
key
.
children
,
params
;
if
(
!
parentNode
[
childKey
])
{
if
(
!
parentNode
[
childKey
])
{
parentNode
[
childKey
]
=
[];
parentNode
[
childKey
]
=
[];
...
@@ -387,82 +399,82 @@
...
@@ -387,82 +399,82 @@
}
}
parentNode
.
isParent
=
true
;
parentNode
.
isParent
=
true
;
if
(
index
<
0
)
{
if
(
index
<
0
)
{
parentNode
[
childKey
]
=
parentNode
[
childKey
].
concat
(
nodes
);
parentNode
[
childKey
]
=
parentNode
[
childKey
].
concat
(
nodes
);
}
else
{
}
else
{
params
=
[
index
,
0
].
concat
(
nodes
);
params
=
[
index
,
0
].
concat
(
nodes
);
parentNode
[
childKey
].
splice
.
apply
(
parentNode
[
childKey
],
params
);
parentNode
[
childKey
].
splice
.
apply
(
parentNode
[
childKey
],
params
);
}
}
},
},
addSelectedNode
:
function
(
setting
,
node
)
{
addSelectedNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
if
(
!
data
.
isSelectedNode
(
setting
,
node
))
{
if
(
!
data
.
isSelectedNode
(
setting
,
node
))
{
root
.
curSelectedList
.
push
(
node
);
root
.
curSelectedList
.
push
(
node
);
}
}
},
},
addCreatedNode
:
function
(
setting
,
node
)
{
addCreatedNode
:
function
(
setting
,
node
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
root
.
createdNodes
.
push
(
node
);
root
.
createdNodes
.
push
(
node
);
}
}
},
},
addZTreeTools
:
function
(
zTreeTools
)
{
addZTreeTools
:
function
(
zTreeTools
)
{
_init
.
zTreeTools
.
push
(
zTreeTools
);
_init
.
zTreeTools
.
push
(
zTreeTools
);
},
},
exSetting
:
function
(
s
)
{
exSetting
:
function
(
s
)
{
$
.
extend
(
true
,
_setting
,
s
);
$
.
extend
(
true
,
_setting
,
s
);
},
},
fixPIdKeyValue
:
function
(
setting
,
node
)
{
fixPIdKeyValue
:
function
(
setting
,
node
)
{
if
(
setting
.
data
.
simpleData
.
enable
)
{
if
(
setting
.
data
.
simpleData
.
enable
)
{
node
[
setting
.
data
.
simpleData
.
pIdKey
]
=
node
.
parentTId
?
node
.
getParentNode
()[
setting
.
data
.
simpleData
.
idKey
]
:
setting
.
data
.
simpleData
.
rootPId
;
node
[
setting
.
data
.
simpleData
.
pIdKey
]
=
node
.
parentTId
?
node
.
getParentNode
()[
setting
.
data
.
simpleData
.
idKey
]
:
setting
.
data
.
simpleData
.
rootPId
;
}
}
},
},
getAfterA
:
function
(
setting
,
node
,
array
)
{
getAfterA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
afterA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
afterA
.
length
;
i
<
j
;
i
++
)
{
_init
.
afterA
[
i
].
apply
(
this
,
arguments
);
_init
.
afterA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getBeforeA
:
function
(
setting
,
node
,
array
)
{
getBeforeA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
beforeA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
beforeA
.
length
;
i
<
j
;
i
++
)
{
_init
.
beforeA
[
i
].
apply
(
this
,
arguments
);
_init
.
beforeA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getInnerAfterA
:
function
(
setting
,
node
,
array
)
{
getInnerAfterA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerAfterA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerAfterA
.
length
;
i
<
j
;
i
++
)
{
_init
.
innerAfterA
[
i
].
apply
(
this
,
arguments
);
_init
.
innerAfterA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getInnerBeforeA
:
function
(
setting
,
node
,
array
)
{
getInnerBeforeA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerBeforeA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerBeforeA
.
length
;
i
<
j
;
i
++
)
{
_init
.
innerBeforeA
[
i
].
apply
(
this
,
arguments
);
_init
.
innerBeforeA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getCache
:
function
(
setting
)
{
getCache
:
function
(
setting
)
{
return
caches
[
setting
.
treeId
];
return
caches
[
setting
.
treeId
];
},
},
getNodeIndex
:
function
(
setting
,
node
)
{
getNodeIndex
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
return
i
;
return
i
;
}
}
}
}
return
-
1
;
return
-
1
;
},
},
getNextNode
:
function
(
setting
,
node
)
{
getNextNode
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
return
(
i
==
l
?
null
:
p
[
childKey
][
i
+
1
]);
return
(
i
==
l
?
null
:
p
[
childKey
][
i
+
1
]);
}
}
}
}
return
null
;
return
null
;
},
},
getNodeByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
getNodeByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
if
(
!
nodes
||
!
key
)
return
null
;
if
(
!
nodes
||
!
key
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
;
var
childKey
=
setting
.
data
.
key
.
children
;
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
...
@@ -474,20 +486,20 @@
...
@@ -474,20 +486,20 @@
}
}
return
null
;
return
null
;
},
},
getNodeCache
:
function
(
setting
,
tId
)
{
getNodeCache
:
function
(
setting
,
tId
)
{
if
(
!
tId
)
return
null
;
if
(
!
tId
)
return
null
;
var
n
=
caches
[
setting
.
treeId
].
nodes
[
data
.
getNodeCacheId
(
tId
)];
var
n
=
caches
[
setting
.
treeId
].
nodes
[
data
.
getNodeCacheId
(
tId
)];
return
n
?
n
:
null
;
return
n
?
n
:
null
;
},
},
getNodeName
:
function
(
setting
,
node
)
{
getNodeName
:
function
(
setting
,
node
)
{
var
nameKey
=
setting
.
data
.
key
.
name
;
var
nameKey
=
setting
.
data
.
key
.
name
;
return
""
+
node
[
nameKey
];
return
""
+
node
[
nameKey
];
},
},
getNodePath
:
function
(
setting
,
node
)
{
getNodePath
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
path
;
var
path
;
if
(
node
.
parentTId
)
{
if
(
node
.
parentTId
)
{
path
=
node
.
getParentNode
().
getPath
();
path
=
node
.
getParentNode
().
getPath
();
}
else
{
}
else
{
path
=
[];
path
=
[];
...
@@ -499,14 +511,14 @@
...
@@ -499,14 +511,14 @@
return
path
;
return
path
;
},
},
getNodeTitle
:
function
(
setting
,
node
)
{
getNodeTitle
:
function
(
setting
,
node
)
{
var
t
=
setting
.
data
.
key
.
title
===
""
?
setting
.
data
.
key
.
name
:
setting
.
data
.
key
.
title
;
var
t
=
setting
.
data
.
key
.
title
===
""
?
setting
.
data
.
key
.
name
:
setting
.
data
.
key
.
title
;
return
""
+
node
[
t
];
return
""
+
node
[
t
];
},
},
getNodes
:
function
(
setting
)
{
getNodes
:
function
(
setting
)
{
return
data
.
getRoot
(
setting
)[
setting
.
data
.
key
.
children
];
return
data
.
getRoot
(
setting
)[
setting
.
data
.
key
.
children
];
},
},
getNodesByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
getNodesByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
if
(
!
nodes
||
!
key
)
return
[];
if
(
!
nodes
||
!
key
)
return
[];
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
result
=
[];
result
=
[];
...
@@ -518,110 +530,115 @@
...
@@ -518,110 +530,115 @@
}
}
return
result
;
return
result
;
},
},
getNodesByParamFuzzy
:
function
(
setting
,
nodes
,
key
,
value
)
{
getNodesByParamFuzzy
:
function
(
setting
,
nodes
,
key
,
value
)
{
if
(
!
nodes
||
!
key
)
return
[];
if
(
!
nodes
||
!
key
)
return
[];
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
result
=
[];
result
=
[];
value
=
value
.
toLowerCase
();
value
=
value
.
toLowerCase
();
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
if
(
typeof
nodes
[
i
][
key
]
==
"
string
"
&&
nodes
[
i
][
key
].
toLowerCase
().
indexOf
(
value
)
>
-
1
)
{
if
(
typeof
nodes
[
i
][
key
]
==
"
string
"
&&
nodes
[
i
][
key
].
toLowerCase
().
indexOf
(
value
)
>
-
1
)
{
result
.
push
(
nodes
[
i
]);
result
.
push
(
nodes
[
i
]);
}
}
result
=
result
.
concat
(
data
.
getNodesByParamFuzzy
(
setting
,
nodes
[
i
][
childKey
],
key
,
value
));
result
=
result
.
concat
(
data
.
getNodesByParamFuzzy
(
setting
,
nodes
[
i
][
childKey
],
key
,
value
));
}
}
return
result
;
return
result
;
},
},
getNodesByFilter
:
function
(
setting
,
nodes
,
filter
,
isSingle
,
invokeParam
)
{
getNodesByFilter
:
function
(
setting
,
nodes
,
filter
,
isSingle
,
invokeParam
)
{
if
(
!
nodes
)
return
(
isSingle
?
null
:
[]);
if
(
!
nodes
)
return
(
isSingle
?
null
:
[]);
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
result
=
isSingle
?
null
:
[];
result
=
isSingle
?
null
:
[];
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
if
(
tools
.
apply
(
filter
,
[
nodes
[
i
],
invokeParam
],
false
))
{
if
(
tools
.
apply
(
filter
,
[
nodes
[
i
],
invokeParam
],
false
))
{
if
(
isSingle
)
{
return
nodes
[
i
];}
if
(
isSingle
)
{
return
nodes
[
i
];
}
result
.
push
(
nodes
[
i
]);
result
.
push
(
nodes
[
i
]);
}
}
var
tmpResult
=
data
.
getNodesByFilter
(
setting
,
nodes
[
i
][
childKey
],
filter
,
isSingle
,
invokeParam
);
var
tmpResult
=
data
.
getNodesByFilter
(
setting
,
nodes
[
i
][
childKey
],
filter
,
isSingle
,
invokeParam
);
if
(
isSingle
&&
!!
tmpResult
)
{
return
tmpResult
;}
if
(
isSingle
&&
!!
tmpResult
)
{
return
tmpResult
;
}
result
=
isSingle
?
tmpResult
:
result
.
concat
(
tmpResult
);
result
=
isSingle
?
tmpResult
:
result
.
concat
(
tmpResult
);
}
}
return
result
;
return
result
;
},
},
getPreNode
:
function
(
setting
,
node
)
{
getPreNode
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
;
i
<
l
;
i
++
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
return
(
i
==
0
?
null
:
p
[
childKey
][
i
-
1
]);
return
(
i
==
0
?
null
:
p
[
childKey
][
i
-
1
]);
}
}
}
}
return
null
;
return
null
;
},
},
getRoot
:
function
(
setting
)
{
getRoot
:
function
(
setting
)
{
return
setting
?
roots
[
setting
.
treeId
]
:
null
;
return
setting
?
roots
[
setting
.
treeId
]
:
null
;
},
},
getRoots
:
function
()
{
getRoots
:
function
()
{
return
roots
;
return
roots
;
},
},
getSetting
:
function
(
treeId
)
{
getSetting
:
function
(
treeId
)
{
return
settings
[
treeId
];
return
settings
[
treeId
];
},
},
getSettings
:
function
()
{
getSettings
:
function
()
{
return
settings
;
return
settings
;
},
},
getZTreeTools
:
function
(
treeId
)
{
getZTreeTools
:
function
(
treeId
)
{
var
r
=
this
.
getRoot
(
this
.
getSetting
(
treeId
));
var
r
=
this
.
getRoot
(
this
.
getSetting
(
treeId
));
return
r
?
r
.
treeTools
:
null
;
return
r
?
r
.
treeTools
:
null
;
},
},
initCache
:
function
(
setting
)
{
initCache
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
caches
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
caches
.
length
;
i
<
j
;
i
++
)
{
_init
.
caches
[
i
].
apply
(
this
,
arguments
);
_init
.
caches
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
initNode
:
function
(
setting
,
level
,
node
,
parentNode
,
preNode
,
nextNode
)
{
initNode
:
function
(
setting
,
level
,
node
,
parentNode
,
preNode
,
nextNode
)
{
for
(
var
i
=
0
,
j
=
_init
.
nodes
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
nodes
.
length
;
i
<
j
;
i
++
)
{
_init
.
nodes
[
i
].
apply
(
this
,
arguments
);
_init
.
nodes
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
initRoot
:
function
(
setting
)
{
initRoot
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
roots
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
roots
.
length
;
i
<
j
;
i
++
)
{
_init
.
roots
[
i
].
apply
(
this
,
arguments
);
_init
.
roots
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
isSelectedNode
:
function
(
setting
,
node
)
{
isSelectedNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
if
(
node
===
root
.
curSelectedList
[
i
])
return
true
;
if
(
node
===
root
.
curSelectedList
[
i
])
return
true
;
}
}
return
false
;
return
false
;
},
},
removeNodeCache
:
function
(
setting
,
node
)
{
removeNodeCache
:
function
(
setting
,
node
)
{
var
childKey
=
setting
.
data
.
key
.
children
;
var
childKey
=
setting
.
data
.
key
.
children
;
if
(
node
[
childKey
])
{
if
(
node
[
childKey
])
{
for
(
var
i
=
0
,
l
=
node
[
childKey
].
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
node
[
childKey
].
length
;
i
<
l
;
i
++
)
{
data
.
removeNodeCache
(
setting
,
node
[
childKey
][
i
]);
data
.
removeNodeCache
(
setting
,
node
[
childKey
][
i
]);
}
}
}
}
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
null
;
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
null
;
},
},
removeSelectedNode
:
function
(
setting
,
node
)
{
removeSelectedNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
if
(
node
===
root
.
curSelectedList
[
i
]
||
!
data
.
getNodeCache
(
setting
,
root
.
curSelectedList
[
i
].
tId
))
{
if
(
node
===
root
.
curSelectedList
[
i
]
||
!
data
.
getNodeCache
(
setting
,
root
.
curSelectedList
[
i
].
tId
))
{
root
.
curSelectedList
.
splice
(
i
,
1
);
root
.
curSelectedList
.
splice
(
i
,
1
);
setting
.
treeObj
.
trigger
(
consts
.
event
.
UNSELECTED
,
[
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
UNSELECTED
,
[
setting
.
treeId
,
node
]);
i
--
;
j
--
;
i
--
;
j
--
;
}
}
}
}
},
},
setCache
:
function
(
setting
,
cache
)
{
setCache
:
function
(
setting
,
cache
)
{
caches
[
setting
.
treeId
]
=
cache
;
caches
[
setting
.
treeId
]
=
cache
;
},
},
setRoot
:
function
(
setting
,
root
)
{
setRoot
:
function
(
setting
,
root
)
{
roots
[
setting
.
treeId
]
=
root
;
roots
[
setting
.
treeId
]
=
root
;
},
},
setZTreeTools
:
function
(
setting
,
zTreeTools
)
{
setZTreeTools
:
function
(
setting
,
zTreeTools
)
{
for
(
var
i
=
0
,
j
=
_init
.
zTreeTools
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
zTreeTools
.
length
;
i
<
j
;
i
++
)
{
_init
.
zTreeTools
[
i
].
apply
(
this
,
arguments
);
_init
.
zTreeTools
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
...
@@ -630,7 +647,7 @@
...
@@ -630,7 +647,7 @@
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
r
=
[];
r
=
[];
if
(
tools
.
isArray
(
nodes
))
{
if
(
tools
.
isArray
(
nodes
))
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
r
.
push
(
nodes
[
i
]);
r
.
push
(
nodes
[
i
]);
if
(
nodes
[
i
][
childKey
])
if
(
nodes
[
i
][
childKey
])
r
=
r
.
concat
(
data
.
transformToArrayFormat
(
setting
,
nodes
[
i
][
childKey
]));
r
=
r
.
concat
(
data
.
transformToArrayFormat
(
setting
,
nodes
[
i
][
childKey
]));
...
@@ -642,20 +659,20 @@
...
@@ -642,20 +659,20 @@
}
}
return
r
;
return
r
;
},
},
transformTozTreeFormat
:
function
(
setting
,
sNodes
)
{
transformTozTreeFormat
:
function
(
setting
,
sNodes
)
{
var
i
,
l
,
var
i
,
l
,
key
=
setting
.
data
.
simpleData
.
idKey
,
key
=
setting
.
data
.
simpleData
.
idKey
,
parentKey
=
setting
.
data
.
simpleData
.
pIdKey
,
parentKey
=
setting
.
data
.
simpleData
.
pIdKey
,
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
if
(
!
key
||
key
==
""
||
!
sNodes
)
return
[];
if
(
!
key
||
key
==
""
||
!
sNodes
)
return
[];
if
(
tools
.
isArray
(
sNodes
))
{
if
(
tools
.
isArray
(
sNodes
))
{
var
r
=
[];
var
r
=
[];
var
tmpMap
=
{};
var
tmpMap
=
{};
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
tmpMap
[
sNodes
[
i
][
key
]]
=
sNodes
[
i
];
tmpMap
[
sNodes
[
i
][
key
]]
=
sNodes
[
i
];
}
}
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
if
(
tmpMap
[
sNodes
[
i
][
parentKey
]]
&&
sNodes
[
i
][
key
]
!=
sNodes
[
i
][
parentKey
])
{
if
(
tmpMap
[
sNodes
[
i
][
parentKey
]]
&&
sNodes
[
i
][
key
]
!=
sNodes
[
i
][
parentKey
])
{
if
(
!
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
])
if
(
!
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
])
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
]
=
[];
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
]
=
[];
...
@@ -665,24 +682,24 @@
...
@@ -665,24 +682,24 @@
}
}
}
}
return
r
;
return
r
;
}
else
{
}
else
{
return
[
sNodes
];
return
[
sNodes
];
}
}
}
}
},
},
//method of event proxy
//method of event proxy
event
=
{
event
=
{
bindEvent
:
function
(
setting
)
{
bindEvent
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
bind
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
bind
.
length
;
i
<
j
;
i
++
)
{
_init
.
bind
[
i
].
apply
(
this
,
arguments
);
_init
.
bind
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
unbindEvent
:
function
(
setting
)
{
unbindEvent
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
unbind
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
unbind
.
length
;
i
<
j
;
i
++
)
{
_init
.
unbind
[
i
].
apply
(
this
,
arguments
);
_init
.
unbind
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
bindTree
:
function
(
setting
)
{
bindTree
:
function
(
setting
)
{
var
eventParam
=
{
var
eventParam
=
{
treeId
:
setting
.
treeId
treeId
:
setting
.
treeId
},
},
...
@@ -690,7 +707,7 @@
...
@@ -690,7 +707,7 @@
if
(
!
setting
.
view
.
txtSelectedEnable
)
{
if
(
!
setting
.
view
.
txtSelectedEnable
)
{
// for can't select text
// for can't select text
o
.
bind
(
'
selectstart
'
,
handler
.
onSelectStart
).
css
({
o
.
bind
(
'
selectstart
'
,
handler
.
onSelectStart
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
"
-moz-user-select
"
:
"
-moz-none
"
});
});
}
}
o
.
bind
(
'
click
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
click
'
,
eventParam
,
event
.
proxy
);
...
@@ -701,7 +718,7 @@
...
@@ -701,7 +718,7 @@
o
.
bind
(
'
mouseup
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
mouseup
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
contextmenu
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
contextmenu
'
,
eventParam
,
event
.
proxy
);
},
},
unbindTree
:
function
(
setting
)
{
unbindTree
:
function
(
setting
)
{
var
o
=
setting
.
treeObj
;
var
o
=
setting
.
treeObj
;
o
.
unbind
(
'
selectstart
'
,
handler
.
onSelectStart
)
o
.
unbind
(
'
selectstart
'
,
handler
.
onSelectStart
)
.
unbind
(
'
click
'
,
event
.
proxy
)
.
unbind
(
'
click
'
,
event
.
proxy
)
...
@@ -712,9 +729,9 @@
...
@@ -712,9 +729,9 @@
.
unbind
(
'
mouseup
'
,
event
.
proxy
)
.
unbind
(
'
mouseup
'
,
event
.
proxy
)
.
unbind
(
'
contextmenu
'
,
event
.
proxy
);
.
unbind
(
'
contextmenu
'
,
event
.
proxy
);
},
},
doProxy
:
function
(
e
)
{
doProxy
:
function
(
e
)
{
var
results
=
[];
var
results
=
[];
for
(
var
i
=
0
,
j
=
_init
.
proxys
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
proxys
.
length
;
i
<
j
;
i
++
)
{
var
proxyResult
=
_init
.
proxys
[
i
].
apply
(
this
,
arguments
);
var
proxyResult
=
_init
.
proxys
[
i
].
apply
(
this
,
arguments
);
results
.
push
(
proxyResult
);
results
.
push
(
proxyResult
);
if
(
proxyResult
.
stop
)
{
if
(
proxyResult
.
stop
)
{
...
@@ -723,12 +740,12 @@
...
@@ -723,12 +740,12 @@
}
}
return
results
;
return
results
;
},
},
proxy
:
function
(
e
)
{
proxy
:
function
(
e
)
{
var
setting
=
data
.
getSetting
(
e
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
e
.
data
.
treeId
);
if
(
!
tools
.
uCanDo
(
setting
,
e
))
return
true
;
if
(
!
tools
.
uCanDo
(
setting
,
e
))
return
true
;
var
results
=
event
.
doProxy
(
e
),
var
results
=
event
.
doProxy
(
e
),
r
=
true
,
x
=
false
;
r
=
true
,
x
=
false
;
for
(
var
i
=
0
,
l
=
results
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
results
.
length
;
i
<
l
;
i
++
)
{
var
proxyResult
=
results
[
i
];
var
proxyResult
=
results
[
i
];
if
(
proxyResult
.
nodeEventCallback
)
{
if
(
proxyResult
.
nodeEventCallback
)
{
x
=
true
;
x
=
true
;
...
@@ -769,66 +786,72 @@
...
@@ -769,66 +786,72 @@
setting
.
treeObj
.
trigger
(
consts
.
event
.
CLICK
,
[
event
,
setting
.
treeId
,
node
,
clickFlag
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
CLICK
,
[
event
,
setting
.
treeId
,
node
,
clickFlag
]);
return
true
;
return
true
;
},
},
onZTreeMousedown
:
function
(
event
,
node
)
{
onZTreeMousedown
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseDown
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseDown
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onMouseDown
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onMouseDown
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
true
;
return
true
;
},
},
onZTreeMouseup
:
function
(
event
,
node
)
{
onZTreeMouseup
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseUp
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseUp
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onMouseUp
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onMouseUp
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
true
;
return
true
;
},
},
onZTreeDblclick
:
function
(
event
,
node
)
{
onZTreeDblclick
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeDblClick
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeDblClick
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onDblClick
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onDblClick
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
true
;
return
true
;
},
},
onZTreeContextmenu
:
function
(
event
,
node
)
{
onZTreeContextmenu
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeRightClick
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeRightClick
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onRightClick
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onRightClick
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
(
typeof
setting
.
callback
.
onRightClick
)
!=
"
function
"
;
return
(
typeof
setting
.
callback
.
onRightClick
)
!=
"
function
"
;
},
},
onSelectStart
:
function
(
e
)
{
onSelectStart
:
function
(
e
)
{
var
n
=
e
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
var
n
=
e
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
(
n
===
"
input
"
||
n
===
"
textarea
"
);
return
(
n
===
"
input
"
||
n
===
"
textarea
"
);
}
}
},
},
//method of tools for zTree
//method of tools for zTree
tools
=
{
tools
=
{
apply
:
function
(
fun
,
param
,
defaultValue
)
{
apply
:
function
(
fun
,
param
,
defaultValue
)
{
if
((
typeof
fun
)
==
"
function
"
)
{
if
((
typeof
fun
)
==
"
function
"
)
{
return
fun
.
apply
(
zt
,
param
?
param
:
[]);
return
fun
.
apply
(
zt
,
param
?
param
:
[]);
}
}
return
defaultValue
;
return
defaultValue
;
},
},
canAsync
:
function
(
setting
,
node
)
{
canAsync
:
function
(
setting
,
node
)
{
var
childKey
=
setting
.
data
.
key
.
children
;
var
childKey
=
setting
.
data
.
key
.
children
;
return
(
setting
.
async
.
enable
&&
node
&&
node
.
isParent
&&
!
(
node
.
zAsync
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
)));
return
(
setting
.
async
.
enable
&&
node
&&
node
.
isParent
&&
!
(
node
.
zAsync
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
)));
},
},
clone
:
function
(
obj
)
{
clone
:
function
(
obj
)
{
if
(
obj
===
null
)
return
null
;
if
(
obj
===
null
)
return
null
;
var
o
=
tools
.
isArray
(
obj
)
?
[]
:
{};
var
o
=
tools
.
isArray
(
obj
)
?
[]
:
{};
for
(
var
i
in
obj
)
{
for
(
var
i
in
obj
)
{
o
[
i
]
=
(
obj
[
i
]
instanceof
Date
)
?
new
Date
(
obj
[
i
].
getTime
())
:
(
typeof
obj
[
i
]
===
"
object
"
?
tools
.
clone
(
obj
[
i
])
:
obj
[
i
]);
o
[
i
]
=
(
obj
[
i
]
instanceof
Date
)
?
new
Date
(
obj
[
i
].
getTime
())
:
(
typeof
obj
[
i
]
===
"
object
"
?
tools
.
clone
(
obj
[
i
])
:
obj
[
i
]);
}
}
return
o
;
return
o
;
},
},
eqs
:
function
(
str1
,
str2
)
{
eqs
:
function
(
str1
,
str2
)
{
return
str1
.
toLowerCase
()
===
str2
.
toLowerCase
();
return
str1
.
toLowerCase
()
===
str2
.
toLowerCase
();
},
},
isArray
:
function
(
arr
)
{
isArray
:
function
(
arr
)
{
return
Object
.
prototype
.
toString
.
apply
(
arr
)
===
"
[object Array]
"
;
return
Object
.
prototype
.
toString
.
apply
(
arr
)
===
"
[object Array]
"
;
},
},
$
:
function
(
node
,
exp
,
setting
)
{
isElement
:
function
(
o
)
{
return
(
typeof
HTMLElement
===
"
object
"
?
o
instanceof
HTMLElement
:
//DOM2
o
&&
typeof
o
===
"
object
"
&&
o
!==
null
&&
o
.
nodeType
===
1
&&
typeof
o
.
nodeName
===
"
string
"
);
},
$
:
function
(
node
,
exp
,
setting
)
{
if
(
!!
exp
&&
typeof
exp
!=
"
string
"
)
{
if
(
!!
exp
&&
typeof
exp
!=
"
string
"
)
{
setting
=
exp
;
setting
=
exp
;
exp
=
""
;
exp
=
""
;
...
@@ -842,7 +865,7 @@
...
@@ -842,7 +865,7 @@
getMDom
:
function
(
setting
,
curDom
,
targetExpr
)
{
getMDom
:
function
(
setting
,
curDom
,
targetExpr
)
{
if
(
!
curDom
)
return
null
;
if
(
!
curDom
)
return
null
;
while
(
curDom
&&
curDom
.
id
!==
setting
.
treeId
)
{
while
(
curDom
&&
curDom
.
id
!==
setting
.
treeId
)
{
for
(
var
i
=
0
,
l
=
targetExpr
.
length
;
curDom
.
tagName
&&
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
targetExpr
.
length
;
curDom
.
tagName
&&
i
<
l
;
i
++
)
{
if
(
tools
.
eqs
(
curDom
.
tagName
,
targetExpr
[
i
].
tagName
)
&&
curDom
.
getAttribute
(
targetExpr
[
i
].
attrName
)
!==
null
)
{
if
(
tools
.
eqs
(
curDom
.
tagName
,
targetExpr
[
i
].
tagName
)
&&
curDom
.
getAttribute
(
targetExpr
[
i
].
attrName
)
!==
null
)
{
return
curDom
;
return
curDom
;
}
}
...
@@ -851,19 +874,19 @@
...
@@ -851,19 +874,19 @@
}
}
return
null
;
return
null
;
},
},
getNodeMainDom
:
function
(
target
)
{
getNodeMainDom
:
function
(
target
)
{
return
(
$
(
target
).
parent
(
"
li
"
).
get
(
0
)
||
$
(
target
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
));
return
(
$
(
target
).
parent
(
"
li
"
).
get
(
0
)
||
$
(
target
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
));
},
},
isChildOrSelf
:
function
(
dom
,
parentId
)
{
isChildOrSelf
:
function
(
dom
,
parentId
)
{
return
(
$
(
dom
).
closest
(
"
#
"
+
parentId
).
length
>
0
);
return
(
$
(
dom
).
closest
(
"
#
"
+
parentId
).
length
>
0
);
},
},
uCanDo
:
function
(
setting
,
e
)
{
uCanDo
:
function
(
setting
,
e
)
{
return
true
;
return
true
;
}
}
},
},
//method of operate ztree dom
//method of operate ztree dom
view
=
{
view
=
{
addNodes
:
function
(
setting
,
parentNode
,
index
,
newNodes
,
isSilent
)
{
addNodes
:
function
(
setting
,
parentNode
,
index
,
newNodes
,
isSilent
)
{
if
(
setting
.
data
.
keep
.
leaf
&&
parentNode
&&
!
parentNode
.
isParent
)
{
if
(
setting
.
data
.
keep
.
leaf
&&
parentNode
&&
!
parentNode
.
isParent
)
{
return
;
return
;
}
}
...
@@ -897,12 +920,12 @@
...
@@ -897,12 +920,12 @@
view
.
createNodes
(
setting
,
0
,
newNodes
,
null
,
index
);
view
.
createNodes
(
setting
,
0
,
newNodes
,
null
,
index
);
}
}
},
},
appendNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
,
initFlag
,
openFlag
)
{
appendNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
,
initFlag
,
openFlag
)
{
if
(
!
nodes
)
return
[];
if
(
!
nodes
)
return
[];
var
html
=
[],
var
html
=
[],
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
var
tmpPNode
=
(
parentNode
)
?
parentNode
:
data
.
getRoot
(
setting
),
var
tmpPNode
=
(
parentNode
)
?
parentNode
:
data
.
getRoot
(
setting
),
tmpPChild
=
tmpPNode
[
childKey
],
tmpPChild
=
tmpPNode
[
childKey
],
isFirstNode
,
isLastNode
;
isFirstNode
,
isLastNode
;
...
@@ -913,7 +936,7 @@
...
@@ -913,7 +936,7 @@
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
var
node
=
nodes
[
i
];
var
node
=
nodes
[
i
];
if
(
initFlag
)
{
if
(
initFlag
)
{
isFirstNode
=
((
index
===
0
||
tmpPChild
.
length
==
nodes
.
length
)
&&
(
i
==
0
));
isFirstNode
=
((
index
===
0
||
tmpPChild
.
length
==
nodes
.
length
)
&&
(
i
==
0
));
isLastNode
=
(
index
<
0
&&
i
==
(
nodes
.
length
-
1
));
isLastNode
=
(
index
<
0
&&
i
==
(
nodes
.
length
-
1
));
data
.
initNode
(
setting
,
level
,
node
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
);
data
.
initNode
(
setting
,
level
,
node
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
);
data
.
addNodeCache
(
setting
,
node
);
data
.
addNodeCache
(
setting
,
node
);
...
@@ -944,7 +967,7 @@
...
@@ -944,7 +967,7 @@
}
}
return
html
;
return
html
;
},
},
appendParentULDom
:
function
(
setting
,
node
)
{
appendParentULDom
:
function
(
setting
,
node
)
{
var
html
=
[],
var
html
=
[],
nObj
=
$$
(
node
,
setting
);
nObj
=
$$
(
node
,
setting
);
if
(
!
nObj
.
get
(
0
)
&&
!!
node
.
parentTId
)
{
if
(
!
nObj
.
get
(
0
)
&&
!!
node
.
parentTId
)
{
...
@@ -956,11 +979,11 @@
...
@@ -956,11 +979,11 @@
ulObj
.
remove
();
ulObj
.
remove
();
}
}
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
childHtml
=
view
.
appendNodes
(
setting
,
node
.
level
+
1
,
node
[
childKey
],
node
,
-
1
,
false
,
true
);
childHtml
=
view
.
appendNodes
(
setting
,
node
.
level
+
1
,
node
[
childKey
],
node
,
-
1
,
false
,
true
);
view
.
makeUlHtml
(
setting
,
node
,
html
,
childHtml
.
join
(
''
));
view
.
makeUlHtml
(
setting
,
node
,
html
,
childHtml
.
join
(
''
));
nObj
.
append
(
html
.
join
(
''
));
nObj
.
append
(
html
.
join
(
''
));
},
},
asyncNode
:
function
(
setting
,
node
,
isSilent
,
callback
)
{
asyncNode
:
function
(
setting
,
node
,
isSilent
,
callback
)
{
var
i
,
l
;
var
i
,
l
;
if
(
node
&&
!
node
.
isParent
)
{
if
(
node
&&
!
node
.
isParent
)
{
tools
.
apply
(
callback
);
tools
.
apply
(
callback
);
...
@@ -974,13 +997,13 @@
...
@@ -974,13 +997,13 @@
if
(
node
)
{
if
(
node
)
{
node
.
isAjaxing
=
true
;
node
.
isAjaxing
=
true
;
var
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
);
var
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
);
icoObj
.
attr
({
"
style
"
:
""
,
"
class
"
:
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
ICO_LOADING
});
icoObj
.
attr
({
"
style
"
:
""
,
"
class
"
:
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
ICO_LOADING
});
}
}
var
tmpParam
=
{};
var
tmpParam
=
{};
for
(
i
=
0
,
l
=
setting
.
async
.
autoParam
.
length
;
node
&&
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
setting
.
async
.
autoParam
.
length
;
node
&&
i
<
l
;
i
++
)
{
var
pKey
=
setting
.
async
.
autoParam
[
i
].
split
(
"
=
"
),
spKey
=
pKey
;
var
pKey
=
setting
.
async
.
autoParam
[
i
].
split
(
"
=
"
),
spKey
=
pKey
;
if
(
pKey
.
length
>
1
)
{
if
(
pKey
.
length
>
1
)
{
spKey
=
pKey
[
1
];
spKey
=
pKey
[
1
];
pKey
=
pKey
[
0
];
pKey
=
pKey
[
0
];
}
}
...
@@ -1004,7 +1027,7 @@
...
@@ -1004,7 +1027,7 @@
url
:
tools
.
apply
(
setting
.
async
.
url
,
[
setting
.
treeId
,
node
],
setting
.
async
.
url
),
url
:
tools
.
apply
(
setting
.
async
.
url
,
[
setting
.
treeId
,
node
],
setting
.
async
.
url
),
data
:
setting
.
async
.
contentType
.
indexOf
(
'
application/json
'
)
>
-
1
?
JSON
.
stringify
(
tmpParam
)
:
tmpParam
,
data
:
setting
.
async
.
contentType
.
indexOf
(
'
application/json
'
)
>
-
1
?
JSON
.
stringify
(
tmpParam
)
:
tmpParam
,
dataType
:
setting
.
async
.
dataType
,
dataType
:
setting
.
async
.
dataType
,
success
:
function
(
msg
)
{
success
:
function
(
msg
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
return
;
return
;
}
}
...
@@ -1017,7 +1040,7 @@
...
@@ -1017,7 +1040,7 @@
}
else
{
}
else
{
newNodes
=
msg
;
newNodes
=
msg
;
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
newNodes
=
msg
;
newNodes
=
msg
;
}
}
...
@@ -1035,7 +1058,7 @@
...
@@ -1035,7 +1058,7 @@
setting
.
treeObj
.
trigger
(
consts
.
event
.
ASYNC_SUCCESS
,
[
setting
.
treeId
,
node
,
msg
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
ASYNC_SUCCESS
,
[
setting
.
treeId
,
node
,
msg
]);
tools
.
apply
(
callback
);
tools
.
apply
(
callback
);
},
},
error
:
function
(
XMLHttpRequest
,
textStatus
,
errorThrown
)
{
error
:
function
(
XMLHttpRequest
,
textStatus
,
errorThrown
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
return
;
return
;
}
}
...
@@ -1049,7 +1072,7 @@
...
@@ -1049,7 +1072,7 @@
cancelPreSelectedNode
:
function
(
setting
,
node
,
excludeNode
)
{
cancelPreSelectedNode
:
function
(
setting
,
node
,
excludeNode
)
{
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
i
,
n
;
i
,
n
;
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
n
=
list
[
i
];
n
=
list
[
i
];
if
(
node
===
n
||
(
!
node
&&
(
!
excludeNode
||
excludeNode
!==
n
)))
{
if
(
node
===
n
||
(
!
node
&&
(
!
excludeNode
||
excludeNode
!==
n
)))
{
$$
(
n
,
consts
.
id
.
A
,
setting
).
removeClass
(
consts
.
node
.
CURSELECTED
);
$$
(
n
,
consts
.
id
.
A
,
setting
).
removeClass
(
consts
.
node
.
CURSELECTED
);
...
@@ -1063,10 +1086,10 @@
...
@@ -1063,10 +1086,10 @@
}
}
}
}
},
},
createNodeCallback
:
function
(
setting
)
{
createNodeCallback
:
function
(
setting
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
while
(
root
.
createdNodes
.
length
>
0
)
{
while
(
root
.
createdNodes
.
length
>
0
)
{
var
node
=
root
.
createdNodes
.
shift
();
var
node
=
root
.
createdNodes
.
shift
();
tools
.
apply
(
setting
.
view
.
addDiyDom
,
[
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
view
.
addDiyDom
,
[
setting
.
treeId
,
node
]);
if
(
!!
setting
.
callback
.
onNodeCreated
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
)
{
...
@@ -1075,7 +1098,7 @@
...
@@ -1075,7 +1098,7 @@
}
}
}
}
},
},
createNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
)
{
createNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
)
{
if
(
!
nodes
||
nodes
.
length
==
0
)
return
;
if
(
!
nodes
||
nodes
.
length
==
0
)
return
;
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
,
childKey
=
setting
.
data
.
key
.
children
,
...
@@ -1098,7 +1121,7 @@
...
@@ -1098,7 +1121,7 @@
if
(
index
>=
0
)
{
if
(
index
>=
0
)
{
nextObj
=
parentObj
.
children
()[
index
];
nextObj
=
parentObj
.
children
()[
index
];
}
}
if
(
index
>=
0
&&
nextObj
)
{
if
(
index
>=
0
&&
nextObj
)
{
$
(
nextObj
).
before
(
zTreeHtml
.
join
(
''
));
$
(
nextObj
).
before
(
zTreeHtml
.
join
(
''
));
}
else
{
}
else
{
parentObj
.
append
(
zTreeHtml
.
join
(
''
));
parentObj
.
append
(
zTreeHtml
.
join
(
''
));
...
@@ -1107,7 +1130,7 @@
...
@@ -1107,7 +1130,7 @@
view
.
createNodeCallback
(
setting
);
view
.
createNodeCallback
(
setting
);
},
},
destroy
:
function
(
setting
)
{
destroy
:
function
(
setting
)
{
if
(
!
setting
)
return
;
if
(
!
setting
)
return
;
data
.
initCache
(
setting
);
data
.
initCache
(
setting
);
data
.
initRoot
(
setting
);
data
.
initRoot
(
setting
);
...
@@ -1116,7 +1139,7 @@
...
@@ -1116,7 +1139,7 @@
setting
.
treeObj
.
empty
();
setting
.
treeObj
.
empty
();
delete
settings
[
setting
.
treeId
];
delete
settings
[
setting
.
treeId
];
},
},
expandCollapseNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
expandCollapseNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
var
tmpCb
,
_callback
;
var
tmpCb
,
_callback
;
...
@@ -1126,7 +1149,7 @@
...
@@ -1126,7 +1149,7 @@
}
}
if
(
root
.
expandTriggerFlag
)
{
if
(
root
.
expandTriggerFlag
)
{
_callback
=
callback
;
_callback
=
callback
;
tmpCb
=
function
()
{
tmpCb
=
function
()
{
if
(
_callback
)
_callback
();
if
(
_callback
)
_callback
();
if
(
node
.
open
)
{
if
(
node
.
open
)
{
setting
.
treeObj
.
trigger
(
consts
.
event
.
EXPAND
,
[
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
EXPAND
,
[
setting
.
treeId
,
node
]);
...
@@ -1137,7 +1160,7 @@
...
@@ -1137,7 +1160,7 @@
callback
=
tmpCb
;
callback
=
tmpCb
;
root
.
expandTriggerFlag
=
false
;
root
.
expandTriggerFlag
=
false
;
}
}
if
(
!
node
.
open
&&
node
.
isParent
&&
((
!
$$
(
node
,
consts
.
id
.
UL
,
setting
).
get
(
0
))
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
&&
!
$$
(
node
[
childKey
][
0
],
setting
).
get
(
0
))))
{
if
(
!
node
.
open
&&
node
.
isParent
&&
((
!
$$
(
node
,
consts
.
id
.
UL
,
setting
).
get
(
0
))
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
&&
!
$$
(
node
[
childKey
][
0
],
setting
).
get
(
0
))))
{
view
.
appendParentULDom
(
setting
,
node
);
view
.
appendParentULDom
(
setting
,
node
);
view
.
createNodeCallback
(
setting
);
view
.
createNodeCallback
(
setting
);
}
}
...
@@ -1183,7 +1206,7 @@
...
@@ -1183,7 +1206,7 @@
tools
.
apply
(
callback
,
[]);
tools
.
apply
(
callback
,
[]);
}
}
},
},
expandCollapseParentNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
expandCollapseParentNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
if
(
!
node
.
parentTId
)
{
if
(
!
node
.
parentTId
)
{
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
...
@@ -1195,10 +1218,10 @@
...
@@ -1195,10 +1218,10 @@
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
expandFlag
,
animateFlag
,
callback
);
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
expandFlag
,
animateFlag
,
callback
);
}
}
},
},
expandCollapseSonNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
expandCollapseSonNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
,
childKey
=
setting
.
data
.
key
.
children
,
treeNodes
=
(
node
)
?
node
[
childKey
]
:
root
[
childKey
],
treeNodes
=
(
node
)
?
node
[
childKey
]
:
root
[
childKey
],
selfAnimateSign
=
(
node
)
?
false
:
animateFlag
,
selfAnimateSign
=
(
node
)
?
false
:
animateFlag
,
expandTriggerFlag
=
data
.
getRoot
(
setting
).
expandTriggerFlag
;
expandTriggerFlag
=
data
.
getRoot
(
setting
).
expandTriggerFlag
;
data
.
getRoot
(
setting
).
expandTriggerFlag
=
false
;
data
.
getRoot
(
setting
).
expandTriggerFlag
=
false
;
...
@@ -1208,7 +1231,7 @@
...
@@ -1208,7 +1231,7 @@
}
}
}
}
data
.
getRoot
(
setting
).
expandTriggerFlag
=
expandTriggerFlag
;
data
.
getRoot
(
setting
).
expandTriggerFlag
=
expandTriggerFlag
;
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
},
},
isSelectedNode
:
function
(
setting
,
node
)
{
isSelectedNode
:
function
(
setting
,
node
)
{
if
(
!
node
)
{
if
(
!
node
)
{
...
@@ -1216,35 +1239,35 @@
...
@@ -1216,35 +1239,35 @@
}
}
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
i
;
i
;
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
if
(
node
===
list
[
i
])
{
if
(
node
===
list
[
i
])
{
return
true
;
return
true
;
}
}
}
}
return
false
;
return
false
;
},
},
makeDOMNodeIcon
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeIcon
:
function
(
html
,
setting
,
node
)
{
var
nameStr
=
data
.
getNodeName
(
setting
,
node
),
var
nameStr
=
data
.
getNodeName
(
setting
,
node
),
name
=
setting
.
view
.
nameIsHTML
?
nameStr
:
nameStr
.
replace
(
/&/g
,
'
&
'
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
);
name
=
setting
.
view
.
nameIsHTML
?
nameStr
:
nameStr
.
replace
(
/&/g
,
'
&
'
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
);
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
ICON
,
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
ICON
,
"
' title='' treeNode
"
,
consts
.
id
.
ICON
,
"
class='
"
,
view
.
makeNodeIcoClass
(
setting
,
node
),
"
' title='' treeNode
"
,
consts
.
id
.
ICON
,
"
class='
"
,
view
.
makeNodeIcoClass
(
setting
,
node
),
"
' style='
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
),
"
'></span><span id='
"
,
node
.
tId
,
consts
.
id
.
SPAN
,
"
' style='
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
),
"
'></span><span id='
"
,
node
.
tId
,
consts
.
id
.
SPAN
,
"
' class='
"
,
consts
.
className
.
NAME
,
"
' class='
"
,
consts
.
className
.
NAME
,
"
'>
"
,
name
,
"
</span>
"
);
"
'>
"
,
name
,
"
</span>
"
);
},
},
makeDOMNodeLine
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeLine
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
SWITCH
,
"
' title='' class='
"
,
view
.
makeNodeLineClass
(
setting
,
node
),
"
' treeNode
"
,
consts
.
id
.
SWITCH
,
"
></span>
"
);
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
SWITCH
,
"
' title='' class='
"
,
view
.
makeNodeLineClass
(
setting
,
node
),
"
' treeNode
"
,
consts
.
id
.
SWITCH
,
"
></span>
"
);
},
},
makeDOMNodeMainAfter
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeMainAfter
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
</li>
"
);
html
.
push
(
"
</li>
"
);
},
},
makeDOMNodeMainBefore
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeMainBefore
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
<li id='
"
,
node
.
tId
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
);
html
.
push
(
"
<li id='
"
,
node
.
tId
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
);
},
},
makeDOMNodeNameAfter
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeNameAfter
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
</a>
"
);
html
.
push
(
"
</a>
"
);
},
},
makeDOMNodeNameBefore
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeNameBefore
:
function
(
html
,
setting
,
node
)
{
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
url
=
view
.
makeNodeUrl
(
setting
,
node
),
url
=
view
.
makeNodeUrl
(
setting
,
node
),
fontcss
=
view
.
makeNodeFontCss
(
setting
,
node
),
fontcss
=
view
.
makeNodeFontCss
(
setting
,
node
),
...
@@ -1252,17 +1275,19 @@
...
@@ -1252,17 +1275,19 @@
for
(
var
f
in
fontcss
)
{
for
(
var
f
in
fontcss
)
{
fontStyle
.
push
(
f
,
"
:
"
,
fontcss
[
f
],
"
;
"
);
fontStyle
.
push
(
f
,
"
:
"
,
fontcss
[
f
],
"
;
"
);
}
}
html
.
push
(
"
<a id='
"
,
node
.
tId
,
consts
.
id
.
A
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' treeNode
"
,
consts
.
id
.
A
,
"
onclick=
\"
"
,
(
node
.
click
||
''
),
html
.
push
(
"
<a id='
"
,
node
.
tId
,
consts
.
id
.
A
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' treeNode
"
,
consts
.
id
.
A
,
"
onclick=
\"
"
,
(
node
.
click
||
''
),
"
\"
"
,
((
url
!=
null
&&
url
.
length
>
0
)
?
"
href='
"
+
url
+
"
'
"
:
""
),
"
target='
"
,
view
.
makeNodeTarget
(
node
),
"
' style='
"
,
fontStyle
.
join
(
''
),
"
\"
"
,
((
url
!=
null
&&
url
.
length
>
0
)
?
"
href='
"
+
url
+
"
'
"
:
""
),
"
target='
"
,
view
.
makeNodeTarget
(
node
),
"
' style='
"
,
fontStyle
.
join
(
''
),
"
'
"
);
"
'
"
);
if
(
tools
.
apply
(
setting
.
view
.
showTitle
,
[
setting
.
treeId
,
node
],
setting
.
view
.
showTitle
)
&&
title
)
{
html
.
push
(
"
title='
"
,
title
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
),
"
'
"
);}
if
(
tools
.
apply
(
setting
.
view
.
showTitle
,
[
setting
.
treeId
,
node
],
setting
.
view
.
showTitle
)
&&
title
)
{
html
.
push
(
"
title='
"
,
title
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
),
"
'
"
);
}
html
.
push
(
"
>
"
);
html
.
push
(
"
>
"
);
},
},
makeNodeFontCss
:
function
(
setting
,
node
)
{
makeNodeFontCss
:
function
(
setting
,
node
)
{
var
fontCss
=
tools
.
apply
(
setting
.
view
.
fontCss
,
[
setting
.
treeId
,
node
],
setting
.
view
.
fontCss
);
var
fontCss
=
tools
.
apply
(
setting
.
view
.
fontCss
,
[
setting
.
treeId
,
node
],
setting
.
view
.
fontCss
);
return
(
fontCss
&&
((
typeof
fontCss
)
!=
"
function
"
))
?
fontCss
:
{};
return
(
fontCss
&&
((
typeof
fontCss
)
!=
"
function
"
))
?
fontCss
:
{};
},
},
makeNodeIcoClass
:
function
(
setting
,
node
)
{
makeNodeIcoClass
:
function
(
setting
,
node
)
{
var
icoCss
=
[
"
ico
"
];
var
icoCss
=
[
"
ico
"
];
if
(
!
node
.
isAjaxing
)
{
if
(
!
node
.
isAjaxing
)
{
icoCss
[
0
]
=
(
node
.
iconSkin
?
node
.
iconSkin
+
"
_
"
:
""
)
+
icoCss
[
0
];
icoCss
[
0
]
=
(
node
.
iconSkin
?
node
.
iconSkin
+
"
_
"
:
""
)
+
icoCss
[
0
];
...
@@ -1274,7 +1299,7 @@
...
@@ -1274,7 +1299,7 @@
}
}
return
consts
.
className
.
BUTTON
+
"
"
+
icoCss
.
join
(
'
_
'
);
return
consts
.
className
.
BUTTON
+
"
"
+
icoCss
.
join
(
'
_
'
);
},
},
makeNodeIcoStyle
:
function
(
setting
,
node
)
{
makeNodeIcoStyle
:
function
(
setting
,
node
)
{
var
icoStyle
=
[];
var
icoStyle
=
[];
if
(
!
node
.
isAjaxing
)
{
if
(
!
node
.
isAjaxing
)
{
var
icon
=
(
node
.
isParent
&&
node
.
iconOpen
&&
node
.
iconClose
)
?
(
node
.
open
?
node
.
iconOpen
:
node
.
iconClose
)
:
node
[
setting
.
data
.
key
.
icon
];
var
icon
=
(
node
.
isParent
&&
node
.
iconOpen
&&
node
.
iconClose
)
?
(
node
.
open
?
node
.
iconOpen
:
node
.
iconClose
)
:
node
[
setting
.
data
.
key
.
icon
];
...
@@ -1285,7 +1310,7 @@
...
@@ -1285,7 +1310,7 @@
}
}
return
icoStyle
.
join
(
''
);
return
icoStyle
.
join
(
''
);
},
},
makeNodeLineClass
:
function
(
setting
,
node
)
{
makeNodeLineClass
:
function
(
setting
,
node
)
{
var
lineClass
=
[];
var
lineClass
=
[];
if
(
setting
.
view
.
showLine
)
{
if
(
setting
.
view
.
showLine
)
{
if
(
node
.
level
==
0
&&
node
.
isFirstNode
&&
node
.
isLastNode
)
{
if
(
node
.
level
==
0
&&
node
.
isFirstNode
&&
node
.
isLastNode
)
{
...
@@ -1307,25 +1332,25 @@
...
@@ -1307,25 +1332,25 @@
}
}
return
view
.
makeNodeLineClassEx
(
node
)
+
lineClass
.
join
(
'
_
'
);
return
view
.
makeNodeLineClassEx
(
node
)
+
lineClass
.
join
(
'
_
'
);
},
},
makeNodeLineClassEx
:
function
(
node
)
{
makeNodeLineClassEx
:
function
(
node
)
{
return
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
LEVEL
+
node
.
level
+
"
"
+
consts
.
className
.
SWITCH
+
"
"
;
return
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
LEVEL
+
node
.
level
+
"
"
+
consts
.
className
.
SWITCH
+
"
"
;
},
},
makeNodeTarget
:
function
(
node
)
{
makeNodeTarget
:
function
(
node
)
{
return
(
node
.
target
||
"
_blank
"
);
return
(
node
.
target
||
"
_blank
"
);
},
},
makeNodeUrl
:
function
(
setting
,
node
)
{
makeNodeUrl
:
function
(
setting
,
node
)
{
var
urlKey
=
setting
.
data
.
key
.
url
;
var
urlKey
=
setting
.
data
.
key
.
url
;
return
node
[
urlKey
]
?
node
[
urlKey
]
:
null
;
return
node
[
urlKey
]
?
node
[
urlKey
]
:
null
;
},
},
makeUlHtml
:
function
(
setting
,
node
,
html
,
content
)
{
makeUlHtml
:
function
(
setting
,
node
,
html
,
content
)
{
html
.
push
(
"
<ul id='
"
,
node
.
tId
,
consts
.
id
.
UL
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
"
,
view
.
makeUlLineClass
(
setting
,
node
),
"
' style='display:
"
,
(
node
.
open
?
"
block
"
:
"
none
"
),
"
'>
"
);
html
.
push
(
"
<ul id='
"
,
node
.
tId
,
consts
.
id
.
UL
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
"
,
view
.
makeUlLineClass
(
setting
,
node
),
"
' style='display:
"
,
(
node
.
open
?
"
block
"
:
"
none
"
),
"
'>
"
);
html
.
push
(
content
);
html
.
push
(
content
);
html
.
push
(
"
</ul>
"
);
html
.
push
(
"
</ul>
"
);
},
},
makeUlLineClass
:
function
(
setting
,
node
)
{
makeUlLineClass
:
function
(
setting
,
node
)
{
return
((
setting
.
view
.
showLine
&&
!
node
.
isLastNode
)
?
consts
.
line
.
LINE
:
""
);
return
((
setting
.
view
.
showLine
&&
!
node
.
isLastNode
)
?
consts
.
line
.
LINE
:
""
);
},
},
removeChildNodes
:
function
(
setting
,
node
)
{
removeChildNodes
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
nodes
=
node
[
childKey
];
nodes
=
node
[
childKey
];
...
@@ -1349,7 +1374,7 @@
...
@@ -1349,7 +1374,7 @@
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
}
}
},
},
scrollIntoView
:
function
(
dom
)
{
scrollIntoView
:
function
(
dom
)
{
if
(
!
dom
)
{
if
(
!
dom
)
{
return
;
return
;
}
}
...
@@ -1365,14 +1390,13 @@
...
@@ -1365,14 +1390,13 @@
}
}
function
makeArea
(
left
,
top
,
width
,
height
)
{
function
makeArea
(
left
,
top
,
width
,
height
)
{
return
{
"
left
"
:
left
,
"
top
"
:
top
,
"
width
"
:
width
,
"
height
"
:
height
return
{
"
left
"
:
left
,
"
top
"
:
top
,
"
width
"
:
width
,
"
height
"
:
height
,
"
right
"
:
left
+
width
,
"
bottom
"
:
top
+
height
,
"
right
"
:
left
+
width
,
"
bottom
"
:
top
+
height
,
"
translate
"
:
,
"
translate
"
:
function
(
x
,
y
)
{
function
(
x
,
y
)
{
return
makeArea
(
x
+
left
,
y
+
top
,
width
,
height
);
return
makeArea
(
x
+
left
,
y
+
top
,
width
,
height
);
}
}
,
"
relativeFromTo
"
:
,
"
relativeFromTo
"
:
function
(
lhs
,
rhs
)
{
function
(
lhs
,
rhs
)
{
var
newLeft
=
left
,
newTop
=
top
;
var
newLeft
=
left
,
newTop
=
top
;
lhs
=
lhs
.
offsetParent
;
lhs
=
lhs
.
offsetParent
;
rhs
=
rhs
.
offsetParent
;
rhs
=
rhs
.
offsetParent
;
...
@@ -1395,14 +1419,12 @@
...
@@ -1395,14 +1419,12 @@
var
parent
,
elem
=
this
,
area
=
makeArea
(
var
parent
,
elem
=
this
,
area
=
makeArea
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);
this
.
offsetWidth
,
this
.
offsetHeight
);
while
((
parent
=
elem
.
parentNode
)
instanceof
HTMLElement
)
{
while
(
tools
.
isElement
(
parent
=
elem
.
parentNode
)
)
{
var
clientLeft
=
parent
.
offsetLeft
+
parent
.
clientLeft
;
var
clientLeft
=
parent
.
offsetLeft
+
parent
.
clientLeft
;
var
clientTop
=
parent
.
offsetTop
+
parent
.
clientTop
;
var
clientTop
=
parent
.
offsetTop
+
parent
.
clientTop
;
// Make area relative to parent's client area.
// Make area relative to parent's client area.
area
=
area
.
area
=
area
.
relativeFromTo
(
elem
,
parent
).
translate
(
-
clientLeft
,
-
clientTop
);
relativeFromTo
(
elem
,
parent
).
translate
(
-
clientLeft
,
-
clientTop
);
parent
.
scrollLeft
=
withinBounds
(
parent
.
scrollLeft
=
withinBounds
(
parent
.
scrollLeft
,
parent
.
scrollLeft
,
...
@@ -1423,27 +1445,31 @@
...
@@ -1423,27 +1445,31 @@
}
}
dom
.
scrollIntoViewIfNeeded
();
dom
.
scrollIntoViewIfNeeded
();
},
},
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
)
{
parentNode
[
childKey
][
0
].
isFirstNode
=
true
;
parentNode
[
childKey
][
0
].
isFirstNode
=
true
;
}
}
},
},
setLastNode
:
function
(
setting
,
parentNode
)
{
setLastNode
:
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
)
{
parentNode
[
childKey
][
childLength
-
1
].
isLastNode
=
true
;
parentNode
[
childKey
][
childLength
-
1
].
isLastNode
=
true
;
}
}
},
},
removeNode
:
function
(
setting
,
node
)
{
removeNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
,
childKey
=
setting
.
data
.
key
.
children
,
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
root
;
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
root
;
node
.
isFirstNode
=
false
;
node
.
isFirstNode
=
false
;
node
.
isLastNode
=
false
;
node
.
isLastNode
=
false
;
node
.
getPreNode
=
function
()
{
return
null
;};
node
.
getPreNode
=
function
()
{
node
.
getNextNode
=
function
()
{
return
null
;};
return
null
;
};
node
.
getNextNode
=
function
()
{
return
null
;
};
if
(
!
data
.
getNodeCache
(
setting
,
node
.
tId
))
{
if
(
!
data
.
getNodeCache
(
setting
,
node
.
tId
))
{
return
;
return
;
...
@@ -1462,7 +1488,7 @@
...
@@ -1462,7 +1488,7 @@
view
.
setFirstNode
(
setting
,
parentNode
);
view
.
setFirstNode
(
setting
,
parentNode
);
view
.
setLastNode
(
setting
,
parentNode
);
view
.
setLastNode
(
setting
,
parentNode
);
var
tmp_ulObj
,
tmp_switchObj
,
tmp_icoObj
,
var
tmp_ulObj
,
tmp_switchObj
,
tmp_icoObj
,
childLength
=
parentNode
[
childKey
].
length
;
childLength
=
parentNode
[
childKey
].
length
;
//repair nodes old parent
//repair nodes old parent
...
@@ -1498,7 +1524,7 @@
...
@@ -1498,7 +1524,7 @@
tmp_ulObj
.
removeClass
(
consts
.
line
.
LINE
);
tmp_ulObj
.
removeClass
(
consts
.
line
.
LINE
);
}
}
},
},
replaceIcoClass
:
function
(
node
,
obj
,
newName
)
{
replaceIcoClass
:
function
(
node
,
obj
,
newName
)
{
if
(
!
obj
||
node
.
isAjaxing
)
return
;
if
(
!
obj
||
node
.
isAjaxing
)
return
;
var
tmpName
=
obj
.
attr
(
"
class
"
);
var
tmpName
=
obj
.
attr
(
"
class
"
);
if
(
tmpName
==
undefined
)
return
;
if
(
tmpName
==
undefined
)
return
;
...
@@ -1507,12 +1533,12 @@
...
@@ -1507,12 +1533,12 @@
case
consts
.
folder
.
OPEN
:
case
consts
.
folder
.
OPEN
:
case
consts
.
folder
.
CLOSE
:
case
consts
.
folder
.
CLOSE
:
case
consts
.
folder
.
DOCU
:
case
consts
.
folder
.
DOCU
:
tmpList
[
tmpList
.
length
-
1
]
=
newName
;
tmpList
[
tmpList
.
length
-
1
]
=
newName
;
break
;
break
;
}
}
obj
.
attr
(
"
class
"
,
tmpList
.
join
(
"
_
"
));
obj
.
attr
(
"
class
"
,
tmpList
.
join
(
"
_
"
));
},
},
replaceSwitchClass
:
function
(
node
,
obj
,
newName
)
{
replaceSwitchClass
:
function
(
node
,
obj
,
newName
)
{
if
(
!
obj
)
return
;
if
(
!
obj
)
return
;
var
tmpName
=
obj
.
attr
(
"
class
"
);
var
tmpName
=
obj
.
attr
(
"
class
"
);
if
(
tmpName
==
undefined
)
return
;
if
(
tmpName
==
undefined
)
return
;
...
@@ -1538,7 +1564,7 @@
...
@@ -1538,7 +1564,7 @@
obj
.
attr
(
"
disabled
"
,
"
disabled
"
);
obj
.
attr
(
"
disabled
"
,
"
disabled
"
);
}
}
},
},
selectNode
:
function
(
setting
,
node
,
addFlag
)
{
selectNode
:
function
(
setting
,
node
,
addFlag
)
{
if
(
!
addFlag
)
{
if
(
!
addFlag
)
{
view
.
cancelPreSelectedNode
(
setting
,
null
,
node
);
view
.
cancelPreSelectedNode
(
setting
,
null
,
node
);
}
}
...
@@ -1546,20 +1572,20 @@
...
@@ -1546,20 +1572,20 @@
data
.
addSelectedNode
(
setting
,
node
);
data
.
addSelectedNode
(
setting
,
node
);
setting
.
treeObj
.
trigger
(
consts
.
event
.
SELECTED
,
[
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
SELECTED
,
[
setting
.
treeId
,
node
]);
},
},
setNodeFontCss
:
function
(
setting
,
treeNode
)
{
setNodeFontCss
:
function
(
setting
,
treeNode
)
{
var
aObj
=
$$
(
treeNode
,
consts
.
id
.
A
,
setting
),
var
aObj
=
$$
(
treeNode
,
consts
.
id
.
A
,
setting
),
fontCss
=
view
.
makeNodeFontCss
(
setting
,
treeNode
);
fontCss
=
view
.
makeNodeFontCss
(
setting
,
treeNode
);
if
(
fontCss
)
{
if
(
fontCss
)
{
aObj
.
css
(
fontCss
);
aObj
.
css
(
fontCss
);
}
}
},
},
setNodeLineIcos
:
function
(
setting
,
node
)
{
setNodeLineIcos
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
var
switchObj
=
$$
(
node
,
consts
.
id
.
SWITCH
,
setting
),
var
switchObj
=
$$
(
node
,
consts
.
id
.
SWITCH
,
setting
),
ulObj
=
$$
(
node
,
consts
.
id
.
UL
,
setting
),
ulObj
=
$$
(
node
,
consts
.
id
.
UL
,
setting
),
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
),
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
),
ulLine
=
view
.
makeUlLineClass
(
setting
,
node
);
ulLine
=
view
.
makeUlLineClass
(
setting
,
node
);
if
(
ulLine
.
length
==
0
)
{
if
(
ulLine
.
length
==
0
)
{
ulObj
.
removeClass
(
consts
.
line
.
LINE
);
ulObj
.
removeClass
(
consts
.
line
.
LINE
);
}
else
{
}
else
{
ulObj
.
addClass
(
ulLine
);
ulObj
.
addClass
(
ulLine
);
...
@@ -1574,7 +1600,7 @@
...
@@ -1574,7 +1600,7 @@
icoObj
.
attr
(
"
style
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
));
icoObj
.
attr
(
"
style
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
));
icoObj
.
attr
(
"
class
"
,
view
.
makeNodeIcoClass
(
setting
,
node
));
icoObj
.
attr
(
"
class
"
,
view
.
makeNodeIcoClass
(
setting
,
node
));
},
},
setNodeName
:
function
(
setting
,
node
)
{
setNodeName
:
function
(
setting
,
node
)
{
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
nObj
=
$$
(
node
,
consts
.
id
.
SPAN
,
setting
);
nObj
=
$$
(
node
,
consts
.
id
.
SPAN
,
setting
);
nObj
.
empty
();
nObj
.
empty
();
...
@@ -1588,11 +1614,11 @@
...
@@ -1588,11 +1614,11 @@
aObj
.
attr
(
"
title
"
,
!
title
?
""
:
title
);
aObj
.
attr
(
"
title
"
,
!
title
?
""
:
title
);
}
}
},
},
setNodeTarget
:
function
(
setting
,
node
)
{
setNodeTarget
:
function
(
setting
,
node
)
{
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
);
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
);
aObj
.
attr
(
"
target
"
,
view
.
makeNodeTarget
(
node
));
aObj
.
attr
(
"
target
"
,
view
.
makeNodeTarget
(
node
));
},
},
setNodeUrl
:
function
(
setting
,
node
)
{
setNodeUrl
:
function
(
setting
,
node
)
{
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
),
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
),
url
=
view
.
makeNodeUrl
(
setting
,
node
);
url
=
view
.
makeNodeUrl
(
setting
,
node
);
if
(
url
==
null
||
url
.
length
==
0
)
{
if
(
url
==
null
||
url
.
length
==
0
)
{
...
@@ -1601,7 +1627,7 @@
...
@@ -1601,7 +1627,7 @@
aObj
.
attr
(
"
href
"
,
url
);
aObj
.
attr
(
"
href
"
,
url
);
}
}
},
},
switchNode
:
function
(
setting
,
node
)
{
switchNode
:
function
(
setting
,
node
)
{
if
(
node
.
open
||
!
tools
.
canAsync
(
setting
,
node
))
{
if
(
node
.
open
||
!
tools
.
canAsync
(
setting
,
node
))
{
view
.
expandCollapseNode
(
setting
,
node
,
!
node
.
open
);
view
.
expandCollapseNode
(
setting
,
node
,
!
node
.
open
);
}
else
if
(
setting
.
async
.
enable
)
{
}
else
if
(
setting
.
async
.
enable
)
{
...
@@ -1616,27 +1642,27 @@
...
@@ -1616,27 +1642,27 @@
};
};
// zTree defind
// zTree defind
$
.
fn
.
zTree
=
{
$
.
fn
.
zTree
=
{
consts
:
_consts
,
consts
:
_consts
,
_z
:
{
_z
:
{
tools
:
tools
,
tools
:
tools
,
view
:
view
,
view
:
view
,
event
:
event
,
event
:
event
,
data
:
data
data
:
data
},
},
getZTreeObj
:
function
(
treeId
)
{
getZTreeObj
:
function
(
treeId
)
{
var
o
=
data
.
getZTreeTools
(
treeId
);
var
o
=
data
.
getZTreeTools
(
treeId
);
return
o
?
o
:
null
;
return
o
?
o
:
null
;
},
},
destroy
:
function
(
treeId
)
{
destroy
:
function
(
treeId
)
{
if
(
!!
treeId
&&
treeId
.
length
>
0
)
{
if
(
!!
treeId
&&
treeId
.
length
>
0
)
{
view
.
destroy
(
data
.
getSetting
(
treeId
));
view
.
destroy
(
data
.
getSetting
(
treeId
));
}
else
{
}
else
{
for
(
var
s
in
settings
)
{
for
(
var
s
in
settings
)
{
view
.
destroy
(
settings
[
s
]);
view
.
destroy
(
settings
[
s
]);
}
}
}
}
},
},
init
:
function
(
obj
,
zSetting
,
zNodes
)
{
init
:
function
(
obj
,
zSetting
,
zNodes
)
{
var
setting
=
tools
.
clone
(
_setting
);
var
setting
=
tools
.
clone
(
_setting
);
$
.
extend
(
true
,
setting
,
zSetting
);
$
.
extend
(
true
,
setting
,
zSetting
);
setting
.
treeId
=
obj
.
attr
(
"
id
"
);
setting
.
treeId
=
obj
.
attr
(
"
id
"
);
...
@@ -1644,13 +1670,13 @@
...
@@ -1644,13 +1670,13 @@
setting
.
treeObj
.
empty
();
setting
.
treeObj
.
empty
();
settings
[
setting
.
treeId
]
=
setting
;
settings
[
setting
.
treeId
]
=
setting
;
//For some older browser,(e.g., ie6)
//For some older browser,(e.g., ie6)
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
{
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
{
setting
.
view
.
expandSpeed
=
""
;
setting
.
view
.
expandSpeed
=
""
;
}
}
data
.
initRoot
(
setting
);
data
.
initRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
zNodes
=
zNodes
?
tools
.
clone
(
tools
.
isArray
(
zNodes
)
?
zNodes
:
[
zNodes
])
:
[];
zNodes
=
zNodes
?
tools
.
clone
(
tools
.
isArray
(
zNodes
)
?
zNodes
:
[
zNodes
])
:
[];
if
(
setting
.
data
.
simpleData
.
enable
)
{
if
(
setting
.
data
.
simpleData
.
enable
)
{
root
[
childKey
]
=
data
.
transformTozTreeFormat
(
setting
,
zNodes
);
root
[
childKey
]
=
data
.
transformTozTreeFormat
(
setting
,
zNodes
);
}
else
{
}
else
{
...
@@ -1664,8 +1690,8 @@
...
@@ -1664,8 +1690,8 @@
event
.
bindEvent
(
setting
);
event
.
bindEvent
(
setting
);
var
zTreeTools
=
{
var
zTreeTools
=
{
setting
:
setting
,
setting
:
setting
,
addNodes
:
function
(
parentNode
,
index
,
newNodes
,
isSilent
)
{
addNodes
:
function
(
parentNode
,
index
,
newNodes
,
isSilent
)
{
if
(
!
parentNode
)
parentNode
=
null
;
if
(
!
parentNode
)
parentNode
=
null
;
if
(
parentNode
&&
!
parentNode
.
isParent
&&
setting
.
data
.
keep
.
leaf
)
return
null
;
if
(
parentNode
&&
!
parentNode
.
isParent
&&
setting
.
data
.
keep
.
leaf
)
return
null
;
...
@@ -1680,9 +1706,10 @@
...
@@ -1680,9 +1706,10 @@
if
(
!
newNodes
)
return
null
;
if
(
!
newNodes
)
return
null
;
var
xNewNodes
=
tools
.
clone
(
tools
.
isArray
(
newNodes
)?
newNodes
:
[
newNodes
]);
var
xNewNodes
=
tools
.
clone
(
tools
.
isArray
(
newNodes
)
?
newNodes
:
[
newNodes
]);
function
addCallback
()
{
function
addCallback
()
{
view
.
addNodes
(
setting
,
parentNode
,
index
,
xNewNodes
,
(
isSilent
==
true
));
view
.
addNodes
(
setting
,
parentNode
,
index
,
xNewNodes
,
(
isSilent
==
true
));
}
}
if
(
tools
.
canAsync
(
setting
,
parentNode
))
{
if
(
tools
.
canAsync
(
setting
,
parentNode
))
{
...
@@ -1692,18 +1719,18 @@
...
@@ -1692,18 +1719,18 @@
}
}
return
xNewNodes
;
return
xNewNodes
;
},
},
cancelSelectedNode
:
function
(
node
)
{
cancelSelectedNode
:
function
(
node
)
{
view
.
cancelPreSelectedNode
(
setting
,
node
);
view
.
cancelPreSelectedNode
(
setting
,
node
);
},
},
destroy
:
function
()
{
destroy
:
function
()
{
view
.
destroy
(
setting
);
view
.
destroy
(
setting
);
},
},
expandAll
:
function
(
expandFlag
)
{
expandAll
:
function
(
expandFlag
)
{
expandFlag
=
!!
expandFlag
;
expandFlag
=
!!
expandFlag
;
view
.
expandCollapseSonNode
(
setting
,
null
,
expandFlag
,
true
);
view
.
expandCollapseSonNode
(
setting
,
null
,
expandFlag
,
true
);
return
expandFlag
;
return
expandFlag
;
},
},
expandNode
:
function
(
node
,
expandFlag
,
sonSign
,
focus
,
callbackFlag
)
{
expandNode
:
function
(
node
,
expandFlag
,
sonSign
,
focus
,
callbackFlag
)
{
if
(
!
node
||
!
node
.
isParent
)
return
null
;
if
(
!
node
||
!
node
.
isParent
)
return
null
;
if
(
expandFlag
!==
true
&&
expandFlag
!==
false
)
{
if
(
expandFlag
!==
true
&&
expandFlag
!==
false
)
{
expandFlag
=
!
node
.
open
;
expandFlag
=
!
node
.
open
;
...
@@ -1739,55 +1766,55 @@
...
@@ -1739,55 +1766,55 @@
}
}
}
}
},
},
getNodes
:
function
()
{
getNodes
:
function
()
{
return
data
.
getNodes
(
setting
);
return
data
.
getNodes
(
setting
);
},
},
getNodeByParam
:
function
(
key
,
value
,
parentNode
)
{
getNodeByParam
:
function
(
key
,
value
,
parentNode
)
{
if
(
!
key
)
return
null
;
if
(
!
key
)
return
null
;
return
data
.
getNodeByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
key
,
value
);
return
data
.
getNodeByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
key
,
value
);
},
},
getNodeByTId
:
function
(
tId
)
{
getNodeByTId
:
function
(
tId
)
{
return
data
.
getNodeCache
(
setting
,
tId
);
return
data
.
getNodeCache
(
setting
,
tId
);
},
},
getNodesByParam
:
function
(
key
,
value
,
parentNode
)
{
getNodesByParam
:
function
(
key
,
value
,
parentNode
)
{
if
(
!
key
)
return
null
;
if
(
!
key
)
return
null
;
return
data
.
getNodesByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
key
,
value
);
return
data
.
getNodesByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
key
,
value
);
},
},
getNodesByParamFuzzy
:
function
(
key
,
value
,
parentNode
)
{
getNodesByParamFuzzy
:
function
(
key
,
value
,
parentNode
)
{
if
(
!
key
)
return
null
;
if
(
!
key
)
return
null
;
return
data
.
getNodesByParamFuzzy
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
key
,
value
);
return
data
.
getNodesByParamFuzzy
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
key
,
value
);
},
},
getNodesByFilter
:
function
(
filter
,
isSingle
,
parentNode
,
invokeParam
)
{
getNodesByFilter
:
function
(
filter
,
isSingle
,
parentNode
,
invokeParam
)
{
isSingle
=
!!
isSingle
;
isSingle
=
!!
isSingle
;
if
(
!
filter
||
(
typeof
filter
!=
"
function
"
))
return
(
isSingle
?
null
:
[]);
if
(
!
filter
||
(
typeof
filter
!=
"
function
"
))
return
(
isSingle
?
null
:
[]);
return
data
.
getNodesByFilter
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
filter
,
isSingle
,
invokeParam
);
return
data
.
getNodesByFilter
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
filter
,
isSingle
,
invokeParam
);
},
},
getNodeIndex
:
function
(
node
)
{
getNodeIndex
:
function
(
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
].
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
].
length
;
i
<
l
;
i
++
)
{
if
(
parentNode
[
childKey
][
i
]
==
node
)
return
i
;
if
(
parentNode
[
childKey
][
i
]
==
node
)
return
i
;
}
}
return
-
1
;
return
-
1
;
},
},
getSelectedNodes
:
function
()
{
getSelectedNodes
:
function
()
{
var
r
=
[],
list
=
data
.
getRoot
(
setting
).
curSelectedList
;
var
r
=
[],
list
=
data
.
getRoot
(
setting
).
curSelectedList
;
for
(
var
i
=
0
,
l
=
list
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
list
.
length
;
i
<
l
;
i
++
)
{
r
.
push
(
list
[
i
]);
r
.
push
(
list
[
i
]);
}
}
return
r
;
return
r
;
},
},
isSelectedNode
:
function
(
node
)
{
isSelectedNode
:
function
(
node
)
{
return
data
.
isSelectedNode
(
setting
,
node
);
return
data
.
isSelectedNode
(
setting
,
node
);
},
},
reAsyncChildNodes
:
function
(
parentNode
,
reloadType
,
isSilent
)
{
reAsyncChildNodes
:
function
(
parentNode
,
reloadType
,
isSilent
)
{
if
(
!
this
.
setting
.
async
.
enable
)
return
;
if
(
!
this
.
setting
.
async
.
enable
)
return
;
var
isRoot
=
!
parentNode
;
var
isRoot
=
!
parentNode
;
if
(
isRoot
)
{
if
(
isRoot
)
{
parentNode
=
data
.
getRoot
(
setting
);
parentNode
=
data
.
getRoot
(
setting
);
}
}
if
(
reloadType
==
"
refresh
"
)
{
if
(
reloadType
==
"
refresh
"
)
{
var
childKey
=
this
.
setting
.
data
.
key
.
children
;
var
childKey
=
this
.
setting
.
data
.
key
.
children
;
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
]
?
parentNode
[
childKey
].
length
:
0
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
]
?
parentNode
[
childKey
].
length
:
0
;
i
<
l
;
i
++
)
{
data
.
removeNodeCache
(
setting
,
parentNode
[
childKey
][
i
]);
data
.
removeNodeCache
(
setting
,
parentNode
[
childKey
][
i
]);
...
@@ -1801,9 +1828,9 @@
...
@@ -1801,9 +1828,9 @@
ulObj
.
empty
();
ulObj
.
empty
();
}
}
}
}
view
.
asyncNode
(
this
.
setting
,
isRoot
?
null
:
parentNode
,
!!
isSilent
);
view
.
asyncNode
(
this
.
setting
,
isRoot
?
null
:
parentNode
,
!!
isSilent
);
},
},
refresh
:
function
()
{
refresh
:
function
()
{
this
.
setting
.
treeObj
.
empty
();
this
.
setting
.
treeObj
.
empty
();
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
nodes
=
root
[
setting
.
data
.
key
.
children
]
nodes
=
root
[
setting
.
data
.
key
.
children
]
...
@@ -1812,14 +1839,14 @@
...
@@ -1812,14 +1839,14 @@
data
.
initCache
(
setting
);
data
.
initCache
(
setting
);
view
.
createNodes
(
setting
,
0
,
root
[
setting
.
data
.
key
.
children
],
null
,
-
1
);
view
.
createNodes
(
setting
,
0
,
root
[
setting
.
data
.
key
.
children
],
null
,
-
1
);
},
},
removeChildNodes
:
function
(
node
)
{
removeChildNodes
:
function
(
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
nodes
=
node
[
childKey
];
nodes
=
node
[
childKey
];
view
.
removeChildNodes
(
setting
,
node
);
view
.
removeChildNodes
(
setting
,
node
);
return
nodes
?
nodes
:
null
;
return
nodes
?
nodes
:
null
;
},
},
removeNode
:
function
(
node
,
callbackFlag
)
{
removeNode
:
function
(
node
,
callbackFlag
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
callbackFlag
=
!!
callbackFlag
;
callbackFlag
=
!!
callbackFlag
;
if
(
callbackFlag
&&
tools
.
apply
(
setting
.
callback
.
beforeRemove
,
[
setting
.
treeId
,
node
],
true
)
==
false
)
return
;
if
(
callbackFlag
&&
tools
.
apply
(
setting
.
callback
.
beforeRemove
,
[
setting
.
treeId
,
node
],
true
)
==
false
)
return
;
...
@@ -1828,14 +1855,17 @@
...
@@ -1828,14 +1855,17 @@
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
}
}
},
},
selectNode
:
function
(
node
,
addFlag
,
isSilent
)
{
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
;
if
(
node
.
parentTId
)
{
if
(
node
.
parentTId
)
{
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
true
,
false
,
showNodeFocus
);
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
true
,
false
,
showNodeFocus
);
}
else
if
(
!
isSilent
)
{
}
else
if
(
!
isSilent
)
{
try
{
$$
(
node
,
setting
).
focus
().
blur
();}
catch
(
e
){}
try
{
$$
(
node
,
setting
).
focus
().
blur
();
}
catch
(
e
)
{
}
}
}
view
.
selectNode
(
setting
,
node
,
addFlag
);
view
.
selectNode
(
setting
,
node
,
addFlag
);
}
}
...
@@ -1848,13 +1878,13 @@
...
@@ -1848,13 +1878,13 @@
view
.
scrollIntoView
(
a
);
view
.
scrollIntoView
(
a
);
}
}
},
},
transformTozTreeNodes
:
function
(
simpleNodes
)
{
transformTozTreeNodes
:
function
(
simpleNodes
)
{
return
data
.
transformTozTreeFormat
(
setting
,
simpleNodes
);
return
data
.
transformTozTreeFormat
(
setting
,
simpleNodes
);
},
},
transformToArray
:
function
(
nodes
)
{
transformToArray
:
function
(
nodes
)
{
return
data
.
transformToArrayFormat
(
setting
,
nodes
);
return
data
.
transformToArrayFormat
(
setting
,
nodes
);
},
},
updateNode
:
function
(
node
,
checkTypeFlag
)
{
updateNode
:
function
(
node
,
checkTypeFlag
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
var
nObj
=
$$
(
node
,
setting
);
var
nObj
=
$$
(
node
,
setting
);
if
(
nObj
.
get
(
0
)
&&
tools
.
uCanDo
(
setting
))
{
if
(
nObj
.
get
(
0
)
&&
tools
.
uCanDo
(
setting
))
{
...
@@ -1883,7 +1913,7 @@
...
@@ -1883,7 +1913,7 @@
consts
=
zt
.
consts
;
consts
=
zt
.
consts
;
})(
jQuery
);
})(
jQuery
);
/*
/*
* JQuery zTree excheck v3.5.2
7
* JQuery zTree excheck v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -1892,7 +1922,7 @@
...
@@ -1892,7 +1922,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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of excheck
//default consts of excheck
...
@@ -2511,7 +2541,7 @@
...
@@ -2511,7 +2541,7 @@
}
}
})(
jQuery
);
})(
jQuery
);
/*
/*
* JQuery zTree exedit v3.5.2
7
* JQuery zTree exedit v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -2520,7 +2550,7 @@
...
@@ -2520,7 +2550,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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of exedit
//default consts of exedit
...
...
js/jquery.ztree.all.min.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree core v3.5.2
7
* JQuery zTree core v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
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
"
,
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
}},
x
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
...
@@ -36,46 +36,46 @@ e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node]
...
@@ -36,46 +36,46 @@ e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node]
(
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
};
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
);
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
};
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
();
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
"
?
j
.
clone
(
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
(
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
"
?
j
.
clone
(
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]
"
},
isElement
:
function
(
b
){
return
typeof
HTMLElement
===
"
object
"
?
b
instanceof
HTMLElement
:
b
&&
typeof
b
===
"
object
"
&&
b
!==
null
&&
b
.
nodeType
===
1
&&
typeof
b
.
nodeName
===
"
string
"
},
$
:
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
)
!==
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
),
l
=
k
(
a
,
f
.
id
.
ICON
,
b
),
p
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
l
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
p
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
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
),
l
=
k
(
a
,
f
.
id
.
ICON
,
b
),
p
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
)
,
!
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
=
[],
n
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
n
],
m
,
Q
;
if
(
!
k
||
e
>=
k
.
length
-
c
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
R
=
c
.
length
;
s
<
R
;
s
++
){
var
o
=
c
[
s
];
g
&&
(
m
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
o
,
d
,
m
,
Q
,
f
),
h
.
addNodeCache
(
b
,
o
));
m
=
[];
o
[
n
]
&&
o
[
n
].
length
>
0
&&
(
m
=
i
.
appendNodes
(
b
,
a
+
1
,
o
[
n
],
o
,
-
1
,
g
,
f
&&
o
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
o
),
i
.
makeDOMNodeLine
(
j
,
b
,
o
),
h
.
getBeforeA
(
b
,
i
.
replaceIcoClass
(
a
,
l
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
p
.
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
=
[],
n
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
n
],
m
,
Q
;
if
(
!
k
||
e
>=
k
.
length
-
c
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
R
=
c
.
length
;
s
<
R
;
s
++
){
var
o
=
c
[
s
];
g
&&
(
m
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
o
,
d
,
o
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
o
),
h
.
getInnerBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
o
),
h
.
getInnerAfterA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
o
),
h
.
getAfterA
(
b
,
o
,
j
),
o
.
isParent
&&
o
.
open
&&
i
.
makeUlHtml
(
b
,
o
,
j
,
m
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
o
),
h
.
addCreatedNode
(
b
,
o
))}
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
);
m
,
Q
,
f
),
h
.
addNodeCache
(
b
,
o
));
m
=
[];
o
[
n
]
&&
o
[
n
].
length
>
0
&&
(
m
=
i
.
appendNodes
(
b
,
a
+
1
,
o
[
n
],
o
,
-
1
,
g
,
f
&&
o
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
o
),
i
.
makeDOMNodeLine
(
j
,
b
,
o
),
h
.
getBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
o
),
h
.
getInnerBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
o
),
h
.
getInnerAfterA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
o
),
h
.
getAfterA
(
b
,
o
,
j
),
o
.
isParent
&&
o
.
open
&&
i
.
makeUlHtml
(
b
,
o
,
j
,
m
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
o
),
h
.
addCreatedNode
(
b
,
o
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
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
l
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
p
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
p
;
p
.
length
>
1
&&
(
n
=
p
[
1
],
p
=
p
[
0
]);
l
[
n
]
=
a
[
p
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
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
});
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
l
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
m
in
b
.
async
.
otherParam
)
l
[
m
]
=
b
.
async
.
otherParam
[
m
];
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
:
b
.
async
.
contentType
.
indexOf
(
"
application/json
"
)
>-
1
?
JSON
.
stringify
(
l
):
l
,
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
(
"
(
"
+
var
l
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
p
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
p
;
p
.
length
>
1
&&
(
n
=
p
[
1
],
p
=
p
[
0
]);
l
[
n
]
=
a
[
p
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
l
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
m
in
b
.
async
.
otherParam
)
l
[
m
]
=
b
.
async
.
otherParam
[
m
];
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
:
b
.
async
.
contentType
.
indexOf
(
"
application/json
"
)
>
e
+
"
)
"
):
e
}
catch
(
l
){
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
,
-
1
?
JSON
.
stringify
(
l
):
l
,
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
(
l
){
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
,
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
);
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
();
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
l
=
b
.
data
.
key
.
children
,
l
=!
d
||
d
.
open
||!!
k
(
d
[
l
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
l
),
j
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
j
=
d
)):
j
=
b
.
treeObj
;
j
&&
(
e
>=
0
&&
(
n
=
j
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
j
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
m
.
unbindTree
(
b
),
m
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
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
),
l
=
b
.
data
.
key
.
children
,
l
=!
d
||
d
.
open
||!!
k
(
d
[
l
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
l
),
j
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
j
=
d
)):
j
=
b
.
treeObj
;
j
&&
(
e
>=
0
&&
(
n
=
j
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
j
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
l
=
b
.
data
.
key
.
children
,
p
;
if
(
a
){
if
(
g
.
expandTriggerFlag
)
p
=
e
,
e
=
function
(){
p
&&
p
();
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
[
l
]
&&
a
[
l
].
length
>
0
&&!
k
(
a
[
l
][
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
"
,
h
.
initRoot
(
b
),
m
.
unbindTree
(
b
),
m
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
l
=
b
.
data
.
key
.
children
,
p
;
if
(
a
){
if
(
g
.
expandTriggerFlag
)
p
=
e
,
e
=
function
(){
p
&&
p
();
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
[
l
]
&&
a
[
l
].
length
>
0
&&!
k
(
a
[
l
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
l
]
&&
a
[
l
].
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
[
l
]
&&
a
[
l
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
[]);
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
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
l
]
&&
a
[
l
].
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
[
l
]
&&
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
,
m
=
g
.
length
;
k
<
m
;
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
[
l
].
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
,
m
=
g
.
length
;
k
<
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
,
m
;
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='
"
,
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
),
l
=
[],
k
;
for
(
k
in
g
)
l
.
push
(
k
,
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>
"
)}
,
"
:
"
,
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='
"
,
l
.
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
"
?
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
l
=
[],
k
;
for
(
k
in
g
)
l
.
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='
"
,
l
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
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
(
""
)},
"
>
"
),
"
'
"
);
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
:
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
||
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
);
"
_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
);
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
,
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
())}}},
scrollIntoView
:
function
(
b
){
if
(
b
){
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
function
(
a
){
function
b
(
a
,
d
,
e
,
f
){
return
{
left
:
a
,
top
:
d
,
width
:
e
,
height
:
f
,
right
:
a
+
e
,
bottom
:
d
+
f
,
translate
:
function
(
g
,
h
){
return
b
(
g
+
a
,
h
+
d
,
e
,
f
)},
relativeFromTo
:
function
(
h
,
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
())}}},
scrollIntoView
:
function
(
b
){
if
(
b
){
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
i
){
var
j
=
a
,
l
=
d
,
h
=
h
.
offsetParent
,
i
=
i
.
offsetParent
;
if
(
h
===
i
)
return
g
;
for
(;
h
;
h
=
h
.
offsetParent
)
j
+=
h
.
offsetLeft
+
h
.
clientLeft
,
l
+=
h
.
offsetTop
+
h
.
clientTop
;
for
(;
i
;
i
=
i
.
offsetParent
)
j
-=
i
.
offsetLeft
+
i
.
clientLeft
,
l
-=
i
.
offsetTop
+
i
.
clientTop
;
return
b
(
j
,
l
,
e
,
f
)}}}
for
(
var
d
,
e
=
this
,
g
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);(
d
=
e
.
parentNode
)
instanceof
HTMLElement
;){
var
f
=
d
.
offsetLeft
+
d
.
clientLeft
,
h
=
d
.
offsetTop
+
d
.
clientTop
,
g
=
g
.
relativeFromTo
(
e
,
d
).
translate
(
-
f
,
-
h
);
d
.
scrollLeft
=!
1
===
a
||
g
.
left
<
=
function
(
a
){
function
b
(
a
,
d
,
e
,
f
){
return
{
left
:
a
,
top
:
d
,
width
:
e
,
height
:
f
,
right
:
a
+
e
,
bottom
:
d
+
f
,
translate
:
function
(
g
,
h
){
return
b
(
g
+
a
,
h
+
d
,
e
,
f
)},
relativeFromTo
:
function
(
h
,
i
){
var
j
=
a
,
l
=
d
,
h
=
h
.
offsetParent
,
i
=
i
.
offsetParent
;
if
(
h
===
i
)
return
g
;
for
(;
h
;
h
=
h
.
offsetParent
)
j
+=
h
.
offsetLeft
+
h
.
clientLeft
,
l
+=
h
.
offsetTop
+
h
.
clientTop
;
for
(;
i
;
i
=
i
.
offsetParent
)
j
-=
i
.
offsetLeft
+
i
.
clientLeft
,
l
-=
i
.
offsetTop
+
i
.
clientTop
;
return
b
(
j
,
l
,
e
,
f
)}}}
for
(
var
d
,
e
=
this
,
g
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);
j
.
isElement
(
d
=
d
.
scrollLeft
+
d
.
clientWidth
&&
d
.
scrollLeft
<=
g
.
right
-
d
.
clientWidth
+
d
.
clientWidth
?
Math
.
min
(
g
.
left
,
Math
.
max
(
g
.
right
-
d
.
clientWidth
,
d
.
scrollLeft
)):(
g
.
right
-
d
.
clientWidth
+
g
.
left
)
/
2
;
d
.
scrollTop
=!
1
===
a
||
g
.
top
<=
d
.
scrollTop
+
d
.
clientHeight
&&
d
.
scrollTop
<=
g
.
bottom
-
d
.
clientHeight
+
d
.
clientHeight
?
Math
.
min
(
g
.
top
,
Math
.
max
(
g
.
bottom
-
d
.
clientHeight
,
d
.
scrollTop
)):(
g
.
bottom
-
d
.
clientHeight
+
g
.
top
)
/
2
;
g
=
g
.
translate
(
f
-
d
.
scrollLeft
,
h
-
d
.
scrollTop
);
e
=
d
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
e
.
parentNode
);){
var
f
=
d
.
offsetLeft
+
d
.
clientLeft
,
h
=
d
.
offsetTop
+
d
.
clientTop
,
g
=
g
.
relativeFromTo
(
e
,
d
).
translate
(
-
f
,
-
h
);
d
.
scrollLeft
=!
1
===
a
||
g
.
left
<=
d
.
scrollLeft
+
d
.
clientWidth
&&
d
.
scrollLeft
<=
g
.
right
-
d
.
clientWidth
+
d
.
clientWidth
?
Math
.
min
(
g
.
left
,
Math
.
max
(
g
.
right
-
d
.
clientWidth
,
d
.
scrollLeft
)):(
g
.
right
-
d
.
clientWidth
+
g
.
left
)
/
2
;
d
.
scrollTop
=!
1
===
a
||
g
.
top
<=
d
.
scrollTop
+
d
.
clientHeight
&&
d
.
scrollTop
<=
g
.
bottom
-
d
.
clientHeight
+
d
.
clientHeight
?
Math
.
min
(
g
.
top
,
Math
.
max
(
g
.
bottom
-
d
.
clientHeight
,
d
.
scrollTop
)):(
g
.
bottom
-
d
.
clientHeight
+
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
():
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
,
g
.
top
)
/
2
;
g
=
g
.
translate
(
f
-
d
.
scrollLeft
,
h
-
d
.
scrollTop
);
e
=
d
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
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
():
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
p
,
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
),
p
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
p
,
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
);
p
=
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
)
,
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
p
,
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
),
p
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
p
,
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
,
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
n
,
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
]
=
b
);
p
=
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
,
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
,
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
,
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
=
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
,
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
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
"
);
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
.
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
"
);
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
[
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
"
):
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
"
,
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
"
):
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
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
"
,
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
"
,
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
"
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
}
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
m
,
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
])},
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
;
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
:
m
,
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
])},
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
c
):
c
;
h
.
initCache
(
d
);
m
.
unbindTree
(
d
);
m
.
bindTree
(
d
);
m
.
unbindEvent
(
d
);
m
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
m
,
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
m
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
m
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
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
);
m
.
unbindTree
(
d
);
m
.
bindTree
(
d
);
m
.
unbindEvent
(
d
);
m
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
m
,
f
==!
0
)}
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
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
,
n
){
function
m
(){
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
===
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
m
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
m
},
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
,
n
){
function
m
(){
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
,
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
n
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
m
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
m
());
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
,
[
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
,
a
,
b
,
!
0
,
m
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
m
());
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
)
,
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
"
?
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
<
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
"
?
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
,
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
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
n
=
0
,
m
=
a
[
b
]?
a
[
b
].
length
:
0
;
n
<
m
;
n
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
n
]);
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
]
;
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
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
n
=
0
,
m
=
a
[
b
]?
a
[
b
].
length
:
0
;
n
<
m
;
n
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
n
]);
h
.
removeSelectedNode
(
d
)
;
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
;
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
=
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
;
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
)
=
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
if
(
!
c
)
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
]
&&
!
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
,
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
if
(
!
c
)
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
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
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
);
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
/*
/*
* JQuery zTree excheck v3.5.2
7
* JQuery zTree excheck v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -84,7 +84,7 @@ b[a].length>0?i.createNodes(d,0,b[a],null,-1):d.async.enable&&d.async.url&&d.asy
...
@@ -84,7 +84,7 @@ b[a].length>0?i.createNodes(d,0,b[a],null,-1):d.async.enable&&d.async.url&&d.asy
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
===
...
@@ -110,7 +110,7 @@ j.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,i
...
@@ -110,7 +110,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
7
* JQuery zTree exedit v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -119,7 +119,7 @@ d&&g.makeChkFlag(c,d);return f}})(jQuery);
...
@@ -119,7 +119,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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
=
...
...
js/jquery.ztree.core.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree core v3.5.2
7
* JQuery zTree core v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,9 +8,9 @@
...
@@ -8,9 +8,9 @@
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
)
{
(
function
(
$
)
{
var
settings
=
{},
roots
=
{},
caches
=
{},
var
settings
=
{},
roots
=
{},
caches
=
{},
//default consts of core
//default consts of core
_consts
=
{
_consts
=
{
...
@@ -103,27 +103,27 @@
...
@@ -103,27 +103,27 @@
dataFilter
:
null
dataFilter
:
null
},
},
callback
:
{
callback
:
{
beforeAsync
:
null
,
beforeAsync
:
null
,
beforeClick
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onCollapse
:
null
,
onRemove
:
null
onRemove
:
null
}
}
},
},
//default root of core
//default root of core
...
@@ -143,7 +143,7 @@
...
@@ -143,7 +143,7 @@
r
.
_ver
=
(
new
Date
()).
getTime
();
r
.
_ver
=
(
new
Date
()).
getTime
();
},
},
//default cache of core
//default cache of core
_initCache
=
function
(
setting
)
{
_initCache
=
function
(
setting
)
{
var
c
=
data
.
getCache
(
setting
);
var
c
=
data
.
getCache
(
setting
);
if
(
!
c
)
{
if
(
!
c
)
{
c
=
{};
c
=
{};
...
@@ -153,7 +153,7 @@
...
@@ -153,7 +153,7 @@
c
.
doms
=
[];
c
.
doms
=
[];
},
},
//default bindEvent of core
//default bindEvent of core
_bindEvent
=
function
(
setting
)
{
_bindEvent
=
function
(
setting
)
{
var
o
=
setting
.
treeObj
,
var
o
=
setting
.
treeObj
,
c
=
consts
.
event
;
c
=
consts
.
event
;
o
.
bind
(
c
.
NODECREATED
,
function
(
event
,
treeId
,
node
)
{
o
.
bind
(
c
.
NODECREATED
,
function
(
event
,
treeId
,
node
)
{
...
@@ -191,7 +191,7 @@
...
@@ -191,7 +191,7 @@
tools
.
apply
(
setting
.
callback
.
onUnSelected
,
[
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onUnSelected
,
[
treeId
,
node
]);
});
});
},
},
_unbindEvent
=
function
(
setting
)
{
_unbindEvent
=
function
(
setting
)
{
var
o
=
setting
.
treeObj
,
var
o
=
setting
.
treeObj
,
c
=
consts
.
event
;
c
=
consts
.
event
;
o
.
unbind
(
c
.
NODECREATED
)
o
.
unbind
(
c
.
NODECREATED
)
...
@@ -205,7 +205,7 @@
...
@@ -205,7 +205,7 @@
.
unbind
(
c
.
UNSELECTED
);
.
unbind
(
c
.
UNSELECTED
);
},
},
//default event proxy of core
//default event proxy of core
_eventProxy
=
function
(
event
)
{
_eventProxy
=
function
(
event
)
{
var
target
=
event
.
target
,
var
target
=
event
.
target
,
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
tId
=
""
,
node
=
null
,
tId
=
""
,
node
=
null
,
...
@@ -220,11 +220,11 @@
...
@@ -220,11 +220,11 @@
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
contextmenu
"
))
{
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
contextmenu
"
))
{
treeEventType
=
"
contextmenu
"
;
treeEventType
=
"
contextmenu
"
;
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
click
"
))
{
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
click
"
))
{
if
(
tools
.
eqs
(
target
.
tagName
,
"
span
"
)
&&
target
.
getAttribute
(
"
treeNode
"
+
consts
.
id
.
SWITCH
)
!==
null
)
{
if
(
tools
.
eqs
(
target
.
tagName
,
"
span
"
)
&&
target
.
getAttribute
(
"
treeNode
"
+
consts
.
id
.
SWITCH
)
!==
null
)
{
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
nodeEventType
=
"
switchNode
"
;
nodeEventType
=
"
switchNode
"
;
}
else
{
}
else
{
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
if
(
tmp
)
{
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
nodeEventType
=
"
clickNode
"
;
nodeEventType
=
"
clickNode
"
;
...
@@ -232,18 +232,20 @@
...
@@ -232,18 +232,20 @@
}
}
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
dblclick
"
))
{
}
else
if
(
tools
.
eqs
(
event
.
type
,
"
dblclick
"
))
{
treeEventType
=
"
dblclick
"
;
treeEventType
=
"
dblclick
"
;
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
if
(
tmp
)
{
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
nodeEventType
=
"
switchNode
"
;
nodeEventType
=
"
switchNode
"
;
}
}
}
}
if
(
treeEventType
.
length
>
0
&&
tId
.
length
==
0
)
{
if
(
treeEventType
.
length
>
0
&&
tId
.
length
==
0
)
{
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
tmp
=
tools
.
getMDom
(
setting
,
target
,
[{
tagName
:
"
a
"
,
attrName
:
"
treeNode
"
+
consts
.
id
.
A
}]);
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;}
if
(
tmp
)
{
tId
=
tools
.
getNodeMainDom
(
tmp
).
id
;
}
}
}
// event to node
// event to node
if
(
tId
.
length
>
0
)
{
if
(
tId
.
length
>
0
)
{
node
=
data
.
getNodeCache
(
setting
,
tId
);
node
=
data
.
getNodeCache
(
setting
,
tId
);
switch
(
nodeEventType
)
{
switch
(
nodeEventType
)
{
case
"
switchNode
"
:
case
"
switchNode
"
:
...
@@ -287,7 +289,7 @@
...
@@ -287,7 +289,7 @@
return
proxyResult
return
proxyResult
},
},
//default init node of core
//default init node of core
_initNode
=
function
(
setting
,
level
,
n
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
)
{
_initNode
=
function
(
setting
,
level
,
n
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
)
{
if
(
!
n
)
return
;
if
(
!
n
)
return
;
var
r
=
data
.
getRoot
(
setting
),
var
r
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
...
@@ -305,11 +307,21 @@
...
@@ -305,11 +307,21 @@
}
}
n
.
isFirstNode
=
isFirstNode
;
n
.
isFirstNode
=
isFirstNode
;
n
.
isLastNode
=
isLastNode
;
n
.
isLastNode
=
isLastNode
;
n
.
getParentNode
=
function
()
{
return
data
.
getNodeCache
(
setting
,
n
.
parentTId
);};
n
.
getParentNode
=
function
()
{
n
.
getPreNode
=
function
()
{
return
data
.
getPreNode
(
setting
,
n
);};
return
data
.
getNodeCache
(
setting
,
n
.
parentTId
);
n
.
getNextNode
=
function
()
{
return
data
.
getNextNode
(
setting
,
n
);};
};
n
.
getIndex
=
function
()
{
return
data
.
getNodeIndex
(
setting
,
n
);};
n
.
getPreNode
=
function
()
{
n
.
getPath
=
function
()
{
return
data
.
getNodePath
(
setting
,
n
);};
return
data
.
getPreNode
(
setting
,
n
);
};
n
.
getNextNode
=
function
()
{
return
data
.
getNextNode
(
setting
,
n
);
};
n
.
getIndex
=
function
()
{
return
data
.
getNodeIndex
(
setting
,
n
);
};
n
.
getPath
=
function
()
{
return
data
.
getNodePath
(
setting
,
n
);
};
n
.
isAjaxing
=
false
;
n
.
isAjaxing
=
false
;
data
.
fixPIdKeyValue
(
setting
,
n
);
data
.
fixPIdKeyValue
(
setting
,
n
);
},
},
...
@@ -328,47 +340,47 @@
...
@@ -328,47 +340,47 @@
},
},
//method of operate data
//method of operate data
data
=
{
data
=
{
addNodeCache
:
function
(
setting
,
node
)
{
addNodeCache
:
function
(
setting
,
node
)
{
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
node
;
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
node
;
},
},
getNodeCacheId
:
function
(
tId
)
{
getNodeCacheId
:
function
(
tId
)
{
return
tId
.
substring
(
tId
.
lastIndexOf
(
"
_
"
)
+
1
);
return
tId
.
substring
(
tId
.
lastIndexOf
(
"
_
"
)
+
1
);
},
},
addAfterA
:
function
(
afterA
)
{
addAfterA
:
function
(
afterA
)
{
_init
.
afterA
.
push
(
afterA
);
_init
.
afterA
.
push
(
afterA
);
},
},
addBeforeA
:
function
(
beforeA
)
{
addBeforeA
:
function
(
beforeA
)
{
_init
.
beforeA
.
push
(
beforeA
);
_init
.
beforeA
.
push
(
beforeA
);
},
},
addInnerAfterA
:
function
(
innerAfterA
)
{
addInnerAfterA
:
function
(
innerAfterA
)
{
_init
.
innerAfterA
.
push
(
innerAfterA
);
_init
.
innerAfterA
.
push
(
innerAfterA
);
},
},
addInnerBeforeA
:
function
(
innerBeforeA
)
{
addInnerBeforeA
:
function
(
innerBeforeA
)
{
_init
.
innerBeforeA
.
push
(
innerBeforeA
);
_init
.
innerBeforeA
.
push
(
innerBeforeA
);
},
},
addInitBind
:
function
(
bindEvent
)
{
addInitBind
:
function
(
bindEvent
)
{
_init
.
bind
.
push
(
bindEvent
);
_init
.
bind
.
push
(
bindEvent
);
},
},
addInitUnBind
:
function
(
unbindEvent
)
{
addInitUnBind
:
function
(
unbindEvent
)
{
_init
.
unbind
.
push
(
unbindEvent
);
_init
.
unbind
.
push
(
unbindEvent
);
},
},
addInitCache
:
function
(
initCache
)
{
addInitCache
:
function
(
initCache
)
{
_init
.
caches
.
push
(
initCache
);
_init
.
caches
.
push
(
initCache
);
},
},
addInitNode
:
function
(
initNode
)
{
addInitNode
:
function
(
initNode
)
{
_init
.
nodes
.
push
(
initNode
);
_init
.
nodes
.
push
(
initNode
);
},
},
addInitProxy
:
function
(
initProxy
,
isFirst
)
{
addInitProxy
:
function
(
initProxy
,
isFirst
)
{
if
(
!!
isFirst
)
{
if
(
!!
isFirst
)
{
_init
.
proxys
.
splice
(
0
,
0
,
initProxy
);
_init
.
proxys
.
splice
(
0
,
0
,
initProxy
);
}
else
{
}
else
{
_init
.
proxys
.
push
(
initProxy
);
_init
.
proxys
.
push
(
initProxy
);
}
}
},
},
addInitRoot
:
function
(
initRoot
)
{
addInitRoot
:
function
(
initRoot
)
{
_init
.
roots
.
push
(
initRoot
);
_init
.
roots
.
push
(
initRoot
);
},
},
addNodesData
:
function
(
setting
,
parentNode
,
index
,
nodes
)
{
addNodesData
:
function
(
setting
,
parentNode
,
index
,
nodes
)
{
var
childKey
=
setting
.
data
.
key
.
children
,
params
;
var
childKey
=
setting
.
data
.
key
.
children
,
params
;
if
(
!
parentNode
[
childKey
])
{
if
(
!
parentNode
[
childKey
])
{
parentNode
[
childKey
]
=
[];
parentNode
[
childKey
]
=
[];
...
@@ -386,82 +398,82 @@
...
@@ -386,82 +398,82 @@
}
}
parentNode
.
isParent
=
true
;
parentNode
.
isParent
=
true
;
if
(
index
<
0
)
{
if
(
index
<
0
)
{
parentNode
[
childKey
]
=
parentNode
[
childKey
].
concat
(
nodes
);
parentNode
[
childKey
]
=
parentNode
[
childKey
].
concat
(
nodes
);
}
else
{
}
else
{
params
=
[
index
,
0
].
concat
(
nodes
);
params
=
[
index
,
0
].
concat
(
nodes
);
parentNode
[
childKey
].
splice
.
apply
(
parentNode
[
childKey
],
params
);
parentNode
[
childKey
].
splice
.
apply
(
parentNode
[
childKey
],
params
);
}
}
},
},
addSelectedNode
:
function
(
setting
,
node
)
{
addSelectedNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
if
(
!
data
.
isSelectedNode
(
setting
,
node
))
{
if
(
!
data
.
isSelectedNode
(
setting
,
node
))
{
root
.
curSelectedList
.
push
(
node
);
root
.
curSelectedList
.
push
(
node
);
}
}
},
},
addCreatedNode
:
function
(
setting
,
node
)
{
addCreatedNode
:
function
(
setting
,
node
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
root
.
createdNodes
.
push
(
node
);
root
.
createdNodes
.
push
(
node
);
}
}
},
},
addZTreeTools
:
function
(
zTreeTools
)
{
addZTreeTools
:
function
(
zTreeTools
)
{
_init
.
zTreeTools
.
push
(
zTreeTools
);
_init
.
zTreeTools
.
push
(
zTreeTools
);
},
},
exSetting
:
function
(
s
)
{
exSetting
:
function
(
s
)
{
$
.
extend
(
true
,
_setting
,
s
);
$
.
extend
(
true
,
_setting
,
s
);
},
},
fixPIdKeyValue
:
function
(
setting
,
node
)
{
fixPIdKeyValue
:
function
(
setting
,
node
)
{
if
(
setting
.
data
.
simpleData
.
enable
)
{
if
(
setting
.
data
.
simpleData
.
enable
)
{
node
[
setting
.
data
.
simpleData
.
pIdKey
]
=
node
.
parentTId
?
node
.
getParentNode
()[
setting
.
data
.
simpleData
.
idKey
]
:
setting
.
data
.
simpleData
.
rootPId
;
node
[
setting
.
data
.
simpleData
.
pIdKey
]
=
node
.
parentTId
?
node
.
getParentNode
()[
setting
.
data
.
simpleData
.
idKey
]
:
setting
.
data
.
simpleData
.
rootPId
;
}
}
},
},
getAfterA
:
function
(
setting
,
node
,
array
)
{
getAfterA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
afterA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
afterA
.
length
;
i
<
j
;
i
++
)
{
_init
.
afterA
[
i
].
apply
(
this
,
arguments
);
_init
.
afterA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getBeforeA
:
function
(
setting
,
node
,
array
)
{
getBeforeA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
beforeA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
beforeA
.
length
;
i
<
j
;
i
++
)
{
_init
.
beforeA
[
i
].
apply
(
this
,
arguments
);
_init
.
beforeA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getInnerAfterA
:
function
(
setting
,
node
,
array
)
{
getInnerAfterA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerAfterA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerAfterA
.
length
;
i
<
j
;
i
++
)
{
_init
.
innerAfterA
[
i
].
apply
(
this
,
arguments
);
_init
.
innerAfterA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getInnerBeforeA
:
function
(
setting
,
node
,
array
)
{
getInnerBeforeA
:
function
(
setting
,
node
,
array
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerBeforeA
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
innerBeforeA
.
length
;
i
<
j
;
i
++
)
{
_init
.
innerBeforeA
[
i
].
apply
(
this
,
arguments
);
_init
.
innerBeforeA
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
getCache
:
function
(
setting
)
{
getCache
:
function
(
setting
)
{
return
caches
[
setting
.
treeId
];
return
caches
[
setting
.
treeId
];
},
},
getNodeIndex
:
function
(
setting
,
node
)
{
getNodeIndex
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
return
i
;
return
i
;
}
}
}
}
return
-
1
;
return
-
1
;
},
},
getNextNode
:
function
(
setting
,
node
)
{
getNextNode
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
-
1
;
i
<=
l
;
i
++
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
return
(
i
==
l
?
null
:
p
[
childKey
][
i
+
1
]);
return
(
i
==
l
?
null
:
p
[
childKey
][
i
+
1
]);
}
}
}
}
return
null
;
return
null
;
},
},
getNodeByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
getNodeByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
if
(
!
nodes
||
!
key
)
return
null
;
if
(
!
nodes
||
!
key
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
;
var
childKey
=
setting
.
data
.
key
.
children
;
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
...
@@ -473,20 +485,20 @@
...
@@ -473,20 +485,20 @@
}
}
return
null
;
return
null
;
},
},
getNodeCache
:
function
(
setting
,
tId
)
{
getNodeCache
:
function
(
setting
,
tId
)
{
if
(
!
tId
)
return
null
;
if
(
!
tId
)
return
null
;
var
n
=
caches
[
setting
.
treeId
].
nodes
[
data
.
getNodeCacheId
(
tId
)];
var
n
=
caches
[
setting
.
treeId
].
nodes
[
data
.
getNodeCacheId
(
tId
)];
return
n
?
n
:
null
;
return
n
?
n
:
null
;
},
},
getNodeName
:
function
(
setting
,
node
)
{
getNodeName
:
function
(
setting
,
node
)
{
var
nameKey
=
setting
.
data
.
key
.
name
;
var
nameKey
=
setting
.
data
.
key
.
name
;
return
""
+
node
[
nameKey
];
return
""
+
node
[
nameKey
];
},
},
getNodePath
:
function
(
setting
,
node
)
{
getNodePath
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
path
;
var
path
;
if
(
node
.
parentTId
)
{
if
(
node
.
parentTId
)
{
path
=
node
.
getParentNode
().
getPath
();
path
=
node
.
getParentNode
().
getPath
();
}
else
{
}
else
{
path
=
[];
path
=
[];
...
@@ -498,14 +510,14 @@
...
@@ -498,14 +510,14 @@
return
path
;
return
path
;
},
},
getNodeTitle
:
function
(
setting
,
node
)
{
getNodeTitle
:
function
(
setting
,
node
)
{
var
t
=
setting
.
data
.
key
.
title
===
""
?
setting
.
data
.
key
.
name
:
setting
.
data
.
key
.
title
;
var
t
=
setting
.
data
.
key
.
title
===
""
?
setting
.
data
.
key
.
name
:
setting
.
data
.
key
.
title
;
return
""
+
node
[
t
];
return
""
+
node
[
t
];
},
},
getNodes
:
function
(
setting
)
{
getNodes
:
function
(
setting
)
{
return
data
.
getRoot
(
setting
)[
setting
.
data
.
key
.
children
];
return
data
.
getRoot
(
setting
)[
setting
.
data
.
key
.
children
];
},
},
getNodesByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
getNodesByParam
:
function
(
setting
,
nodes
,
key
,
value
)
{
if
(
!
nodes
||
!
key
)
return
[];
if
(
!
nodes
||
!
key
)
return
[];
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
result
=
[];
result
=
[];
...
@@ -517,110 +529,115 @@
...
@@ -517,110 +529,115 @@
}
}
return
result
;
return
result
;
},
},
getNodesByParamFuzzy
:
function
(
setting
,
nodes
,
key
,
value
)
{
getNodesByParamFuzzy
:
function
(
setting
,
nodes
,
key
,
value
)
{
if
(
!
nodes
||
!
key
)
return
[];
if
(
!
nodes
||
!
key
)
return
[];
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
result
=
[];
result
=
[];
value
=
value
.
toLowerCase
();
value
=
value
.
toLowerCase
();
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
if
(
typeof
nodes
[
i
][
key
]
==
"
string
"
&&
nodes
[
i
][
key
].
toLowerCase
().
indexOf
(
value
)
>
-
1
)
{
if
(
typeof
nodes
[
i
][
key
]
==
"
string
"
&&
nodes
[
i
][
key
].
toLowerCase
().
indexOf
(
value
)
>
-
1
)
{
result
.
push
(
nodes
[
i
]);
result
.
push
(
nodes
[
i
]);
}
}
result
=
result
.
concat
(
data
.
getNodesByParamFuzzy
(
setting
,
nodes
[
i
][
childKey
],
key
,
value
));
result
=
result
.
concat
(
data
.
getNodesByParamFuzzy
(
setting
,
nodes
[
i
][
childKey
],
key
,
value
));
}
}
return
result
;
return
result
;
},
},
getNodesByFilter
:
function
(
setting
,
nodes
,
filter
,
isSingle
,
invokeParam
)
{
getNodesByFilter
:
function
(
setting
,
nodes
,
filter
,
isSingle
,
invokeParam
)
{
if
(
!
nodes
)
return
(
isSingle
?
null
:
[]);
if
(
!
nodes
)
return
(
isSingle
?
null
:
[]);
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
result
=
isSingle
?
null
:
[];
result
=
isSingle
?
null
:
[];
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
if
(
tools
.
apply
(
filter
,
[
nodes
[
i
],
invokeParam
],
false
))
{
if
(
tools
.
apply
(
filter
,
[
nodes
[
i
],
invokeParam
],
false
))
{
if
(
isSingle
)
{
return
nodes
[
i
];}
if
(
isSingle
)
{
return
nodes
[
i
];
}
result
.
push
(
nodes
[
i
]);
result
.
push
(
nodes
[
i
]);
}
}
var
tmpResult
=
data
.
getNodesByFilter
(
setting
,
nodes
[
i
][
childKey
],
filter
,
isSingle
,
invokeParam
);
var
tmpResult
=
data
.
getNodesByFilter
(
setting
,
nodes
[
i
][
childKey
],
filter
,
isSingle
,
invokeParam
);
if
(
isSingle
&&
!!
tmpResult
)
{
return
tmpResult
;}
if
(
isSingle
&&
!!
tmpResult
)
{
return
tmpResult
;
}
result
=
isSingle
?
tmpResult
:
result
.
concat
(
tmpResult
);
result
=
isSingle
?
tmpResult
:
result
.
concat
(
tmpResult
);
}
}
return
result
;
return
result
;
},
},
getPreNode
:
function
(
setting
,
node
)
{
getPreNode
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
p
=
node
.
parentTId
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
p
[
childKey
].
length
;
i
<
l
;
i
++
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
if
(
p
[
childKey
][
i
]
===
node
)
{
return
(
i
==
0
?
null
:
p
[
childKey
][
i
-
1
]);
return
(
i
==
0
?
null
:
p
[
childKey
][
i
-
1
]);
}
}
}
}
return
null
;
return
null
;
},
},
getRoot
:
function
(
setting
)
{
getRoot
:
function
(
setting
)
{
return
setting
?
roots
[
setting
.
treeId
]
:
null
;
return
setting
?
roots
[
setting
.
treeId
]
:
null
;
},
},
getRoots
:
function
()
{
getRoots
:
function
()
{
return
roots
;
return
roots
;
},
},
getSetting
:
function
(
treeId
)
{
getSetting
:
function
(
treeId
)
{
return
settings
[
treeId
];
return
settings
[
treeId
];
},
},
getSettings
:
function
()
{
getSettings
:
function
()
{
return
settings
;
return
settings
;
},
},
getZTreeTools
:
function
(
treeId
)
{
getZTreeTools
:
function
(
treeId
)
{
var
r
=
this
.
getRoot
(
this
.
getSetting
(
treeId
));
var
r
=
this
.
getRoot
(
this
.
getSetting
(
treeId
));
return
r
?
r
.
treeTools
:
null
;
return
r
?
r
.
treeTools
:
null
;
},
},
initCache
:
function
(
setting
)
{
initCache
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
caches
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
caches
.
length
;
i
<
j
;
i
++
)
{
_init
.
caches
[
i
].
apply
(
this
,
arguments
);
_init
.
caches
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
initNode
:
function
(
setting
,
level
,
node
,
parentNode
,
preNode
,
nextNode
)
{
initNode
:
function
(
setting
,
level
,
node
,
parentNode
,
preNode
,
nextNode
)
{
for
(
var
i
=
0
,
j
=
_init
.
nodes
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
nodes
.
length
;
i
<
j
;
i
++
)
{
_init
.
nodes
[
i
].
apply
(
this
,
arguments
);
_init
.
nodes
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
initRoot
:
function
(
setting
)
{
initRoot
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
roots
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
roots
.
length
;
i
<
j
;
i
++
)
{
_init
.
roots
[
i
].
apply
(
this
,
arguments
);
_init
.
roots
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
isSelectedNode
:
function
(
setting
,
node
)
{
isSelectedNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
if
(
node
===
root
.
curSelectedList
[
i
])
return
true
;
if
(
node
===
root
.
curSelectedList
[
i
])
return
true
;
}
}
return
false
;
return
false
;
},
},
removeNodeCache
:
function
(
setting
,
node
)
{
removeNodeCache
:
function
(
setting
,
node
)
{
var
childKey
=
setting
.
data
.
key
.
children
;
var
childKey
=
setting
.
data
.
key
.
children
;
if
(
node
[
childKey
])
{
if
(
node
[
childKey
])
{
for
(
var
i
=
0
,
l
=
node
[
childKey
].
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
node
[
childKey
].
length
;
i
<
l
;
i
++
)
{
data
.
removeNodeCache
(
setting
,
node
[
childKey
][
i
]);
data
.
removeNodeCache
(
setting
,
node
[
childKey
][
i
]);
}
}
}
}
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
null
;
data
.
getCache
(
setting
).
nodes
[
data
.
getNodeCacheId
(
node
.
tId
)]
=
null
;
},
},
removeSelectedNode
:
function
(
setting
,
node
)
{
removeSelectedNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
root
.
curSelectedList
.
length
;
i
<
j
;
i
++
)
{
if
(
node
===
root
.
curSelectedList
[
i
]
||
!
data
.
getNodeCache
(
setting
,
root
.
curSelectedList
[
i
].
tId
))
{
if
(
node
===
root
.
curSelectedList
[
i
]
||
!
data
.
getNodeCache
(
setting
,
root
.
curSelectedList
[
i
].
tId
))
{
root
.
curSelectedList
.
splice
(
i
,
1
);
root
.
curSelectedList
.
splice
(
i
,
1
);
setting
.
treeObj
.
trigger
(
consts
.
event
.
UNSELECTED
,
[
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
UNSELECTED
,
[
setting
.
treeId
,
node
]);
i
--
;
j
--
;
i
--
;
j
--
;
}
}
}
}
},
},
setCache
:
function
(
setting
,
cache
)
{
setCache
:
function
(
setting
,
cache
)
{
caches
[
setting
.
treeId
]
=
cache
;
caches
[
setting
.
treeId
]
=
cache
;
},
},
setRoot
:
function
(
setting
,
root
)
{
setRoot
:
function
(
setting
,
root
)
{
roots
[
setting
.
treeId
]
=
root
;
roots
[
setting
.
treeId
]
=
root
;
},
},
setZTreeTools
:
function
(
setting
,
zTreeTools
)
{
setZTreeTools
:
function
(
setting
,
zTreeTools
)
{
for
(
var
i
=
0
,
j
=
_init
.
zTreeTools
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
zTreeTools
.
length
;
i
<
j
;
i
++
)
{
_init
.
zTreeTools
[
i
].
apply
(
this
,
arguments
);
_init
.
zTreeTools
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
...
@@ -629,7 +646,7 @@
...
@@ -629,7 +646,7 @@
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
r
=
[];
r
=
[];
if
(
tools
.
isArray
(
nodes
))
{
if
(
tools
.
isArray
(
nodes
))
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
r
.
push
(
nodes
[
i
]);
r
.
push
(
nodes
[
i
]);
if
(
nodes
[
i
][
childKey
])
if
(
nodes
[
i
][
childKey
])
r
=
r
.
concat
(
data
.
transformToArrayFormat
(
setting
,
nodes
[
i
][
childKey
]));
r
=
r
.
concat
(
data
.
transformToArrayFormat
(
setting
,
nodes
[
i
][
childKey
]));
...
@@ -641,20 +658,20 @@
...
@@ -641,20 +658,20 @@
}
}
return
r
;
return
r
;
},
},
transformTozTreeFormat
:
function
(
setting
,
sNodes
)
{
transformTozTreeFormat
:
function
(
setting
,
sNodes
)
{
var
i
,
l
,
var
i
,
l
,
key
=
setting
.
data
.
simpleData
.
idKey
,
key
=
setting
.
data
.
simpleData
.
idKey
,
parentKey
=
setting
.
data
.
simpleData
.
pIdKey
,
parentKey
=
setting
.
data
.
simpleData
.
pIdKey
,
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
if
(
!
key
||
key
==
""
||
!
sNodes
)
return
[];
if
(
!
key
||
key
==
""
||
!
sNodes
)
return
[];
if
(
tools
.
isArray
(
sNodes
))
{
if
(
tools
.
isArray
(
sNodes
))
{
var
r
=
[];
var
r
=
[];
var
tmpMap
=
{};
var
tmpMap
=
{};
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
tmpMap
[
sNodes
[
i
][
key
]]
=
sNodes
[
i
];
tmpMap
[
sNodes
[
i
][
key
]]
=
sNodes
[
i
];
}
}
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
sNodes
.
length
;
i
<
l
;
i
++
)
{
if
(
tmpMap
[
sNodes
[
i
][
parentKey
]]
&&
sNodes
[
i
][
key
]
!=
sNodes
[
i
][
parentKey
])
{
if
(
tmpMap
[
sNodes
[
i
][
parentKey
]]
&&
sNodes
[
i
][
key
]
!=
sNodes
[
i
][
parentKey
])
{
if
(
!
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
])
if
(
!
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
])
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
]
=
[];
tmpMap
[
sNodes
[
i
][
parentKey
]][
childKey
]
=
[];
...
@@ -664,24 +681,24 @@
...
@@ -664,24 +681,24 @@
}
}
}
}
return
r
;
return
r
;
}
else
{
}
else
{
return
[
sNodes
];
return
[
sNodes
];
}
}
}
}
},
},
//method of event proxy
//method of event proxy
event
=
{
event
=
{
bindEvent
:
function
(
setting
)
{
bindEvent
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
bind
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
bind
.
length
;
i
<
j
;
i
++
)
{
_init
.
bind
[
i
].
apply
(
this
,
arguments
);
_init
.
bind
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
unbindEvent
:
function
(
setting
)
{
unbindEvent
:
function
(
setting
)
{
for
(
var
i
=
0
,
j
=
_init
.
unbind
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
unbind
.
length
;
i
<
j
;
i
++
)
{
_init
.
unbind
[
i
].
apply
(
this
,
arguments
);
_init
.
unbind
[
i
].
apply
(
this
,
arguments
);
}
}
},
},
bindTree
:
function
(
setting
)
{
bindTree
:
function
(
setting
)
{
var
eventParam
=
{
var
eventParam
=
{
treeId
:
setting
.
treeId
treeId
:
setting
.
treeId
},
},
...
@@ -689,7 +706,7 @@
...
@@ -689,7 +706,7 @@
if
(
!
setting
.
view
.
txtSelectedEnable
)
{
if
(
!
setting
.
view
.
txtSelectedEnable
)
{
// for can't select text
// for can't select text
o
.
bind
(
'
selectstart
'
,
handler
.
onSelectStart
).
css
({
o
.
bind
(
'
selectstart
'
,
handler
.
onSelectStart
).
css
({
"
-moz-user-select
"
:
"
-moz-none
"
"
-moz-user-select
"
:
"
-moz-none
"
});
});
}
}
o
.
bind
(
'
click
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
click
'
,
eventParam
,
event
.
proxy
);
...
@@ -700,7 +717,7 @@
...
@@ -700,7 +717,7 @@
o
.
bind
(
'
mouseup
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
mouseup
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
contextmenu
'
,
eventParam
,
event
.
proxy
);
o
.
bind
(
'
contextmenu
'
,
eventParam
,
event
.
proxy
);
},
},
unbindTree
:
function
(
setting
)
{
unbindTree
:
function
(
setting
)
{
var
o
=
setting
.
treeObj
;
var
o
=
setting
.
treeObj
;
o
.
unbind
(
'
selectstart
'
,
handler
.
onSelectStart
)
o
.
unbind
(
'
selectstart
'
,
handler
.
onSelectStart
)
.
unbind
(
'
click
'
,
event
.
proxy
)
.
unbind
(
'
click
'
,
event
.
proxy
)
...
@@ -711,9 +728,9 @@
...
@@ -711,9 +728,9 @@
.
unbind
(
'
mouseup
'
,
event
.
proxy
)
.
unbind
(
'
mouseup
'
,
event
.
proxy
)
.
unbind
(
'
contextmenu
'
,
event
.
proxy
);
.
unbind
(
'
contextmenu
'
,
event
.
proxy
);
},
},
doProxy
:
function
(
e
)
{
doProxy
:
function
(
e
)
{
var
results
=
[];
var
results
=
[];
for
(
var
i
=
0
,
j
=
_init
.
proxys
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
_init
.
proxys
.
length
;
i
<
j
;
i
++
)
{
var
proxyResult
=
_init
.
proxys
[
i
].
apply
(
this
,
arguments
);
var
proxyResult
=
_init
.
proxys
[
i
].
apply
(
this
,
arguments
);
results
.
push
(
proxyResult
);
results
.
push
(
proxyResult
);
if
(
proxyResult
.
stop
)
{
if
(
proxyResult
.
stop
)
{
...
@@ -722,12 +739,12 @@
...
@@ -722,12 +739,12 @@
}
}
return
results
;
return
results
;
},
},
proxy
:
function
(
e
)
{
proxy
:
function
(
e
)
{
var
setting
=
data
.
getSetting
(
e
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
e
.
data
.
treeId
);
if
(
!
tools
.
uCanDo
(
setting
,
e
))
return
true
;
if
(
!
tools
.
uCanDo
(
setting
,
e
))
return
true
;
var
results
=
event
.
doProxy
(
e
),
var
results
=
event
.
doProxy
(
e
),
r
=
true
,
x
=
false
;
r
=
true
,
x
=
false
;
for
(
var
i
=
0
,
l
=
results
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
results
.
length
;
i
<
l
;
i
++
)
{
var
proxyResult
=
results
[
i
];
var
proxyResult
=
results
[
i
];
if
(
proxyResult
.
nodeEventCallback
)
{
if
(
proxyResult
.
nodeEventCallback
)
{
x
=
true
;
x
=
true
;
...
@@ -768,66 +785,72 @@
...
@@ -768,66 +785,72 @@
setting
.
treeObj
.
trigger
(
consts
.
event
.
CLICK
,
[
event
,
setting
.
treeId
,
node
,
clickFlag
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
CLICK
,
[
event
,
setting
.
treeId
,
node
,
clickFlag
]);
return
true
;
return
true
;
},
},
onZTreeMousedown
:
function
(
event
,
node
)
{
onZTreeMousedown
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseDown
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseDown
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onMouseDown
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onMouseDown
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
true
;
return
true
;
},
},
onZTreeMouseup
:
function
(
event
,
node
)
{
onZTreeMouseup
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseUp
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeMouseUp
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onMouseUp
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onMouseUp
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
true
;
return
true
;
},
},
onZTreeDblclick
:
function
(
event
,
node
)
{
onZTreeDblclick
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeDblClick
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeDblClick
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onDblClick
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onDblClick
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
true
;
return
true
;
},
},
onZTreeContextmenu
:
function
(
event
,
node
)
{
onZTreeContextmenu
:
function
(
event
,
node
)
{
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeRightClick
,
[
setting
.
treeId
,
node
],
true
))
{
if
(
tools
.
apply
(
setting
.
callback
.
beforeRightClick
,
[
setting
.
treeId
,
node
],
true
))
{
tools
.
apply
(
setting
.
callback
.
onRightClick
,
[
event
,
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
callback
.
onRightClick
,
[
event
,
setting
.
treeId
,
node
]);
}
}
return
(
typeof
setting
.
callback
.
onRightClick
)
!=
"
function
"
;
return
(
typeof
setting
.
callback
.
onRightClick
)
!=
"
function
"
;
},
},
onSelectStart
:
function
(
e
)
{
onSelectStart
:
function
(
e
)
{
var
n
=
e
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
var
n
=
e
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
(
n
===
"
input
"
||
n
===
"
textarea
"
);
return
(
n
===
"
input
"
||
n
===
"
textarea
"
);
}
}
},
},
//method of tools for zTree
//method of tools for zTree
tools
=
{
tools
=
{
apply
:
function
(
fun
,
param
,
defaultValue
)
{
apply
:
function
(
fun
,
param
,
defaultValue
)
{
if
((
typeof
fun
)
==
"
function
"
)
{
if
((
typeof
fun
)
==
"
function
"
)
{
return
fun
.
apply
(
zt
,
param
?
param
:
[]);
return
fun
.
apply
(
zt
,
param
?
param
:
[]);
}
}
return
defaultValue
;
return
defaultValue
;
},
},
canAsync
:
function
(
setting
,
node
)
{
canAsync
:
function
(
setting
,
node
)
{
var
childKey
=
setting
.
data
.
key
.
children
;
var
childKey
=
setting
.
data
.
key
.
children
;
return
(
setting
.
async
.
enable
&&
node
&&
node
.
isParent
&&
!
(
node
.
zAsync
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
)));
return
(
setting
.
async
.
enable
&&
node
&&
node
.
isParent
&&
!
(
node
.
zAsync
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
)));
},
},
clone
:
function
(
obj
)
{
clone
:
function
(
obj
)
{
if
(
obj
===
null
)
return
null
;
if
(
obj
===
null
)
return
null
;
var
o
=
tools
.
isArray
(
obj
)
?
[]
:
{};
var
o
=
tools
.
isArray
(
obj
)
?
[]
:
{};
for
(
var
i
in
obj
)
{
for
(
var
i
in
obj
)
{
o
[
i
]
=
(
obj
[
i
]
instanceof
Date
)
?
new
Date
(
obj
[
i
].
getTime
())
:
(
typeof
obj
[
i
]
===
"
object
"
?
tools
.
clone
(
obj
[
i
])
:
obj
[
i
]);
o
[
i
]
=
(
obj
[
i
]
instanceof
Date
)
?
new
Date
(
obj
[
i
].
getTime
())
:
(
typeof
obj
[
i
]
===
"
object
"
?
tools
.
clone
(
obj
[
i
])
:
obj
[
i
]);
}
}
return
o
;
return
o
;
},
},
eqs
:
function
(
str1
,
str2
)
{
eqs
:
function
(
str1
,
str2
)
{
return
str1
.
toLowerCase
()
===
str2
.
toLowerCase
();
return
str1
.
toLowerCase
()
===
str2
.
toLowerCase
();
},
},
isArray
:
function
(
arr
)
{
isArray
:
function
(
arr
)
{
return
Object
.
prototype
.
toString
.
apply
(
arr
)
===
"
[object Array]
"
;
return
Object
.
prototype
.
toString
.
apply
(
arr
)
===
"
[object Array]
"
;
},
},
$
:
function
(
node
,
exp
,
setting
)
{
isElement
:
function
(
o
)
{
return
(
typeof
HTMLElement
===
"
object
"
?
o
instanceof
HTMLElement
:
//DOM2
o
&&
typeof
o
===
"
object
"
&&
o
!==
null
&&
o
.
nodeType
===
1
&&
typeof
o
.
nodeName
===
"
string
"
);
},
$
:
function
(
node
,
exp
,
setting
)
{
if
(
!!
exp
&&
typeof
exp
!=
"
string
"
)
{
if
(
!!
exp
&&
typeof
exp
!=
"
string
"
)
{
setting
=
exp
;
setting
=
exp
;
exp
=
""
;
exp
=
""
;
...
@@ -841,7 +864,7 @@
...
@@ -841,7 +864,7 @@
getMDom
:
function
(
setting
,
curDom
,
targetExpr
)
{
getMDom
:
function
(
setting
,
curDom
,
targetExpr
)
{
if
(
!
curDom
)
return
null
;
if
(
!
curDom
)
return
null
;
while
(
curDom
&&
curDom
.
id
!==
setting
.
treeId
)
{
while
(
curDom
&&
curDom
.
id
!==
setting
.
treeId
)
{
for
(
var
i
=
0
,
l
=
targetExpr
.
length
;
curDom
.
tagName
&&
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
targetExpr
.
length
;
curDom
.
tagName
&&
i
<
l
;
i
++
)
{
if
(
tools
.
eqs
(
curDom
.
tagName
,
targetExpr
[
i
].
tagName
)
&&
curDom
.
getAttribute
(
targetExpr
[
i
].
attrName
)
!==
null
)
{
if
(
tools
.
eqs
(
curDom
.
tagName
,
targetExpr
[
i
].
tagName
)
&&
curDom
.
getAttribute
(
targetExpr
[
i
].
attrName
)
!==
null
)
{
return
curDom
;
return
curDom
;
}
}
...
@@ -850,19 +873,19 @@
...
@@ -850,19 +873,19 @@
}
}
return
null
;
return
null
;
},
},
getNodeMainDom
:
function
(
target
)
{
getNodeMainDom
:
function
(
target
)
{
return
(
$
(
target
).
parent
(
"
li
"
).
get
(
0
)
||
$
(
target
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
));
return
(
$
(
target
).
parent
(
"
li
"
).
get
(
0
)
||
$
(
target
).
parentsUntil
(
"
li
"
).
parent
().
get
(
0
));
},
},
isChildOrSelf
:
function
(
dom
,
parentId
)
{
isChildOrSelf
:
function
(
dom
,
parentId
)
{
return
(
$
(
dom
).
closest
(
"
#
"
+
parentId
).
length
>
0
);
return
(
$
(
dom
).
closest
(
"
#
"
+
parentId
).
length
>
0
);
},
},
uCanDo
:
function
(
setting
,
e
)
{
uCanDo
:
function
(
setting
,
e
)
{
return
true
;
return
true
;
}
}
},
},
//method of operate ztree dom
//method of operate ztree dom
view
=
{
view
=
{
addNodes
:
function
(
setting
,
parentNode
,
index
,
newNodes
,
isSilent
)
{
addNodes
:
function
(
setting
,
parentNode
,
index
,
newNodes
,
isSilent
)
{
if
(
setting
.
data
.
keep
.
leaf
&&
parentNode
&&
!
parentNode
.
isParent
)
{
if
(
setting
.
data
.
keep
.
leaf
&&
parentNode
&&
!
parentNode
.
isParent
)
{
return
;
return
;
}
}
...
@@ -896,12 +919,12 @@
...
@@ -896,12 +919,12 @@
view
.
createNodes
(
setting
,
0
,
newNodes
,
null
,
index
);
view
.
createNodes
(
setting
,
0
,
newNodes
,
null
,
index
);
}
}
},
},
appendNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
,
initFlag
,
openFlag
)
{
appendNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
,
initFlag
,
openFlag
)
{
if
(
!
nodes
)
return
[];
if
(
!
nodes
)
return
[];
var
html
=
[],
var
html
=
[],
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
var
tmpPNode
=
(
parentNode
)
?
parentNode
:
data
.
getRoot
(
setting
),
var
tmpPNode
=
(
parentNode
)
?
parentNode
:
data
.
getRoot
(
setting
),
tmpPChild
=
tmpPNode
[
childKey
],
tmpPChild
=
tmpPNode
[
childKey
],
isFirstNode
,
isLastNode
;
isFirstNode
,
isLastNode
;
...
@@ -912,7 +935,7 @@
...
@@ -912,7 +935,7 @@
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
var
node
=
nodes
[
i
];
var
node
=
nodes
[
i
];
if
(
initFlag
)
{
if
(
initFlag
)
{
isFirstNode
=
((
index
===
0
||
tmpPChild
.
length
==
nodes
.
length
)
&&
(
i
==
0
));
isFirstNode
=
((
index
===
0
||
tmpPChild
.
length
==
nodes
.
length
)
&&
(
i
==
0
));
isLastNode
=
(
index
<
0
&&
i
==
(
nodes
.
length
-
1
));
isLastNode
=
(
index
<
0
&&
i
==
(
nodes
.
length
-
1
));
data
.
initNode
(
setting
,
level
,
node
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
);
data
.
initNode
(
setting
,
level
,
node
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
);
data
.
addNodeCache
(
setting
,
node
);
data
.
addNodeCache
(
setting
,
node
);
...
@@ -943,7 +966,7 @@
...
@@ -943,7 +966,7 @@
}
}
return
html
;
return
html
;
},
},
appendParentULDom
:
function
(
setting
,
node
)
{
appendParentULDom
:
function
(
setting
,
node
)
{
var
html
=
[],
var
html
=
[],
nObj
=
$$
(
node
,
setting
);
nObj
=
$$
(
node
,
setting
);
if
(
!
nObj
.
get
(
0
)
&&
!!
node
.
parentTId
)
{
if
(
!
nObj
.
get
(
0
)
&&
!!
node
.
parentTId
)
{
...
@@ -955,11 +978,11 @@
...
@@ -955,11 +978,11 @@
ulObj
.
remove
();
ulObj
.
remove
();
}
}
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
childHtml
=
view
.
appendNodes
(
setting
,
node
.
level
+
1
,
node
[
childKey
],
node
,
-
1
,
false
,
true
);
childHtml
=
view
.
appendNodes
(
setting
,
node
.
level
+
1
,
node
[
childKey
],
node
,
-
1
,
false
,
true
);
view
.
makeUlHtml
(
setting
,
node
,
html
,
childHtml
.
join
(
''
));
view
.
makeUlHtml
(
setting
,
node
,
html
,
childHtml
.
join
(
''
));
nObj
.
append
(
html
.
join
(
''
));
nObj
.
append
(
html
.
join
(
''
));
},
},
asyncNode
:
function
(
setting
,
node
,
isSilent
,
callback
)
{
asyncNode
:
function
(
setting
,
node
,
isSilent
,
callback
)
{
var
i
,
l
;
var
i
,
l
;
if
(
node
&&
!
node
.
isParent
)
{
if
(
node
&&
!
node
.
isParent
)
{
tools
.
apply
(
callback
);
tools
.
apply
(
callback
);
...
@@ -973,13 +996,13 @@
...
@@ -973,13 +996,13 @@
if
(
node
)
{
if
(
node
)
{
node
.
isAjaxing
=
true
;
node
.
isAjaxing
=
true
;
var
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
);
var
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
);
icoObj
.
attr
({
"
style
"
:
""
,
"
class
"
:
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
ICO_LOADING
});
icoObj
.
attr
({
"
style
"
:
""
,
"
class
"
:
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
ICO_LOADING
});
}
}
var
tmpParam
=
{};
var
tmpParam
=
{};
for
(
i
=
0
,
l
=
setting
.
async
.
autoParam
.
length
;
node
&&
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
setting
.
async
.
autoParam
.
length
;
node
&&
i
<
l
;
i
++
)
{
var
pKey
=
setting
.
async
.
autoParam
[
i
].
split
(
"
=
"
),
spKey
=
pKey
;
var
pKey
=
setting
.
async
.
autoParam
[
i
].
split
(
"
=
"
),
spKey
=
pKey
;
if
(
pKey
.
length
>
1
)
{
if
(
pKey
.
length
>
1
)
{
spKey
=
pKey
[
1
];
spKey
=
pKey
[
1
];
pKey
=
pKey
[
0
];
pKey
=
pKey
[
0
];
}
}
...
@@ -1003,7 +1026,7 @@
...
@@ -1003,7 +1026,7 @@
url
:
tools
.
apply
(
setting
.
async
.
url
,
[
setting
.
treeId
,
node
],
setting
.
async
.
url
),
url
:
tools
.
apply
(
setting
.
async
.
url
,
[
setting
.
treeId
,
node
],
setting
.
async
.
url
),
data
:
setting
.
async
.
contentType
.
indexOf
(
'
application/json
'
)
>
-
1
?
JSON
.
stringify
(
tmpParam
)
:
tmpParam
,
data
:
setting
.
async
.
contentType
.
indexOf
(
'
application/json
'
)
>
-
1
?
JSON
.
stringify
(
tmpParam
)
:
tmpParam
,
dataType
:
setting
.
async
.
dataType
,
dataType
:
setting
.
async
.
dataType
,
success
:
function
(
msg
)
{
success
:
function
(
msg
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
return
;
return
;
}
}
...
@@ -1016,7 +1039,7 @@
...
@@ -1016,7 +1039,7 @@
}
else
{
}
else
{
newNodes
=
msg
;
newNodes
=
msg
;
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
newNodes
=
msg
;
newNodes
=
msg
;
}
}
...
@@ -1034,7 +1057,7 @@
...
@@ -1034,7 +1057,7 @@
setting
.
treeObj
.
trigger
(
consts
.
event
.
ASYNC_SUCCESS
,
[
setting
.
treeId
,
node
,
msg
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
ASYNC_SUCCESS
,
[
setting
.
treeId
,
node
,
msg
]);
tools
.
apply
(
callback
);
tools
.
apply
(
callback
);
},
},
error
:
function
(
XMLHttpRequest
,
textStatus
,
errorThrown
)
{
error
:
function
(
XMLHttpRequest
,
textStatus
,
errorThrown
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
if
(
_tmpV
!=
data
.
getRoot
(
setting
).
_ver
)
{
return
;
return
;
}
}
...
@@ -1048,7 +1071,7 @@
...
@@ -1048,7 +1071,7 @@
cancelPreSelectedNode
:
function
(
setting
,
node
,
excludeNode
)
{
cancelPreSelectedNode
:
function
(
setting
,
node
,
excludeNode
)
{
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
i
,
n
;
i
,
n
;
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
n
=
list
[
i
];
n
=
list
[
i
];
if
(
node
===
n
||
(
!
node
&&
(
!
excludeNode
||
excludeNode
!==
n
)))
{
if
(
node
===
n
||
(
!
node
&&
(
!
excludeNode
||
excludeNode
!==
n
)))
{
$$
(
n
,
consts
.
id
.
A
,
setting
).
removeClass
(
consts
.
node
.
CURSELECTED
);
$$
(
n
,
consts
.
id
.
A
,
setting
).
removeClass
(
consts
.
node
.
CURSELECTED
);
...
@@ -1062,10 +1085,10 @@
...
@@ -1062,10 +1085,10 @@
}
}
}
}
},
},
createNodeCallback
:
function
(
setting
)
{
createNodeCallback
:
function
(
setting
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
||
!!
setting
.
view
.
addDiyDom
)
{
var
root
=
data
.
getRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
);
while
(
root
.
createdNodes
.
length
>
0
)
{
while
(
root
.
createdNodes
.
length
>
0
)
{
var
node
=
root
.
createdNodes
.
shift
();
var
node
=
root
.
createdNodes
.
shift
();
tools
.
apply
(
setting
.
view
.
addDiyDom
,
[
setting
.
treeId
,
node
]);
tools
.
apply
(
setting
.
view
.
addDiyDom
,
[
setting
.
treeId
,
node
]);
if
(
!!
setting
.
callback
.
onNodeCreated
)
{
if
(
!!
setting
.
callback
.
onNodeCreated
)
{
...
@@ -1074,7 +1097,7 @@
...
@@ -1074,7 +1097,7 @@
}
}
}
}
},
},
createNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
)
{
createNodes
:
function
(
setting
,
level
,
nodes
,
parentNode
,
index
)
{
if
(
!
nodes
||
nodes
.
length
==
0
)
return
;
if
(
!
nodes
||
nodes
.
length
==
0
)
return
;
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
,
childKey
=
setting
.
data
.
key
.
children
,
...
@@ -1097,7 +1120,7 @@
...
@@ -1097,7 +1120,7 @@
if
(
index
>=
0
)
{
if
(
index
>=
0
)
{
nextObj
=
parentObj
.
children
()[
index
];
nextObj
=
parentObj
.
children
()[
index
];
}
}
if
(
index
>=
0
&&
nextObj
)
{
if
(
index
>=
0
&&
nextObj
)
{
$
(
nextObj
).
before
(
zTreeHtml
.
join
(
''
));
$
(
nextObj
).
before
(
zTreeHtml
.
join
(
''
));
}
else
{
}
else
{
parentObj
.
append
(
zTreeHtml
.
join
(
''
));
parentObj
.
append
(
zTreeHtml
.
join
(
''
));
...
@@ -1106,7 +1129,7 @@
...
@@ -1106,7 +1129,7 @@
view
.
createNodeCallback
(
setting
);
view
.
createNodeCallback
(
setting
);
},
},
destroy
:
function
(
setting
)
{
destroy
:
function
(
setting
)
{
if
(
!
setting
)
return
;
if
(
!
setting
)
return
;
data
.
initCache
(
setting
);
data
.
initCache
(
setting
);
data
.
initRoot
(
setting
);
data
.
initRoot
(
setting
);
...
@@ -1115,7 +1138,7 @@
...
@@ -1115,7 +1138,7 @@
setting
.
treeObj
.
empty
();
setting
.
treeObj
.
empty
();
delete
settings
[
setting
.
treeId
];
delete
settings
[
setting
.
treeId
];
},
},
expandCollapseNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
expandCollapseNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
var
tmpCb
,
_callback
;
var
tmpCb
,
_callback
;
...
@@ -1125,7 +1148,7 @@
...
@@ -1125,7 +1148,7 @@
}
}
if
(
root
.
expandTriggerFlag
)
{
if
(
root
.
expandTriggerFlag
)
{
_callback
=
callback
;
_callback
=
callback
;
tmpCb
=
function
()
{
tmpCb
=
function
()
{
if
(
_callback
)
_callback
();
if
(
_callback
)
_callback
();
if
(
node
.
open
)
{
if
(
node
.
open
)
{
setting
.
treeObj
.
trigger
(
consts
.
event
.
EXPAND
,
[
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
EXPAND
,
[
setting
.
treeId
,
node
]);
...
@@ -1136,7 +1159,7 @@
...
@@ -1136,7 +1159,7 @@
callback
=
tmpCb
;
callback
=
tmpCb
;
root
.
expandTriggerFlag
=
false
;
root
.
expandTriggerFlag
=
false
;
}
}
if
(
!
node
.
open
&&
node
.
isParent
&&
((
!
$$
(
node
,
consts
.
id
.
UL
,
setting
).
get
(
0
))
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
&&
!
$$
(
node
[
childKey
][
0
],
setting
).
get
(
0
))))
{
if
(
!
node
.
open
&&
node
.
isParent
&&
((
!
$$
(
node
,
consts
.
id
.
UL
,
setting
).
get
(
0
))
||
(
node
[
childKey
]
&&
node
[
childKey
].
length
>
0
&&
!
$$
(
node
[
childKey
][
0
],
setting
).
get
(
0
))))
{
view
.
appendParentULDom
(
setting
,
node
);
view
.
appendParentULDom
(
setting
,
node
);
view
.
createNodeCallback
(
setting
);
view
.
createNodeCallback
(
setting
);
}
}
...
@@ -1182,7 +1205,7 @@
...
@@ -1182,7 +1205,7 @@
tools
.
apply
(
callback
,
[]);
tools
.
apply
(
callback
,
[]);
}
}
},
},
expandCollapseParentNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
expandCollapseParentNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
if
(
!
node
.
parentTId
)
{
if
(
!
node
.
parentTId
)
{
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
...
@@ -1194,10 +1217,10 @@
...
@@ -1194,10 +1217,10 @@
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
expandFlag
,
animateFlag
,
callback
);
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
expandFlag
,
animateFlag
,
callback
);
}
}
},
},
expandCollapseSonNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
expandCollapseSonNode
:
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
,
childKey
=
setting
.
data
.
key
.
children
,
treeNodes
=
(
node
)
?
node
[
childKey
]
:
root
[
childKey
],
treeNodes
=
(
node
)
?
node
[
childKey
]
:
root
[
childKey
],
selfAnimateSign
=
(
node
)
?
false
:
animateFlag
,
selfAnimateSign
=
(
node
)
?
false
:
animateFlag
,
expandTriggerFlag
=
data
.
getRoot
(
setting
).
expandTriggerFlag
;
expandTriggerFlag
=
data
.
getRoot
(
setting
).
expandTriggerFlag
;
data
.
getRoot
(
setting
).
expandTriggerFlag
=
false
;
data
.
getRoot
(
setting
).
expandTriggerFlag
=
false
;
...
@@ -1207,7 +1230,7 @@
...
@@ -1207,7 +1230,7 @@
}
}
}
}
data
.
getRoot
(
setting
).
expandTriggerFlag
=
expandTriggerFlag
;
data
.
getRoot
(
setting
).
expandTriggerFlag
=
expandTriggerFlag
;
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
view
.
expandCollapseNode
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
);
},
},
isSelectedNode
:
function
(
setting
,
node
)
{
isSelectedNode
:
function
(
setting
,
node
)
{
if
(
!
node
)
{
if
(
!
node
)
{
...
@@ -1215,35 +1238,35 @@
...
@@ -1215,35 +1238,35 @@
}
}
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
var
list
=
data
.
getRoot
(
setting
).
curSelectedList
,
i
;
i
;
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
for
(
i
=
list
.
length
-
1
;
i
>=
0
;
i
--
)
{
if
(
node
===
list
[
i
])
{
if
(
node
===
list
[
i
])
{
return
true
;
return
true
;
}
}
}
}
return
false
;
return
false
;
},
},
makeDOMNodeIcon
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeIcon
:
function
(
html
,
setting
,
node
)
{
var
nameStr
=
data
.
getNodeName
(
setting
,
node
),
var
nameStr
=
data
.
getNodeName
(
setting
,
node
),
name
=
setting
.
view
.
nameIsHTML
?
nameStr
:
nameStr
.
replace
(
/&/g
,
'
&
'
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
);
name
=
setting
.
view
.
nameIsHTML
?
nameStr
:
nameStr
.
replace
(
/&/g
,
'
&
'
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
);
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
ICON
,
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
ICON
,
"
' title='' treeNode
"
,
consts
.
id
.
ICON
,
"
class='
"
,
view
.
makeNodeIcoClass
(
setting
,
node
),
"
' title='' treeNode
"
,
consts
.
id
.
ICON
,
"
class='
"
,
view
.
makeNodeIcoClass
(
setting
,
node
),
"
' style='
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
),
"
'></span><span id='
"
,
node
.
tId
,
consts
.
id
.
SPAN
,
"
' style='
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
),
"
'></span><span id='
"
,
node
.
tId
,
consts
.
id
.
SPAN
,
"
' class='
"
,
consts
.
className
.
NAME
,
"
' class='
"
,
consts
.
className
.
NAME
,
"
'>
"
,
name
,
"
</span>
"
);
"
'>
"
,
name
,
"
</span>
"
);
},
},
makeDOMNodeLine
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeLine
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
SWITCH
,
"
' title='' class='
"
,
view
.
makeNodeLineClass
(
setting
,
node
),
"
' treeNode
"
,
consts
.
id
.
SWITCH
,
"
></span>
"
);
html
.
push
(
"
<span id='
"
,
node
.
tId
,
consts
.
id
.
SWITCH
,
"
' title='' class='
"
,
view
.
makeNodeLineClass
(
setting
,
node
),
"
' treeNode
"
,
consts
.
id
.
SWITCH
,
"
></span>
"
);
},
},
makeDOMNodeMainAfter
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeMainAfter
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
</li>
"
);
html
.
push
(
"
</li>
"
);
},
},
makeDOMNodeMainBefore
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeMainBefore
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
<li id='
"
,
node
.
tId
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
);
html
.
push
(
"
<li id='
"
,
node
.
tId
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' tabindex='0' hidefocus='true' treenode>
"
);
},
},
makeDOMNodeNameAfter
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeNameAfter
:
function
(
html
,
setting
,
node
)
{
html
.
push
(
"
</a>
"
);
html
.
push
(
"
</a>
"
);
},
},
makeDOMNodeNameBefore
:
function
(
html
,
setting
,
node
)
{
makeDOMNodeNameBefore
:
function
(
html
,
setting
,
node
)
{
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
url
=
view
.
makeNodeUrl
(
setting
,
node
),
url
=
view
.
makeNodeUrl
(
setting
,
node
),
fontcss
=
view
.
makeNodeFontCss
(
setting
,
node
),
fontcss
=
view
.
makeNodeFontCss
(
setting
,
node
),
...
@@ -1251,17 +1274,19 @@
...
@@ -1251,17 +1274,19 @@
for
(
var
f
in
fontcss
)
{
for
(
var
f
in
fontcss
)
{
fontStyle
.
push
(
f
,
"
:
"
,
fontcss
[
f
],
"
;
"
);
fontStyle
.
push
(
f
,
"
:
"
,
fontcss
[
f
],
"
;
"
);
}
}
html
.
push
(
"
<a id='
"
,
node
.
tId
,
consts
.
id
.
A
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' treeNode
"
,
consts
.
id
.
A
,
"
onclick=
\"
"
,
(
node
.
click
||
''
),
html
.
push
(
"
<a id='
"
,
node
.
tId
,
consts
.
id
.
A
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
' treeNode
"
,
consts
.
id
.
A
,
"
onclick=
\"
"
,
(
node
.
click
||
''
),
"
\"
"
,
((
url
!=
null
&&
url
.
length
>
0
)
?
"
href='
"
+
url
+
"
'
"
:
""
),
"
target='
"
,
view
.
makeNodeTarget
(
node
),
"
' style='
"
,
fontStyle
.
join
(
''
),
"
\"
"
,
((
url
!=
null
&&
url
.
length
>
0
)
?
"
href='
"
+
url
+
"
'
"
:
""
),
"
target='
"
,
view
.
makeNodeTarget
(
node
),
"
' style='
"
,
fontStyle
.
join
(
''
),
"
'
"
);
"
'
"
);
if
(
tools
.
apply
(
setting
.
view
.
showTitle
,
[
setting
.
treeId
,
node
],
setting
.
view
.
showTitle
)
&&
title
)
{
html
.
push
(
"
title='
"
,
title
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
),
"
'
"
);}
if
(
tools
.
apply
(
setting
.
view
.
showTitle
,
[
setting
.
treeId
,
node
],
setting
.
view
.
showTitle
)
&&
title
)
{
html
.
push
(
"
title='
"
,
title
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
'
<
'
).
replace
(
/>/g
,
'
>
'
),
"
'
"
);
}
html
.
push
(
"
>
"
);
html
.
push
(
"
>
"
);
},
},
makeNodeFontCss
:
function
(
setting
,
node
)
{
makeNodeFontCss
:
function
(
setting
,
node
)
{
var
fontCss
=
tools
.
apply
(
setting
.
view
.
fontCss
,
[
setting
.
treeId
,
node
],
setting
.
view
.
fontCss
);
var
fontCss
=
tools
.
apply
(
setting
.
view
.
fontCss
,
[
setting
.
treeId
,
node
],
setting
.
view
.
fontCss
);
return
(
fontCss
&&
((
typeof
fontCss
)
!=
"
function
"
))
?
fontCss
:
{};
return
(
fontCss
&&
((
typeof
fontCss
)
!=
"
function
"
))
?
fontCss
:
{};
},
},
makeNodeIcoClass
:
function
(
setting
,
node
)
{
makeNodeIcoClass
:
function
(
setting
,
node
)
{
var
icoCss
=
[
"
ico
"
];
var
icoCss
=
[
"
ico
"
];
if
(
!
node
.
isAjaxing
)
{
if
(
!
node
.
isAjaxing
)
{
icoCss
[
0
]
=
(
node
.
iconSkin
?
node
.
iconSkin
+
"
_
"
:
""
)
+
icoCss
[
0
];
icoCss
[
0
]
=
(
node
.
iconSkin
?
node
.
iconSkin
+
"
_
"
:
""
)
+
icoCss
[
0
];
...
@@ -1273,7 +1298,7 @@
...
@@ -1273,7 +1298,7 @@
}
}
return
consts
.
className
.
BUTTON
+
"
"
+
icoCss
.
join
(
'
_
'
);
return
consts
.
className
.
BUTTON
+
"
"
+
icoCss
.
join
(
'
_
'
);
},
},
makeNodeIcoStyle
:
function
(
setting
,
node
)
{
makeNodeIcoStyle
:
function
(
setting
,
node
)
{
var
icoStyle
=
[];
var
icoStyle
=
[];
if
(
!
node
.
isAjaxing
)
{
if
(
!
node
.
isAjaxing
)
{
var
icon
=
(
node
.
isParent
&&
node
.
iconOpen
&&
node
.
iconClose
)
?
(
node
.
open
?
node
.
iconOpen
:
node
.
iconClose
)
:
node
[
setting
.
data
.
key
.
icon
];
var
icon
=
(
node
.
isParent
&&
node
.
iconOpen
&&
node
.
iconClose
)
?
(
node
.
open
?
node
.
iconOpen
:
node
.
iconClose
)
:
node
[
setting
.
data
.
key
.
icon
];
...
@@ -1284,7 +1309,7 @@
...
@@ -1284,7 +1309,7 @@
}
}
return
icoStyle
.
join
(
''
);
return
icoStyle
.
join
(
''
);
},
},
makeNodeLineClass
:
function
(
setting
,
node
)
{
makeNodeLineClass
:
function
(
setting
,
node
)
{
var
lineClass
=
[];
var
lineClass
=
[];
if
(
setting
.
view
.
showLine
)
{
if
(
setting
.
view
.
showLine
)
{
if
(
node
.
level
==
0
&&
node
.
isFirstNode
&&
node
.
isLastNode
)
{
if
(
node
.
level
==
0
&&
node
.
isFirstNode
&&
node
.
isLastNode
)
{
...
@@ -1306,25 +1331,25 @@
...
@@ -1306,25 +1331,25 @@
}
}
return
view
.
makeNodeLineClassEx
(
node
)
+
lineClass
.
join
(
'
_
'
);
return
view
.
makeNodeLineClassEx
(
node
)
+
lineClass
.
join
(
'
_
'
);
},
},
makeNodeLineClassEx
:
function
(
node
)
{
makeNodeLineClassEx
:
function
(
node
)
{
return
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
LEVEL
+
node
.
level
+
"
"
+
consts
.
className
.
SWITCH
+
"
"
;
return
consts
.
className
.
BUTTON
+
"
"
+
consts
.
className
.
LEVEL
+
node
.
level
+
"
"
+
consts
.
className
.
SWITCH
+
"
"
;
},
},
makeNodeTarget
:
function
(
node
)
{
makeNodeTarget
:
function
(
node
)
{
return
(
node
.
target
||
"
_blank
"
);
return
(
node
.
target
||
"
_blank
"
);
},
},
makeNodeUrl
:
function
(
setting
,
node
)
{
makeNodeUrl
:
function
(
setting
,
node
)
{
var
urlKey
=
setting
.
data
.
key
.
url
;
var
urlKey
=
setting
.
data
.
key
.
url
;
return
node
[
urlKey
]
?
node
[
urlKey
]
:
null
;
return
node
[
urlKey
]
?
node
[
urlKey
]
:
null
;
},
},
makeUlHtml
:
function
(
setting
,
node
,
html
,
content
)
{
makeUlHtml
:
function
(
setting
,
node
,
html
,
content
)
{
html
.
push
(
"
<ul id='
"
,
node
.
tId
,
consts
.
id
.
UL
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
"
,
view
.
makeUlLineClass
(
setting
,
node
),
"
' style='display:
"
,
(
node
.
open
?
"
block
"
:
"
none
"
),
"
'>
"
);
html
.
push
(
"
<ul id='
"
,
node
.
tId
,
consts
.
id
.
UL
,
"
' class='
"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"
"
,
view
.
makeUlLineClass
(
setting
,
node
),
"
' style='display:
"
,
(
node
.
open
?
"
block
"
:
"
none
"
),
"
'>
"
);
html
.
push
(
content
);
html
.
push
(
content
);
html
.
push
(
"
</ul>
"
);
html
.
push
(
"
</ul>
"
);
},
},
makeUlLineClass
:
function
(
setting
,
node
)
{
makeUlLineClass
:
function
(
setting
,
node
)
{
return
((
setting
.
view
.
showLine
&&
!
node
.
isLastNode
)
?
consts
.
line
.
LINE
:
""
);
return
((
setting
.
view
.
showLine
&&
!
node
.
isLastNode
)
?
consts
.
line
.
LINE
:
""
);
},
},
removeChildNodes
:
function
(
setting
,
node
)
{
removeChildNodes
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
nodes
=
node
[
childKey
];
nodes
=
node
[
childKey
];
...
@@ -1348,7 +1373,7 @@
...
@@ -1348,7 +1373,7 @@
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
$$
(
node
,
consts
.
id
.
UL
,
setting
).
empty
();
}
}
},
},
scrollIntoView
:
function
(
dom
)
{
scrollIntoView
:
function
(
dom
)
{
if
(
!
dom
)
{
if
(
!
dom
)
{
return
;
return
;
}
}
...
@@ -1364,14 +1389,13 @@
...
@@ -1364,14 +1389,13 @@
}
}
function
makeArea
(
left
,
top
,
width
,
height
)
{
function
makeArea
(
left
,
top
,
width
,
height
)
{
return
{
"
left
"
:
left
,
"
top
"
:
top
,
"
width
"
:
width
,
"
height
"
:
height
return
{
"
left
"
:
left
,
"
top
"
:
top
,
"
width
"
:
width
,
"
height
"
:
height
,
"
right
"
:
left
+
width
,
"
bottom
"
:
top
+
height
,
"
right
"
:
left
+
width
,
"
bottom
"
:
top
+
height
,
"
translate
"
:
,
"
translate
"
:
function
(
x
,
y
)
{
function
(
x
,
y
)
{
return
makeArea
(
x
+
left
,
y
+
top
,
width
,
height
);
return
makeArea
(
x
+
left
,
y
+
top
,
width
,
height
);
}
}
,
"
relativeFromTo
"
:
,
"
relativeFromTo
"
:
function
(
lhs
,
rhs
)
{
function
(
lhs
,
rhs
)
{
var
newLeft
=
left
,
newTop
=
top
;
var
newLeft
=
left
,
newTop
=
top
;
lhs
=
lhs
.
offsetParent
;
lhs
=
lhs
.
offsetParent
;
rhs
=
rhs
.
offsetParent
;
rhs
=
rhs
.
offsetParent
;
...
@@ -1394,14 +1418,12 @@
...
@@ -1394,14 +1418,12 @@
var
parent
,
elem
=
this
,
area
=
makeArea
(
var
parent
,
elem
=
this
,
area
=
makeArea
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);
this
.
offsetWidth
,
this
.
offsetHeight
);
while
((
parent
=
elem
.
parentNode
)
instanceof
HTMLElement
)
{
while
(
tools
.
isElement
(
parent
=
elem
.
parentNode
)
)
{
var
clientLeft
=
parent
.
offsetLeft
+
parent
.
clientLeft
;
var
clientLeft
=
parent
.
offsetLeft
+
parent
.
clientLeft
;
var
clientTop
=
parent
.
offsetTop
+
parent
.
clientTop
;
var
clientTop
=
parent
.
offsetTop
+
parent
.
clientTop
;
// Make area relative to parent's client area.
// Make area relative to parent's client area.
area
=
area
.
area
=
area
.
relativeFromTo
(
elem
,
parent
).
translate
(
-
clientLeft
,
-
clientTop
);
relativeFromTo
(
elem
,
parent
).
translate
(
-
clientLeft
,
-
clientTop
);
parent
.
scrollLeft
=
withinBounds
(
parent
.
scrollLeft
=
withinBounds
(
parent
.
scrollLeft
,
parent
.
scrollLeft
,
...
@@ -1422,27 +1444,31 @@
...
@@ -1422,27 +1444,31 @@
}
}
dom
.
scrollIntoViewIfNeeded
();
dom
.
scrollIntoViewIfNeeded
();
},
},
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
)
{
parentNode
[
childKey
][
0
].
isFirstNode
=
true
;
parentNode
[
childKey
][
0
].
isFirstNode
=
true
;
}
}
},
},
setLastNode
:
function
(
setting
,
parentNode
)
{
setLastNode
:
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
)
{
parentNode
[
childKey
][
childLength
-
1
].
isLastNode
=
true
;
parentNode
[
childKey
][
childLength
-
1
].
isLastNode
=
true
;
}
}
},
},
removeNode
:
function
(
setting
,
node
)
{
removeNode
:
function
(
setting
,
node
)
{
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
,
childKey
=
setting
.
data
.
key
.
children
,
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
root
;
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
root
;
node
.
isFirstNode
=
false
;
node
.
isFirstNode
=
false
;
node
.
isLastNode
=
false
;
node
.
isLastNode
=
false
;
node
.
getPreNode
=
function
()
{
return
null
;};
node
.
getPreNode
=
function
()
{
node
.
getNextNode
=
function
()
{
return
null
;};
return
null
;
};
node
.
getNextNode
=
function
()
{
return
null
;
};
if
(
!
data
.
getNodeCache
(
setting
,
node
.
tId
))
{
if
(
!
data
.
getNodeCache
(
setting
,
node
.
tId
))
{
return
;
return
;
...
@@ -1461,7 +1487,7 @@
...
@@ -1461,7 +1487,7 @@
view
.
setFirstNode
(
setting
,
parentNode
);
view
.
setFirstNode
(
setting
,
parentNode
);
view
.
setLastNode
(
setting
,
parentNode
);
view
.
setLastNode
(
setting
,
parentNode
);
var
tmp_ulObj
,
tmp_switchObj
,
tmp_icoObj
,
var
tmp_ulObj
,
tmp_switchObj
,
tmp_icoObj
,
childLength
=
parentNode
[
childKey
].
length
;
childLength
=
parentNode
[
childKey
].
length
;
//repair nodes old parent
//repair nodes old parent
...
@@ -1497,7 +1523,7 @@
...
@@ -1497,7 +1523,7 @@
tmp_ulObj
.
removeClass
(
consts
.
line
.
LINE
);
tmp_ulObj
.
removeClass
(
consts
.
line
.
LINE
);
}
}
},
},
replaceIcoClass
:
function
(
node
,
obj
,
newName
)
{
replaceIcoClass
:
function
(
node
,
obj
,
newName
)
{
if
(
!
obj
||
node
.
isAjaxing
)
return
;
if
(
!
obj
||
node
.
isAjaxing
)
return
;
var
tmpName
=
obj
.
attr
(
"
class
"
);
var
tmpName
=
obj
.
attr
(
"
class
"
);
if
(
tmpName
==
undefined
)
return
;
if
(
tmpName
==
undefined
)
return
;
...
@@ -1506,12 +1532,12 @@
...
@@ -1506,12 +1532,12 @@
case
consts
.
folder
.
OPEN
:
case
consts
.
folder
.
OPEN
:
case
consts
.
folder
.
CLOSE
:
case
consts
.
folder
.
CLOSE
:
case
consts
.
folder
.
DOCU
:
case
consts
.
folder
.
DOCU
:
tmpList
[
tmpList
.
length
-
1
]
=
newName
;
tmpList
[
tmpList
.
length
-
1
]
=
newName
;
break
;
break
;
}
}
obj
.
attr
(
"
class
"
,
tmpList
.
join
(
"
_
"
));
obj
.
attr
(
"
class
"
,
tmpList
.
join
(
"
_
"
));
},
},
replaceSwitchClass
:
function
(
node
,
obj
,
newName
)
{
replaceSwitchClass
:
function
(
node
,
obj
,
newName
)
{
if
(
!
obj
)
return
;
if
(
!
obj
)
return
;
var
tmpName
=
obj
.
attr
(
"
class
"
);
var
tmpName
=
obj
.
attr
(
"
class
"
);
if
(
tmpName
==
undefined
)
return
;
if
(
tmpName
==
undefined
)
return
;
...
@@ -1537,7 +1563,7 @@
...
@@ -1537,7 +1563,7 @@
obj
.
attr
(
"
disabled
"
,
"
disabled
"
);
obj
.
attr
(
"
disabled
"
,
"
disabled
"
);
}
}
},
},
selectNode
:
function
(
setting
,
node
,
addFlag
)
{
selectNode
:
function
(
setting
,
node
,
addFlag
)
{
if
(
!
addFlag
)
{
if
(
!
addFlag
)
{
view
.
cancelPreSelectedNode
(
setting
,
null
,
node
);
view
.
cancelPreSelectedNode
(
setting
,
null
,
node
);
}
}
...
@@ -1545,20 +1571,20 @@
...
@@ -1545,20 +1571,20 @@
data
.
addSelectedNode
(
setting
,
node
);
data
.
addSelectedNode
(
setting
,
node
);
setting
.
treeObj
.
trigger
(
consts
.
event
.
SELECTED
,
[
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
SELECTED
,
[
setting
.
treeId
,
node
]);
},
},
setNodeFontCss
:
function
(
setting
,
treeNode
)
{
setNodeFontCss
:
function
(
setting
,
treeNode
)
{
var
aObj
=
$$
(
treeNode
,
consts
.
id
.
A
,
setting
),
var
aObj
=
$$
(
treeNode
,
consts
.
id
.
A
,
setting
),
fontCss
=
view
.
makeNodeFontCss
(
setting
,
treeNode
);
fontCss
=
view
.
makeNodeFontCss
(
setting
,
treeNode
);
if
(
fontCss
)
{
if
(
fontCss
)
{
aObj
.
css
(
fontCss
);
aObj
.
css
(
fontCss
);
}
}
},
},
setNodeLineIcos
:
function
(
setting
,
node
)
{
setNodeLineIcos
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
var
switchObj
=
$$
(
node
,
consts
.
id
.
SWITCH
,
setting
),
var
switchObj
=
$$
(
node
,
consts
.
id
.
SWITCH
,
setting
),
ulObj
=
$$
(
node
,
consts
.
id
.
UL
,
setting
),
ulObj
=
$$
(
node
,
consts
.
id
.
UL
,
setting
),
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
),
icoObj
=
$$
(
node
,
consts
.
id
.
ICON
,
setting
),
ulLine
=
view
.
makeUlLineClass
(
setting
,
node
);
ulLine
=
view
.
makeUlLineClass
(
setting
,
node
);
if
(
ulLine
.
length
==
0
)
{
if
(
ulLine
.
length
==
0
)
{
ulObj
.
removeClass
(
consts
.
line
.
LINE
);
ulObj
.
removeClass
(
consts
.
line
.
LINE
);
}
else
{
}
else
{
ulObj
.
addClass
(
ulLine
);
ulObj
.
addClass
(
ulLine
);
...
@@ -1573,7 +1599,7 @@
...
@@ -1573,7 +1599,7 @@
icoObj
.
attr
(
"
style
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
));
icoObj
.
attr
(
"
style
"
,
view
.
makeNodeIcoStyle
(
setting
,
node
));
icoObj
.
attr
(
"
class
"
,
view
.
makeNodeIcoClass
(
setting
,
node
));
icoObj
.
attr
(
"
class
"
,
view
.
makeNodeIcoClass
(
setting
,
node
));
},
},
setNodeName
:
function
(
setting
,
node
)
{
setNodeName
:
function
(
setting
,
node
)
{
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
var
title
=
data
.
getNodeTitle
(
setting
,
node
),
nObj
=
$$
(
node
,
consts
.
id
.
SPAN
,
setting
);
nObj
=
$$
(
node
,
consts
.
id
.
SPAN
,
setting
);
nObj
.
empty
();
nObj
.
empty
();
...
@@ -1587,11 +1613,11 @@
...
@@ -1587,11 +1613,11 @@
aObj
.
attr
(
"
title
"
,
!
title
?
""
:
title
);
aObj
.
attr
(
"
title
"
,
!
title
?
""
:
title
);
}
}
},
},
setNodeTarget
:
function
(
setting
,
node
)
{
setNodeTarget
:
function
(
setting
,
node
)
{
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
);
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
);
aObj
.
attr
(
"
target
"
,
view
.
makeNodeTarget
(
node
));
aObj
.
attr
(
"
target
"
,
view
.
makeNodeTarget
(
node
));
},
},
setNodeUrl
:
function
(
setting
,
node
)
{
setNodeUrl
:
function
(
setting
,
node
)
{
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
),
var
aObj
=
$$
(
node
,
consts
.
id
.
A
,
setting
),
url
=
view
.
makeNodeUrl
(
setting
,
node
);
url
=
view
.
makeNodeUrl
(
setting
,
node
);
if
(
url
==
null
||
url
.
length
==
0
)
{
if
(
url
==
null
||
url
.
length
==
0
)
{
...
@@ -1600,7 +1626,7 @@
...
@@ -1600,7 +1626,7 @@
aObj
.
attr
(
"
href
"
,
url
);
aObj
.
attr
(
"
href
"
,
url
);
}
}
},
},
switchNode
:
function
(
setting
,
node
)
{
switchNode
:
function
(
setting
,
node
)
{
if
(
node
.
open
||
!
tools
.
canAsync
(
setting
,
node
))
{
if
(
node
.
open
||
!
tools
.
canAsync
(
setting
,
node
))
{
view
.
expandCollapseNode
(
setting
,
node
,
!
node
.
open
);
view
.
expandCollapseNode
(
setting
,
node
,
!
node
.
open
);
}
else
if
(
setting
.
async
.
enable
)
{
}
else
if
(
setting
.
async
.
enable
)
{
...
@@ -1615,27 +1641,27 @@
...
@@ -1615,27 +1641,27 @@
};
};
// zTree defind
// zTree defind
$
.
fn
.
zTree
=
{
$
.
fn
.
zTree
=
{
consts
:
_consts
,
consts
:
_consts
,
_z
:
{
_z
:
{
tools
:
tools
,
tools
:
tools
,
view
:
view
,
view
:
view
,
event
:
event
,
event
:
event
,
data
:
data
data
:
data
},
},
getZTreeObj
:
function
(
treeId
)
{
getZTreeObj
:
function
(
treeId
)
{
var
o
=
data
.
getZTreeTools
(
treeId
);
var
o
=
data
.
getZTreeTools
(
treeId
);
return
o
?
o
:
null
;
return
o
?
o
:
null
;
},
},
destroy
:
function
(
treeId
)
{
destroy
:
function
(
treeId
)
{
if
(
!!
treeId
&&
treeId
.
length
>
0
)
{
if
(
!!
treeId
&&
treeId
.
length
>
0
)
{
view
.
destroy
(
data
.
getSetting
(
treeId
));
view
.
destroy
(
data
.
getSetting
(
treeId
));
}
else
{
}
else
{
for
(
var
s
in
settings
)
{
for
(
var
s
in
settings
)
{
view
.
destroy
(
settings
[
s
]);
view
.
destroy
(
settings
[
s
]);
}
}
}
}
},
},
init
:
function
(
obj
,
zSetting
,
zNodes
)
{
init
:
function
(
obj
,
zSetting
,
zNodes
)
{
var
setting
=
tools
.
clone
(
_setting
);
var
setting
=
tools
.
clone
(
_setting
);
$
.
extend
(
true
,
setting
,
zSetting
);
$
.
extend
(
true
,
setting
,
zSetting
);
setting
.
treeId
=
obj
.
attr
(
"
id
"
);
setting
.
treeId
=
obj
.
attr
(
"
id
"
);
...
@@ -1643,13 +1669,13 @@
...
@@ -1643,13 +1669,13 @@
setting
.
treeObj
.
empty
();
setting
.
treeObj
.
empty
();
settings
[
setting
.
treeId
]
=
setting
;
settings
[
setting
.
treeId
]
=
setting
;
//For some older browser,(e.g., ie6)
//For some older browser,(e.g., ie6)
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
{
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"
undefined
"
)
{
setting
.
view
.
expandSpeed
=
""
;
setting
.
view
.
expandSpeed
=
""
;
}
}
data
.
initRoot
(
setting
);
data
.
initRoot
(
setting
);
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
childKey
=
setting
.
data
.
key
.
children
;
childKey
=
setting
.
data
.
key
.
children
;
zNodes
=
zNodes
?
tools
.
clone
(
tools
.
isArray
(
zNodes
)
?
zNodes
:
[
zNodes
])
:
[];
zNodes
=
zNodes
?
tools
.
clone
(
tools
.
isArray
(
zNodes
)
?
zNodes
:
[
zNodes
])
:
[];
if
(
setting
.
data
.
simpleData
.
enable
)
{
if
(
setting
.
data
.
simpleData
.
enable
)
{
root
[
childKey
]
=
data
.
transformTozTreeFormat
(
setting
,
zNodes
);
root
[
childKey
]
=
data
.
transformTozTreeFormat
(
setting
,
zNodes
);
}
else
{
}
else
{
...
@@ -1663,8 +1689,8 @@
...
@@ -1663,8 +1689,8 @@
event
.
bindEvent
(
setting
);
event
.
bindEvent
(
setting
);
var
zTreeTools
=
{
var
zTreeTools
=
{
setting
:
setting
,
setting
:
setting
,
addNodes
:
function
(
parentNode
,
index
,
newNodes
,
isSilent
)
{
addNodes
:
function
(
parentNode
,
index
,
newNodes
,
isSilent
)
{
if
(
!
parentNode
)
parentNode
=
null
;
if
(
!
parentNode
)
parentNode
=
null
;
if
(
parentNode
&&
!
parentNode
.
isParent
&&
setting
.
data
.
keep
.
leaf
)
return
null
;
if
(
parentNode
&&
!
parentNode
.
isParent
&&
setting
.
data
.
keep
.
leaf
)
return
null
;
...
@@ -1679,9 +1705,10 @@
...
@@ -1679,9 +1705,10 @@
if
(
!
newNodes
)
return
null
;
if
(
!
newNodes
)
return
null
;
var
xNewNodes
=
tools
.
clone
(
tools
.
isArray
(
newNodes
)?
newNodes
:
[
newNodes
]);
var
xNewNodes
=
tools
.
clone
(
tools
.
isArray
(
newNodes
)
?
newNodes
:
[
newNodes
]);
function
addCallback
()
{
function
addCallback
()
{
view
.
addNodes
(
setting
,
parentNode
,
index
,
xNewNodes
,
(
isSilent
==
true
));
view
.
addNodes
(
setting
,
parentNode
,
index
,
xNewNodes
,
(
isSilent
==
true
));
}
}
if
(
tools
.
canAsync
(
setting
,
parentNode
))
{
if
(
tools
.
canAsync
(
setting
,
parentNode
))
{
...
@@ -1691,18 +1718,18 @@
...
@@ -1691,18 +1718,18 @@
}
}
return
xNewNodes
;
return
xNewNodes
;
},
},
cancelSelectedNode
:
function
(
node
)
{
cancelSelectedNode
:
function
(
node
)
{
view
.
cancelPreSelectedNode
(
setting
,
node
);
view
.
cancelPreSelectedNode
(
setting
,
node
);
},
},
destroy
:
function
()
{
destroy
:
function
()
{
view
.
destroy
(
setting
);
view
.
destroy
(
setting
);
},
},
expandAll
:
function
(
expandFlag
)
{
expandAll
:
function
(
expandFlag
)
{
expandFlag
=
!!
expandFlag
;
expandFlag
=
!!
expandFlag
;
view
.
expandCollapseSonNode
(
setting
,
null
,
expandFlag
,
true
);
view
.
expandCollapseSonNode
(
setting
,
null
,
expandFlag
,
true
);
return
expandFlag
;
return
expandFlag
;
},
},
expandNode
:
function
(
node
,
expandFlag
,
sonSign
,
focus
,
callbackFlag
)
{
expandNode
:
function
(
node
,
expandFlag
,
sonSign
,
focus
,
callbackFlag
)
{
if
(
!
node
||
!
node
.
isParent
)
return
null
;
if
(
!
node
||
!
node
.
isParent
)
return
null
;
if
(
expandFlag
!==
true
&&
expandFlag
!==
false
)
{
if
(
expandFlag
!==
true
&&
expandFlag
!==
false
)
{
expandFlag
=
!
node
.
open
;
expandFlag
=
!
node
.
open
;
...
@@ -1738,55 +1765,55 @@
...
@@ -1738,55 +1765,55 @@
}
}
}
}
},
},
getNodes
:
function
()
{
getNodes
:
function
()
{
return
data
.
getNodes
(
setting
);
return
data
.
getNodes
(
setting
);
},
},
getNodeByParam
:
function
(
key
,
value
,
parentNode
)
{
getNodeByParam
:
function
(
key
,
value
,
parentNode
)
{
if
(
!
key
)
return
null
;
if
(
!
key
)
return
null
;
return
data
.
getNodeByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
key
,
value
);
return
data
.
getNodeByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
key
,
value
);
},
},
getNodeByTId
:
function
(
tId
)
{
getNodeByTId
:
function
(
tId
)
{
return
data
.
getNodeCache
(
setting
,
tId
);
return
data
.
getNodeCache
(
setting
,
tId
);
},
},
getNodesByParam
:
function
(
key
,
value
,
parentNode
)
{
getNodesByParam
:
function
(
key
,
value
,
parentNode
)
{
if
(
!
key
)
return
null
;
if
(
!
key
)
return
null
;
return
data
.
getNodesByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
key
,
value
);
return
data
.
getNodesByParam
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
key
,
value
);
},
},
getNodesByParamFuzzy
:
function
(
key
,
value
,
parentNode
)
{
getNodesByParamFuzzy
:
function
(
key
,
value
,
parentNode
)
{
if
(
!
key
)
return
null
;
if
(
!
key
)
return
null
;
return
data
.
getNodesByParamFuzzy
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
key
,
value
);
return
data
.
getNodesByParamFuzzy
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
key
,
value
);
},
},
getNodesByFilter
:
function
(
filter
,
isSingle
,
parentNode
,
invokeParam
)
{
getNodesByFilter
:
function
(
filter
,
isSingle
,
parentNode
,
invokeParam
)
{
isSingle
=
!!
isSingle
;
isSingle
=
!!
isSingle
;
if
(
!
filter
||
(
typeof
filter
!=
"
function
"
))
return
(
isSingle
?
null
:
[]);
if
(
!
filter
||
(
typeof
filter
!=
"
function
"
))
return
(
isSingle
?
null
:
[]);
return
data
.
getNodesByFilter
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]:
data
.
getNodes
(
setting
),
filter
,
isSingle
,
invokeParam
);
return
data
.
getNodesByFilter
(
setting
,
parentNode
?
parentNode
[
setting
.
data
.
key
.
children
]
:
data
.
getNodes
(
setting
),
filter
,
isSingle
,
invokeParam
);
},
},
getNodeIndex
:
function
(
node
)
{
getNodeIndex
:
function
(
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
].
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
].
length
;
i
<
l
;
i
++
)
{
if
(
parentNode
[
childKey
][
i
]
==
node
)
return
i
;
if
(
parentNode
[
childKey
][
i
]
==
node
)
return
i
;
}
}
return
-
1
;
return
-
1
;
},
},
getSelectedNodes
:
function
()
{
getSelectedNodes
:
function
()
{
var
r
=
[],
list
=
data
.
getRoot
(
setting
).
curSelectedList
;
var
r
=
[],
list
=
data
.
getRoot
(
setting
).
curSelectedList
;
for
(
var
i
=
0
,
l
=
list
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
list
.
length
;
i
<
l
;
i
++
)
{
r
.
push
(
list
[
i
]);
r
.
push
(
list
[
i
]);
}
}
return
r
;
return
r
;
},
},
isSelectedNode
:
function
(
node
)
{
isSelectedNode
:
function
(
node
)
{
return
data
.
isSelectedNode
(
setting
,
node
);
return
data
.
isSelectedNode
(
setting
,
node
);
},
},
reAsyncChildNodes
:
function
(
parentNode
,
reloadType
,
isSilent
)
{
reAsyncChildNodes
:
function
(
parentNode
,
reloadType
,
isSilent
)
{
if
(
!
this
.
setting
.
async
.
enable
)
return
;
if
(
!
this
.
setting
.
async
.
enable
)
return
;
var
isRoot
=
!
parentNode
;
var
isRoot
=
!
parentNode
;
if
(
isRoot
)
{
if
(
isRoot
)
{
parentNode
=
data
.
getRoot
(
setting
);
parentNode
=
data
.
getRoot
(
setting
);
}
}
if
(
reloadType
==
"
refresh
"
)
{
if
(
reloadType
==
"
refresh
"
)
{
var
childKey
=
this
.
setting
.
data
.
key
.
children
;
var
childKey
=
this
.
setting
.
data
.
key
.
children
;
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
]
?
parentNode
[
childKey
].
length
:
0
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
parentNode
[
childKey
]
?
parentNode
[
childKey
].
length
:
0
;
i
<
l
;
i
++
)
{
data
.
removeNodeCache
(
setting
,
parentNode
[
childKey
][
i
]);
data
.
removeNodeCache
(
setting
,
parentNode
[
childKey
][
i
]);
...
@@ -1800,9 +1827,9 @@
...
@@ -1800,9 +1827,9 @@
ulObj
.
empty
();
ulObj
.
empty
();
}
}
}
}
view
.
asyncNode
(
this
.
setting
,
isRoot
?
null
:
parentNode
,
!!
isSilent
);
view
.
asyncNode
(
this
.
setting
,
isRoot
?
null
:
parentNode
,
!!
isSilent
);
},
},
refresh
:
function
()
{
refresh
:
function
()
{
this
.
setting
.
treeObj
.
empty
();
this
.
setting
.
treeObj
.
empty
();
var
root
=
data
.
getRoot
(
setting
),
var
root
=
data
.
getRoot
(
setting
),
nodes
=
root
[
setting
.
data
.
key
.
children
]
nodes
=
root
[
setting
.
data
.
key
.
children
]
...
@@ -1811,14 +1838,14 @@
...
@@ -1811,14 +1838,14 @@
data
.
initCache
(
setting
);
data
.
initCache
(
setting
);
view
.
createNodes
(
setting
,
0
,
root
[
setting
.
data
.
key
.
children
],
null
,
-
1
);
view
.
createNodes
(
setting
,
0
,
root
[
setting
.
data
.
key
.
children
],
null
,
-
1
);
},
},
removeChildNodes
:
function
(
node
)
{
removeChildNodes
:
function
(
node
)
{
if
(
!
node
)
return
null
;
if
(
!
node
)
return
null
;
var
childKey
=
setting
.
data
.
key
.
children
,
var
childKey
=
setting
.
data
.
key
.
children
,
nodes
=
node
[
childKey
];
nodes
=
node
[
childKey
];
view
.
removeChildNodes
(
setting
,
node
);
view
.
removeChildNodes
(
setting
,
node
);
return
nodes
?
nodes
:
null
;
return
nodes
?
nodes
:
null
;
},
},
removeNode
:
function
(
node
,
callbackFlag
)
{
removeNode
:
function
(
node
,
callbackFlag
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
callbackFlag
=
!!
callbackFlag
;
callbackFlag
=
!!
callbackFlag
;
if
(
callbackFlag
&&
tools
.
apply
(
setting
.
callback
.
beforeRemove
,
[
setting
.
treeId
,
node
],
true
)
==
false
)
return
;
if
(
callbackFlag
&&
tools
.
apply
(
setting
.
callback
.
beforeRemove
,
[
setting
.
treeId
,
node
],
true
)
==
false
)
return
;
...
@@ -1827,14 +1854,17 @@
...
@@ -1827,14 +1854,17 @@
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
REMOVE
,
[
setting
.
treeId
,
node
]);
}
}
},
},
selectNode
:
function
(
node
,
addFlag
,
isSilent
)
{
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
;
if
(
node
.
parentTId
)
{
if
(
node
.
parentTId
)
{
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
true
,
false
,
showNodeFocus
);
view
.
expandCollapseParentNode
(
setting
,
node
.
getParentNode
(),
true
,
false
,
showNodeFocus
);
}
else
if
(
!
isSilent
)
{
}
else
if
(
!
isSilent
)
{
try
{
$$
(
node
,
setting
).
focus
().
blur
();}
catch
(
e
){}
try
{
$$
(
node
,
setting
).
focus
().
blur
();
}
catch
(
e
)
{
}
}
}
view
.
selectNode
(
setting
,
node
,
addFlag
);
view
.
selectNode
(
setting
,
node
,
addFlag
);
}
}
...
@@ -1847,13 +1877,13 @@
...
@@ -1847,13 +1877,13 @@
view
.
scrollIntoView
(
a
);
view
.
scrollIntoView
(
a
);
}
}
},
},
transformTozTreeNodes
:
function
(
simpleNodes
)
{
transformTozTreeNodes
:
function
(
simpleNodes
)
{
return
data
.
transformTozTreeFormat
(
setting
,
simpleNodes
);
return
data
.
transformTozTreeFormat
(
setting
,
simpleNodes
);
},
},
transformToArray
:
function
(
nodes
)
{
transformToArray
:
function
(
nodes
)
{
return
data
.
transformToArrayFormat
(
setting
,
nodes
);
return
data
.
transformToArrayFormat
(
setting
,
nodes
);
},
},
updateNode
:
function
(
node
,
checkTypeFlag
)
{
updateNode
:
function
(
node
,
checkTypeFlag
)
{
if
(
!
node
)
return
;
if
(
!
node
)
return
;
var
nObj
=
$$
(
node
,
setting
);
var
nObj
=
$$
(
node
,
setting
);
if
(
nObj
.
get
(
0
)
&&
tools
.
uCanDo
(
setting
))
{
if
(
nObj
.
get
(
0
)
&&
tools
.
uCanDo
(
setting
))
{
...
...
js/jquery.ztree.core.min.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree core v3.5.2
7
* JQuery zTree core v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
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
"
,
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
}},
x
=
[
function
(
b
){
var
a
=
b
.
treeObj
,
c
=
f
.
event
;
a
.
bind
(
c
.
NODECREATED
,
function
(
a
,
c
,
g
){
j
.
apply
(
b
.
callback
.
onNodeCreated
,
...
@@ -35,40 +35,40 @@ e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node]
...
@@ -35,40 +35,40 @@ e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node]
(
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
};
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
);
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
};
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
();
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
"
?
j
.
clone
(
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
(
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
"
?
j
.
clone
(
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]
"
},
isElement
:
function
(
b
){
return
typeof
HTMLElement
===
"
object
"
?
b
instanceof
HTMLElement
:
b
&&
typeof
b
===
"
object
"
&&
b
!==
null
&&
b
.
nodeType
===
1
&&
typeof
b
.
nodeName
===
"
string
"
},
$
:
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
)
!==
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
),
l
=
k
(
a
,
f
.
id
.
ICON
,
b
),
p
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
a
,
l
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
p
.
css
({
display
:
"
none
"
});
h
.
addNodesData
(
b
,
a
,
c
,
d
);
i
.
createNodes
(
b
,
a
.
level
+
1
,
d
,
a
,
c
);
e
||
i
.
expandCollapseParentNode
(
b
,
a
,
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
),
l
=
k
(
a
,
f
.
id
.
ICON
,
b
),
p
=
k
(
a
,
f
.
id
.
UL
,
b
);
if
(
!
a
.
open
)
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
CLOSE
)
,
!
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
=
[],
n
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
n
],
m
,
Q
;
if
(
!
k
||
e
>=
k
.
length
-
c
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
R
=
c
.
length
;
s
<
R
;
s
++
){
var
o
=
c
[
s
];
g
&&
(
m
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
o
,
d
,
m
,
Q
,
f
),
h
.
addNodeCache
(
b
,
o
));
m
=
[];
o
[
n
]
&&
o
[
n
].
length
>
0
&&
(
m
=
i
.
appendNodes
(
b
,
a
+
1
,
o
[
n
],
o
,
-
1
,
g
,
f
&&
o
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
o
),
i
.
makeDOMNodeLine
(
j
,
b
,
o
),
h
.
getBeforeA
(
b
,
i
.
replaceIcoClass
(
a
,
l
,
f
.
folder
.
CLOSE
),
a
.
open
=!
1
,
p
.
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
=
[],
n
=
b
.
data
.
key
.
children
,
k
=
(
d
?
d
:
h
.
getRoot
(
b
))[
n
],
m
,
Q
;
if
(
!
k
||
e
>=
k
.
length
-
c
.
length
)
e
=-
1
;
for
(
var
s
=
0
,
R
=
c
.
length
;
s
<
R
;
s
++
){
var
o
=
c
[
s
];
g
&&
(
m
=
(
e
===
0
||
k
.
length
==
c
.
length
)
&&
s
==
0
,
Q
=
e
<
0
&&
s
==
c
.
length
-
1
,
h
.
initNode
(
b
,
a
,
o
,
d
,
o
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
o
),
h
.
getInnerBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
o
),
h
.
getInnerAfterA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
o
),
h
.
getAfterA
(
b
,
o
,
j
),
o
.
isParent
&&
o
.
open
&&
i
.
makeUlHtml
(
b
,
o
,
j
,
m
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
o
),
h
.
addCreatedNode
(
b
,
o
))}
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
);
m
,
Q
,
f
),
h
.
addNodeCache
(
b
,
o
));
m
=
[];
o
[
n
]
&&
o
[
n
].
length
>
0
&&
(
m
=
i
.
appendNodes
(
b
,
a
+
1
,
o
[
n
],
o
,
-
1
,
g
,
f
&&
o
.
open
));
f
&&
(
i
.
makeDOMNodeMainBefore
(
j
,
b
,
o
),
i
.
makeDOMNodeLine
(
j
,
b
,
o
),
h
.
getBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameBefore
(
j
,
b
,
o
),
h
.
getInnerBeforeA
(
b
,
o
,
j
),
i
.
makeDOMNodeIcon
(
j
,
b
,
o
),
h
.
getInnerAfterA
(
b
,
o
,
j
),
i
.
makeDOMNodeNameAfter
(
j
,
b
,
o
),
h
.
getAfterA
(
b
,
o
,
j
),
o
.
isParent
&&
o
.
open
&&
i
.
makeUlHtml
(
b
,
o
,
j
,
m
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
j
,
b
,
o
),
h
.
addCreatedNode
(
b
,
o
))}
return
j
},
appendParentULDom
:
function
(
b
,
a
){
var
c
=
[],
d
=
k
(
a
,
b
);
!
d
.
get
(
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
l
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
p
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
p
;
p
.
length
>
1
&&
(
n
=
p
[
1
],
p
=
p
[
0
]);
l
[
n
]
=
a
[
p
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
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
});
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
l
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
m
in
b
.
async
.
otherParam
)
l
[
m
]
=
b
.
async
.
otherParam
[
m
];
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
:
b
.
async
.
contentType
.
indexOf
(
"
application/json
"
)
>-
1
?
JSON
.
stringify
(
l
):
l
,
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
(
"
(
"
+
var
l
=
{};
for
(
e
=
0
,
g
=
b
.
async
.
autoParam
.
length
;
a
&&
e
<
g
;
e
++
){
var
p
=
b
.
async
.
autoParam
[
e
].
split
(
"
=
"
),
n
=
p
;
p
.
length
>
1
&&
(
n
=
p
[
1
],
p
=
p
[
0
]);
l
[
n
]
=
a
[
p
]}
if
(
j
.
isArray
(
b
.
async
.
otherParam
))
for
(
e
=
0
,
g
=
b
.
async
.
otherParam
.
length
;
e
<
g
;
e
+=
2
)
l
[
b
.
async
.
otherParam
[
e
]]
=
b
.
async
.
otherParam
[
e
+
1
];
else
for
(
var
m
in
b
.
async
.
otherParam
)
l
[
m
]
=
b
.
async
.
otherParam
[
m
];
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
:
b
.
async
.
contentType
.
indexOf
(
"
application/json
"
)
>
e
+
"
)
"
):
e
}
catch
(
l
){
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
,
-
1
?
JSON
.
stringify
(
l
):
l
,
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
(
l
){
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
,
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
);
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
();
a
,
c
,
d
,
e
){
if
(
c
&&
c
.
length
!=
0
){
var
g
=
h
.
getRoot
(
b
),
l
=
b
.
data
.
key
.
children
,
l
=!
d
||
d
.
open
||!!
k
(
d
[
l
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
l
),
j
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
j
=
d
)):
j
=
b
.
treeObj
;
j
&&
(
e
>=
0
&&
(
n
=
j
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
j
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
h
.
initRoot
(
b
),
m
.
unbindTree
(
b
),
m
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
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
),
l
=
b
.
data
.
key
.
children
,
l
=!
d
||
d
.
open
||!!
k
(
d
[
l
][
0
],
b
).
get
(
0
);
g
.
createdNodes
=
[];
var
a
=
i
.
appendNodes
(
b
,
a
,
c
,
d
,
e
,
!
0
,
l
),
j
,
n
;
d
?(
d
=
k
(
d
,
f
.
id
.
UL
,
b
),
d
.
get
(
0
)
&&
(
j
=
d
)):
j
=
b
.
treeObj
;
j
&&
(
e
>=
0
&&
(
n
=
j
.
children
()[
e
]),
e
>=
0
&&
n
?
q
(
n
).
before
(
a
.
join
(
""
)):
j
.
append
(
a
.
join
(
""
)));
i
.
createNodeCallback
(
b
)}},
destroy
:
function
(
b
){
b
&&
(
h
.
initCache
(
b
),
l
=
b
.
data
.
key
.
children
,
p
;
if
(
a
){
if
(
g
.
expandTriggerFlag
)
p
=
e
,
e
=
function
(){
p
&&
p
();
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
[
l
]
&&
a
[
l
].
length
>
0
&&!
k
(
a
[
l
][
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
"
,
h
.
initRoot
(
b
),
m
.
unbindTree
(
b
),
m
.
unbindEvent
(
b
),
b
.
treeObj
.
empty
(),
delete
r
[
b
.
treeId
])},
expandCollapseNode
:
function
(
b
,
a
,
c
,
d
,
e
){
var
g
=
h
.
getRoot
(
b
),
l
=
b
.
data
.
key
.
children
,
p
;
if
(
a
){
if
(
g
.
expandTriggerFlag
)
p
=
e
,
e
=
function
(){
p
&&
p
();
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
[
l
]
&&
a
[
l
].
length
>
0
&&!
k
(
a
[
l
][
0
],
b
).
get
(
0
)))
i
.
appendParentULDom
(
b
,
a
),
i
.
createNodeCallback
(
b
);
if
(
a
.
open
==
c
)
j
.
apply
(
e
,
i
.
makeNodeIcoStyle
(
b
,
a
)),
a
.
open
?(
i
.
replaceSwitchClass
(
a
,
g
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
a
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
l
]
&&
a
[
l
].
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
[
l
]
&&
a
[
l
].
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
e
,[])):
c
.
slideUp
(
b
.
view
.
expandSpeed
,
e
))):
j
.
apply
(
e
,[])}}
else
j
.
apply
(
e
,[])},
expandCollapseParentNode
:
function
(
b
,
[]);
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
,
n
,
f
.
folder
.
OPEN
),
d
==!
1
||
b
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
e
,[])):
a
[
l
]
&&
a
[
l
].
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
[
l
]
&&
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
,
m
=
g
.
length
;
k
<
m
;
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
[
l
].
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
,
m
=
g
.
length
;
k
<
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
,
m
;
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='
"
,
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
),
l
=
[],
k
;
for
(
k
in
g
)
l
.
push
(
k
,
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>
"
)}
,
"
:
"
,
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='
"
,
l
.
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
"
?
makeDOMNodeNameBefore
:
function
(
b
,
a
,
c
){
var
d
=
h
.
getNodeTitle
(
a
,
c
),
e
=
i
.
makeNodeUrl
(
a
,
c
),
g
=
i
.
makeNodeFontCss
(
a
,
c
),
l
=
[],
k
;
for
(
k
in
g
)
l
.
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='
"
,
l
.
join
(
""
),
"
'
"
);
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
c
],
a
.
view
.
showTitle
)
&&
d
&&
b
.
push
(
"
title='
"
,
d
.
replace
(
/'/g
,
"
'
"
).
replace
(
/</g
,
"
<
"
).
replace
(
/>/g
,
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
(
""
)},
"
>
"
),
"
'
"
);
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
:
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
||
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
);
"
_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
);
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
,
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
())}}},
scrollIntoView
:
function
(
b
){
if
(
b
){
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
function
(
a
){
function
b
(
a
,
d
,
e
,
f
){
return
{
left
:
a
,
top
:
d
,
width
:
e
,
height
:
f
,
right
:
a
+
e
,
bottom
:
d
+
f
,
translate
:
function
(
g
,
h
){
return
b
(
g
+
a
,
h
+
d
,
e
,
f
)},
relativeFromTo
:
function
(
h
,
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
())}}},
scrollIntoView
:
function
(
b
){
if
(
b
){
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
i
){
var
j
=
a
,
l
=
d
,
h
=
h
.
offsetParent
,
i
=
i
.
offsetParent
;
if
(
h
===
i
)
return
g
;
for
(;
h
;
h
=
h
.
offsetParent
)
j
+=
h
.
offsetLeft
+
h
.
clientLeft
,
l
+=
h
.
offsetTop
+
h
.
clientTop
;
for
(;
i
;
i
=
i
.
offsetParent
)
j
-=
i
.
offsetLeft
+
i
.
clientLeft
,
l
-=
i
.
offsetTop
+
i
.
clientTop
;
return
b
(
j
,
l
,
e
,
f
)}}}
for
(
var
d
,
e
=
this
,
g
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);(
d
=
e
.
parentNode
)
instanceof
HTMLElement
;){
var
f
=
d
.
offsetLeft
+
d
.
clientLeft
,
h
=
d
.
offsetTop
+
d
.
clientTop
,
g
=
g
.
relativeFromTo
(
e
,
d
).
translate
(
-
f
,
-
h
);
d
.
scrollLeft
=!
1
===
a
||
g
.
left
<
=
function
(
a
){
function
b
(
a
,
d
,
e
,
f
){
return
{
left
:
a
,
top
:
d
,
width
:
e
,
height
:
f
,
right
:
a
+
e
,
bottom
:
d
+
f
,
translate
:
function
(
g
,
h
){
return
b
(
g
+
a
,
h
+
d
,
e
,
f
)},
relativeFromTo
:
function
(
h
,
i
){
var
j
=
a
,
l
=
d
,
h
=
h
.
offsetParent
,
i
=
i
.
offsetParent
;
if
(
h
===
i
)
return
g
;
for
(;
h
;
h
=
h
.
offsetParent
)
j
+=
h
.
offsetLeft
+
h
.
clientLeft
,
l
+=
h
.
offsetTop
+
h
.
clientTop
;
for
(;
i
;
i
=
i
.
offsetParent
)
j
-=
i
.
offsetLeft
+
i
.
clientLeft
,
l
-=
i
.
offsetTop
+
i
.
clientTop
;
return
b
(
j
,
l
,
e
,
f
)}}}
for
(
var
d
,
e
=
this
,
g
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);
j
.
isElement
(
d
=
d
.
scrollLeft
+
d
.
clientWidth
&&
d
.
scrollLeft
<=
g
.
right
-
d
.
clientWidth
+
d
.
clientWidth
?
Math
.
min
(
g
.
left
,
Math
.
max
(
g
.
right
-
d
.
clientWidth
,
d
.
scrollLeft
)):(
g
.
right
-
d
.
clientWidth
+
g
.
left
)
/
2
;
d
.
scrollTop
=!
1
===
a
||
g
.
top
<=
d
.
scrollTop
+
d
.
clientHeight
&&
d
.
scrollTop
<=
g
.
bottom
-
d
.
clientHeight
+
d
.
clientHeight
?
Math
.
min
(
g
.
top
,
Math
.
max
(
g
.
bottom
-
d
.
clientHeight
,
d
.
scrollTop
)):(
g
.
bottom
-
d
.
clientHeight
+
g
.
top
)
/
2
;
g
=
g
.
translate
(
f
-
d
.
scrollLeft
,
h
-
d
.
scrollTop
);
e
=
d
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
function
(
b
,
a
){
var
c
=
b
.
data
.
key
.
children
;
e
.
parentNode
);){
var
f
=
d
.
offsetLeft
+
d
.
clientLeft
,
h
=
d
.
offsetTop
+
d
.
clientTop
,
g
=
g
.
relativeFromTo
(
e
,
d
).
translate
(
-
f
,
-
h
);
d
.
scrollLeft
=!
1
===
a
||
g
.
left
<=
d
.
scrollLeft
+
d
.
clientWidth
&&
d
.
scrollLeft
<=
g
.
right
-
d
.
clientWidth
+
d
.
clientWidth
?
Math
.
min
(
g
.
left
,
Math
.
max
(
g
.
right
-
d
.
clientWidth
,
d
.
scrollLeft
)):(
g
.
right
-
d
.
clientWidth
+
g
.
left
)
/
2
;
d
.
scrollTop
=!
1
===
a
||
g
.
top
<=
d
.
scrollTop
+
d
.
clientHeight
&&
d
.
scrollTop
<=
g
.
bottom
-
d
.
clientHeight
+
d
.
clientHeight
?
Math
.
min
(
g
.
top
,
Math
.
max
(
g
.
bottom
-
d
.
clientHeight
,
d
.
scrollTop
)):(
g
.
bottom
-
d
.
clientHeight
+
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
():
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
,
g
.
top
)
/
2
;
g
=
g
.
translate
(
f
-
d
.
scrollLeft
,
h
-
d
.
scrollTop
);
e
=
d
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
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
():
c
;
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
a
.
getPreNode
=
function
(){
return
null
};
a
.
getNextNode
=
function
(){
return
null
};
if
(
h
.
getNodeCache
(
b
,
1
);
break
}
i
.
setFirstNode
(
b
,
e
);
i
.
setLastNode
(
b
,
e
);
var
p
,
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
),
p
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
p
,
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
);
p
=
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
)
,
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
p
,
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
),
p
=
k
(
e
,
f
.
id
.
ICON
,
b
),
i
.
replaceSwitchClass
(
e
,
j
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
e
,
p
,
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
,
i
.
replaceSwitchClass
(
n
,
j
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
n
,
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
]
=
b
);
p
=
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
,
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
,
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
,
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
=
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
,
f
.
id
.
A
,
b
).
addClass
(
f
.
node
.
CURSELECTED
);
h
.
addSelectedNode
(
b
,
a
);
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
"
);
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
.
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
"
);
e
.
attr
(
"
style
"
,
i
.
makeNodeIcoStyle
(
b
,
a
));
e
.
attr
(
"
class
"
,
i
.
makeNodeIcoClass
(
b
,
[
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
"
):
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
"
,
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
"
):
c
.
attr
(
"
href
"
,
d
)},
switchNode
:
function
(
b
,
a
){
a
.
open
||!
j
.
canAsync
(
b
,
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
"
,
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
"
,
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
"
,
REMOVE
:
"
ztree_remove
"
,
SELECTED
:
"
ztree_selected
"
,
UNSELECTED
:
"
ztree_unselected
"
}
,
CLOSE
:
"
close
"
,
DOCU
:
"
docu
"
},
node
:{
CURSELECTED
:
"
curSelectedNode
"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
m
,
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
])},
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
;
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
:
m
,
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
])},
init
:
function
(
b
,
a
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
a
);
d
.
treeId
=
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
b
[
a
]
=
d
.
data
.
simpleData
.
enable
?
h
.
transformTozTreeFormat
(
d
,
c
):
c
;
h
.
initCache
(
d
);
m
.
unbindTree
(
d
);
m
.
bindTree
(
d
);
m
.
unbindEvent
(
d
);
m
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
m
,
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
m
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
m
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
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
);
m
.
unbindTree
(
d
);
m
.
bindTree
(
d
);
m
.
unbindEvent
(
d
);
m
.
bindEvent
(
d
);
c
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
h
(){
i
.
addNodes
(
d
,
a
,
b
,
m
,
f
==!
0
)}
a
||
(
a
=
null
);
if
(
a
&&!
a
.
isParent
&&
d
.
data
.
keep
.
leaf
)
return
null
;
var
k
=
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
,
n
){
function
m
(){
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
===
parseInt
(
b
,
10
);
isNaN
(
k
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
k
;
if
(
!
c
)
return
null
;
var
m
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
f
,
h
):
h
();
return
m
},
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
,
n
){
function
m
(){
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
,
a
.
open
&&!
c
)
return
null
;
h
.
getRoot
(
d
).
expandTriggerFlag
=
n
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
m
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
m
());
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
,
[
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
,
a
,
b
,
!
0
,
m
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
m
());
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
)
,
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
"
?
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
<
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
"
?
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
,
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
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
n
=
0
,
m
=
a
[
b
]?
a
[
b
].
length
:
0
;
n
<
m
;
n
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
n
]);
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
]
;
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
;
j
&&
(
a
=
h
.
getRoot
(
d
));
if
(
b
==
"
refresh
"
){
for
(
var
b
=
this
.
setting
.
data
.
key
.
children
,
n
=
0
,
m
=
a
[
b
]?
a
[
b
].
length
:
0
;
n
<
m
;
n
++
)
h
.
removeNodeCache
(
d
,
a
[
b
][
n
]);
h
.
removeSelectedNode
(
d
)
;
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
;
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
=
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
;
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
)
=
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
if
(
!
c
)
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
]
&&
!
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
,
a
.
getParentNode
(),
!
0
,
!
1
,
f
);
else
if
(
!
c
)
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
&&
b
[
a
].
length
>
0
?
i
.
createNodes
(
d
,
0
,
b
[
a
],
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
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
);
return
c
}};
var
O
=
q
.
fn
.
zTree
,
k
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
js/jquery.ztree.excheck.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree excheck v3.5.2
7
* JQuery zTree excheck v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of excheck
//default consts of excheck
...
...
js/jquery.ztree.excheck.min.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree excheck v3.5.2
7
* JQuery zTree excheck v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree exedit v3.5.2
7
* JQuery zTree exedit v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
){
(
function
(
$
){
//default consts of exedit
//default consts of exedit
...
...
js/jquery.ztree.exedit.min.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree exedit v3.5.2
7
* JQuery zTree exedit v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
=
...
...
js/jquery.ztree.exhide.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree exHideNodes v3.5.2
7
* JQuery zTree exHideNodes v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
function
(
$
){
(
function
(
$
){
//default init node of exLib
//default init node of exLib
...
...
js/jquery.ztree.exhide.min.js
浏览文件 @
4856c8ad
/*
/*
* JQuery zTree exHideNodes v3.5.2
7
* JQuery zTree exHideNodes v3.5.2
8
* http://treejs.cn/
* http://treejs.cn/
*
*
* 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: 201
6-12-27
* Date: 201
7-01-20
*/
*/
(
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
浏览文件 @
4856c8ad
...
@@ -13,6 +13,9 @@
...
@@ -13,6 +13,9 @@
</font>
</font>
*2017.01.20* v3.5.28
* [修改] scrollIntoViewIfNeeded 方法对 IE8 的兼容
*2016.12.27* v3.5.27
*2016.12.27* v3.5.27
* [修改] addNodes 方法设置 index 参数后,导致 treeNode.isLastNode 错误
* [修改] addNodes 方法设置 index 参数后,导致 treeNode.isLastNode 错误
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录