Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-shiro
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
xzxt-shiro
Commits
297b19f6
Commit
297b19f6
authored
Oct 17, 2018
by
liuyongshuai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
改版ztree;增加ztree查询功能;修改内蒙特殊单位问题;修复浏览器记录用户历史输入的bug;调整用户修改功能,跳转新的页面
parent
5a7cf2e2
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1363 additions
and
704 deletions
+1363
-704
src/main/java/com/xzxtshiro/mapper/SysUserMapper.xml
+5
-9
src/main/webapp/WEB-INF/jsp/admin/permission/add.jsp
+12
-2
src/main/webapp/WEB-INF/jsp/admin/permission/inc.jsp
+1
-0
src/main/webapp/WEB-INF/jsp/admin/permission/update.jsp
+14
-4
src/main/webapp/WEB-INF/jsp/admin/role/add.jsp
+12
-2
src/main/webapp/WEB-INF/jsp/admin/role/inc.jsp
+1
-0
src/main/webapp/WEB-INF/jsp/admin/role/update.jsp
+14
-4
src/main/webapp/WEB-INF/jsp/admin/user/add.jsp
+12
-2
src/main/webapp/WEB-INF/jsp/admin/user/inc.jsp
+4
-2
src/main/webapp/WEB-INF/jsp/admin/user/list.jsp
+14
-3
src/main/webapp/WEB-INF/jsp/admin/user/update.jsp
+22
-4
src/main/webapp/resources/common/common.js
+138
-1
src/main/webapp/resources/common/css/common.css
+1
-3
src/main/webapp/resources/h-ui/css/new-wrap.css
+6
-0
src/main/webapp/resources/ztree/metroStyle/metroStyle.css
+14
-3
src/main/webapp/resources/ztree/ztree/jquery.ztree.core.js
+0
-0
src/main/webapp/resources/ztree/ztree/jquery.ztree.core.min.js
+65
-66
src/main/webapp/resources/ztree/ztree/jquery.ztree.excheck.js
+602
-597
src/main/webapp/resources/ztree/ztree/jquery.ztree.excheck.min.js
+2
-2
src/main/webapp/resources/ztree/ztree/jquery.ztree.exhide.js
+401
-0
src/main/webapp/resources/ztree/ztree/jquery.ztree.exhide.min.js
+23
-0
No files found.
src/main/java/com/xzxtshiro/mapper/SysUserMapper.xml
View file @
297b19f6
...
@@ -528,14 +528,13 @@
...
@@ -528,14 +528,13 @@
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
on t.id=tt.user_id
on t.id=tt.user_id
where scbz='0'
where scbz='0'
<if
test=
"countycode !=null"
>
and
UNITCODE like '%'||#{countycode}||'%'
</if>
<if
test=
"countycode !=null"
>
and
REGEXP_LIKE (UNITCODE, '^'||#{countycode})
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"unitcode !=null"
>
and UNITCODE like '%'||#{unitcode}||'%'
</if>
<if
test=
"sex !=null"
>
and sex = #sex#
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
) t where ROWNUM
<![CDATA[<=]]>
) t where ROWNUM
<![CDATA[<=]]>
${limit*page}
${limit*page}
...
@@ -551,14 +550,13 @@
...
@@ -551,14 +550,13 @@
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
on t.id=tt.user_id
on t.id=tt.user_id
where scbz='0'
where scbz='0'
<if
test=
"countycode !=null"
>
and
UNITCODE like '%'||#{countycode}||'%'
</if>
<if
test=
"countycode !=null"
>
and
REGEXP_LIKE (UNITCODE, '^'||#{countycode})
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"sex !=null"
>
and sex = #sex#
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
</select>
</select>
...
@@ -576,14 +574,13 @@
...
@@ -576,14 +574,13 @@
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
on t.id=tt.user_id
on t.id=tt.user_id
where scbz='0'
where scbz='0'
<if
test=
"countycode !=null"
>
and
UNITCODE like '%'||#{countycode}||'%'
</if>
<if
test=
"countycode !=null"
>
and
REGEXP_LIKE (UNITCODE, '^'||#{countycode})
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"sex !=null"
>
and sex = #sex#
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
) t where ROWNUM
<![CDATA[<=]]>
) t where ROWNUM
<![CDATA[<=]]>
${limit*page}
${limit*page}
...
@@ -599,14 +596,13 @@
...
@@ -599,14 +596,13 @@
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
from sys_role r join sys_user_role u on r.id=u.role_id where u.scbz='0' and r.scbz='0' GROUP BY u.user_id) tt
on t.id=tt.user_id
on t.id=tt.user_id
where scbz='0'
where scbz='0'
<if
test=
"countycode !=null"
>
and
UNITCODE like '%'||#{countycode}||'%'
</if>
<if
test=
"countycode !=null"
>
and
REGEXP_LIKE (UNITCODE, '^'||#{countycode})
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"roleName !=null"
>
and ROLENAME like '%'||#{roleName}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"username !=null"
>
and USERNAME like '%'||#{username}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"trueName !=null"
>
and true_name like '%'||#{trueName}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"identitycard !=null"
>
and IDENTITYCARD like '%'||#{identitycard}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"policemanid !=null"
>
and policemanid like '%'||#{policemanid}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"unitcode !=null"
>
and unitcode like '%'||#{unitcode}||'%'
</if>
<if
test=
"sex !=null"
>
and sex = #sex#
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
<if
test=
"openFlag !=null"
>
and OPEN_FLAG =#{openFlag,jdbcType=VARCHAR}
</if>
</select>
</select>
<!--批量添加用户角色信息-->
<!--批量添加用户角色信息-->
...
...
src/main/webapp/WEB-INF/jsp/admin/permission/add.jsp
View file @
297b19f6
...
@@ -122,9 +122,14 @@
...
@@ -122,9 +122,14 @@
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"pidName"
id=
"pidName"
<input
type=
"text"
name=
"pidName"
id=
"pidName"
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('mytree');"
>
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('mytree');"
>
<input
type=
"text"
id=
"pid"
Name=
"pid"
style=
"display: none;"
>
<input
type=
"text"
id=
"pid"
Name=
"pid"
autocomplete=
"off"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('mytree');"
style=
""
>
选择父级
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('mytree');"
style=
""
>
选择父级
</span>
--%>
<div
id=
"mytree"
style=
"display: none;"
>
<div
id=
"mytree"
style=
"display: none;"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"tree"
class=
"ztree"
></ul>
<ul
id=
"tree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -134,9 +139,14 @@
...
@@ -134,9 +139,14 @@
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"roleName"
id=
"roleName"
<input
type=
"text"
name=
"roleName"
id=
"roleName"
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"roleId"
Name=
"roleId"
style=
"display: none;"
>
<input
type=
"text"
id=
"roleId"
autocomplete=
"off"
Name=
"roleId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
style=
""
>
选择角色
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
style=
""
>
选择角色
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
...
src/main/webapp/WEB-INF/jsp/admin/permission/inc.jsp
View file @
297b19f6
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<script src="${pageContext.request.contextPath}/resources/jquery-3.1.0.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/jquery-3.1.0.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.exhide.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<style>
<style>
body {
body {
...
...
src/main/webapp/WEB-INF/jsp/admin/permission/update.jsp
View file @
297b19f6
...
@@ -131,10 +131,15 @@
...
@@ -131,10 +131,15 @@
<label
class=
"layui-form-label"
>
父级权限
</label>
<label
class=
"layui-form-label"
>
父级权限
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"pidName"
id=
"pidName"
<input
type=
"text"
name=
"pidName"
id=
"pidName"
class=
"layui-input code-icon"
onclick=
"checkTree('mytree');"
>
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('mytree');"
>
<input
type=
"text"
id=
"pid"
Name=
"pid"
style=
"display: none;"
>
<input
type=
"text"
id=
"pid"
autocomplete=
"off"
Name=
"pid"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('mytree');"
style=
""
>
选择父级
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('mytree');"
style=
""
>
选择父级
</span>
--%>
<div
id=
"mytree"
style=
"display: none"
>
<div
id=
"mytree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"tree"
class=
"ztree"
></ul>
<ul
id=
"tree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -143,10 +148,15 @@
...
@@ -143,10 +148,15 @@
<label
class=
"layui-form-label"
>
关联角色
</label>
<label
class=
"layui-form-label"
>
关联角色
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"roleName"
id=
"roleName"
<input
type=
"text"
name=
"roleName"
id=
"roleName"
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"roleId"
Name=
"roleId"
style=
"display: none;"
>
<input
type=
"text"
id=
"roleId"
autocomplete=
"off"
Name=
"roleId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
style=
""
>
选择角色
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
style=
""
>
选择角色
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
...
src/main/webapp/WEB-INF/jsp/admin/role/add.jsp
View file @
297b19f6
...
@@ -75,9 +75,14 @@
...
@@ -75,9 +75,14 @@
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"pidName"
id=
"pidName"
<input
type=
"text"
name=
"pidName"
id=
"pidName"
class=
"layui-input code-icon"
autocomplete=
"off"
lay-verify=
"required"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
autocomplete=
"off"
lay-verify=
"required"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"pid"
Name=
"pid"
style=
"display: none;"
>
<input
type=
"text"
id=
"pid"
autocomplete=
"off"
Name=
"pid"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择父级
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择父级
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -87,9 +92,14 @@
...
@@ -87,9 +92,14 @@
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"permissionName"
id=
"permissionName"
autocomplete=
"off"
lay-verify=
"required"
<input
type=
"text"
name=
"permissionName"
id=
"permissionName"
autocomplete=
"off"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myPermissionTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myPermissionTree');"
>
<input
type=
"text"
id=
"permissionId"
Name=
"permissionId"
style=
"display: none;"
>
<input
type=
"text"
id=
"permissionId"
autocomplete=
"off"
Name=
"permissionId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myPermissionTree');"
>
选择权限
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myPermissionTree');"
>
选择权限
</span>
--%>
<div
id=
"myPermissionTree"
style=
"display: none"
>
<div
id=
"myPermissionTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"permissionTree"
class=
"ztree"
></ul>
<ul
id=
"permissionTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
...
src/main/webapp/WEB-INF/jsp/admin/role/inc.jsp
View file @
297b19f6
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<script src="${pageContext.request.contextPath}/resources/jquery-3.1.0.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/jquery-3.1.0.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.exhide.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<style>
<style>
body {
body {
...
...
src/main/webapp/WEB-INF/jsp/admin/role/update.jsp
View file @
297b19f6
...
@@ -77,10 +77,15 @@
...
@@ -77,10 +77,15 @@
<label
class=
"layui-form-label"
>
父级角色
</label>
<label
class=
"layui-form-label"
>
父级角色
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"pidName"
id=
"pidName"
<input
type=
"text"
name=
"pidName"
id=
"pidName"
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
autocomplete=
"off"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"pid"
Name=
"pid"
style=
"display: none;"
>
<input
type=
"text"
id=
"pid"
autocomplete=
"off"
Name=
"pid"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择父级
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择父级
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -88,11 +93,16 @@
...
@@ -88,11 +93,16 @@
<div
class=
"layui-form-item btx"
id=
"hasPermission"
>
<div
class=
"layui-form-item btx"
id=
"hasPermission"
>
<label
class=
"layui-form-label"
>
拥有权限
</label>
<label
class=
"layui-form-label"
>
拥有权限
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"permissionName"
id=
"permissionName"
lay-verify=
"required"
<input
type=
"text"
name=
"permissionName"
autocomplete=
"off"
id=
"permissionName"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myPermissionTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myPermissionTree');"
>
<input
type=
"text"
id=
"permissionId"
Name=
"permissionId"
style=
"display: none;"
>
<input
type=
"text"
id=
"permissionId"
autocomplete=
"off"
Name=
"permissionId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myPermissionTree');"
>
选择权限
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myPermissionTree');"
>
选择权限
</span>
--%>
<div
id=
"myPermissionTree"
style=
"display: none"
>
<div
id=
"myPermissionTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"permissionTree"
class=
"ztree"
></ul>
<ul
id=
"permissionTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
...
src/main/webapp/WEB-INF/jsp/admin/user/add.jsp
View file @
297b19f6
...
@@ -134,9 +134,14 @@
...
@@ -134,9 +134,14 @@
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"unitname"
autocomplete=
"off"
id=
"unitname"
lay-verify=
"required"
<input
type=
"text"
name=
"unitname"
autocomplete=
"off"
id=
"unitname"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myUnitTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myUnitTree');"
>
<input
type=
"text"
id=
"unitcode"
Name=
"unitcode"
style=
"display: none;"
>
<input
type=
"text"
id=
"unitcode"
autocomplete=
"off"
Name=
"unitcode"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
>
选择单位
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
>
选择单位
</span>
--%>
<div
id=
"myUnitTree"
style=
"display: none"
>
<div
id=
"myUnitTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"unit"
class=
"ztree"
></ul>
<ul
id=
"unit"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -147,9 +152,14 @@
...
@@ -147,9 +152,14 @@
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"roleName"
id=
"roleName"
autocomplete=
"off"
lay-verify=
"required"
<input
type=
"text"
name=
"roleName"
id=
"roleName"
autocomplete=
"off"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"roleId"
Name=
"roleId"
style=
"display: none;"
>
<input
type=
"text"
id=
"roleId"
autocomplete=
"off"
Name=
"roleId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择角色
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择角色
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
...
src/main/webapp/WEB-INF/jsp/admin/user/inc.jsp
View file @
297b19f6
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
<script src="${pageContext.request.contextPath}/resources/jquery-3.1.0.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/jquery-3.1.0.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.core.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.excheck.js"></script>
<script src="${pageContext.request.contextPath}/resources/ztree/ztree/jquery.ztree.exhide.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<script src="${pageContext.request.contextPath}/resources/common/common.js"></script>
<script src="${pageContext.request.contextPath}/resources/layui/laydate/laydate.js"></script>
<script src="${pageContext.request.contextPath}/resources/layui/laydate/laydate.js"></script>
<style>
<style>
...
@@ -22,6 +23,6 @@
...
@@ -22,6 +23,6 @@
}
}
.layui-btn {
.layui-btn {
padding: 0 12px;
padding: 0 12px;
}
}
</style>
</style>
\ No newline at end of file
src/main/webapp/WEB-INF/jsp/admin/user/list.jsp
View file @
297b19f6
...
@@ -86,11 +86,16 @@
...
@@ -86,11 +86,16 @@
<div
class=
"layui-form-mid"
>
<div
class=
"layui-form-mid"
>
<label
class=
"layui-form-label"
>
所属单位
</label>
<label
class=
"layui-form-label"
>
所属单位
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"unitname"
id=
"unitname"
lay-verify=
"required"
<input
type=
"text"
name=
"unitname"
autocomplete=
"off"
id=
"unitname"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myUnitTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myUnitTree');"
>
<input
type=
"text"
id=
"unitcode"
Name=
"unitcode"
style=
"display: none;"
>
<input
type=
"text"
id=
"unitcode"
Name=
"unitcode"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myUnitTree');"
>
选择单位
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myUnitTree');"
>
选择单位
</span>
--%>
<div
id=
"myUnitTree"
style=
"display: none"
>
<div
id=
"myUnitTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"unit"
class=
"ztree"
></ul>
<ul
id=
"unit"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -98,11 +103,16 @@
...
@@ -98,11 +103,16 @@
<div
class=
"layui-form-mid"
>
<div
class=
"layui-form-mid"
>
<label
class=
"layui-form-label"
>
角色
</label>
<label
class=
"layui-form-label"
>
角色
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"roleName"
id=
"roleName"
lay-verify=
"required"
<input
type=
"text"
name=
"roleName"
autocomplete=
"off"
id=
"roleName"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"roleId"
Name=
"roleId"
style=
"display: none;"
>
<input
type=
"text"
id=
"roleId"
Name=
"roleId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择角色
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择角色
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -171,7 +181,8 @@
...
@@ -171,7 +181,8 @@
table
.
on
(
'tool(user)'
,
function
(
obj
)
{
table
.
on
(
'tool(user)'
,
function
(
obj
)
{
var
data
=
obj
.
data
;
var
data
=
obj
.
data
;
if
(
obj
.
event
===
'update'
)
{
if
(
obj
.
event
===
'update'
)
{
window
.
location
.
href
=
'${pageContext.request.contextPath}/admin/user/update/'
+
data
.
id
;
var
url
=
'${pageContext.request.contextPath}/admin/user/update/'
+
data
.
id
;
window
.
open
(
url
,
'_blank'
);
}
}
//此处需要完善
//此处需要完善
if
(
obj
.
event
===
'delete'
)
{
if
(
obj
.
event
===
'delete'
)
{
...
...
src/main/webapp/WEB-INF/jsp/admin/user/update.jsp
View file @
297b19f6
...
@@ -133,11 +133,16 @@
...
@@ -133,11 +133,16 @@
<div
class=
"layui-form-item btx"
>
<div
class=
"layui-form-item btx"
>
<label
class=
"layui-form-label"
>
所属单位
</label>
<label
class=
"layui-form-label"
>
所属单位
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"unitname"
id=
"unitname"
lay-verify=
"required"
<input
type=
"text"
name=
"unitname"
autocomplete=
"off"
id=
"unitname"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myUnitTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myUnitTree');"
>
<input
type=
"text"
id=
"unitcode"
Name=
"unitcode"
style=
"display: none;"
>
<input
type=
"text"
id=
"unitcode"
autocomplete=
"off"
Name=
"unitcode"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myUnitTree');"
>
选择单位
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkPer"
onclick=
"checkTree('myUnitTree');"
>
选择单位
</span>
--%>
<div
id=
"myUnitTree"
style=
"display: none"
>
<div
id=
"myUnitTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"unit"
class=
"ztree"
></ul>
<ul
id=
"unit"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -146,11 +151,16 @@
...
@@ -146,11 +151,16 @@
<div
class=
"layui-form-item btx"
>
<div
class=
"layui-form-item btx"
>
<label
class=
"layui-form-label"
>
用户角色
</label>
<label
class=
"layui-form-label"
>
用户角色
</label>
<div
class=
"layui-input-block"
>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"roleName"
id=
"roleName"
lay-verify=
"required"
<input
type=
"text"
name=
"roleName"
id=
"roleName"
autocomplete=
"off"
lay-verify=
"required"
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
class=
"layui-input code-icon"
onclick=
"checkTree('myRoleTree');"
>
<input
type=
"text"
id=
"roleId"
Name=
"roleId"
style=
"display: none;"
>
<input
type=
"text"
id=
"roleId"
autocomplete=
"off"
Name=
"roleId"
style=
"display: none;"
>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择角色
</span>
--%>
<
%
--
<
span
class=
"layui-btn"
id=
"checkRolePid"
onclick=
"checkTree('myRoleTree');"
>
选择角色
</span>
--%>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
id=
"myRoleTree"
style=
"display: none"
>
<div
class=
"ISearch"
>
<input
type=
"text"
autocomplete=
"off"
>
<span
class=
"layui-btn layui-btn-normal inpSearch"
>
搜索
</span>
<span
class=
"layui-btn layui-btn-normal clearSer"
>
清空
</span>
</div>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
<ul
id=
"roleTree"
class=
"ztree"
></ul>
</div>
</div>
</div>
</div>
...
@@ -257,7 +267,15 @@
...
@@ -257,7 +267,15 @@
//监听提交
//监听提交
form
.
on
(
'submit(rulesSubmit)'
,
function
(
data
)
{
form
.
on
(
'submit(rulesSubmit)'
,
function
(
data
)
{
layer
.
confirm
(
'返回用户列表'
,
{
icon
:
3
,
title
:
'提示'
},
function
(
index
){
window
.
opener
=
null
;
window
.
open
(
''
,
'_self'
);
window
.
close
();
//return false;
});
//提交表单
//提交表单
});
});
//弹出层
//弹出层
var
msg
=
$
(
"#msg"
).
text
();
var
msg
=
$
(
"#msg"
).
text
();
...
...
src/main/webapp/resources/common/common.js
View file @
297b19f6
...
@@ -107,14 +107,151 @@ function setTree(data,treeId,type,kid,vid,glcs) {
...
@@ -107,14 +107,151 @@ function setTree(data,treeId,type,kid,vid,glcs) {
}
}
$
(
document
).
ready
(
function
()
{
$
(
document
).
ready
(
function
()
{
$
.
fn
.
zTree
.
init
(
$
(
"#"
+
treeId
),
setting
,
data
);
$
.
fn
.
zTree
.
init
(
$
(
"#"
+
treeId
),
setting
,
data
);
fuzzySearch
(
treeId
,
false
,
true
,
setting
,
data
,
kid
,
vid
);
//初始化模糊搜索方法
});
});
}
}
function
fuzzySearch
(
zTreeId
,
isHighLight
,
isExpand
,
setting
,
data
,
kid
,
vid
){
var
zTreeObj
=
$
.
fn
.
zTree
.
getZTreeObj
(
zTreeId
);
//获取树对象
if
(
!
zTreeObj
){
layer
.
msg
(
"获取树对象失败"
);
}
var
nameKey
=
zTreeObj
.
setting
.
data
.
key
.
name
;
//获取name属性的key
isHighLight
=
isHighLight
===
false
?
false
:
true
;
//除直接输入false的情况外,都默认为高亮
isExpand
=
isExpand
?
true
:
false
;
zTreeObj
.
setting
.
view
.
nameIsHTML
=
isHighLight
;
//允许在节点名称中使用html,用于处理高亮
var
metaChar
=
'[
\\
[
\\
]
\\\\\
^
\\
$
\\
.
\\
|
\\
?
\\
*
\\
+
\\
(
\\
)]'
;
//js正则表达式元字符集
var
rexMeta
=
new
RegExp
(
metaChar
,
'gi'
);
//匹配元字符的正则表达式
// 过滤ztree显示数据
function
ztreeFilter
(
zTreeObj
,
_keywords
,
callBackFunc
)
{
if
(
!
_keywords
){
_keywords
=
''
;
//如果为空,赋值空字符串
}
// 查找符合条件的叶子节点
function
filterFunc
(
node
)
{
if
(
node
&&
node
.
oldname
&&
node
.
oldname
.
length
>
0
){
node
[
nameKey
]
=
node
.
oldname
;
//如果存在原始名称则恢复原始名称
}
//node.highlight = false; //取消高亮
zTreeObj
.
updateNode
(
node
);
//更新节点让之前对节点所做的修改生效
if
(
_keywords
.
length
==
0
)
{
//如果关键字为空,返回true,表示每个节点都显示
zTreeObj
.
showNode
(
node
);
zTreeObj
.
expandNode
(
node
,
isExpand
);
//关键字为空时是否展开节点
return
true
;
}
//节点名称和关键字都用toLowerCase()做小写处理
if
(
node
[
nameKey
]
&&
node
[
nameKey
].
toLowerCase
().
indexOf
(
_keywords
.
toLowerCase
())
!=-
1
)
{
/*if(isHighLight){ //如果高亮,对文字进行高亮处理
//创建一个新变量newKeywords,不影响_keywords在下一个节点使用
//对_keywords中的元字符进行处理,否则无法在replace中使用RegExp
var newKeywords = _keywords.replace(rexMeta,function(matchStr){
//对元字符做转义处理
return '\\' + matchStr;
});
node.oldname = node[nameKey]; //缓存原有名称用于恢复
//为处理过元字符的_keywords创建正则表达式,全局且不分大小写
var rexGlobal = new RegExp(newKeywords, 'gi');//'g'代表全局匹配,'i'代表不区分大小写
//无法直接使用replace(/substr/g,replacement)方法,所以使用RegExp
node[nameKey] = node.oldname.replace(rexGlobal, function(originalText){
//将所有匹配的子串加上高亮效果
var highLightText =
'<span style="color: whitesmoke;background-color: #1E9FFF;">'
+ originalText
+'</span>';
return highLightText;
});
zTreeObj.updateNode(node); //update让更名和高亮生效
}*/
zTreeObj
.
showNode
(
node
);
//显示符合条件的节点
return
true
;
//带有关键字的节点不隐藏
}
zTreeObj
.
hideNode
(
node
);
// 隐藏不符合要求的节点
return
false
;
//不符合返回false
}
var
nodesShow
=
zTreeObj
.
getNodesByFilter
(
filterFunc
);
//获取匹配关键字的节点
processShowNodes
(
nodesShow
,
_keywords
);
//对获取的节点进行二次处理
}
/**
* 对符合条件的节点做二次处理
*/
function
processShowNodes
(
nodesShow
,
_keywords
){
if
(
nodesShow
&&
nodesShow
.
length
>
0
){
//关键字不为空时对关键字节点的祖先节点进行二次处理
if
(
_keywords
.
length
>
0
){
$
.
each
(
nodesShow
,
function
(
n
,
obj
){
var
pathOfOne
=
obj
.
getPath
();
//向上追溯,获取节点的所有祖先节点(包括自己)
if
(
pathOfOne
&&
pathOfOne
.
length
>
0
){
// i < pathOfOne.length-1, 对节点本身不再操作
for
(
var
i
=
0
;
i
<
pathOfOne
.
length
-
1
;
i
++
){
zTreeObj
.
showNode
(
pathOfOne
[
i
]);
//显示节点
zTreeObj
.
expandNode
(
pathOfOne
[
i
],
true
);
//展开节点
}
}
});
}
else
{
//关键字为空则显示所有节点, 此时展开根节点
var
rootNodes
=
zTreeObj
.
getNodesByParam
(
'level'
,
'0'
);
//获得所有根节点
$
.
each
(
rootNodes
,
function
(
n
,
obj
){
zTreeObj
.
expandNode
(
obj
,
false
);
//展开所有根节点
});
}
}
}
/* //监听关键字input输入框文字变化事件
$(searchField).bind('input propertychange', function() {
var _keywords = $(this).val();
searchNodeLazy(_keywords); //调用延时处理
});*/
$
(
"#"
+
zTreeId
).
prev
(
".ISearch"
).
find
(
".inpSearch"
).
click
(
function
()
{
ISearch
()
});
$
(
"#"
+
zTreeId
).
prev
(
".ISearch"
).
find
(
".clearSer"
).
click
(
function
()
{
$
(
"#"
+
zTreeId
).
prev
(
".ISearch"
).
find
(
"input"
).
val
(
""
);
$
.
fn
.
zTree
.
init
(
$
(
"#"
+
zTreeId
),
setting
,
data
);
$
(
"#"
+
kid
).
val
(
""
);
$
(
"#"
+
vid
).
val
(
""
);
});
function
ISearch
()
{
var
_keywords
=
$
(
"#"
+
zTreeId
).
prev
(
".ISearch"
).
find
(
"input"
).
val
();
if
(
_keywords
==
""
){
$
.
fn
.
zTree
.
init
(
$
(
"#"
+
zTreeId
),
setting
,
data
);
}
else
{
ztreeFilter
(
zTreeObj
,
_keywords
);
}
}
$
(
"#"
+
zTreeId
).
prev
(
".ISearch"
).
find
(
"input"
).
keydown
(
function
(
e
)
{
if
(
e
.
keyCode
==
13
)
{
ISearch
();
}
});
/* var timeoutId = null;
//有输入后定时执行一次,如果上次的输入还没有被执行,那么就取消上一次的执行
function searchNodeLazy(_keywords) {
if (timeoutId) { //如果不为空,结束任务
clearTimeout(timeoutId);
}
timeoutId = setTimeout(function() {
ztreeFilter(zTreeObj,_keywords); //延时执行筛选方法
$(searchField).focus();//输入框重新获取焦点
}, 50);
}*/
}
/**
/**
*
*
* @param treeId 所需要展现树的div的id
* @param treeId 所需要展现树的div的id
*/
*/
function
checkTree
(
treeId
){
function
checkTree
(
treeId
){
layer
.
open
({
layer
.
open
({
type
:
1
,
type
:
1
,
area
:[
'400px'
,
'430px'
],
area
:[
'400px'
,
'430px'
],
...
...
src/main/webapp/resources/common/css/common.css
View file @
297b19f6
...
@@ -33,6 +33,4 @@
...
@@ -33,6 +33,4 @@
.layui-layer-dialog
>
.layui-layer-content
{
.layui-layer-dialog
>
.layui-layer-content
{
color
:
black
;
color
:
black
;
}
}
.layui-layer-msg
{
background
:
rgba
(
235
,
235
,
235
,
0.82
);
}
src/main/webapp/resources/h-ui/css/new-wrap.css
View file @
297b19f6
...
@@ -249,4 +249,10 @@ body .layui-layer-btn1{color:#666 !important;}
...
@@ -249,4 +249,10 @@ body .layui-layer-btn1{color:#666 !important;}
.mp-name
{
width
:
100px
;}
.mp-name
{
width
:
100px
;}
.flowChart
{
width
:
538px
;
margin-left
:
60px
;}
.flowChart
{
width
:
538px
;
margin-left
:
60px
;}
}
}
.ISearch
>
span
{
color
:
#fff
!important
;
height
:
30px
;
padding
:
0
12px
;
line-height
:
2
;
}
src/main/webapp/resources/ztree/metroStyle/metroStyle.css
View file @
297b19f6
...
@@ -9,7 +9,7 @@ website: http://code.google.com/p/jquerytree/
...
@@ -9,7 +9,7 @@ website: http://code.google.com/p/jquerytree/
-------------------------------------*/
-------------------------------------*/
.ztree
*
{
padding
:
0
;
margin
:
0
;
font-size
:
14px
;
font-family
:
Verdana
,
Arial
,
Helvetica
,
AppleGothic
,
sans-serif
}
.ztree
*
{
padding
:
0
;
margin
:
0
;
font-size
:
14px
;
font-family
:
Verdana
,
Arial
,
Helvetica
,
AppleGothic
,
sans-serif
}
.ztree
{
margin
:
0
;
padding
:
5px
;
color
:
#333
}
.ztree
{
margin
:
0
;
padding
:
5px
;
color
:
#333
;
padding-top
:
40px
;
}
.ztree
li
{
padding
:
0
;
margin
:
0
;
list-style
:
none
;
line-height
:
17px
;
text-align
:
left
;
white-space
:
nowrap
;
outline
:
0
}
.ztree
li
{
padding
:
0
;
margin
:
0
;
list-style
:
none
;
line-height
:
17px
;
text-align
:
left
;
white-space
:
nowrap
;
outline
:
0
}
.ztree
li
ul
{
margin
:
0
;
padding
:
0
0
0
18px
}
.ztree
li
ul
{
margin
:
0
;
padding
:
0
0
0
18px
}
.ztree
li
ul
.line
{
background
:
url(./img/line_conn.png)
0
0
repeat-y
;}
.ztree
li
ul
.line
{
background
:
url(./img/line_conn.png)
0
0
repeat-y
;}
...
@@ -106,4 +106,16 @@ ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height
...
@@ -106,4 +106,16 @@ ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height
}
}
body
.line-size
{
font-size
:
20px
;
line-height
:
32px
;}
body
.line-size
{
font-size
:
20px
;
line-height
:
32px
;}
.lineheight28
{
line-height
:
28px
;}
.lineheight28
{
line-height
:
28px
;}
body
.layui-table-view
.layui-table
{
width
:
100%
;}
body
.layui-table-view
.layui-table
{
width
:
100%
;}
\ No newline at end of file
.ISearch
{
position
:
fixed
;
padding
:
5px
0
;
width
:
383px
;
background
:
#fff
;
z-index
:
100000
;
}
.ISearch
input
{
height
:
28px
;
margin-left
:
9px
;
/* margin-top: 1px; */
width
:
245px
;
border
:
1px
solid
#ccc
;
border-radius
:
5px
;
}
src/main/webapp/resources/ztree/ztree/jquery.ztree.core.js
View file @
297b19f6
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/main/webapp/resources/ztree/ztree/jquery.ztree.core.min.js
View file @
297b19f6
/*
/*
* JQuery zTree core v3.5.3
6
* JQuery zTree core v3.5.3
7
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,69 +8,68 @@
...
@@ -8,69 +8,68 @@
* 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: 2018-0
6-26
* Date: 2018-0
8-21
*/
*/
(
function
(
q
){
var
H
,
I
,
J
,
K
,
L
,
M
,
u
,
s
=
{},
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
:{
isParent
:
"isParent"
,
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"
,
(
function
(
r
){
var
J
,
K
,
L
,
M
,
N
,
O
,
v
,
t
=
{},
w
=
{},
x
=
{},
P
=
{
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
:{
isParent
:
"isParent"
,
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"
,
headers
:{},
xhrFields
:{},
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
(
a
){
var
b
=
a
.
treeObj
,
c
=
f
.
event
;
b
.
bind
(
c
.
NODECREATED
,
dataType
:
"text"
,
headers
:{},
xhrFields
:{},
url
:
""
,
autoParam
:[],
otherParam
:[],
dataFilter
:
null
},
callback
:{
beforeAsync
:
null
,
beforeClick
:
null
,
beforeDblClick
:
null
,
beforeRightClick
:
null
,
beforeMouseDown
:
null
,
beforeMouseUp
:
null
,
beforeExpand
:
null
,
beforeCollapse
:
null
,
beforeRemove
:
null
,
onAsyncError
:
null
,
onAsyncSuccess
:
null
,
onNodeCreated
:
null
,
onClick
:
null
,
onDblClick
:
null
,
onRightClick
:
null
,
onMouseDown
:
null
,
onMouseUp
:
null
,
onExpand
:
null
,
onCollapse
:
null
,
onRemove
:
null
}},
y
=
[
function
(
a
){
var
b
=
a
.
treeObj
,
c
=
g
.
event
;
b
.
bind
(
c
.
NODECREATED
,
function
(
b
,
c
,
h
){
j
.
apply
(
a
.
callback
.
onNodeCreated
,[
b
,
c
,
h
])});
b
.
bind
(
c
.
CLICK
,
function
(
b
,
c
,
h
,
e
,
m
){
j
.
apply
(
a
.
callback
.
onClick
,[
c
,
h
,
e
,
m
])});
b
.
bind
(
c
.
EXPAND
,
function
(
b
,
c
,
h
){
j
.
apply
(
a
.
callback
.
onExpand
,[
b
,
c
,
h
])});
b
.
bind
(
c
.
COLLAPSE
,
function
(
b
,
c
,
h
){
j
.
apply
(
a
.
callback
.
onCollapse
,[
b
,
c
,
h
])});
b
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
b
,
c
,
h
,
e
){
j
.
apply
(
a
.
callback
.
onAsyncSuccess
,[
b
,
c
,
h
,
e
])});
b
.
bind
(
c
.
ASYNC_ERROR
,
function
(
b
,
c
,
h
,
e
,
m
,
f
){
j
.
apply
(
a
.
callback
.
onAsyncError
,[
b
,
c
,
h
,
e
,
m
,
f
])});
b
.
bind
(
c
.
REMOVE
,
function
(
b
,
c
,
h
){
j
.
apply
(
a
.
callback
.
onRemove
,
function
(
b
,
c
,
i
){
h
.
apply
(
a
.
callback
.
onNodeCreated
,[
b
,
c
,
i
])});
b
.
bind
(
c
.
CLICK
,
function
(
b
,
c
,
i
,
e
,
k
){
h
.
apply
(
a
.
callback
.
onClick
,[
c
,
i
,
e
,
k
])});
b
.
bind
(
c
.
EXPAND
,
function
(
b
,
c
,
i
){
h
.
apply
(
a
.
callback
.
onExpand
,[
b
,
c
,
i
])});
b
.
bind
(
c
.
COLLAPSE
,
function
(
b
,
c
,
i
){
h
.
apply
(
a
.
callback
.
onCollapse
,[
b
,
c
,
i
])});
b
.
bind
(
c
.
ASYNC_SUCCESS
,
function
(
b
,
c
,
i
,
e
){
h
.
apply
(
a
.
callback
.
onAsyncSuccess
,[
b
,
c
,
i
,
e
])});
b
.
bind
(
c
.
ASYNC_ERROR
,
function
(
b
,
c
,
i
,
e
,
k
,
g
){
h
.
apply
(
a
.
callback
.
onAsyncError
,[
b
,
c
,
i
,
e
,
k
,
g
])});
b
.
bind
(
c
.
REMOVE
,
function
(
b
,
c
,
i
){
h
.
apply
(
a
.
callback
.
onRemove
,
[
b
,
c
,
h
])});
b
.
bind
(
c
.
SELECTED
,
function
(
b
,
c
,
h
){
j
.
apply
(
a
.
callback
.
onSelected
,[
c
,
h
])});
b
.
bind
(
c
.
UNSELECTED
,
function
(
b
,
c
,
h
){
j
.
apply
(
a
.
callback
.
onUnSelected
,[
c
,
h
])})}],
y
=
[
function
(
a
){
var
b
=
f
.
event
;
a
.
treeObj
.
unbind
(
b
.
NODECREATED
).
unbind
(
b
.
CLICK
).
unbind
(
b
.
EXPAND
).
unbind
(
b
.
COLLAPSE
).
unbind
(
b
.
ASYNC_SUCCESS
).
unbind
(
b
.
ASYNC_ERROR
).
unbind
(
b
.
REMOVE
).
unbind
(
b
.
SELECTED
).
unbind
(
b
.
UNSELECTED
)}],
z
=
[
function
(
a
){
var
b
=
e
.
getCache
(
a
);
b
||
(
b
=
{},
e
.
setCache
(
a
,
b
));
b
.
nodes
=
[];
b
.
doms
=
[]}],
A
=
[
function
(
a
,
b
,
c
,
d
,
g
,
h
){
if
(
c
){
var
k
=
[
b
,
c
,
i
])});
b
.
bind
(
c
.
SELECTED
,
function
(
b
,
c
,
i
){
h
.
apply
(
a
.
callback
.
onSelected
,[
c
,
i
])});
b
.
bind
(
c
.
UNSELECTED
,
function
(
b
,
c
,
i
){
h
.
apply
(
a
.
callback
.
onUnSelected
,[
c
,
i
])})}],
z
=
[
function
(
a
){
var
b
=
g
.
event
;
a
.
treeObj
.
unbind
(
b
.
NODECREATED
).
unbind
(
b
.
CLICK
).
unbind
(
b
.
EXPAND
).
unbind
(
b
.
COLLAPSE
).
unbind
(
b
.
ASYNC_SUCCESS
).
unbind
(
b
.
ASYNC_ERROR
).
unbind
(
b
.
REMOVE
).
unbind
(
b
.
SELECTED
).
unbind
(
b
.
UNSELECTED
)}],
A
=
[
function
(
a
){
var
b
=
e
.
getCache
(
a
);
b
||
(
b
=
{},
e
.
setCache
(
a
,
b
));
b
.
nodes
=
[];
b
.
doms
=
[]}],
B
=
[
function
(
a
,
b
,
c
,
d
,
f
,
i
){
if
(
c
){
var
m
=
e
.
getRoot
(
a
),
m
=
e
.
nodeChildren
(
a
,
c
);
c
.
level
=
b
;
c
.
tId
=
a
.
treeId
+
"_"
+
++
k
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"string"
?
j
.
eqs
(
c
.
open
,
"true"
):
!!
c
.
open
;
b
=
e
.
nodeIsParent
(
a
,
c
);
j
.
isArray
(
m
)
&&!
(
b
===!
1
||
typeof
b
==
"string"
&&
j
.
eqs
(
b
,
"false"
))?(
e
.
nodeIsParent
(
a
,
c
,
!
0
),
c
.
zAsync
=!
0
):(
b
=
e
.
nodeIsParent
(
a
,
c
,
b
),
c
.
open
=
b
&&!
a
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
b
);
c
.
isFirstNode
=
g
;
c
.
isLastNode
=
h
;
c
.
getParentNode
=
function
(){
return
e
.
getNodeCache
(
a
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
e
.
getPreNode
(
a
,
c
)};
c
.
getNextNode
=
e
.
getRoot
(
a
),
k
=
e
.
nodeChildren
(
a
,
c
);
c
.
level
=
b
;
c
.
tId
=
a
.
treeId
+
"_"
+
++
m
.
zId
;
c
.
parentTId
=
d
?
d
.
tId
:
null
;
c
.
open
=
typeof
c
.
open
==
"string"
?
h
.
eqs
(
c
.
open
,
"true"
):
!!
c
.
open
;
b
=
e
.
nodeIsParent
(
a
,
c
);
h
.
isArray
(
k
)
&&!
(
b
===!
1
||
typeof
b
==
"string"
&&
h
.
eqs
(
b
,
"false"
))?(
e
.
nodeIsParent
(
a
,
c
,
!
0
),
c
.
zAsync
=!
0
):(
b
=
e
.
nodeIsParent
(
a
,
c
,
b
),
c
.
open
=
b
&&!
a
.
async
.
enable
?
c
.
open
:
!
1
,
c
.
zAsync
=!
b
);
c
.
isFirstNode
=
f
;
c
.
isLastNode
=
i
;
c
.
getParentNode
=
function
(){
return
e
.
getNodeCache
(
a
,
c
.
parentTId
)};
c
.
getPreNode
=
function
(){
return
e
.
getPreNode
(
a
,
c
)};
c
.
getNextNode
=
function
(){
return
e
.
getNextNode
(
a
,
c
)};
c
.
getIndex
=
function
(){
return
e
.
getNodeIndex
(
a
,
c
)};
c
.
getPath
=
function
(){
return
e
.
getNodePath
(
a
,
c
)};
c
.
isAjaxing
=!
1
;
e
.
fixPIdKeyValue
(
a
,
c
)}}],
t
=
[
function
(
a
){
var
b
=
a
.
target
,
c
=
e
.
getSetting
(
a
.
data
.
treeId
),
d
=
""
,
g
=
null
,
h
=
""
,
k
=
""
,
m
=
null
,
i
=
null
,
o
=
null
;
if
(
j
.
eqs
(
a
.
type
,
"mousedown"
))
k
=
"mousedown"
;
else
if
(
j
.
eqs
(
a
.
type
,
"mouseup"
))
k
=
"mouseup"
;
else
if
(
j
.
eqs
(
a
.
type
,
"contextmenu"
))
k
=
"contextmenu"
;
else
if
(
j
.
eqs
(
a
.
type
,
"click"
))
if
(
j
.
eqs
(
b
.
tagName
,
"span"
)
&&
b
.
getAttribute
(
"treeNode"
+
function
(){
return
e
.
getNextNode
(
a
,
c
)};
c
.
getIndex
=
function
(){
return
e
.
getNodeIndex
(
a
,
c
)};
c
.
getPath
=
function
(){
return
e
.
getNodePath
(
a
,
c
)};
c
.
isAjaxing
=!
1
;
e
.
fixPIdKeyValue
(
a
,
c
)}}],
u
=
[
function
(
a
){
var
b
=
a
.
target
,
c
=
e
.
getSetting
(
a
.
data
.
treeId
),
d
=
""
,
f
=
null
,
i
=
""
,
m
=
""
,
k
=
null
,
j
=
null
,
o
=
null
;
if
(
h
.
eqs
(
a
.
type
,
"mousedown"
))
m
=
"mousedown"
;
else
if
(
h
.
eqs
(
a
.
type
,
"mouseup"
))
m
=
"mouseup"
;
else
if
(
h
.
eqs
(
a
.
type
,
"contextmenu"
))
m
=
"contextmenu"
;
else
if
(
h
.
eqs
(
a
.
type
,
"click"
))
if
(
h
.
eqs
(
b
.
tagName
,
"span"
)
&&
b
.
getAttribute
(
"treeNode"
+
f
.
id
.
SWITCH
)
!==
null
)
d
=
j
.
getNodeMainDom
(
b
).
id
,
h
=
"switchNode"
;
else
{
if
(
o
=
j
.
getMDom
(
c
,
b
,[{
tagName
:
"a"
,
attrName
:
"treeNode"
+
f
.
id
.
A
}]))
d
=
j
.
getNodeMainDom
(
o
).
id
,
h
=
"clickNode"
}
else
if
(
j
.
eqs
(
a
.
type
,
"dblclick"
)
&&
(
k
=
"dblclick"
,
o
=
j
.
getMDom
(
c
,
b
,[{
tagName
:
"a"
,
attrName
:
"treeNode"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
o
).
id
,
h
=
"switchNode"
;
if
(
k
.
length
>
0
&&
d
.
length
==
0
&&
(
o
=
j
.
getMDom
(
c
,
b
,[{
tagName
:
"a"
,
attrName
:
"treeNode"
+
f
.
id
.
A
}])))
d
=
j
.
getNodeMainDom
(
o
).
id
;
if
(
d
.
length
>
0
)
switch
(
g
=
e
.
getNodeCache
(
c
,
d
),
h
){
case
"switchNode"
:
e
.
nodeIsParent
(
c
,
g
.
id
.
SWITCH
)
!==
null
)
d
=
h
.
getNodeMainDom
(
b
).
id
,
i
=
"switchNode"
;
else
{
if
(
o
=
h
.
getMDom
(
c
,
b
,[{
tagName
:
"a"
,
attrName
:
"treeNode"
+
g
.
id
.
A
}]))
d
=
h
.
getNodeMainDom
(
o
).
id
,
i
=
"clickNode"
}
else
if
(
h
.
eqs
(
a
.
type
,
"dblclick"
)
&&
(
m
=
"dblclick"
,
o
=
h
.
getMDom
(
c
,
b
,[{
tagName
:
"a"
,
attrName
:
"treeNode"
+
g
.
id
.
A
}])))
d
=
h
.
getNodeMainDom
(
o
).
id
,
i
=
"switchNode"
;
if
(
m
.
length
>
0
&&
d
.
length
==
0
&&
(
o
=
h
.
getMDom
(
c
,
b
,[{
tagName
:
"a"
,
attrName
:
"treeNode"
+
g
.
id
.
A
}])))
d
=
h
.
getNodeMainDom
(
o
).
id
;
if
(
d
.
length
>
0
)
switch
(
f
=
e
.
getNodeCache
(
c
,
d
),
i
){
case
"switchNode"
:
e
.
nodeIsParent
(
c
,
g
)?
j
.
eqs
(
a
.
type
,
"click"
)
||
j
.
eqs
(
a
.
type
,
"dblclick"
)
&&
j
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
g
],
c
.
view
.
dblClickExpand
)?
m
=
H
:
h
=
""
:
h
=
""
;
break
;
case
"clickNode"
:
m
=
I
}
switch
(
k
){
case
"mousedown"
:
i
=
J
;
break
;
case
"mouseup"
:
i
=
K
;
break
;
case
"dblclick"
:
i
=
L
;
break
;
case
"contextmenu"
:
i
=
M
}
return
{
stop
:
!
1
,
node
:
g
,
nodeEventType
:
h
,
nodeEventCallback
:
m
,
treeEventType
:
k
,
treeEventCallback
:
i
}}],
B
=
[
function
(
a
){
var
b
=
e
.
getRoot
(
a
);
b
||
(
b
=
{},
e
.
setRoot
(
a
,
b
));
e
.
nodeChildren
(
a
,
b
,[]);
b
.
expandTriggerFlag
=!
1
;
b
.
curSelectedList
=
[];
b
.
noSelection
=
f
)?
h
.
eqs
(
a
.
type
,
"click"
)
||
h
.
eqs
(
a
.
type
,
"dblclick"
)
&&
h
.
apply
(
c
.
view
.
dblClickExpand
,[
c
.
treeId
,
f
],
c
.
view
.
dblClickExpand
)?
k
=
J
:
i
=
""
:
i
=
""
;
break
;
case
"clickNode"
:
k
=
K
}
switch
(
m
){
case
"mousedown"
:
j
=
L
;
break
;
case
"mouseup"
:
j
=
M
;
break
;
case
"dblclick"
:
j
=
N
;
break
;
case
"contextmenu"
:
j
=
O
}
return
{
stop
:
!
1
,
node
:
f
,
nodeEventType
:
i
,
nodeEventCallback
:
k
,
treeEventType
:
m
,
treeEventCallback
:
j
}}],
C
=
[
function
(
a
){
var
b
=
e
.
getRoot
(
a
);
b
||
(
b
=
{},
e
.
setRoot
(
a
,
b
));
e
.
nodeChildren
(
a
,
b
,[]);
b
.
expandTriggerFlag
=!
1
;
b
.
curSelectedList
=
[];
b
.
noSelection
=
!
0
;
b
.
createdNodes
=
[];
b
.
zId
=
0
;
b
.
_ver
=
(
new
Date
).
getTime
()}],
C
=
[],
D
=
[],
E
=
[],
F
=
[],
G
=
[],
e
=
{
addNodeCache
:
function
(
a
,
b
){
e
.
getCache
(
a
).
nodes
[
e
.
getNodeCacheId
(
b
.
tId
)]
=
b
},
getNodeCacheId
:
function
(
a
){
return
a
.
substring
(
a
.
lastIndexOf
(
"_"
)
+
1
)},
addAfterA
:
function
(
a
){
D
.
push
(
a
)},
addBeforeA
:
function
(
a
){
C
.
push
(
a
)},
addInnerAfterA
:
function
(
a
){
F
.
push
(
a
)},
addInnerBeforeA
:
function
(
a
){
E
.
push
(
a
)},
addInitBind
:
function
(
a
){
x
.
push
(
a
)},
addInitUnBind
:
function
(
a
){
y
.
push
(
a
)},
addInitCache
:
function
(
a
){
z
.
push
(
a
)},
addInitNode
:
function
(
a
){
A
.
push
(
a
)},
!
0
;
b
.
createdNodes
=
[];
b
.
zId
=
0
;
b
.
_ver
=
(
new
Date
).
getTime
()}],
D
=
[],
E
=
[],
F
=
[],
G
=
[],
H
=
[],
e
=
{
addNodeCache
:
function
(
a
,
b
){
e
.
getCache
(
a
).
nodes
[
e
.
getNodeCacheId
(
b
.
tId
)]
=
b
},
getNodeCacheId
:
function
(
a
){
return
a
.
substring
(
a
.
lastIndexOf
(
"_"
)
+
1
)},
addAfterA
:
function
(
a
){
E
.
push
(
a
)},
addBeforeA
:
function
(
a
){
D
.
push
(
a
)},
addInnerAfterA
:
function
(
a
){
G
.
push
(
a
)},
addInnerBeforeA
:
function
(
a
){
F
.
push
(
a
)},
addInitBind
:
function
(
a
){
y
.
push
(
a
)},
addInitUnBind
:
function
(
a
){
z
.
push
(
a
)},
addInitCache
:
function
(
a
){
A
.
push
(
a
)},
addInitNode
:
function
(
a
){
B
.
push
(
a
)},
addInitProxy
:
function
(
a
,
b
){
b
?
t
.
splice
(
0
,
0
,
a
):
t
.
push
(
a
)},
addInitRoot
:
function
(
a
){
B
.
push
(
a
)},
addNodesData
:
function
(
a
,
b
,
c
,
d
){
var
g
=
e
.
nodeChildren
(
a
,
b
);
g
?
c
>=
g
.
length
&&
(
c
=-
1
):(
g
=
e
.
nodeChildren
(
a
,
b
,[]),
c
=-
1
);
if
(
g
.
length
>
0
&&
c
===
0
)
g
[
0
].
isFirstNode
=!
1
,
i
.
setNodeLineIcos
(
a
,
g
[
0
]);
else
if
(
g
.
length
>
0
&&
c
<
0
)
g
[
g
.
length
-
1
].
isLastNode
=!
1
,
i
.
setNodeLineIcos
(
a
,
g
[
g
.
length
-
1
]);
e
.
nodeIsParent
(
a
,
b
,
!
0
);
c
<
0
?
e
.
nodeChildren
(
a
,
b
,
g
.
concat
(
d
)):(
a
=
[
c
,
0
].
concat
(
d
),
g
.
splice
.
apply
(
g
,
a
))},
addSelectedNode
:
function
(
a
,
b
){
var
c
=
e
.
getRoot
(
a
);
addInitProxy
:
function
(
a
,
b
){
b
?
u
.
splice
(
0
,
0
,
a
):
u
.
push
(
a
)},
addInitRoot
:
function
(
a
){
C
.
push
(
a
)},
addNodesData
:
function
(
a
,
b
,
c
,
d
){
var
f
=
e
.
nodeChildren
(
a
,
b
);
f
?
c
>=
f
.
length
&&
(
c
=-
1
):(
f
=
e
.
nodeChildren
(
a
,
b
,[]),
c
=-
1
);
if
(
f
.
length
>
0
&&
c
===
0
)
f
[
0
].
isFirstNode
=!
1
,
j
.
setNodeLineIcos
(
a
,
f
[
0
]);
else
if
(
f
.
length
>
0
&&
c
<
0
)
f
[
f
.
length
-
1
].
isLastNode
=!
1
,
j
.
setNodeLineIcos
(
a
,
f
[
f
.
length
-
1
]);
e
.
nodeIsParent
(
a
,
b
,
!
0
);
c
<
0
?
e
.
nodeChildren
(
a
,
b
,
f
.
concat
(
d
)):(
a
=
[
c
,
0
].
concat
(
d
),
f
.
splice
.
apply
(
f
,
a
))},
addSelectedNode
:
function
(
a
,
b
){
var
c
=
e
.
getRoot
(
a
);
e
.
isSelectedNode
(
a
,
b
)
||
c
.
curSelectedList
.
push
(
b
)},
addCreatedNode
:
function
(
a
,
b
){(
a
.
callback
.
onNodeCreated
||
a
.
view
.
addDiyDom
)
&&
e
.
getRoot
(
a
).
createdNodes
.
push
(
b
)},
addZTreeTools
:
function
(
a
){
G
.
push
(
a
)},
exSetting
:
function
(
a
){
q
.
extend
(
!
0
,
N
,
a
)},
fixPIdKeyValue
:
function
(
a
,
b
){
a
.
data
.
simpleData
.
enable
&&
(
b
[
a
.
data
.
simpleData
.
pIdKey
]
=
b
.
parentTId
?
b
.
getParentNode
()[
a
.
data
.
simpleData
.
idKey
]:
a
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
a
,
e
.
isSelectedNode
(
a
,
b
)
||
c
.
curSelectedList
.
push
(
b
)},
addCreatedNode
:
function
(
a
,
b
){(
a
.
callback
.
onNodeCreated
||
a
.
view
.
addDiyDom
)
&&
e
.
getRoot
(
a
).
createdNodes
.
push
(
b
)},
addZTreeTools
:
function
(
a
){
H
.
push
(
a
)},
exSetting
:
function
(
a
){
r
.
extend
(
!
0
,
P
,
a
)},
fixPIdKeyValue
:
function
(
a
,
b
){
a
.
data
.
simpleData
.
enable
&&
(
b
[
a
.
data
.
simpleData
.
pIdKey
]
=
b
.
parentTId
?
b
.
getParentNode
()[
a
.
data
.
simpleData
.
idKey
]:
a
.
data
.
simpleData
.
rootPId
)},
getAfterA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getBeforeA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
C
.
length
;
d
<
e
;
d
++
)
C
[
d
].
apply
(
this
,
arguments
)},
getInnerAfterA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
E
.
length
;
d
<
e
;
d
++
)
E
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
a
){
return
w
[
a
.
treeId
]},
getNodeIndex
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
for
(
var
c
=
b
.
parentTId
?
b
.
getParentNode
():
e
.
getRoot
(
a
),
c
=
e
.
nodeChildren
(
a
,
c
),
d
=
0
,
g
=
c
.
length
-
1
;
d
<=
g
;
d
++
)
if
(
c
[
d
]
===
b
)
return
d
;
return
-
1
},
getNextNode
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
b
,
c
){
for
(
var
d
=
0
,
e
=
D
.
length
;
d
<
e
;
d
++
)
D
[
d
].
apply
(
this
,
arguments
)},
getInnerAfterA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
G
.
length
;
d
<
e
;
d
++
)
G
[
d
].
apply
(
this
,
arguments
)},
getInnerBeforeA
:
function
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
F
.
length
;
d
<
e
;
d
++
)
F
[
d
].
apply
(
this
,
arguments
)},
getCache
:
function
(
a
){
return
x
[
a
.
treeId
]},
getNodeIndex
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
for
(
var
c
=
b
.
parentTId
?
b
.
getParentNode
():
e
.
getRoot
(
a
),
c
=
e
.
nodeChildren
(
a
,
c
),
d
=
0
,
f
=
c
.
length
-
1
;
d
<=
f
;
d
++
)
if
(
c
[
d
]
===
b
)
return
d
;
return
-
1
},
getNextNode
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
for
(
var
c
=
b
.
parentTId
?
b
.
getParentNode
():
e
.
getRoot
(
a
),
c
=
e
.
nodeChildren
(
a
,
c
),
d
=
0
,
g
=
c
.
length
-
1
;
d
<=
g
;
d
++
)
if
(
c
[
d
]
===
b
)
return
d
==
g
?
null
:
c
[
d
+
1
];
return
null
},
getNodeByParam
:
function
(
a
,
b
,
c
,
d
){
if
(
!
b
||!
c
)
return
null
;
for
(
var
g
=
0
,
h
=
b
.
length
;
g
<
h
;
g
++
){
var
k
=
b
[
g
];
if
(
k
[
c
]
==
d
)
return
b
[
g
];
k
=
e
.
nodeChildren
(
a
,
k
);
if
(
k
=
e
.
getNodeByParam
(
a
,
k
,
c
,
d
))
return
k
}
return
null
},
getNodeCache
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
var
c
=
w
[
a
.
treeId
].
nodes
[
e
.
getNodeCacheId
(
b
)];
return
c
?
c
:
null
},
getNodePath
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
var
c
;
for
(
var
c
=
b
.
parentTId
?
b
.
getParentNode
():
e
.
getRoot
(
a
),
c
=
e
.
nodeChildren
(
a
,
c
),
d
=
0
,
f
=
c
.
length
-
1
;
d
<=
f
;
d
++
)
if
(
c
[
d
]
===
b
)
return
d
==
f
?
null
:
c
[
d
+
1
];
return
null
},
getNodeByParam
:
function
(
a
,
b
,
c
,
d
){
if
(
!
b
||!
c
)
return
null
;
for
(
var
f
=
0
,
i
=
b
.
length
;
f
<
i
;
f
++
){
var
m
=
b
[
f
];
if
(
m
[
c
]
==
d
)
return
b
[
f
];
m
=
e
.
nodeChildren
(
a
,
m
);
if
(
m
=
e
.
getNodeByParam
(
a
,
m
,
c
,
d
))
return
m
}
return
null
},
getNodeCache
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
var
c
=
x
[
a
.
treeId
].
nodes
[
e
.
getNodeCacheId
(
b
)];
return
c
?
c
:
null
},
getNodePath
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
var
c
;
(
c
=
b
.
parentTId
?
b
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
b
);
return
c
},
getNodes
:
function
(
a
){
return
e
.
nodeChildren
(
a
,
e
.
getRoot
(
a
))},
getNodesByParam
:
function
(
a
,
b
,
c
,
d
){
if
(
!
b
||!
c
)
return
[];
for
(
var
g
=
[],
h
=
0
,
k
=
b
.
length
;
h
<
k
;
h
++
){
var
m
=
b
[
h
];
m
[
c
]
==
d
&&
g
.
push
(
m
);
m
=
e
.
nodeChildren
(
a
,
m
);
g
=
g
.
concat
(
e
.
getNodesByParam
(
a
,
m
,
c
,
d
))}
return
g
},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
,
d
){
if
(
!
b
||!
c
)
return
[];
for
(
var
g
=
[],
d
=
d
.
toLowerCase
(),
h
=
0
,
k
=
b
.
length
;
h
<
k
;
h
++
){
var
m
=
b
[
h
];
typeof
m
[
c
]
==
"string"
&&
b
[
h
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
(
c
=
b
.
parentTId
?
b
.
getParentNode
().
getPath
():[])
&&
c
.
push
(
b
);
return
c
},
getNodes
:
function
(
a
){
return
e
.
nodeChildren
(
a
,
e
.
getRoot
(
a
))},
getNodesByParam
:
function
(
a
,
b
,
c
,
d
){
if
(
!
b
||!
c
)
return
[];
for
(
var
f
=
[],
i
=
0
,
m
=
b
.
length
;
i
<
m
;
i
++
){
var
k
=
b
[
i
];
k
[
c
]
==
d
&&
f
.
push
(
k
);
k
=
e
.
nodeChildren
(
a
,
k
);
f
=
f
.
concat
(
e
.
getNodesByParam
(
a
,
k
,
c
,
d
))}
return
f
},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
,
d
){
if
(
!
b
||!
c
)
return
[];
for
(
var
f
=
[],
d
=
d
.
toLowerCase
(),
i
=
0
,
m
=
b
.
length
;
i
<
m
;
i
++
){
var
k
=
b
[
i
];
typeof
k
[
c
]
==
"string"
&&
b
[
i
][
c
].
toLowerCase
().
indexOf
(
d
)
>-
1
&&
g
.
push
(
m
);
m
=
e
.
nodeChildren
(
a
,
m
);
g
=
g
.
concat
(
e
.
getNodesByParamFuzzy
(
a
,
m
,
c
,
d
))}
return
g
},
getNodesByFilter
:
function
(
a
,
b
,
c
,
d
,
g
){
if
(
!
b
)
return
d
?
null
:[];
for
(
var
h
=
d
?
null
:[],
k
=
0
,
m
=
b
.
length
;
k
<
m
;
k
++
){
var
f
=
b
[
k
];
if
(
j
.
apply
(
c
,[
f
,
g
],
!
1
)){
if
(
d
)
return
f
;
h
.
push
(
f
)}
f
=
e
.
nodeChildren
(
a
,
f
);
f
=
e
.
getNodesByFilter
(
a
,
f
,
c
,
d
,
g
);
if
(
d
&&
f
)
return
f
;
h
=
d
?
f
:
h
.
concat
(
f
)}
return
h
},
getPreNode
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
for
(
var
c
=
b
.
parentTId
?
b
.
getParentNode
():
e
.
getRoot
(
a
),
c
=
e
.
nodeChildren
(
a
,
c
),
d
=
0
,
g
=
c
.
length
;
d
<
g
;
d
++
)
if
(
c
[
d
]
===
b
)
return
d
==
f
.
push
(
k
);
k
=
e
.
nodeChildren
(
a
,
k
);
f
=
f
.
concat
(
e
.
getNodesByParamFuzzy
(
a
,
k
,
c
,
d
))}
return
f
},
getNodesByFilter
:
function
(
a
,
b
,
c
,
d
,
f
){
if
(
!
b
)
return
d
?
null
:[];
for
(
var
i
=
d
?
null
:[],
m
=
0
,
k
=
b
.
length
;
m
<
k
;
m
++
){
var
g
=
b
[
m
];
if
(
h
.
apply
(
c
,[
g
,
f
],
!
1
)){
if
(
d
)
return
g
;
i
.
push
(
g
)}
g
=
e
.
nodeChildren
(
a
,
g
);
g
=
e
.
getNodesByFilter
(
a
,
g
,
c
,
d
,
f
);
if
(
d
&&
g
)
return
g
;
i
=
d
?
g
:
i
.
concat
(
g
)}
return
i
},
getPreNode
:
function
(
a
,
b
){
if
(
!
b
)
return
null
;
for
(
var
c
=
b
.
parentTId
?
b
.
getParentNode
():
e
.
getRoot
(
a
),
c
=
e
.
nodeChildren
(
a
,
c
),
d
=
0
,
f
=
c
.
length
;
d
<
f
;
d
++
)
if
(
c
[
d
]
===
b
)
return
d
==
0
?
null
:
c
[
d
-
1
];
return
null
},
getRoot
:
function
(
a
){
return
a
?
v
[
a
.
treeId
]:
null
},
getRoots
:
function
(){
return
v
},
getSetting
:
function
(
a
){
return
s
[
a
]},
getSettings
:
function
(){
return
s
},
getZTreeTools
:
function
(
a
){
return
(
a
=
this
.
getRoot
(
this
.
getSetting
(
a
)))?
a
.
treeTools
:
null
},
initCache
:
function
(
a
){
for
(
var
b
=
0
,
c
=
z
.
length
;
b
<
c
;
b
++
)
z
[
b
].
apply
(
this
,
arguments
)},
initNode
:
function
(
a
,
b
,
c
,
d
,
e
,
h
){
for
(
var
k
=
0
,
f
=
A
.
length
;
k
<
f
;
k
++
)
A
[
k
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
a
){
for
(
var
b
=
0
,
c
=
B
.
length
;
b
<
c
;
b
++
)
B
[
b
].
apply
(
this
,
arguments
)},
0
?
null
:
c
[
d
-
1
];
return
null
},
getRoot
:
function
(
a
){
return
a
?
w
[
a
.
treeId
]:
null
},
getRoots
:
function
(){
return
w
},
getSetting
:
function
(
a
){
return
t
[
a
]},
getSettings
:
function
(){
return
t
},
getZTreeTools
:
function
(
a
){
return
(
a
=
this
.
getRoot
(
this
.
getSetting
(
a
)))?
a
.
treeTools
:
null
},
initCache
:
function
(
a
){
for
(
var
b
=
0
,
c
=
A
.
length
;
b
<
c
;
b
++
)
A
[
b
].
apply
(
this
,
arguments
)},
initNode
:
function
(
a
,
b
,
c
,
d
,
e
,
i
){
for
(
var
m
=
0
,
g
=
B
.
length
;
m
<
g
;
m
++
)
B
[
m
].
apply
(
this
,
arguments
)},
initRoot
:
function
(
a
){
for
(
var
b
=
0
,
c
=
C
.
length
;
b
<
c
;
b
++
)
C
[
b
].
apply
(
this
,
arguments
)},
isSelectedNode
:
function
(
a
,
b
){
for
(
var
c
=
e
.
getRoot
(
a
),
d
=
0
,
g
=
c
.
curSelectedList
.
length
;
d
<
g
;
d
++
)
if
(
b
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
nodeChildren
:
function
(
a
,
b
,
c
){
if
(
!
b
)
return
null
;
a
=
a
.
data
.
key
.
children
;
typeof
c
!==
"undefined"
&&
(
b
[
a
]
=
c
);
return
b
[
a
]},
nodeIsParent
:
function
(
a
,
b
,
c
){
if
(
!
b
)
return
!
1
;
a
=
a
.
data
.
key
.
isParent
;
typeof
c
!==
"undefined"
&&
(
typeof
c
===
"string"
&&
(
c
=
j
.
eqs
(
c
,
"true"
)),
b
[
a
]
=!!
c
);
return
b
[
a
]},
nodeName
:
function
(
a
,
b
,
c
){
a
=
a
.
data
.
key
.
name
;
typeof
c
!==
"undefined"
&&
(
b
[
a
]
=
c
);
return
""
+
b
[
a
]},
nodeTitle
:
function
(
a
,
isSelectedNode
:
function
(
a
,
b
){
for
(
var
c
=
e
.
getRoot
(
a
),
d
=
0
,
f
=
c
.
curSelectedList
.
length
;
d
<
f
;
d
++
)
if
(
b
===
c
.
curSelectedList
[
d
])
return
!
0
;
return
!
1
},
nodeChildren
:
function
(
a
,
b
,
c
){
if
(
!
b
)
return
null
;
a
=
a
.
data
.
key
.
children
;
typeof
c
!==
"undefined"
&&
(
b
[
a
]
=
c
);
return
b
[
a
]},
nodeIsParent
:
function
(
a
,
b
,
c
){
if
(
!
b
)
return
!
1
;
a
=
a
.
data
.
key
.
isParent
;
typeof
c
!==
"undefined"
&&
(
typeof
c
===
"string"
&&
(
c
=
h
.
eqs
(
c
,
"true"
)),
b
[
a
]
=!!
c
);
return
b
[
a
]},
nodeName
:
function
(
a
,
b
,
c
){
a
=
a
.
data
.
key
.
name
;
typeof
c
!==
"undefined"
&&
(
b
[
a
]
=
c
);
return
""
+
b
[
a
]},
nodeTitle
:
function
(
a
,
b
){
return
""
+
b
[
a
.
data
.
key
.
title
===
""
?
a
.
data
.
key
.
name
:
a
.
data
.
key
.
title
]},
removeNodeCache
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
);
if
(
c
)
for
(
var
d
=
0
,
g
=
c
.
length
;
d
<
g
;
d
++
)
e
.
removeNodeCache
(
a
,
c
[
d
]);
e
.
getCache
(
a
).
nodes
[
e
.
getNodeCacheId
(
b
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
a
,
b
){
for
(
var
c
=
e
.
getRoot
(
a
),
d
=
0
,
g
=
c
.
curSelectedList
.
length
;
d
<
g
;
d
++
)
if
(
b
===
c
.
curSelectedList
[
d
]
||!
e
.
getNodeCache
(
a
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
a
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
a
.
treeId
,
b
]),
d
--
,
g
--
},
setCache
:
function
(
a
,
b
){
return
""
+
b
[
a
.
data
.
key
.
title
===
""
?
a
.
data
.
key
.
name
:
a
.
data
.
key
.
title
]},
removeNodeCache
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
);
if
(
c
)
for
(
var
d
=
0
,
f
=
c
.
length
;
d
<
f
;
d
++
)
e
.
removeNodeCache
(
a
,
c
[
d
]);
e
.
getCache
(
a
).
nodes
[
e
.
getNodeCacheId
(
b
.
tId
)]
=
null
},
removeSelectedNode
:
function
(
a
,
b
){
for
(
var
c
=
e
.
getRoot
(
a
),
d
=
0
,
f
=
c
.
curSelectedList
.
length
;
d
<
f
;
d
++
)
if
(
b
===
c
.
curSelectedList
[
d
]
||!
e
.
getNodeCache
(
a
,
c
.
curSelectedList
[
d
].
tId
))
c
.
curSelectedList
.
splice
(
d
,
1
),
a
.
treeObj
.
trigger
(
g
.
event
.
UNSELECTED
,[
a
.
treeId
,
b
]),
d
--
,
f
--
},
setCache
:
function
(
a
,
b
){
w
[
a
.
treeId
]
=
b
},
setRoot
:
function
(
a
,
b
){
v
[
a
.
treeId
]
=
b
},
setZTreeTools
:
function
(
a
,
b
){
for
(
var
c
=
0
,
d
=
G
.
length
;
c
<
d
;
c
++
)
G
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
a
,
b
){
function
c
(
b
){
d
.
push
(
b
);(
b
=
e
.
nodeChildren
(
a
,
b
))
&&
(
d
=
d
.
concat
(
e
.
transformToArrayFormat
(
a
,
b
)))}
if
(
!
b
)
return
[];
var
d
=
[];
if
(
j
.
isArray
(
b
))
for
(
var
g
=
0
,
h
=
b
.
length
;
g
<
h
;
g
++
)
c
(
b
[
g
]);
else
c
(
b
);
return
d
},
transformTozTreeFormat
:
function
(
a
,
b
){
var
c
,
d
,
g
=
a
.
data
.
simpleData
.
idKey
,
h
=
a
.
data
.
simpleData
.
pIdKey
;
if
(
!
g
||
g
==
""
||!
b
)
return
[];
if
(
j
.
isArray
(
b
)){
var
k
=
b
){
x
[
a
.
treeId
]
=
b
},
setRoot
:
function
(
a
,
b
){
w
[
a
.
treeId
]
=
b
},
setZTreeTools
:
function
(
a
,
b
){
for
(
var
c
=
0
,
d
=
H
.
length
;
c
<
d
;
c
++
)
H
[
c
].
apply
(
this
,
arguments
)},
transformToArrayFormat
:
function
(
a
,
b
){
function
c
(
b
){
d
.
push
(
b
);(
b
=
e
.
nodeChildren
(
a
,
b
))
&&
(
d
=
d
.
concat
(
e
.
transformToArrayFormat
(
a
,
b
)))}
if
(
!
b
)
return
[];
var
d
=
[];
if
(
h
.
isArray
(
b
))
for
(
var
f
=
0
,
i
=
b
.
length
;
f
<
i
;
f
++
)
c
(
b
[
f
]);
else
c
(
b
);
return
d
},
transformTozTreeFormat
:
function
(
a
,
b
){
var
c
,
d
,
f
=
a
.
data
.
simpleData
.
idKey
,
i
=
a
.
data
.
simpleData
.
pIdKey
;
if
(
!
f
||
f
==
""
||!
b
)
return
[];
if
(
h
.
isArray
(
b
)){
var
g
=
[],
f
=
{};
for
(
c
=
0
,
d
=
b
.
length
;
c
<
d
;
c
++
)
f
[
b
[
c
][
g
]]
=
b
[
c
];
for
(
c
=
0
,
d
=
b
.
length
;
c
<
d
;
c
++
){
var
i
=
f
[
b
[
c
][
h
]];
if
(
i
&&
b
[
c
][
g
]
!=
b
[
c
][
h
]){
var
o
=
e
.
nodeChildren
(
a
,
i
);
o
||
(
o
=
e
.
nodeChildren
(
a
,
i
,[]));
o
.
push
(
b
[
c
])}
else
k
.
push
(
b
[
c
])}
return
k
}
else
return
[
b
]}},
n
=
{
bindEvent
:
function
(
a
){
for
(
var
b
=
0
,
c
=
x
.
length
;
b
<
c
;
b
++
)
x
[
b
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
a
){
for
(
var
b
=
0
,
c
=
y
.
length
;
b
<
c
;
b
++
)
y
[
b
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
a
){
var
b
=
{
treeId
:
a
.
treeId
},
c
=
a
.
treeObj
;
a
.
view
.
txtSelectedEnable
||
c
.
bind
(
"selectstart"
,
[],
k
=
{};
for
(
c
=
0
,
d
=
b
.
length
;
c
<
d
;
c
++
)
k
[
b
[
c
][
f
]]
=
b
[
c
];
for
(
c
=
0
,
d
=
b
.
length
;
c
<
d
;
c
++
){
var
j
=
k
[
b
[
c
][
i
]];
if
(
j
&&
b
[
c
][
f
]
!=
b
[
c
][
i
]){
var
o
=
e
.
nodeChildren
(
a
,
j
);
o
||
(
o
=
e
.
nodeChildren
(
a
,
j
,[]));
o
.
push
(
b
[
c
])}
else
g
.
push
(
b
[
c
])}
return
g
}
else
return
[
b
]}},
n
=
{
bindEvent
:
function
(
a
){
for
(
var
b
=
0
,
c
=
y
.
length
;
b
<
c
;
b
++
)
y
[
b
].
apply
(
this
,
arguments
)},
unbindEvent
:
function
(
a
){
for
(
var
b
=
0
,
c
=
z
.
length
;
b
<
c
;
b
++
)
z
[
b
].
apply
(
this
,
arguments
)},
bindTree
:
function
(
a
){
var
b
=
{
treeId
:
a
.
treeId
},
c
=
a
.
treeObj
;
a
.
view
.
txtSelectedEnable
||
c
.
bind
(
"selectstart"
,
u
).
css
({
"-moz-user-select"
:
"-moz-none"
});
c
.
bind
(
"click"
,
b
,
n
.
proxy
);
c
.
bind
(
"dblclick"
,
b
,
n
.
proxy
);
c
.
bind
(
"mouseover"
,
b
,
n
.
proxy
);
c
.
bind
(
"mouseout"
,
b
,
n
.
proxy
);
c
.
bind
(
"mousedown"
,
b
,
n
.
proxy
);
c
.
bind
(
"mouseup"
,
b
,
n
.
proxy
);
c
.
bind
(
"contextmenu"
,
b
,
n
.
proxy
)},
unbindTree
:
function
(
a
){
a
.
treeObj
.
unbind
(
"selectstart"
,
u
).
unbind
(
"click"
,
n
.
proxy
).
unbind
(
"dblclick"
,
n
.
proxy
).
unbind
(
"mouseover"
,
n
.
proxy
).
unbind
(
"mouseout"
,
n
.
proxy
).
unbind
(
"mousedown"
,
n
.
proxy
).
unbind
(
"mouseup"
,
n
.
proxy
).
unbind
(
"contextmenu"
,
n
.
proxy
)},
doProxy
:
function
(
a
){
for
(
var
b
=
v
).
css
({
"-moz-user-select"
:
"-moz-none"
});
c
.
bind
(
"click"
,
b
,
n
.
proxy
);
c
.
bind
(
"dblclick"
,
b
,
n
.
proxy
);
c
.
bind
(
"mouseover"
,
b
,
n
.
proxy
);
c
.
bind
(
"mouseout"
,
b
,
n
.
proxy
);
c
.
bind
(
"mousedown"
,
b
,
n
.
proxy
);
c
.
bind
(
"mouseup"
,
b
,
n
.
proxy
);
c
.
bind
(
"contextmenu"
,
b
,
n
.
proxy
)},
unbindTree
:
function
(
a
){
a
.
treeObj
.
unbind
(
"selectstart"
,
v
).
unbind
(
"click"
,
n
.
proxy
).
unbind
(
"dblclick"
,
n
.
proxy
).
unbind
(
"mouseover"
,
n
.
proxy
).
unbind
(
"mouseout"
,
n
.
proxy
).
unbind
(
"mousedown"
,
n
.
proxy
).
unbind
(
"mouseup"
,
n
.
proxy
).
unbind
(
"contextmenu"
,
n
.
proxy
)},
doProxy
:
function
(
a
){
for
(
var
b
=
[],
c
=
0
,
d
=
t
.
length
;
c
<
d
;
c
++
){
var
e
=
t
[
c
].
apply
(
this
,
arguments
);
b
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
b
},
proxy
:
function
(
a
){
var
b
=
e
.
getSetting
(
a
.
data
.
treeId
);
if
(
!
j
.
uCanDo
(
b
,
a
))
return
!
0
;
for
(
var
b
=
n
.
doProxy
(
a
),
c
=!
0
,
d
=
0
,
g
=
b
.
length
;
d
<
g
;
d
++
){
var
h
=
b
[
d
];
h
.
nodeEventCallback
&&
(
c
=
h
.
nodeEventCallback
.
apply
(
h
,[
a
,
h
.
node
])
&&
c
);
h
.
treeEventCallback
&&
(
c
=
h
.
treeEventCallback
.
apply
(
h
,[
a
,
h
.
node
])
&&
c
)}
return
c
}};
H
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
if
(
b
.
open
){
if
(
j
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
b
],
!
0
)
==
[],
c
=
0
,
d
=
u
.
length
;
c
<
d
;
c
++
){
var
e
=
u
[
c
].
apply
(
this
,
arguments
);
b
.
push
(
e
);
if
(
e
.
stop
)
break
}
return
b
},
proxy
:
function
(
a
){
var
b
=
e
.
getSetting
(
a
.
data
.
treeId
);
if
(
!
h
.
uCanDo
(
b
,
a
))
return
!
0
;
for
(
var
b
=
n
.
doProxy
(
a
),
c
=!
0
,
d
=
0
,
f
=
b
.
length
;
d
<
f
;
d
++
){
var
i
=
b
[
d
];
i
.
nodeEventCallback
&&
(
c
=
i
.
nodeEventCallback
.
apply
(
i
,[
a
,
i
.
node
])
&&
c
);
i
.
treeEventCallback
&&
(
c
=
i
.
treeEventCallback
.
apply
(
i
,[
a
,
i
.
node
])
&&
c
)}
return
c
}};
J
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
if
(
b
.
open
){
if
(
h
.
apply
(
c
.
callback
.
beforeCollapse
,[
c
.
treeId
,
b
],
!
0
)
==
!
1
)
return
!
0
}
else
if
(
j
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
b
],
!
0
)
==!
1
)
return
!
0
;
e
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
i
.
switchNode
(
c
,
b
);
return
!
0
};
I
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
(
a
.
ctrlKey
||
a
.
metaKey
)
&&
e
.
isSelectedNode
(
c
,
b
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
a
.
ctrlKey
||
a
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
j
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
b
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
i
.
cancelPreSelectedNode
(
c
,
b
):
i
.
selectNode
(
c
,
b
,
d
===
2
);
c
.
treeObj
.
trigger
(
f
.
event
.
CLICK
,
!
1
)
return
!
0
}
else
if
(
h
.
apply
(
c
.
callback
.
beforeExpand
,[
c
.
treeId
,
b
],
!
0
)
==!
1
)
return
!
0
;
e
.
getRoot
(
c
).
expandTriggerFlag
=!
0
;
j
.
switchNode
(
c
,
b
);
return
!
0
};
K
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
),
d
=
c
.
view
.
autoCancelSelected
&&
(
a
.
ctrlKey
||
a
.
metaKey
)
&&
e
.
isSelectedNode
(
c
,
b
)?
0
:
c
.
view
.
autoCancelSelected
&&
(
a
.
ctrlKey
||
a
.
metaKey
)
&&
c
.
view
.
selectedMulti
?
2
:
1
;
if
(
h
.
apply
(
c
.
callback
.
beforeClick
,[
c
.
treeId
,
b
,
d
],
!
0
)
==!
1
)
return
!
0
;
d
===
0
?
j
.
cancelPreSelectedNode
(
c
,
b
):
j
.
selectNode
(
c
,
b
,
d
===
2
);
c
.
treeObj
.
trigger
(
g
.
event
.
CLICK
,
[
a
,
c
.
treeId
,
b
,
d
]);
return
!
0
};
J
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
b
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseDown
,[
a
,
c
.
treeId
,
b
]);
return
!
0
};
K
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
b
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onMouseUp
,[
a
,
c
.
treeId
,
b
]);
return
!
0
};
L
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
b
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onDblClick
,[
a
,
c
.
treeId
,
b
]);
return
!
0
};
[
a
,
c
.
treeId
,
b
,
d
]);
return
!
0
};
L
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
h
.
apply
(
c
.
callback
.
beforeMouseDown
,[
c
.
treeId
,
b
],
!
0
)
&&
h
.
apply
(
c
.
callback
.
onMouseDown
,[
a
,
c
.
treeId
,
b
]);
return
!
0
};
M
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
h
.
apply
(
c
.
callback
.
beforeMouseUp
,[
c
.
treeId
,
b
],
!
0
)
&&
h
.
apply
(
c
.
callback
.
onMouseUp
,[
a
,
c
.
treeId
,
b
]);
return
!
0
};
N
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
h
.
apply
(
c
.
callback
.
beforeDblClick
,[
c
.
treeId
,
b
],
!
0
)
&&
h
.
apply
(
c
.
callback
.
onDblClick
,[
a
,
c
.
treeId
,
b
]);
return
!
0
};
M
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
j
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
b
],
!
0
)
&&
j
.
apply
(
c
.
callback
.
onRightClick
,[
a
,
c
.
treeId
,
b
]);
return
typeof
c
.
callback
.
onRightClick
!=
"function"
};
u
=
function
(
a
){
a
=
a
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
a
===
"input"
||
a
===
"textarea"
};
var
j
=
{
apply
:
function
(
a
,
b
,
c
){
return
typeof
a
==
"function"
?
a
.
apply
(
O
,
b
?
b
:[]):
c
},
canAsync
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
),
d
=
e
.
nodeIsParent
(
a
,
b
);
return
a
.
async
.
enable
&&
b
&&
d
&&!
(
b
.
zAsync
||
c
&&
c
.
length
>
O
=
function
(
a
,
b
){
var
c
=
e
.
getSetting
(
a
.
data
.
treeId
);
h
.
apply
(
c
.
callback
.
beforeRightClick
,[
c
.
treeId
,
b
],
!
0
)
&&
h
.
apply
(
c
.
callback
.
onRightClick
,[
a
,
c
.
treeId
,
b
]);
return
typeof
c
.
callback
.
onRightClick
!=
"function"
};
v
=
function
(
a
){
a
=
a
.
originalEvent
.
srcElement
.
nodeName
.
toLowerCase
();
return
a
===
"input"
||
a
===
"textarea"
};
var
h
=
{
apply
:
function
(
a
,
b
,
c
){
return
typeof
a
==
"function"
?
a
.
apply
(
Q
,
b
?
b
:[]):
c
},
canAsync
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
),
d
=
e
.
nodeIsParent
(
a
,
b
);
return
a
.
async
.
enable
&&
b
&&
d
&&!
(
b
.
zAsync
||
c
&&
c
.
length
>
0
)},
clone
:
function
(
a
){
if
(
a
===
null
)
return
null
;
var
b
=
j
.
isArray
(
a
)?[]:{},
c
;
for
(
c
in
a
)
b
[
c
]
=
a
[
c
]
instanceof
Date
?
new
Date
(
a
[
c
].
getTime
()):
typeof
a
[
c
]
===
"object"
?
j
.
clone
(
a
[
c
]):
a
[
c
];
return
b
},
eqs
:
function
(
a
,
b
){
return
a
.
toLowerCase
()
===
b
.
toLowerCase
()},
isArray
:
function
(
a
){
return
Object
.
prototype
.
toString
.
apply
(
a
)
===
"[object Array]"
},
isElement
:
function
(
a
){
return
typeof
HTMLElement
===
"object"
?
a
instanceof
HTMLElement
:
a
&&
typeof
a
===
"object"
&&
a
!==
null
&&
a
.
nodeType
===
1
&&
typeof
a
.
nodeName
===
"string"
},
$
:
function
(
a
,
0
)},
clone
:
function
(
a
){
if
(
a
===
null
)
return
null
;
var
b
=
h
.
isArray
(
a
)?[]:{},
c
;
for
(
c
in
a
)
b
[
c
]
=
a
[
c
]
instanceof
Date
?
new
Date
(
a
[
c
].
getTime
()):
typeof
a
[
c
]
===
"object"
?
h
.
clone
(
a
[
c
]):
a
[
c
];
return
b
},
eqs
:
function
(
a
,
b
){
return
a
.
toLowerCase
()
===
b
.
toLowerCase
()},
isArray
:
function
(
a
){
return
Object
.
prototype
.
toString
.
apply
(
a
)
===
"[object Array]"
},
isElement
:
function
(
a
){
return
typeof
HTMLElement
===
"object"
?
a
instanceof
HTMLElement
:
a
&&
typeof
a
===
"object"
&&
a
!==
null
&&
a
.
nodeType
===
1
&&
typeof
a
.
nodeName
===
"string"
},
$
:
function
(
a
,
b
,
c
){
b
&&
typeof
b
!=
"string"
&&
(
c
=
b
,
b
=
""
);
return
typeof
a
==
"string"
?
q
(
a
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
q
(
"#"
+
a
.
tId
+
b
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
a
,
b
,
c
){
if
(
!
b
)
return
null
;
for
(;
b
&&
b
.
id
!==
a
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
b
.
tagName
&&
d
<
e
;
d
++
)
if
(
j
.
eqs
(
b
.
tagName
,
c
[
d
].
tagName
)
&&
b
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
b
;
b
=
b
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
a
){
return
q
(
a
).
parent
(
"li"
).
get
(
0
)
||
q
(
a
).
parentsUntil
(
"li"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
a
,
b
){
return
q
(
a
).
closest
(
"#"
+
b
,
c
){
b
&&
typeof
b
!=
"string"
&&
(
c
=
b
,
b
=
""
);
return
typeof
a
==
"string"
?
r
(
a
,
c
?
c
.
treeObj
.
get
(
0
).
ownerDocument
:
null
):
r
(
"#"
+
a
.
tId
+
b
,
c
?
c
.
treeObj
:
null
)},
getMDom
:
function
(
a
,
b
,
c
){
if
(
!
b
)
return
null
;
for
(;
b
&&
b
.
id
!==
a
.
treeId
;){
for
(
var
d
=
0
,
e
=
c
.
length
;
b
.
tagName
&&
d
<
e
;
d
++
)
if
(
h
.
eqs
(
b
.
tagName
,
c
[
d
].
tagName
)
&&
b
.
getAttribute
(
c
[
d
].
attrName
)
!==
null
)
return
b
;
b
=
b
.
parentNode
}
return
null
},
getNodeMainDom
:
function
(
a
){
return
r
(
a
).
parent
(
"li"
).
get
(
0
)
||
r
(
a
).
parentsUntil
(
"li"
).
parent
().
get
(
0
)},
isChildOrSelf
:
function
(
a
,
b
){
return
r
(
a
).
closest
(
"#"
+
b
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
i
=
{
addNodes
:
function
(
a
,
b
,
c
,
d
,
g
){
var
h
=
e
.
nodeIsParent
(
a
,
b
);
if
(
!
a
.
data
.
keep
.
leaf
||!
b
||
h
)
if
(
j
.
isArray
(
d
)
||
(
d
=
[
d
]),
a
.
data
.
simpleData
.
enable
&&
(
d
=
e
.
transformTozTreeFormat
(
a
,
d
)),
b
){
var
h
=
l
(
b
,
f
.
id
.
SWITCH
,
a
),
k
=
l
(
b
,
f
.
id
.
ICON
,
a
),
m
=
l
(
b
,
f
.
id
.
UL
,
a
);
if
(
!
b
.
open
)
i
.
replaceSwitchClass
(
b
,
h
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
b
,
k
,
f
.
folder
.
CLOSE
),
b
.
open
=!
1
,
m
.
css
({
display
:
"none"
});
e
.
addNodesData
(
a
,
b
,
c
,
d
);
i
.
createNodes
(
a
,
b
.
level
+
1
,
d
,
b
,
c
);
g
||
i
.
expandCollapseParentNode
(
a
,
b
,
!
0
)}
else
e
.
addNodesData
(
a
,
b
).
length
>
0
},
uCanDo
:
function
(){
return
!
0
}},
j
=
{
addNodes
:
function
(
a
,
b
,
c
,
d
,
f
){
var
i
=
e
.
nodeIsParent
(
a
,
b
);
if
(
!
a
.
data
.
keep
.
leaf
||!
b
||
i
)
if
(
h
.
isArray
(
d
)
||
(
d
=
[
d
]),
a
.
data
.
simpleData
.
enable
&&
(
d
=
e
.
transformTozTreeFormat
(
a
,
d
)),
b
){
var
i
=
l
(
b
,
g
.
id
.
SWITCH
,
a
),
m
=
l
(
b
,
g
.
id
.
ICON
,
a
),
k
=
l
(
b
,
g
.
id
.
UL
,
a
);
if
(
!
b
.
open
)
j
.
replaceSwitchClass
(
b
,
i
,
g
.
folder
.
CLOSE
),
j
.
replaceIcoClass
(
b
,
m
,
g
.
folder
.
CLOSE
),
b
.
open
=!
1
,
k
.
css
({
display
:
"none"
});
e
.
addNodesData
(
a
,
b
,
c
,
d
);
j
.
createNodes
(
a
,
b
.
level
+
1
,
d
,
b
,
c
);
f
||
j
.
expandCollapseParentNode
(
a
,
b
,
!
0
)}
else
e
.
addNodesData
(
a
,
e
.
getRoot
(
a
),
c
,
d
),
i
.
createNodes
(
a
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
a
,
b
,
c
,
d
,
g
,
h
,
k
){
if
(
!
c
)
return
[];
var
f
=
[],
j
=
d
?
d
:
e
.
getRoot
(
a
),
j
=
e
.
nodeChildren
(
a
,
j
),
o
,
l
;
if
(
!
j
||
g
>=
j
.
length
-
c
.
length
)
g
=-
1
;
for
(
var
n
=
0
,
Q
=
c
.
length
;
n
<
Q
;
n
++
){
var
p
=
c
[
n
];
h
&&
(
o
=
(
g
===
0
||
j
.
length
==
c
.
length
)
&&
n
==
0
,
l
=
g
<
0
&&
n
==
c
.
length
-
1
,
e
.
initNode
(
a
,
b
,
p
,
d
,
o
,
l
,
k
),
e
.
addNodeCache
(
a
,
p
));
o
=
e
.
nodeIsParent
(
a
,
p
);
l
=
[];
var
q
=
e
.
nodeChildren
(
a
,
p
);
q
&&
q
.
length
>
0
&&
(
l
=
i
.
appendNodes
(
a
,
b
+
1
,
q
,
p
,
-
1
,
h
,
k
&&
p
.
open
));
k
&&
(
i
.
makeDOMNodeMainBefore
(
f
,
a
,
p
),
i
.
makeDOMNodeLine
(
f
,
e
.
getRoot
(
a
),
c
,
d
),
j
.
createNodes
(
a
,
0
,
d
,
null
,
c
)},
appendNodes
:
function
(
a
,
b
,
c
,
d
,
f
,
i
,
g
){
if
(
!
c
)
return
[];
var
k
=
[],
h
=
d
?
d
:
e
.
getRoot
(
a
),
h
=
e
.
nodeChildren
(
a
,
h
),
o
,
l
;
if
(
!
h
||
f
>=
h
.
length
-
c
.
length
)
f
=-
1
;
for
(
var
s
=
0
,
n
=
c
.
length
;
s
<
n
;
s
++
){
var
p
=
c
[
s
];
i
&&
(
o
=
(
f
===
0
||
h
.
length
==
c
.
length
)
&&
s
==
0
,
l
=
f
<
0
&&
s
==
c
.
length
-
1
,
e
.
initNode
(
a
,
b
,
p
,
d
,
o
,
l
,
g
),
e
.
addNodeCache
(
a
,
p
));
o
=
e
.
nodeIsParent
(
a
,
p
);
l
=
[];
var
I
=
e
.
nodeChildren
(
a
,
p
);
I
&&
I
.
length
>
0
&&
(
l
=
j
.
appendNodes
(
a
,
b
+
1
,
I
,
p
,
-
1
,
i
,
g
&&
p
.
open
));
g
&&
(
j
.
makeDOMNodeMainBefore
(
k
,
a
,
p
),
j
.
makeDOMNodeLine
(
k
,
a
,
p
),
e
.
getBeforeA
(
a
,
p
,
f
),
i
.
makeDOMNodeNameBefore
(
f
,
a
,
p
),
e
.
getInnerBeforeA
(
a
,
p
,
f
),
i
.
makeDOMNodeIcon
(
f
,
a
,
p
),
e
.
getInnerAfterA
(
a
,
p
,
f
),
i
.
makeDOMNodeNameAfter
(
f
,
a
,
p
),
e
.
getAfterA
(
a
,
p
,
f
),
o
&&
p
.
open
&&
i
.
makeUlHtml
(
a
,
p
,
f
,
l
.
join
(
""
)),
i
.
makeDOMNodeMainAfter
(
f
,
a
,
p
),
e
.
addCreatedNode
(
a
,
p
))}
return
f
},
appendParentULDom
:
function
(
a
,
b
){
var
c
=
[],
d
=
l
(
b
,
a
);
!
d
.
get
(
0
)
&&
b
.
parentTId
&&
(
i
.
appendParentULDom
(
a
,
b
.
getParentNode
()),
d
=
l
(
b
,
a
));
var
g
=
l
(
b
,
f
.
id
.
UL
,
a
);
g
.
get
(
0
)
&&
g
.
remove
();
g
=
e
.
nodeChildren
(
a
,
b
);
g
=
i
.
appendNodes
(
a
,
b
.
level
+
1
,
a
,
p
),
e
.
getBeforeA
(
a
,
p
,
k
),
j
.
makeDOMNodeNameBefore
(
k
,
a
,
p
),
e
.
getInnerBeforeA
(
a
,
p
,
k
),
j
.
makeDOMNodeIcon
(
k
,
a
,
p
),
e
.
getInnerAfterA
(
a
,
p
,
k
),
j
.
makeDOMNodeNameAfter
(
k
,
a
,
p
),
e
.
getAfterA
(
a
,
p
,
k
),
o
&&
p
.
open
&&
j
.
makeUlHtml
(
a
,
p
,
k
,
l
.
join
(
""
)),
j
.
makeDOMNodeMainAfter
(
k
,
a
,
p
),
e
.
addCreatedNode
(
a
,
p
))}
return
k
},
appendParentULDom
:
function
(
a
,
b
){
var
c
=
[],
d
=
l
(
b
,
a
);
!
d
.
get
(
0
)
&&
b
.
parentTId
&&
(
j
.
appendParentULDom
(
a
,
b
.
getParentNode
()),
d
=
l
(
b
,
a
));
var
f
=
l
(
b
,
g
.
id
.
UL
,
a
);
f
.
get
(
0
)
&&
f
.
remove
();
f
=
e
.
nodeChildren
(
a
,
b
);
f
=
j
.
appendNodes
(
a
,
b
.
level
+
1
,
g
,
b
,
-
1
,
!
1
,
!
0
);
i
.
makeUlHtml
(
a
,
b
,
c
,
g
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
a
,
b
,
c
,
d
){
var
g
,
h
;
g
=
e
.
nodeIsParent
(
a
,
b
);
if
(
b
&&!
g
)
return
j
.
apply
(
d
),
!
1
;
else
if
(
b
&&
b
.
isAjaxing
)
return
!
1
;
else
if
(
j
.
apply
(
a
.
callback
.
beforeAsync
,[
a
.
treeId
,
b
],
!
0
)
==!
1
)
return
j
.
apply
(
d
),
!
1
;
if
(
b
)
b
.
isAjaxing
=!
0
,
l
(
b
,
f
.
id
.
ICON
,
a
).
attr
({
style
:
""
,
"class"
:
f
.
className
.
BUTTON
+
" "
+
f
.
className
.
ICO_LOADING
});
var
k
=
{},
m
=
j
.
apply
(
a
.
async
.
autoParam
,[
a
.
treeId
,
b
],
a
.
async
.
autoParam
);
for
(
g
=
0
,
h
=
m
.
length
;
b
&&
g
<
h
;
g
++
){
var
r
=
m
[
g
].
split
(
"="
),
o
=
f
,
b
,
-
1
,
!
1
,
!
0
);
j
.
makeUlHtml
(
a
,
b
,
c
,
f
.
join
(
""
));
d
.
append
(
c
.
join
(
""
))},
asyncNode
:
function
(
a
,
b
,
c
,
d
){
var
f
,
i
;
f
=
e
.
nodeIsParent
(
a
,
b
);
if
(
b
&&!
f
)
return
h
.
apply
(
d
),
!
1
;
else
if
(
b
&&
b
.
isAjaxing
)
return
!
1
;
else
if
(
h
.
apply
(
a
.
callback
.
beforeAsync
,[
a
.
treeId
,
b
],
!
0
)
==!
1
)
return
h
.
apply
(
d
),
!
1
;
if
(
b
)
b
.
isAjaxing
=!
0
,
l
(
b
,
g
.
id
.
ICON
,
a
).
attr
({
style
:
""
,
"class"
:
g
.
className
.
BUTTON
+
" "
+
g
.
className
.
ICO_LOADING
});
var
m
=
{},
k
=
h
.
apply
(
a
.
async
.
autoParam
,[
a
.
treeId
,
b
],
a
.
async
.
autoParam
);
for
(
f
=
0
,
i
=
k
.
length
;
b
&&
f
<
i
;
f
++
){
var
q
=
k
[
f
].
split
(
"="
),
o
=
r
;
r
.
length
>
1
&&
(
o
=
r
[
1
],
r
=
r
[
0
]);
k
[
o
]
=
b
[
r
]}
m
=
j
.
apply
(
a
.
async
.
otherParam
,[
a
.
treeId
,
b
],
a
.
async
.
otherParam
);
if
(
j
.
isArray
(
m
))
for
(
g
=
0
,
h
=
m
.
length
;
g
<
h
;
g
+=
2
)
k
[
m
[
g
]]
=
m
[
g
+
1
];
else
for
(
var
n
in
m
)
k
[
n
]
=
m
[
n
];
var
P
=
e
.
getRoot
(
a
).
_ver
;
q
.
ajax
({
contentType
:
a
.
async
.
contentType
,
cache
:
!
1
,
type
:
a
.
async
.
type
,
url
:
j
.
apply
(
a
.
async
.
url
,[
a
.
treeId
,
b
],
a
.
async
.
url
),
data
:
a
.
async
.
contentType
.
indexOf
(
"application/json"
)
>-
1
?
JSON
.
stringify
(
k
):
k
,
dataType
:
a
.
async
.
dataType
,
headers
:
a
.
async
.
headers
,
xhrFields
:
a
.
async
.
xhrFields
,
success
:
function
(
h
){
if
(
P
==
q
;
q
.
length
>
1
&&
(
o
=
q
[
1
],
q
=
q
[
0
]);
m
[
o
]
=
b
[
q
]}
k
=
h
.
apply
(
a
.
async
.
otherParam
,[
a
.
treeId
,
b
],
a
.
async
.
otherParam
);
if
(
h
.
isArray
(
k
))
for
(
f
=
0
,
i
=
k
.
length
;
f
<
i
;
f
+=
2
)
m
[
k
[
f
]]
=
k
[
f
+
1
];
else
for
(
var
n
in
k
)
m
[
n
]
=
k
[
n
];
var
s
=
e
.
getRoot
(
a
).
_ver
;
r
.
ajax
({
contentType
:
a
.
async
.
contentType
,
cache
:
!
1
,
type
:
a
.
async
.
type
,
url
:
h
.
apply
(
a
.
async
.
url
,[
a
.
treeId
,
b
],
a
.
async
.
url
),
data
:
a
.
async
.
contentType
.
indexOf
(
"application/json"
)
>-
1
?
JSON
.
stringify
(
m
):
m
,
dataType
:
a
.
async
.
dataType
,
headers
:
a
.
async
.
headers
,
xhrFields
:
a
.
async
.
xhrFields
,
success
:
function
(
i
){
if
(
s
==
e
.
getRoot
(
a
).
_ver
){
var
k
=
[];
try
{
k
=!
h
||
h
.
length
==
0
?[]:
typeof
h
==
"string"
?
eval
(
"("
+
h
+
")"
):
h
}
catch
(
g
){
k
=
h
}
if
(
b
)
b
.
isAjaxing
=
null
,
b
.
zAsync
=!
0
;
i
.
setNodeLineIcos
(
a
,
b
);
k
&&
k
!==
""
?(
k
=
j
.
apply
(
a
.
async
.
dataFilter
,[
a
.
treeId
,
b
,
k
],
k
),
i
.
addNodes
(
a
,
b
,
-
1
,
k
?
j
.
clone
(
k
):[],
!!
c
)):
i
.
addNodes
(
a
,
b
,
-
1
,[],
!!
c
);
a
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_SUCCESS
,[
a
.
treeId
,
b
,
h
]);
j
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
h
){
if
(
P
==
e
.
getRoot
(
a
).
_ver
){
if
(
b
)
b
.
isAjaxing
=
null
;
i
.
setNodeLineIcos
(
a
,
b
);
a
.
treeObj
.
trigger
(
f
.
event
.
ASYNC_ERROR
,[
a
.
treeId
,
b
,
c
,
d
,
h
])}}});
e
.
getRoot
(
a
).
_ver
){
var
f
=
[];
try
{
f
=!
i
||
i
.
length
==
0
?[]:
typeof
i
==
"string"
?
eval
(
"("
+
i
+
")"
):
i
}
catch
(
k
){
f
=
i
}
if
(
b
)
b
.
isAjaxing
=
null
,
b
.
zAsync
=!
0
;
j
.
setNodeLineIcos
(
a
,
b
);
f
&&
f
!==
""
?(
f
=
h
.
apply
(
a
.
async
.
dataFilter
,[
a
.
treeId
,
b
,
f
],
f
),
j
.
addNodes
(
a
,
b
,
-
1
,
f
?
h
.
clone
(
f
):[],
!!
c
)):
j
.
addNodes
(
a
,
b
,
-
1
,[],
!!
c
);
a
.
treeObj
.
trigger
(
g
.
event
.
ASYNC_SUCCESS
,[
a
.
treeId
,
b
,
i
]);
h
.
apply
(
d
)}},
error
:
function
(
c
,
d
,
i
){
if
(
s
==
e
.
getRoot
(
a
).
_ver
){
if
(
b
)
b
.
isAjaxing
=
null
;
j
.
setNodeLineIcos
(
a
,
b
);
a
.
treeObj
.
trigger
(
g
.
event
.
ASYNC_ERROR
,[
a
.
treeId
,
b
,
c
,
d
,
i
])}}});
return
!
0
},
cancelPreSelectedNode
:
function
(
a
,
b
,
c
){
var
d
=
e
.
getRoot
(
a
).
curSelectedList
,
g
,
h
;
for
(
g
=
d
.
length
-
1
;
g
>=
0
;
g
--
)
if
(
h
=
d
[
g
],
b
===
h
||!
b
&&
(
!
c
||
c
!==
h
))
if
(
l
(
h
,
f
.
id
.
A
,
a
).
removeClass
(
f
.
node
.
CURSELECTED
),
b
){
e
.
removeSelectedNode
(
a
,
b
);
break
}
else
d
.
splice
(
g
,
1
),
a
.
treeObj
.
trigger
(
f
.
event
.
UNSELECTED
,[
a
.
treeId
,
h
])},
createNodeCallback
:
function
(
a
){
if
(
a
.
callback
.
onNodeCreated
||
a
.
view
.
addDiyDom
)
for
(
var
b
=
e
.
getRoot
(
a
);
b
.
createdNodes
.
length
>
0
;){
var
c
=
b
.
createdNodes
.
shift
();
j
.
apply
(
a
.
view
.
addDiyDom
,[
a
.
treeId
,
c
]);
a
.
callback
.
onNodeCreated
&&
return
!
0
},
cancelPreSelectedNode
:
function
(
a
,
b
,
c
){
var
d
=
e
.
getRoot
(
a
).
curSelectedList
,
f
,
i
;
for
(
f
=
d
.
length
-
1
;
f
>=
0
;
f
--
)
if
(
i
=
d
[
f
],
b
===
i
||!
b
&&
(
!
c
||
c
!==
i
))
if
(
l
(
i
,
g
.
id
.
A
,
a
).
removeClass
(
g
.
node
.
CURSELECTED
),
b
){
e
.
removeSelectedNode
(
a
,
b
);
break
}
else
d
.
splice
(
f
,
1
),
a
.
treeObj
.
trigger
(
g
.
event
.
UNSELECTED
,[
a
.
treeId
,
i
])},
createNodeCallback
:
function
(
a
){
if
(
a
.
callback
.
onNodeCreated
||
a
.
view
.
addDiyDom
)
for
(
var
b
=
e
.
getRoot
(
a
);
b
.
createdNodes
.
length
>
0
;){
var
c
=
b
.
createdNodes
.
shift
();
h
.
apply
(
a
.
view
.
addDiyDom
,[
a
.
treeId
,
c
]);
a
.
callback
.
onNodeCreated
&&
a
.
treeObj
.
trigger
(
f
.
event
.
NODECREATED
,[
a
.
treeId
,
c
])}},
createNodes
:
function
(
a
,
b
,
c
,
d
,
g
){
if
(
c
&&
c
.
length
!=
0
){
var
h
=
e
.
getRoot
(
a
),
k
=!
d
||
d
.
open
||!!
l
(
e
.
nodeChildren
(
a
,
d
)[
0
],
a
).
get
(
0
);
h
.
createdNodes
=
[];
var
b
=
i
.
appendNodes
(
a
,
b
,
c
,
d
,
g
,
!
0
,
k
),
m
,
j
;
d
?(
d
=
l
(
d
,
f
.
id
.
UL
,
a
),
d
.
get
(
0
)
&&
(
m
=
d
)):
m
=
a
.
treeObj
;
m
&&
(
g
>=
0
&&
(
j
=
m
.
children
()[
g
]),
g
>=
0
&&
j
?
q
(
j
).
before
(
b
.
join
(
""
)):
m
.
append
(
b
.
join
(
""
)));
i
.
createNodeCallback
(
a
)}},
destroy
:
function
(
a
){
a
&&
(
e
.
initCache
(
a
),
e
.
initRoot
(
a
),
n
.
unbindTree
(
a
),
n
.
unbindEvent
(
a
),
a
.
treeObj
.
empty
(),
delete
s
[
a
.
treeId
])},
a
.
treeObj
.
trigger
(
g
.
event
.
NODECREATED
,[
a
.
treeId
,
c
])}},
createNodes
:
function
(
a
,
b
,
c
,
d
,
f
){
if
(
c
&&
c
.
length
!=
0
){
var
i
=
e
.
getRoot
(
a
),
m
=!
d
||
d
.
open
||!!
l
(
e
.
nodeChildren
(
a
,
d
)[
0
],
a
).
get
(
0
);
i
.
createdNodes
=
[];
var
b
=
j
.
appendNodes
(
a
,
b
,
c
,
d
,
f
,
!
0
,
m
),
k
,
h
;
d
?(
d
=
l
(
d
,
g
.
id
.
UL
,
a
),
d
.
get
(
0
)
&&
(
k
=
d
)):
k
=
a
.
treeObj
;
k
&&
(
f
>=
0
&&
(
h
=
k
.
children
()[
f
]),
f
>=
0
&&
h
?
r
(
h
).
before
(
b
.
join
(
""
)):
k
.
append
(
b
.
join
(
""
)));
j
.
createNodeCallback
(
a
)}},
destroy
:
function
(
a
){
a
&&
(
e
.
initCache
(
a
),
e
.
initRoot
(
a
),
n
.
unbindTree
(
a
),
n
.
unbindEvent
(
a
),
a
.
treeObj
.
empty
(),
delete
t
[
a
.
treeId
])},
expandCollapseNode
:
function
(
a
,
b
,
c
,
d
,
g
){
var
h
=
e
.
getRoot
(
a
),
k
;
if
(
b
){
var
m
=
e
.
nodeChildren
(
a
,
b
),
r
=
e
.
nodeIsParent
(
a
,
b
);
if
(
h
.
expandTriggerFlag
)
k
=
g
,
g
=
function
(){
k
&&
k
();
b
.
open
?
a
.
treeObj
.
trigger
(
f
.
event
.
EXPAND
,[
a
.
treeId
,
b
]):
a
.
treeObj
.
trigger
(
f
.
event
.
COLLAPSE
,[
a
.
treeId
,
b
])},
h
.
expandTriggerFlag
=!
1
;
if
(
!
b
.
open
&&
r
&&
(
!
l
(
b
,
f
.
id
.
UL
,
a
).
get
(
0
)
||
m
&&
m
.
length
>
0
&&!
l
(
m
[
0
],
a
).
get
(
0
)))
i
.
appendParentULDom
(
a
,
b
),
i
.
createNodeCallback
(
a
);
if
(
b
.
open
==
c
)
j
.
apply
(
g
,[]);
else
{
var
c
=
l
(
b
,
f
.
id
.
UL
,
a
),
h
=
l
(
b
,
f
.
id
.
SWITCH
,
a
),
o
=
l
(
b
,
f
.
id
.
ICON
,
expandCollapseNode
:
function
(
a
,
b
,
c
,
d
,
f
){
var
i
=
e
.
getRoot
(
a
),
m
;
if
(
b
){
var
k
=
e
.
nodeChildren
(
a
,
b
),
q
=
e
.
nodeIsParent
(
a
,
b
);
if
(
i
.
expandTriggerFlag
)
m
=
f
,
f
=
function
(){
m
&&
m
();
b
.
open
?
a
.
treeObj
.
trigger
(
g
.
event
.
EXPAND
,[
a
.
treeId
,
b
]):
a
.
treeObj
.
trigger
(
g
.
event
.
COLLAPSE
,[
a
.
treeId
,
b
])},
i
.
expandTriggerFlag
=!
1
;
if
(
!
b
.
open
&&
q
&&
(
!
l
(
b
,
g
.
id
.
UL
,
a
).
get
(
0
)
||
k
&&
k
.
length
>
0
&&!
l
(
k
[
0
],
a
).
get
(
0
)))
j
.
appendParentULDom
(
a
,
b
),
j
.
createNodeCallback
(
a
);
if
(
b
.
open
==
c
)
h
.
apply
(
f
,[]);
else
{
var
c
=
l
(
b
,
g
.
id
.
UL
,
a
),
i
=
l
(
b
,
g
.
id
.
SWITCH
,
a
),
o
=
l
(
b
,
g
.
id
.
ICON
,
a
);
r
?(
b
.
open
=!
b
.
open
,
b
.
iconOpen
&&
b
.
iconClose
&&
o
.
attr
(
"style"
,
i
.
makeNodeIcoStyle
(
a
,
b
)),
b
.
open
?(
i
.
replaceSwitchClass
(
b
,
h
,
f
.
folder
.
OPEN
),
i
.
replaceIcoClass
(
b
,
o
,
f
.
folder
.
OPEN
),
d
==!
1
||
a
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
j
.
apply
(
g
,[])):
m
&&
m
.
length
>
0
?
c
.
slideDown
(
a
.
view
.
expandSpeed
,
g
):(
c
.
show
(),
j
.
apply
(
g
,[]))):(
i
.
replaceSwitchClass
(
b
,
h
,
f
.
folder
.
CLOSE
),
i
.
replaceIcoClass
(
b
,
o
,
f
.
folder
.
CLOSE
),
d
==!
1
||
a
.
view
.
expandSpeed
==
""
||!
(
m
&&
m
.
length
>
0
)?(
c
.
hide
(),
j
.
apply
(
g
,[])):
c
.
slideUp
(
a
.
view
.
expandSpeed
,
g
))):
j
.
apply
(
g
,[])}}
else
j
.
apply
(
g
,
a
);
q
?(
b
.
open
=!
b
.
open
,
b
.
iconOpen
&&
b
.
iconClose
&&
o
.
attr
(
"style"
,
j
.
makeNodeIcoStyle
(
a
,
b
)),
b
.
open
?(
j
.
replaceSwitchClass
(
b
,
i
,
g
.
folder
.
OPEN
),
j
.
replaceIcoClass
(
b
,
o
,
g
.
folder
.
OPEN
),
d
==!
1
||
a
.
view
.
expandSpeed
==
""
?(
c
.
show
(),
h
.
apply
(
f
,[])):
k
&&
k
.
length
>
0
?
c
.
slideDown
(
a
.
view
.
expandSpeed
,
f
):(
c
.
show
(),
h
.
apply
(
f
,[]))):(
j
.
replaceSwitchClass
(
b
,
i
,
g
.
folder
.
CLOSE
),
j
.
replaceIcoClass
(
b
,
o
,
g
.
folder
.
CLOSE
),
d
==!
1
||
a
.
view
.
expandSpeed
==
""
||!
(
k
&&
k
.
length
>
0
)?(
c
.
hide
(),
h
.
apply
(
f
,[])):
c
.
slideUp
(
a
.
view
.
expandSpeed
,
f
))):
h
.
apply
(
f
,[])}}
else
h
.
apply
(
f
,
[])},
expandCollapseParentNode
:
function
(
a
,
b
,
c
,
d
,
e
){
b
&&
(
b
.
parentTId
?(
i
.
expandCollapseNode
(
a
,
b
,
c
,
d
),
b
.
parentTId
&&
i
.
expandCollapseParentNode
(
a
,
b
.
getParentNode
(),
c
,
d
,
e
)):
i
.
expandCollapseNode
(
a
,
b
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
a
,
b
,
c
,
d
,
g
){
var
h
=
e
.
getRoot
(
a
),
h
=
b
?
e
.
nodeChildren
(
a
,
b
):
e
.
nodeChildren
(
a
,
h
),
k
=
b
?
!
1
:
d
,
f
=
e
.
getRoot
(
a
).
expandTriggerFlag
;
e
.
getRoot
(
a
).
expandTriggerFlag
=!
1
;
if
(
h
)
for
(
var
j
=
0
,
l
=
h
.
length
;
j
<
l
;
j
++
)
h
[
j
]
&&
i
.
expandCollapseSonNode
(
a
,
h
[
j
],
c
,
k
);
e
.
getRoot
(
a
).
expandTriggerFlag
=
f
;
i
.
expandCollapseNode
(
a
,
[])},
expandCollapseParentNode
:
function
(
a
,
b
,
c
,
d
,
e
){
b
&&
(
b
.
parentTId
?(
j
.
expandCollapseNode
(
a
,
b
,
c
,
d
),
b
.
parentTId
&&
j
.
expandCollapseParentNode
(
a
,
b
.
getParentNode
(),
c
,
d
,
e
)):
j
.
expandCollapseNode
(
a
,
b
,
c
,
d
,
e
))},
expandCollapseSonNode
:
function
(
a
,
b
,
c
,
d
,
f
){
var
i
=
e
.
getRoot
(
a
),
i
=
b
?
e
.
nodeChildren
(
a
,
b
):
e
.
nodeChildren
(
a
,
i
),
g
=
b
?
!
1
:
d
,
k
=
e
.
getRoot
(
a
).
expandTriggerFlag
;
e
.
getRoot
(
a
).
expandTriggerFlag
=!
1
;
if
(
i
)
for
(
var
h
=
0
,
l
=
i
.
length
;
h
<
l
;
h
++
)
i
[
h
]
&&
j
.
expandCollapseSonNode
(
a
,
i
[
h
],
c
,
g
);
e
.
getRoot
(
a
).
expandTriggerFlag
=
k
;
j
.
expandCollapseNode
(
a
,
b
,
c
,
d
,
g
)},
isSelectedNode
:
function
(
a
,
b
){
if
(
!
b
)
return
!
1
;
var
c
=
e
.
getRoot
(
a
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
1
;
d
>=
0
;
d
--
)
if
(
b
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
a
,
b
,
c
){
var
d
=
e
.
nodeName
(
b
,
c
),
d
=
b
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"&"
).
replace
(
/</g
,
"<"
).
replace
(
/>/g
,
">"
);
a
.
push
(
"<span id='"
,
c
.
tId
,
f
.
id
.
ICON
,
"' title='' treeNode"
,
f
.
id
.
ICON
,
" class='"
,
i
.
makeNodeIcoClass
(
b
,
c
),
"' style='"
,
i
.
makeNodeIcoStyle
(
b
,
c
),
"'></span><span id='"
,
c
.
tId
,
f
.
id
.
SPAN
,
"' class='"
,
f
.
className
.
NAME
,
"'>"
,
b
,
c
,
d
,
f
)},
isSelectedNode
:
function
(
a
,
b
){
if
(
!
b
)
return
!
1
;
var
c
=
e
.
getRoot
(
a
).
curSelectedList
,
d
;
for
(
d
=
c
.
length
-
1
;
d
>=
0
;
d
--
)
if
(
b
===
c
[
d
])
return
!
0
;
return
!
1
},
makeDOMNodeIcon
:
function
(
a
,
b
,
c
){
var
d
=
e
.
nodeName
(
b
,
c
),
d
=
b
.
view
.
nameIsHTML
?
d
:
d
.
replace
(
/&/g
,
"&"
).
replace
(
/</g
,
"<"
).
replace
(
/>/g
,
">"
);
a
.
push
(
"<span id='"
,
c
.
tId
,
g
.
id
.
ICON
,
"' title='' treeNode"
,
g
.
id
.
ICON
,
" class='"
,
j
.
makeNodeIcoClass
(
b
,
c
),
"' style='"
,
j
.
makeNodeIcoStyle
(
b
,
c
),
"'></span><span id='"
,
c
.
tId
,
g
.
id
.
SPAN
,
"' class='"
,
g
.
className
.
NAME
,
"'>"
,
d
,
"</span>"
)},
makeDOMNodeLine
:
function
(
a
,
b
,
c
){
a
.
push
(
"<span id='"
,
c
.
tId
,
f
.
id
.
SWITCH
,
"' title='' class='"
,
i
.
makeNodeLineClass
(
b
,
c
),
"' treeNode"
,
f
.
id
.
SWITCH
,
"></span>"
)},
makeDOMNodeMainAfter
:
function
(
a
){
a
.
push
(
"</li>"
)},
makeDOMNodeMainBefore
:
function
(
a
,
b
,
c
){
a
.
push
(
"<li id='"
,
c
.
tId
,
"' class='"
,
f
.
className
.
LEVEL
,
c
.
level
,
"' tabindex='0' hidefocus='true' treenode>"
)},
makeDOMNodeNameAfter
:
function
(
a
){
a
.
push
(
"</a>"
)},
makeDOMNodeNameBefore
:
function
(
a
,
b
,
c
){
var
d
=
e
.
nodeTitle
(
b
,
c
),
g
=
i
.
makeNodeUrl
(
b
,
c
),
h
=
i
.
makeNodeFontCss
(
b
,
d
,
"</span>"
)},
makeDOMNodeLine
:
function
(
a
,
b
,
c
){
a
.
push
(
"<span id='"
,
c
.
tId
,
g
.
id
.
SWITCH
,
"' title='' class='"
,
j
.
makeNodeLineClass
(
b
,
c
),
"' treeNode"
,
g
.
id
.
SWITCH
,
"></span>"
)},
makeDOMNodeMainAfter
:
function
(
a
){
a
.
push
(
"</li>"
)},
makeDOMNodeMainBefore
:
function
(
a
,
b
,
c
){
a
.
push
(
"<li id='"
,
c
.
tId
,
"' class='"
,
g
.
className
.
LEVEL
,
c
.
level
,
"' tabindex='0' hidefocus='true' treenode>"
)},
makeDOMNodeNameAfter
:
function
(
a
){
a
.
push
(
"</a>"
)},
makeDOMNodeNameBefore
:
function
(
a
,
b
,
c
){
var
d
=
e
.
nodeTitle
(
b
,
c
),
f
=
j
.
makeNodeUrl
(
b
,
c
),
i
=
j
.
makeNodeFontCss
(
b
,
c
),
k
=
[],
m
;
for
(
m
in
h
)
k
.
push
(
m
,
":"
,
h
[
m
],
";"
);
a
.
push
(
"<a id='"
,
c
.
tId
,
f
.
id
.
A
,
"' class='"
,
f
.
className
.
LEVEL
,
c
.
level
,
"' treeNode"
,
f
.
id
.
A
,
' onclick="'
,
c
.
click
||
""
,
'" '
,
g
!=
null
&&
g
.
length
>
0
?
"href='"
+
g
+
"'"
:
""
,
" target='"
,
i
.
makeNodeTarget
(
c
),
"' style='"
,
k
.
join
(
""
),
"'"
);
j
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
c
],
b
.
view
.
showTitle
)
&&
d
&&
a
.
push
(
"title='"
,
d
.
replace
(
/'/g
,
"'"
).
replace
(
/</g
,
"<"
).
replace
(
/>/g
,
">"
),
"'"
);
a
.
push
(
">"
)},
makeNodeFontCss
:
function
(
a
,
b
){
var
c
=
j
.
apply
(
a
.
view
.
fontCss
,[
a
.
treeId
,
b
],
a
.
view
.
fontCss
);
c
),
m
=
[],
k
;
for
(
k
in
i
)
m
.
push
(
k
,
":"
,
i
[
k
],
";"
);
a
.
push
(
"<a id='"
,
c
.
tId
,
g
.
id
.
A
,
"' class='"
,
g
.
className
.
LEVEL
,
c
.
level
,
"' treeNode"
,
g
.
id
.
A
,
' onclick="'
,
c
.
click
||
""
,
'" '
,
f
!=
null
&&
f
.
length
>
0
?
"href='"
+
f
+
"'"
:
""
,
" target='"
,
j
.
makeNodeTarget
(
c
),
"' style='"
,
m
.
join
(
""
),
"'"
);
h
.
apply
(
b
.
view
.
showTitle
,[
b
.
treeId
,
c
],
b
.
view
.
showTitle
)
&&
d
&&
a
.
push
(
"title='"
,
d
.
replace
(
/'/g
,
"'"
).
replace
(
/</g
,
"<"
).
replace
(
/>/g
,
">"
),
"'"
);
a
.
push
(
">"
)},
makeNodeFontCss
:
function
(
a
,
b
){
var
c
=
h
.
apply
(
a
.
view
.
fontCss
,[
a
.
treeId
,
b
],
a
.
view
.
fontCss
);
return
c
&&
typeof
c
!=
"function"
?
c
:{}},
makeNodeIcoClass
:
function
(
a
,
b
){
var
c
=
[
"ico"
];
if
(
!
b
.
isAjaxing
){
var
d
=
e
.
nodeIsParent
(
a
,
b
);
c
[
0
]
=
(
b
.
iconSkin
?
b
.
iconSkin
+
"_"
:
""
)
+
c
[
0
];
d
?
c
.
push
(
b
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
)}
return
f
.
className
.
BUTTON
+
" "
+
c
.
join
(
"_"
)},
makeNodeIcoStyle
:
function
(
a
,
b
){
var
c
=
[];
if
(
!
b
.
isAjaxing
){
var
d
=
e
.
nodeIsParent
(
a
,
b
)
&&
b
.
iconOpen
&&
b
.
iconClose
?
b
.
open
?
b
.
iconOpen
:
b
.
iconClose
:
b
[
a
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"background:url("
,
d
,
") 0 0 no-repeat;"
);(
a
.
view
.
showIcon
==
return
c
&&
typeof
c
!=
"function"
?
c
:{}},
makeNodeIcoClass
:
function
(
a
,
b
){
var
c
=
[
"ico"
];
if
(
!
b
.
isAjaxing
){
var
d
=
e
.
nodeIsParent
(
a
,
b
);
c
[
0
]
=
(
b
.
iconSkin
?
b
.
iconSkin
+
"_"
:
""
)
+
c
[
0
];
d
?
c
.
push
(
b
.
open
?
g
.
folder
.
OPEN
:
g
.
folder
.
CLOSE
):
c
.
push
(
g
.
folder
.
DOCU
)}
return
g
.
className
.
BUTTON
+
" "
+
c
.
join
(
"_"
)},
makeNodeIcoStyle
:
function
(
a
,
b
){
var
c
=
[];
if
(
!
b
.
isAjaxing
){
var
d
=
e
.
nodeIsParent
(
a
,
b
)
&&
b
.
iconOpen
&&
b
.
iconClose
?
b
.
open
?
b
.
iconOpen
:
b
.
iconClose
:
b
[
a
.
data
.
key
.
icon
];
d
&&
c
.
push
(
"background:url("
,
d
,
") 0 0 no-repeat;"
);(
a
.
view
.
showIcon
==
!
1
||!
j
.
apply
(
a
.
view
.
showIcon
,[
a
.
treeId
,
b
],
!
0
))
&&
c
.
push
(
"width:0px;height:0px;"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
a
,
b
){
var
c
=
[];
a
.
view
.
showLine
?
b
.
level
==
0
&&
b
.
isFirstNode
&&
b
.
isLastNode
?
c
.
push
(
f
.
line
.
ROOT
):
b
.
level
==
0
&&
b
.
isFirstNode
?
c
.
push
(
f
.
line
.
ROOTS
):
b
.
isLastNode
?
c
.
push
(
f
.
line
.
BOTTOM
):
c
.
push
(
f
.
line
.
CENTER
):
c
.
push
(
f
.
line
.
NOLINE
);
e
.
nodeIsParent
(
a
,
b
)?
c
.
push
(
b
.
open
?
f
.
folder
.
OPEN
:
f
.
folder
.
CLOSE
):
c
.
push
(
f
.
folder
.
DOCU
);
return
i
.
makeNodeLineClassEx
(
b
)
+
c
.
join
(
"_"
)},
makeNodeLineClassEx
:
function
(
a
){
return
f
.
className
.
BUTTON
+
!
1
||!
h
.
apply
(
a
.
view
.
showIcon
,[
a
.
treeId
,
b
],
!
0
))
&&
c
.
push
(
"width:0px;height:0px;"
)}
return
c
.
join
(
""
)},
makeNodeLineClass
:
function
(
a
,
b
){
var
c
=
[];
a
.
view
.
showLine
?
b
.
level
==
0
&&
b
.
isFirstNode
&&
b
.
isLastNode
?
c
.
push
(
g
.
line
.
ROOT
):
b
.
level
==
0
&&
b
.
isFirstNode
?
c
.
push
(
g
.
line
.
ROOTS
):
b
.
isLastNode
?
c
.
push
(
g
.
line
.
BOTTOM
):
c
.
push
(
g
.
line
.
CENTER
):
c
.
push
(
g
.
line
.
NOLINE
);
e
.
nodeIsParent
(
a
,
b
)?
c
.
push
(
b
.
open
?
g
.
folder
.
OPEN
:
g
.
folder
.
CLOSE
):
c
.
push
(
g
.
folder
.
DOCU
);
return
j
.
makeNodeLineClassEx
(
b
)
+
c
.
join
(
"_"
)},
makeNodeLineClassEx
:
function
(
a
){
return
g
.
className
.
BUTTON
+
" "
+
f
.
className
.
LEVEL
+
a
.
level
+
" "
+
f
.
className
.
SWITCH
+
" "
},
makeNodeTarget
:
function
(
a
){
return
a
.
target
||
"_blank"
},
makeNodeUrl
:
function
(
a
,
b
){
var
c
=
a
.
data
.
key
.
url
;
return
b
[
c
]?
b
[
c
]:
null
},
makeUlHtml
:
function
(
a
,
b
,
c
,
d
){
c
.
push
(
"<ul id='"
,
b
.
tId
,
f
.
id
.
UL
,
"' class='"
,
f
.
className
.
LEVEL
,
b
.
level
,
" "
,
i
.
makeUlLineClass
(
a
,
b
),
"' style='display:"
,
b
.
open
?
"block"
:
"none"
,
"'>"
);
c
.
push
(
d
);
c
.
push
(
"</ul>"
)},
makeUlLineClass
:
function
(
a
,
b
){
return
a
.
view
.
showLine
&&!
b
.
isLastNode
?
f
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
a
,
b
){
if
(
b
){
var
c
=
" "
+
g
.
className
.
LEVEL
+
a
.
level
+
" "
+
g
.
className
.
SWITCH
+
" "
},
makeNodeTarget
:
function
(
a
){
return
a
.
target
||
"_blank"
},
makeNodeUrl
:
function
(
a
,
b
){
var
c
=
a
.
data
.
key
.
url
;
return
b
[
c
]?
b
[
c
]:
null
},
makeUlHtml
:
function
(
a
,
b
,
c
,
d
){
c
.
push
(
"<ul id='"
,
b
.
tId
,
g
.
id
.
UL
,
"' class='"
,
g
.
className
.
LEVEL
,
b
.
level
,
" "
,
j
.
makeUlLineClass
(
a
,
b
),
"' style='display:"
,
b
.
open
?
"block"
:
"none"
,
"'>"
);
c
.
push
(
d
);
c
.
push
(
"</ul>"
)},
makeUlLineClass
:
function
(
a
,
b
){
return
a
.
view
.
showLine
&&!
b
.
isLastNode
?
g
.
line
.
LINE
:
""
},
removeChildNodes
:
function
(
a
,
b
){
if
(
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
);
if
(
c
){
for
(
var
d
=
0
,
g
=
c
.
length
;
d
<
g
;
d
++
)
e
.
removeNodeCache
(
a
,
c
[
d
]);
e
.
removeSelectedNode
(
a
);
delete
b
[
a
.
data
.
key
.
children
];
a
.
data
.
keep
.
parent
?
l
(
b
,
f
.
id
.
UL
,
a
).
empty
():(
e
.
nodeIsParent
(
a
,
b
,
!
1
),
b
.
open
=!
1
,
c
=
l
(
b
,
f
.
id
.
SWITCH
,
a
),
d
=
l
(
b
,
f
.
id
.
ICON
,
a
),
i
.
replaceSwitchClass
(
b
,
c
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
b
,
d
,
f
.
folder
.
DOCU
),
l
(
b
,
f
.
id
.
UL
,
a
).
remove
())}}},
scrollIntoView
:
function
(
a
,
b
){
if
(
b
)
if
(
typeof
Element
===
"undefined"
){
var
c
=
a
.
treeObj
.
get
(
0
).
getBoundingClientRect
(),
d
=
b
.
getBoundingClientRect
();(
d
.
top
<
e
.
nodeChildren
(
a
,
b
);
if
(
c
){
for
(
var
d
=
0
,
f
=
c
.
length
;
d
<
f
;
d
++
)
e
.
removeNodeCache
(
a
,
c
[
d
]);
e
.
removeSelectedNode
(
a
);
delete
b
[
a
.
data
.
key
.
children
];
a
.
data
.
keep
.
parent
?
l
(
b
,
g
.
id
.
UL
,
a
).
empty
():(
e
.
nodeIsParent
(
a
,
b
,
!
1
),
b
.
open
=!
1
,
c
=
l
(
b
,
g
.
id
.
SWITCH
,
a
),
d
=
l
(
b
,
g
.
id
.
ICON
,
a
),
j
.
replaceSwitchClass
(
b
,
c
,
g
.
folder
.
DOCU
),
j
.
replaceIcoClass
(
b
,
d
,
g
.
folder
.
DOCU
),
l
(
b
,
g
.
id
.
UL
,
a
).
remove
())}}},
scrollIntoView
:
function
(
a
,
b
){
if
(
b
)
if
(
typeof
Element
===
"undefined"
){
var
c
=
a
.
treeObj
.
get
(
0
).
getBoundingClientRect
(),
d
=
b
.
getBoundingClientRect
();(
d
.
top
<
c
.
top
||
d
.
bottom
>
c
.
bottom
||
d
.
right
>
c
.
right
||
d
.
left
<
c
.
left
)
&&
b
.
scrollIntoView
()}
else
{
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
function
(
a
){
function
b
(
a
,
c
,
d
,
f
){
return
{
left
:
a
,
top
:
c
,
width
:
d
,
height
:
f
,
right
:
a
+
d
,
bottom
:
c
+
f
,
translate
:
function
(
e
,
g
){
return
b
(
e
+
a
,
g
+
c
,
d
,
f
)},
relativeFromTo
:
function
(
g
,
k
){
var
i
=
a
,
j
=
c
,
g
=
g
.
offsetParent
,
k
=
k
.
offsetParent
;
if
(
g
===
k
)
return
e
;
for
(;
g
;
g
=
g
.
offsetParent
)
i
+=
g
.
offsetLeft
+
g
.
clientLeft
,
j
+=
g
.
offsetTop
+
g
.
clientTop
;
for
(;
k
;
k
=
k
.
offsetParent
)
i
-=
c
.
top
||
d
.
bottom
>
c
.
bottom
||
d
.
right
>
c
.
right
||
d
.
left
<
c
.
left
)
&&
b
.
scrollIntoView
()}
else
{
if
(
!
Element
.
prototype
.
scrollIntoViewIfNeeded
)
Element
.
prototype
.
scrollIntoViewIfNeeded
=
function
(
a
){
function
b
(
a
,
c
){
return
{
start
:
a
,
length
:
c
,
end
:
a
+
c
}}
function
c
(
b
,
d
){
return
!
1
===
a
||
d
.
start
<
b
.
end
&&
b
.
start
<
d
.
end
?
Math
.
max
(
b
.
end
-
d
.
length
,
Math
.
min
(
d
.
start
,
b
.
start
)):(
b
.
start
+
b
.
end
-
d
.
length
)
/
2
}
function
d
(
a
,
b
){
return
{
x
:
a
,
y
:
b
,
translate
:
function
(
c
,
i
){
return
d
(
a
+
c
,
b
+
i
)}}}
function
e
(
a
,
b
){
for
(;
a
;)
b
=
b
.
translate
(
a
.
offsetLeft
,
a
.
offsetTop
),
k
.
offsetLeft
+
k
.
clientLeft
,
j
-=
k
.
offsetTop
+
k
.
clientTop
;
return
b
(
i
,
j
,
d
,
f
)}}}
for
(
var
c
,
d
=
this
,
e
=
b
(
this
.
offsetLeft
,
this
.
offsetTop
,
this
.
offsetWidth
,
this
.
offsetHeight
);
j
.
isElement
(
c
=
d
.
parentNode
);){
var
f
=
c
.
offsetLeft
+
c
.
clientLeft
,
i
=
c
.
offsetTop
+
c
.
clientTop
,
e
=
e
.
relativeFromTo
(
d
,
c
).
translate
(
-
f
,
-
i
);
c
.
scrollLeft
=!
1
===
a
||
e
.
left
<=
c
.
scrollLeft
+
c
.
clientWidth
&&
c
.
scrollLeft
<=
e
.
right
-
c
.
clientWidth
+
c
.
clientWidth
?
Math
.
min
(
e
.
left
,
Math
.
max
(
e
.
right
-
c
.
clientWidth
,
c
.
scrollLeft
)):(
e
.
right
-
c
.
clientWidth
+
e
.
left
)
/
2
;
c
.
scrollTop
=
a
=
a
.
offsetParent
;
return
b
}
for
(
var
g
=
e
(
this
,
d
(
0
,
0
)),
j
=
d
(
this
.
offsetWidth
,
this
.
offsetHeight
),
h
=
this
.
parentNode
,
l
;
h
instanceof
HTMLElement
;)
l
=
e
(
h
,
d
(
h
.
clientLeft
,
h
.
clientTop
)),
h
.
scrollLeft
=
c
(
b
(
g
.
x
-
l
.
x
,
j
.
x
),
b
(
h
.
scrollLeft
,
h
.
clientWidth
)),
h
.
scrollTop
=
c
(
b
(
g
.
y
-
l
.
y
,
j
.
y
),
b
(
h
.
scrollTop
,
h
.
clientHeight
)),
g
=
g
.
translate
(
-
h
.
scrollLeft
,
-
h
.
scrollTop
),
h
=
h
.
parentNode
};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
);
if
(
c
.
length
>
0
)
c
[
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
!
1
===
a
||
e
.
top
<=
c
.
scrollTop
+
c
.
clientHeight
&&
c
.
scrollTop
<=
e
.
bottom
-
c
.
clientHeight
+
c
.
clientHeight
?
Math
.
min
(
e
.
top
,
Math
.
max
(
e
.
bottom
-
c
.
clientHeight
,
c
.
scrollTop
)):(
e
.
bottom
-
c
.
clientHeight
+
e
.
top
)
/
2
;
e
=
e
.
translate
(
f
-
c
.
scrollLeft
,
i
-
c
.
scrollTop
);
d
=
c
}};
b
.
scrollIntoViewIfNeeded
()}},
setFirstNode
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
);
if
(
c
.
length
>
0
)
c
[
0
].
isFirstNode
=!
0
},
setLastNode
:
function
(
a
,
b
){
var
c
=
e
.
nodeChildren
(
a
,
b
);
if
(
c
.
length
>
0
)
c
[
c
.
length
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
a
,
b
){
var
c
=
e
.
getRoot
(
a
),
d
=
b
.
parentTId
?
b
);
if
(
c
.
length
>
0
)
c
[
c
.
length
-
1
].
isLastNode
=!
0
},
removeNode
:
function
(
a
,
b
){
var
c
=
e
.
getRoot
(
a
),
d
=
b
.
parentTId
?
b
.
getParentNode
():
c
;
b
.
isFirstNode
=!
1
;
b
.
isLastNode
=!
1
;
b
.
getPreNode
=
function
(){
return
null
};
b
.
getNextNode
=
function
(){
return
null
};
if
(
e
.
getNodeCache
(
a
,
b
.
tId
)){
l
(
b
,
a
).
remove
();
e
.
removeNodeCache
(
a
,
b
);
e
.
removeSelectedNode
(
a
,
b
);
for
(
var
f
=
e
.
nodeChildren
(
a
,
d
),
i
=
0
,
h
=
f
.
length
;
i
<
h
;
i
++
)
if
(
f
[
i
].
tId
==
b
.
tId
){
f
.
splice
(
i
,
1
);
break
}
j
.
setFirstNode
(
a
,
d
);
j
.
setLastNode
(
a
,
d
);
var
k
,
i
=
f
.
length
;
if
(
!
a
.
data
.
keep
.
parent
&&
i
==
b
.
getParentNode
():
c
;
b
.
isFirstNode
=!
1
;
b
.
isLastNode
=!
1
;
b
.
getPreNode
=
function
(){
return
null
};
b
.
getNextNode
=
function
(){
return
null
};
if
(
e
.
getNodeCache
(
a
,
b
.
tId
)){
l
(
b
,
a
).
remove
();
e
.
removeNodeCache
(
a
,
b
);
e
.
removeSelectedNode
(
a
,
b
);
for
(
var
g
=
e
.
nodeChildren
(
a
,
d
),
h
=
0
,
k
=
g
.
length
;
h
<
k
;
h
++
)
if
(
g
[
h
].
tId
==
b
.
tId
){
g
.
splice
(
h
,
1
);
break
}
i
.
setFirstNode
(
a
,
d
);
i
.
setLastNode
(
a
,
d
);
var
j
,
h
=
g
.
length
;
if
(
!
a
.
data
.
keep
.
parent
&&
h
==
0
)
e
.
nodeIsParent
(
a
,
d
,
!
1
),
d
.
open
=!
1
,
delete
d
[
a
.
data
.
key
.
children
],
h
=
l
(
d
,
f
.
id
.
UL
,
a
),
k
=
l
(
d
,
f
.
id
.
SWITCH
,
a
),
j
=
0
)
e
.
nodeIsParent
(
a
,
d
,
!
1
),
d
.
open
=!
1
,
delete
d
[
a
.
data
.
key
.
children
],
i
=
l
(
d
,
g
.
id
.
UL
,
a
),
h
=
l
(
d
,
g
.
id
.
SWITCH
,
a
),
k
=
l
(
d
,
g
.
id
.
ICON
,
a
),
j
.
replaceSwitchClass
(
d
,
h
,
g
.
folder
.
DOCU
),
j
.
replaceIcoClass
(
d
,
k
,
g
.
folder
.
DOCU
),
i
.
css
(
"display"
,
"none"
);
else
if
(
a
.
view
.
showLine
&&
i
>
0
){
var
q
=
f
[
i
-
1
],
i
=
l
(
q
,
g
.
id
.
UL
,
a
),
h
=
l
(
q
,
g
.
id
.
SWITCH
,
a
);
k
=
l
(
q
,
g
.
id
.
ICON
,
a
);
d
==
c
?
f
.
length
==
1
?
j
.
replaceSwitchClass
(
q
,
h
,
g
.
line
.
ROOT
):(
c
=
l
(
f
[
0
],
g
.
id
.
SWITCH
,
a
),
j
.
replaceSwitchClass
(
f
[
0
],
c
,
g
.
line
.
ROOTS
),
j
.
replaceSwitchClass
(
q
,
h
,
g
.
line
.
BOTTOM
)):
j
.
replaceSwitchClass
(
q
,
l
(
d
,
f
.
id
.
ICON
,
a
),
i
.
replaceSwitchClass
(
d
,
k
,
f
.
folder
.
DOCU
),
i
.
replaceIcoClass
(
d
,
j
,
f
.
folder
.
DOCU
),
h
.
css
(
"display"
,
"none"
);
else
if
(
a
.
view
.
showLine
&&
h
>
0
){
var
r
=
g
[
h
-
1
],
h
=
l
(
r
,
f
.
id
.
UL
,
a
),
k
=
l
(
r
,
f
.
id
.
SWITCH
,
a
);
j
=
l
(
r
,
f
.
id
.
ICON
,
a
);
d
==
c
?
g
.
length
==
1
?
i
.
replaceSwitchClass
(
r
,
k
,
f
.
line
.
ROOT
):(
c
=
l
(
g
[
0
],
f
.
id
.
SWITCH
,
a
),
i
.
replaceSwitchClass
(
g
[
0
],
c
,
f
.
line
.
ROOTS
),
i
.
replaceSwitchClass
(
r
,
k
,
f
.
line
.
BOTTOM
)):
i
.
replaceSwitchClass
(
r
,
k
,
f
.
line
.
BOTTOM
);
h
.
removeClass
(
f
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
a
,
b
,
c
){
if
(
b
&&!
a
.
isAjaxing
&&
h
,
g
.
line
.
BOTTOM
);
i
.
removeClass
(
g
.
line
.
LINE
)}}},
replaceIcoClass
:
function
(
a
,
b
,
c
){
if
(
b
&&!
a
.
isAjaxing
&&
(
a
=
b
.
attr
(
"class"
),
a
!=
void
0
)){
a
=
a
.
split
(
"_"
);
switch
(
c
){
case
g
.
folder
.
OPEN
:
case
g
.
folder
.
CLOSE
:
case
g
.
folder
.
DOCU
:
a
[
a
.
length
-
1
]
=
c
}
b
.
attr
(
"class"
,
a
.
join
(
"_"
))}},
replaceSwitchClass
:
function
(
a
,
b
,
c
){
if
(
b
){
var
d
=
b
.
attr
(
"class"
);
if
(
d
!=
void
0
){
d
=
d
.
split
(
"_"
);
switch
(
c
){
case
g
.
line
.
ROOT
:
case
g
.
line
.
ROOTS
:
case
g
.
line
.
CENTER
:
case
g
.
line
.
BOTTOM
:
case
g
.
line
.
NOLINE
:
d
[
0
]
=
j
.
makeNodeLineClassEx
(
a
)
+
c
;
break
;
case
g
.
folder
.
OPEN
:
case
g
.
folder
.
CLOSE
:
case
g
.
folder
.
DOCU
:
d
[
1
]
=
(
a
=
b
.
attr
(
"class"
),
a
!=
void
0
)){
a
=
a
.
split
(
"_"
);
switch
(
c
){
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
a
[
a
.
length
-
1
]
=
c
}
b
.
attr
(
"class"
,
a
.
join
(
"_"
))}},
replaceSwitchClass
:
function
(
a
,
b
,
c
){
if
(
b
){
var
d
=
b
.
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
(
a
)
+
c
;
break
;
case
f
.
folder
.
OPEN
:
case
f
.
folder
.
CLOSE
:
case
f
.
folder
.
DOCU
:
d
[
1
]
=
c
}
b
.
attr
(
"class"
,
d
.
join
(
"_"
));
c
!==
f
.
folder
.
DOCU
?
c
}
b
.
attr
(
"class"
,
d
.
join
(
"_"
));
c
!==
g
.
folder
.
DOCU
?
b
.
removeAttr
(
"disabled"
):
b
.
attr
(
"disabled"
,
"disabled"
)}}},
selectNode
:
function
(
a
,
b
,
c
){
c
||
j
.
cancelPreSelectedNode
(
a
,
null
,
b
);
l
(
b
,
g
.
id
.
A
,
a
).
addClass
(
g
.
node
.
CURSELECTED
);
e
.
addSelectedNode
(
a
,
b
);
a
.
treeObj
.
trigger
(
g
.
event
.
SELECTED
,[
a
.
treeId
,
b
])},
setNodeFontCss
:
function
(
a
,
b
){
var
c
=
l
(
b
,
g
.
id
.
A
,
a
),
d
=
j
.
makeNodeFontCss
(
a
,
b
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
a
,
b
){
if
(
b
){
var
c
=
l
(
b
,
g
.
id
.
SWITCH
,
a
),
d
=
l
(
b
,
g
.
id
.
UL
,
a
),
f
=
l
(
b
,
g
.
id
.
ICON
,
a
),
i
=
j
.
makeUlLineClass
(
a
,
b
);
i
.
length
==
b
.
removeAttr
(
"disabled"
):
b
.
attr
(
"disabled"
,
"disabled"
)}}},
selectNode
:
function
(
a
,
b
,
c
){
c
||
i
.
cancelPreSelectedNode
(
a
,
null
,
b
);
l
(
b
,
f
.
id
.
A
,
a
).
addClass
(
f
.
node
.
CURSELECTED
);
e
.
addSelectedNode
(
a
,
b
);
a
.
treeObj
.
trigger
(
f
.
event
.
SELECTED
,[
a
.
treeId
,
b
])},
setNodeFontCss
:
function
(
a
,
b
){
var
c
=
l
(
b
,
f
.
id
.
A
,
a
),
d
=
i
.
makeNodeFontCss
(
a
,
b
);
d
&&
c
.
css
(
d
)},
setNodeLineIcos
:
function
(
a
,
b
){
if
(
b
){
var
c
=
l
(
b
,
f
.
id
.
SWITCH
,
a
),
d
=
l
(
b
,
f
.
id
.
UL
,
a
),
g
=
l
(
b
,
f
.
id
.
ICON
,
a
),
h
=
i
.
makeUlLineClass
(
a
,
b
);
h
.
length
==
0
?
d
.
removeClass
(
f
.
line
.
LINE
):
d
.
addClass
(
h
);
c
.
attr
(
"class"
,
0
?
d
.
removeClass
(
g
.
line
.
LINE
):
d
.
addClass
(
i
);
c
.
attr
(
"class"
,
j
.
makeNodeLineClass
(
a
,
b
));
e
.
nodeIsParent
(
a
,
b
)?
c
.
removeAttr
(
"disabled"
):
c
.
attr
(
"disabled"
,
"disabled"
);
f
.
removeAttr
(
"style"
);
f
.
attr
(
"style"
,
j
.
makeNodeIcoStyle
(
a
,
b
));
f
.
attr
(
"class"
,
j
.
makeNodeIcoClass
(
a
,
b
))}},
setNodeName
:
function
(
a
,
b
){
var
c
=
e
.
nodeTitle
(
a
,
b
),
d
=
l
(
b
,
g
.
id
.
SPAN
,
a
);
d
.
empty
();
a
.
view
.
nameIsHTML
?
d
.
html
(
e
.
nodeName
(
a
,
b
)):
d
.
text
(
e
.
nodeName
(
a
,
b
));
h
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
b
],
a
.
view
.
showTitle
)
&&
l
(
b
,
g
.
id
.
A
,
a
).
attr
(
"title"
,
!
c
?
""
:
c
)},
i
.
makeNodeLineClass
(
a
,
b
));
e
.
nodeIsParent
(
a
,
b
)?
c
.
removeAttr
(
"disabled"
):
c
.
attr
(
"disabled"
,
"disabled"
);
g
.
removeAttr
(
"style"
);
g
.
attr
(
"style"
,
i
.
makeNodeIcoStyle
(
a
,
b
));
g
.
attr
(
"class"
,
i
.
makeNodeIcoClass
(
a
,
b
))}},
setNodeName
:
function
(
a
,
b
){
var
c
=
e
.
nodeTitle
(
a
,
b
),
d
=
l
(
b
,
f
.
id
.
SPAN
,
a
);
d
.
empty
();
a
.
view
.
nameIsHTML
?
d
.
html
(
e
.
nodeName
(
a
,
b
)):
d
.
text
(
e
.
nodeName
(
a
,
b
));
j
.
apply
(
a
.
view
.
showTitle
,[
a
.
treeId
,
b
],
a
.
view
.
showTitle
)
&&
l
(
b
,
f
.
id
.
A
,
a
).
attr
(
"title"
,
!
c
?
""
:
c
)},
setNodeTarget
:
function
(
a
,
b
){
l
(
b
,
f
.
id
.
A
,
a
).
attr
(
"target"
,
i
.
makeNodeTarget
(
b
))},
setNodeTarget
:
function
(
a
,
b
){
l
(
b
,
g
.
id
.
A
,
a
).
attr
(
"target"
,
j
.
makeNodeTarget
(
b
))},
setNodeUrl
:
function
(
a
,
b
){
var
c
=
l
(
b
,
g
.
id
.
A
,
a
),
d
=
j
.
makeNodeUrl
(
a
,
b
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"href"
):
c
.
attr
(
"href"
,
d
)},
switchNode
:
function
(
a
,
b
){
b
.
open
||!
h
.
canAsync
(
a
,
b
)?
j
.
expandCollapseNode
(
a
,
b
,
!
b
.
open
):
a
.
async
.
enable
?
j
.
asyncNode
(
a
,
b
)
||
j
.
expandCollapseNode
(
a
,
b
,
!
b
.
open
):
b
&&
j
.
expandCollapseNode
(
a
,
b
,
!
b
.
open
)}};
r
.
fn
.
zTree
=
{
consts
:{
className
:{
BUTTON
:
"button"
,
LEVEL
:
"level"
,
ICO_LOADING
:
"ico_loading"
,
SWITCH
:
"switch"
,
NAME
:
"node_name"
},
setNodeUrl
:
function
(
a
,
b
){
var
c
=
l
(
b
,
f
.
id
.
A
,
a
),
d
=
i
.
makeNodeUrl
(
a
,
b
);
d
==
null
||
d
.
length
==
0
?
c
.
removeAttr
(
"href"
):
c
.
attr
(
"href"
,
d
)},
switchNode
:
function
(
a
,
b
){
b
.
open
||!
j
.
canAsync
(
a
,
b
)?
i
.
expandCollapseNode
(
a
,
b
,
!
b
.
open
):
a
.
async
.
enable
?
i
.
asyncNode
(
a
,
b
)
||
i
.
expandCollapseNode
(
a
,
b
,
!
b
.
open
):
b
&&
i
.
expandCollapseNode
(
a
,
b
,
!
b
.
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"
,
event
:{
NODECREATED
:
"ztree_nodeCreated"
,
CLICK
:
"ztree_click"
,
EXPAND
:
"ztree_expand"
,
COLLAPSE
:
"ztree_collapse"
,
ASYNC_SUCCESS
:
"ztree_async_success"
,
ASYNC_ERROR
:
"ztree_async_error"
,
REMOVE
:
"ztree_remove"
,
SELECTED
:
"ztree_selected"
,
UNSELECTED
:
"ztree_unselected"
},
id
:{
A
:
"_a"
,
ICON
:
"_ico"
,
SPAN
:
"_span"
,
SWITCH
:
"_switch"
,
UL
:
"_ul"
},
line
:{
ROOT
:
"root"
,
ROOTS
:
"roots"
,
CENTER
:
"center"
,
BOTTOM
:
"bottom"
,
NOLINE
:
"noline"
,
LINE
:
"line"
},
folder
:{
OPEN
:
"open"
,
CLOSE
:
"close"
,
DOCU
:
"docu"
},
node
:{
CURSELECTED
:
"curSelectedNode"
}},
_z
:{
tools
:
h
,
COLLAPSE
:
"ztree_collapse"
,
ASYNC_SUCCESS
:
"ztree_async_success"
,
ASYNC_ERROR
:
"ztree_async_error"
,
REMOVE
:
"ztree_remove"
,
SELECTED
:
"ztree_selected"
,
UNSELECTED
:
"ztree_unselected"
},
id
:{
A
:
"_a"
,
ICON
:
"_ico"
,
SPAN
:
"_span"
,
SWITCH
:
"_switch"
,
UL
:
"_ul"
},
line
:{
ROOT
:
"root"
,
ROOTS
:
"roots"
,
CENTER
:
"center"
,
BOTTOM
:
"bottom"
,
NOLINE
:
"noline"
,
LINE
:
"line"
},
folder
:{
OPEN
:
"open"
,
CLOSE
:
"close"
,
DOCU
:
"docu"
},
node
:{
CURSELECTED
:
"curSelectedNode"
}},
_z
:{
tools
:
j
,
view
:
i
,
event
:
n
,
data
:
e
},
getZTreeObj
:
function
(
a
){
return
(
a
=
e
.
getZTreeTools
(
a
))?
view
:
j
,
event
:
n
,
data
:
e
},
getZTreeObj
:
function
(
a
){
return
(
a
=
e
.
getZTreeTools
(
a
))?
a
:
null
},
destroy
:
function
(
a
){
if
(
a
&&
a
.
length
>
0
)
j
.
destroy
(
e
.
getSetting
(
a
));
else
for
(
var
b
in
t
)
j
.
destroy
(
t
[
b
])},
init
:
function
(
a
,
b
,
c
){
var
d
=
h
.
clone
(
P
);
r
.
extend
(
!
0
,
d
,
b
);
d
.
treeId
=
a
.
attr
(
"id"
);
d
.
treeObj
=
a
;
d
.
treeObj
.
empty
();
t
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"undefined"
)
d
.
view
.
expandSpeed
=
""
;
e
.
initRoot
(
d
);
a
=
e
.
getRoot
(
d
);
c
=
c
?
h
.
clone
(
h
.
isArray
(
c
)?
c
:[
c
]):[];
d
.
data
.
simpleData
.
enable
?
e
.
nodeChildren
(
d
,
a
,
e
.
transformTozTreeFormat
(
d
,
a
:
null
},
destroy
:
function
(
a
){
if
(
a
&&
a
.
length
>
0
)
i
.
destroy
(
e
.
getSetting
(
a
));
else
for
(
var
b
in
s
)
i
.
destroy
(
s
[
b
])},
init
:
function
(
a
,
b
,
c
){
var
d
=
j
.
clone
(
N
);
q
.
extend
(
!
0
,
d
,
b
);
d
.
treeId
=
a
.
attr
(
"id"
);
d
.
treeObj
=
a
;
d
.
treeObj
.
empty
();
s
[
d
.
treeId
]
=
d
;
if
(
typeof
document
.
body
.
style
.
maxHeight
===
"undefined"
)
d
.
view
.
expandSpeed
=
""
;
e
.
initRoot
(
d
);
a
=
e
.
getRoot
(
d
);
c
=
c
?
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]):[];
d
.
data
.
simpleData
.
enable
?
e
.
nodeChildren
(
d
,
a
,
e
.
transformTozTreeFormat
(
d
,
c
)):
e
.
nodeChildren
(
d
,
a
,
c
);
e
.
initCache
(
d
);
n
.
unbindTree
(
d
);
n
.
bindTree
(
d
);
c
)):
e
.
nodeChildren
(
d
,
a
,
c
);
e
.
initCache
(
d
);
n
.
unbindTree
(
d
);
n
.
bindTree
(
d
);
n
.
unbindEvent
(
d
);
n
.
bindEvent
(
d
);
var
f
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
f
){
function
g
(){
j
.
addNodes
(
d
,
a
,
b
,
n
,
f
==!
0
)}
a
||
(
a
=
null
);
var
l
=
e
.
nodeIsParent
(
d
,
a
);
if
(
a
&&!
l
&&
d
.
data
.
keep
.
leaf
)
return
null
;
l
=
parseInt
(
b
,
10
);
isNaN
(
l
)?(
f
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
l
;
if
(
!
c
)
return
null
;
var
n
=
h
.
clone
(
h
.
isArray
(
c
)?
c
:[
c
]);
h
.
canAsync
(
d
,
a
)?
j
.
asyncNode
(
d
,
a
,
f
,
g
):
g
();
return
n
},
cancelSelectedNode
:
function
(
a
){
j
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
j
.
destroy
(
d
)},
n
.
unbindEvent
(
d
);
n
.
bindEvent
(
d
);
var
g
=
{
setting
:
d
,
addNodes
:
function
(
a
,
b
,
c
,
g
){
function
f
(){
i
.
addNodes
(
d
,
a
,
b
,
n
,
g
==!
0
)}
a
||
(
a
=
null
);
var
l
=
e
.
nodeIsParent
(
d
,
a
);
if
(
a
&&!
l
&&
d
.
data
.
keep
.
leaf
)
return
null
;
l
=
parseInt
(
b
,
10
);
isNaN
(
l
)?(
g
=!!
c
,
c
=
b
,
b
=-
1
):
b
=
l
;
if
(
!
c
)
return
null
;
var
n
=
j
.
clone
(
j
.
isArray
(
c
)?
c
:[
c
]);
j
.
canAsync
(
d
,
a
)?
i
.
asyncNode
(
d
,
a
,
g
,
f
):
f
();
return
n
},
cancelSelectedNode
:
function
(
a
){
i
.
cancelPreSelectedNode
(
d
,
a
)},
destroy
:
function
(){
i
.
destroy
(
d
)},
expandAll
:
function
(
a
){
a
=!!
a
;
i
.
expandCollapseSonNode
(
d
,
null
,
a
,
!
0
);
expandAll
:
function
(
a
){
a
=!!
a
;
j
.
expandCollapseSonNode
(
d
,
null
,
a
,
!
0
);
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
f
,
g
){
function
n
(){
var
b
=
l
(
a
,
d
).
get
(
0
);
b
&&
f
!==!
1
&&
j
.
scrollIntoView
(
d
,
b
)}
if
(
!
a
||!
e
.
nodeIsParent
(
d
,
a
))
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
g
=!!
g
)
&&
b
&&
h
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
g
&&!
b
&&
h
.
apply
(
d
.
callback
.
beforeCollapse
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
b
&&
a
.
parentTId
&&
j
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
b
,
!
1
);
if
(
b
===
a
.
open
&&!
c
)
return
null
;
return
a
},
expandNode
:
function
(
a
,
b
,
c
,
g
,
f
){
function
n
(){
var
b
=
l
(
a
,
d
).
get
(
0
);
b
&&
g
!==!
1
&&
i
.
scrollIntoView
(
d
,
b
)}
if
(
!
a
||!
e
.
nodeIsParent
(
d
,
a
))
return
null
;
b
!==!
0
&&
b
!==!
1
&&
(
b
=!
a
.
open
);
if
((
f
=!!
f
)
&&
b
&&
j
.
apply
(
d
.
callback
.
beforeExpand
,[
d
.
treeId
,
a
],
!
0
)
==!
1
)
return
null
;
else
if
(
f
&&!
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
;
e
.
getRoot
(
d
).
expandTriggerFlag
=
f
;
!
j
.
canAsync
(
d
,
a
)
&&
c
?
i
.
expandCollapseSonNode
(
d
,
e
.
getRoot
(
d
).
expandTriggerFlag
=
g
;
!
h
.
canAsync
(
d
,
a
)
&&
c
?
j
.
expandCollapseSonNode
(
d
,
a
,
b
,
!
0
,
n
):(
a
.
open
=!
b
,
j
.
switchNode
(
this
.
setting
,
a
),
n
());
return
b
},
getNodes
:
function
(){
return
e
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
e
.
getNodeByParam
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
e
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
e
.
getNodesByParam
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
a
,
b
,
!
0
,
n
):(
a
.
open
=!
b
,
i
.
switchNode
(
this
.
setting
,
a
),
n
());
return
b
},
getNodes
:
function
(){
return
e
.
getNodes
(
d
)},
getNodeByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
e
.
getNodeByParam
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
)},
getNodeByTId
:
function
(
a
){
return
e
.
getNodeCache
(
d
,
a
)},
getNodesByParam
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
e
.
getNodesByParam
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
)},
getNodesByParamFuzzy
:
function
(
a
,
b
,
c
){
return
!
a
?
null
:
e
.
getNodesByParamFuzzy
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
)},
getNodesByFilter
:
function
(
a
,
e
.
getNodesByParamFuzzy
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
)},
getNodesByFilter
:
function
(
a
,
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"function"
?
b
?
null
:[]:
e
.
getNodesByFilter
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
a
.
parentTId
?
a
.
getParentNode
():
e
.
getRoot
(
d
),
b
=
e
.
nodeChildren
(
d
,
b
),
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
if
(
b
[
c
]
==
a
)
return
c
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
e
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
b
,
c
,
f
){
b
=!!
b
;
return
!
a
||
typeof
a
!=
"function"
?
b
?
null
:[]:
e
.
getNodesByFilter
(
d
,
c
?
e
.
nodeChildren
(
d
,
c
):
e
.
getNodes
(
d
),
a
,
b
,
f
)},
getNodeIndex
:
function
(
a
){
if
(
!
a
)
return
null
;
for
(
var
b
=
a
.
parentTId
?
a
.
getParentNode
():
e
.
getRoot
(
d
),
b
=
e
.
nodeChildren
(
d
,
b
),
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
if
(
b
[
c
]
==
a
)
return
c
;
return
-
1
},
getSelectedNodes
:
function
(){
for
(
var
a
=
[],
b
=
e
.
getRoot
(
d
).
curSelectedList
,
c
=
0
,
f
=
b
.
length
;
c
<
f
;
c
++
)
a
.
push
(
b
[
c
]);
return
a
},
isSelectedNode
:
function
(
a
){
return
e
.
isSelectedNode
(
d
,
a
)},
reAsyncChildNodesPromise
:
function
(
a
,
isSelectedNode
:
function
(
a
){
return
e
.
isSelectedNode
(
d
,
a
)},
reAsyncChildNodesPromise
:
function
(
a
,
b
,
c
){
return
new
Promise
(
function
(
d
,
e
){
try
{
f
.
reAsyncChildNodes
(
a
,
b
,
c
,
function
(){
d
(
a
)})}
catch
(
g
){
e
(
g
)}})},
reAsyncChildNodes
:
function
(
a
,
b
,
c
,
f
){
if
(
this
.
setting
.
async
.
enable
){
var
h
=!
a
;
h
&&
(
a
=
e
.
getRoot
(
d
));
if
(
b
==
"refresh"
){
for
(
var
b
=
e
.
nodeChildren
(
d
,
a
),
n
=
0
,
r
=
b
?
b
.
length
:
0
;
n
<
r
;
n
++
)
e
.
removeNodeCache
(
d
,
b
[
n
]);
e
.
removeSelectedNode
(
d
);
e
.
nodeChildren
(
d
,
a
,[]);
h
?
this
.
setting
.
treeObj
.
empty
():
l
(
a
,
g
.
id
.
UL
,
d
).
empty
()}
j
.
asyncNode
(
this
.
setting
,
b
,
c
){
return
new
Promise
(
function
(
d
,
e
){
try
{
g
.
reAsyncChildNodes
(
a
,
b
,
c
,
function
(){
d
(
a
)})}
catch
(
f
){
e
(
f
)}})},
reAsyncChildNodes
:
function
(
a
,
b
,
c
,
g
){
if
(
this
.
setting
.
async
.
enable
){
var
j
=!
a
;
j
&&
(
a
=
e
.
getRoot
(
d
));
if
(
b
==
"refresh"
){
for
(
var
b
=
e
.
nodeChildren
(
d
,
a
),
n
=
0
,
q
=
b
?
b
.
length
:
0
;
n
<
q
;
n
++
)
e
.
removeNodeCache
(
d
,
b
[
n
]);
e
.
removeSelectedNode
(
d
);
e
.
nodeChildren
(
d
,
a
,[]);
j
?
this
.
setting
.
treeObj
.
empty
():
l
(
a
,
f
.
id
.
UL
,
d
).
empty
()}
i
.
asyncNode
(
this
.
setting
,
j
?
null
:
a
,
!!
c
,
g
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
e
.
getRoot
(
d
),
h
?
null
:
a
,
!!
c
,
f
)}},
refresh
:
function
(){
this
.
setting
.
treeObj
.
empty
();
var
a
=
e
.
getRoot
(
d
),
b
=
e
.
nodeChildren
(
d
,
a
);
e
.
initRoot
(
d
);
e
.
nodeChildren
(
d
,
a
,
b
);
e
.
initCache
(
d
);
j
.
createNodes
(
d
,
0
,
e
.
nodeChildren
(
d
,
a
),
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
var
b
=
e
.
nodeChildren
(
d
,
a
);
j
.
removeChildNodes
(
d
,
a
);
return
b
?
b
:
null
},
removeNode
:
function
(
a
,
b
){
a
&&
(
b
=!!
b
,
b
&&
h
.
apply
(
d
.
callback
.
beforeRemove
,[
d
.
treeId
,
a
],
!
0
)
==!
1
||
(
j
.
removeNode
(
d
,
a
),
b
&&
this
.
setting
.
treeObj
.
trigger
(
g
.
event
.
REMOVE
,[
d
.
treeId
,
a
])))},
selectNode
:
function
(
a
,
b
=
e
.
nodeChildren
(
d
,
a
);
e
.
initRoot
(
d
);
e
.
nodeChildren
(
d
,
a
,
b
);
e
.
initCache
(
d
);
i
.
createNodes
(
d
,
0
,
e
.
nodeChildren
(
d
,
a
),
null
,
-
1
)},
removeChildNodes
:
function
(
a
){
if
(
!
a
)
return
null
;
var
b
=
e
.
nodeChildren
(
d
,
a
);
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
e
(){
if
(
!
c
){
var
b
=
l
(
a
,
d
).
get
(
0
);
i
.
scrollIntoView
(
d
,
b
)}}
if
(
a
&&
b
,
c
){
function
e
(){
if
(
!
c
){
var
b
=
l
(
a
,
d
).
get
(
0
);
j
.
scrollIntoView
(
d
,
b
)}}
if
(
a
&&
h
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
j
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
e
);
else
if
(
!
c
)
try
{
l
(
a
,
d
).
focus
().
blur
()}
catch
(
f
){}
j
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
e
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
e
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
l
(
a
,
d
).
get
(
0
)
&&
h
.
uCanDo
(
d
)
&&
(
j
.
setNodeName
(
d
,
a
),
j
.
setNodeTarget
(
d
,
a
),
j
.
setNodeUrl
(
d
,
j
.
uCanDo
(
d
)){
b
=
d
.
view
.
selectedMulti
&&
b
;
if
(
a
.
parentTId
)
i
.
expandCollapseParentNode
(
d
,
a
.
getParentNode
(),
!
0
,
!
1
,
e
);
else
if
(
!
c
)
try
{
l
(
a
,
d
).
focus
().
blur
()}
catch
(
f
){}
i
.
selectNode
(
d
,
a
,
b
)}},
transformTozTreeNodes
:
function
(
a
){
return
e
.
transformTozTreeFormat
(
d
,
a
)},
transformToArray
:
function
(
a
){
return
e
.
transformToArrayFormat
(
d
,
a
)},
updateNode
:
function
(
a
){
a
&&
l
(
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
))}};
a
.
treeTools
=
g
;
e
.
setZTreeTools
(
d
,
a
),
j
.
setNodeLineIcos
(
d
,
a
),
j
.
setNodeFontCss
(
d
,
a
))}};
a
.
treeTools
=
f
;
e
.
setZTreeTools
(
d
,
f
);(
c
=
e
.
nodeChildren
(
d
,
a
))
&&
c
.
length
>
0
?
j
.
createNodes
(
d
,
0
,
c
,
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
j
.
asyncNode
(
d
);
return
f
}};
var
Q
=
r
.
fn
.
zTree
,
l
=
h
.
$
,
g
=
Q
.
consts
})(
jQuery
);
g
);(
c
=
e
.
nodeChildren
(
d
,
a
))
&&
c
.
length
>
0
?
i
.
createNodes
(
d
,
0
,
c
,
null
,
-
1
):
d
.
async
.
enable
&&
d
.
async
.
url
&&
d
.
async
.
url
!==
""
&&
i
.
asyncNode
(
d
);
return
g
}};
var
O
=
q
.
fn
.
zTree
,
l
=
j
.
$
,
f
=
O
.
consts
})(
jQuery
);
src/main/webapp/resources/ztree/ztree/jquery.ztree.excheck.js
View file @
297b19f6
/*
/*
* JQuery zTree excheck v3.5.3
6
* JQuery zTree excheck v3.5.3
7
* http://treejs.cn/
* http://treejs.cn/
*
*
* Copyright (c) 2010 Hunter.z
* Copyright (c) 2010 Hunter.z
...
@@ -8,589 +8,593 @@
...
@@ -8,589 +8,593 @@
* 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: 2018-0
6-26
* Date: 2018-0
8-21
*/
*/
(
function
(
$
){
(
function
(
$
)
{
//default consts of excheck
//default consts of excheck
var
_consts
=
{
var
_consts
=
{
event
:
{
event
:
{
CHECK
:
"ztree_check"
CHECK
:
"ztree_check"
},
},
id
:
{
id
:
{
CHECK
:
"_check"
CHECK
:
"_check"
},
},
checkbox
:
{
checkbox
:
{
STYLE
:
"checkbox"
,
STYLE
:
"checkbox"
,
DEFAULT
:
"chk"
,
DEFAULT
:
"chk"
,
DISABLED
:
"disable"
,
DISABLED
:
"disable"
,
FALSE
:
"false"
,
FALSE
:
"false"
,
TRUE
:
"true"
,
TRUE
:
"true"
,
FULL
:
"full"
,
FULL
:
"full"
,
PART
:
"part"
,
PART
:
"part"
,
FOCUS
:
"focus"
FOCUS
:
"focus"
},
},
radio
:
{
radio
:
{
STYLE
:
"radio"
,
STYLE
:
"radio"
,
TYPE_ALL
:
"all"
,
TYPE_ALL
:
"all"
,
TYPE_LEVEL
:
"level"
TYPE_LEVEL
:
"level"
}
}
},
},
//default setting of excheck
//default setting of excheck
_setting
=
{
_setting
=
{
check
:
{
check
:
{
enable
:
false
,
enable
:
false
,
autoCheckTrigger
:
false
,
autoCheckTrigger
:
false
,
chkStyle
:
_consts
.
checkbox
.
STYLE
,
chkStyle
:
_consts
.
checkbox
.
STYLE
,
nocheckInherit
:
false
,
nocheckInherit
:
false
,
chkDisabledInherit
:
false
,
chkDisabledInherit
:
false
,
radioType
:
_consts
.
radio
.
TYPE_LEVEL
,
radioType
:
_consts
.
radio
.
TYPE_LEVEL
,
chkboxType
:
{
chkboxType
:
{
"Y"
:
"ps"
,
"Y"
:
"ps"
,
"N"
:
"ps"
"N"
:
"ps"
}
}
},
},
data
:
{
data
:
{
key
:
{
key
:
{
checked
:
"checked"
checked
:
"checked"
}
}
},
},
callback
:
{
callback
:
{
beforeCheck
:
null
,
beforeCheck
:
null
,
onCheck
:
null
onCheck
:
null
}
}
},
},
//default root of excheck
//default root of excheck
_initRoot
=
function
(
setting
)
{
_initRoot
=
function
(
setting
)
{
var
r
=
data
.
getRoot
(
setting
);
var
r
=
data
.
getRoot
(
setting
);
r
.
radioCheckedList
=
[];
r
.
radioCheckedList
=
[];
},
},
//default cache of excheck
//default cache of excheck
_initCache
=
function
(
treeId
)
{},
_initCache
=
function
(
treeId
)
{
//default bind event of excheck
},
_bindEvent
=
function
(
setting
)
{
//default bind event of excheck
var
o
=
setting
.
treeObj
,
_bindEvent
=
function
(
setting
)
{
c
=
consts
.
event
;
var
o
=
setting
.
treeObj
,
o
.
bind
(
c
.
CHECK
,
function
(
event
,
srcEvent
,
treeId
,
node
)
{
c
=
consts
.
event
;
event
.
srcEvent
=
srcEvent
;
o
.
bind
(
c
.
CHECK
,
function
(
event
,
srcEvent
,
treeId
,
node
)
{
tools
.
apply
(
setting
.
callback
.
onCheck
,
[
event
,
treeId
,
node
]);
event
.
srcEvent
=
srcEvent
;
});
tools
.
apply
(
setting
.
callback
.
onCheck
,
[
event
,
treeId
,
node
]);
},
});
_unbindEvent
=
function
(
setting
)
{
},
var
o
=
setting
.
treeObj
,
_unbindEvent
=
function
(
setting
)
{
c
=
consts
.
event
;
var
o
=
setting
.
treeObj
,
o
.
unbind
(
c
.
CHECK
);
c
=
consts
.
event
;
},
o
.
unbind
(
c
.
CHECK
);
//default event proxy of excheck
},
_eventProxy
=
function
(
e
)
{
//default event proxy of excheck
var
target
=
e
.
target
,
_eventProxy
=
function
(
e
)
{
setting
=
data
.
getSetting
(
e
.
data
.
treeId
),
var
target
=
e
.
target
,
tId
=
""
,
node
=
null
,
setting
=
data
.
getSetting
(
e
.
data
.
treeId
),
nodeEventType
=
""
,
treeEventType
=
""
,
tId
=
""
,
node
=
null
,
nodeEventCallback
=
null
,
treeEventCallback
=
null
;
nodeEventType
=
""
,
treeEventType
=
""
,
nodeEventCallback
=
null
,
treeEventCallback
=
null
;
if
(
tools
.
eqs
(
e
.
type
,
"mouseover"
))
{
if
(
tools
.
eqs
(
e
.
type
,
"mouseover"
))
{
if
(
setting
.
check
.
enable
&&
tools
.
eqs
(
target
.
tagName
,
"span"
)
&&
target
.
getAttribute
(
"treeNode"
+
consts
.
id
.
CHECK
)
!==
null
)
{
if
(
setting
.
check
.
enable
&&
tools
.
eqs
(
target
.
tagName
,
"span"
)
&&
target
.
getAttribute
(
"treeNode"
+
consts
.
id
.
CHECK
)
!==
null
)
{
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
nodeEventType
=
"mouseoverCheck"
;
nodeEventType
=
"mouseoverCheck"
;
}
}
}
else
if
(
tools
.
eqs
(
e
.
type
,
"mouseout"
))
{
}
else
if
(
tools
.
eqs
(
e
.
type
,
"mouseout"
))
{
if
(
setting
.
check
.
enable
&&
tools
.
eqs
(
target
.
tagName
,
"span"
)
&&
target
.
getAttribute
(
"treeNode"
+
consts
.
id
.
CHECK
)
!==
null
)
{
if
(
setting
.
check
.
enable
&&
tools
.
eqs
(
target
.
tagName
,
"span"
)
&&
target
.
getAttribute
(
"treeNode"
+
consts
.
id
.
CHECK
)
!==
null
)
{
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
nodeEventType
=
"mouseoutCheck"
;
nodeEventType
=
"mouseoutCheck"
;
}
}
}
else
if
(
tools
.
eqs
(
e
.
type
,
"click"
))
{
}
else
if
(
tools
.
eqs
(
e
.
type
,
"click"
))
{
if
(
setting
.
check
.
enable
&&
tools
.
eqs
(
target
.
tagName
,
"span"
)
&&
target
.
getAttribute
(
"treeNode"
+
consts
.
id
.
CHECK
)
!==
null
)
{
if
(
setting
.
check
.
enable
&&
tools
.
eqs
(
target
.
tagName
,
"span"
)
&&
target
.
getAttribute
(
"treeNode"
+
consts
.
id
.
CHECK
)
!==
null
)
{
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
tId
=
tools
.
getNodeMainDom
(
target
).
id
;
nodeEventType
=
"checkNode"
;
nodeEventType
=
"checkNode"
;
}
}
}
}
if
(
tId
.
length
>
0
)
{
if
(
tId
.
length
>
0
)
{
node
=
data
.
getNodeCache
(
setting
,
tId
);
node
=
data
.
getNodeCache
(
setting
,
tId
);
switch
(
nodeEventType
)
{
switch
(
nodeEventType
)
{
case
"checkNode"
:
case
"checkNode"
:
nodeEventCallback
=
_handler
.
onCheckNode
;
nodeEventCallback
=
_handler
.
onCheckNode
;
break
;
break
;
case
"mouseoverCheck"
:
case
"mouseoverCheck"
:
nodeEventCallback
=
_handler
.
onMouseoverCheck
;
nodeEventCallback
=
_handler
.
onMouseoverCheck
;
break
;
break
;
case
"mouseoutCheck"
:
case
"mouseoutCheck"
:
nodeEventCallback
=
_handler
.
onMouseoutCheck
;
nodeEventCallback
=
_handler
.
onMouseoutCheck
;
break
;
break
;
}
}
}
}
var
proxyResult
=
{
var
proxyResult
=
{
stop
:
nodeEventType
===
"checkNode"
,
stop
:
nodeEventType
===
"checkNode"
,
node
:
node
,
node
:
node
,
nodeEventType
:
nodeEventType
,
nodeEventType
:
nodeEventType
,
nodeEventCallback
:
nodeEventCallback
,
nodeEventCallback
:
nodeEventCallback
,
treeEventType
:
treeEventType
,
treeEventType
:
treeEventType
,
treeEventCallback
:
treeEventCallback
treeEventCallback
:
treeEventCallback
};
};
return
proxyResult
return
proxyResult
},
},
//default init node of excheck
//default init node of excheck
_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
checked
=
data
.
nodeChecked
(
setting
,
n
);
var
checked
=
data
.
nodeChecked
(
setting
,
n
);
checked
=
data
.
nodeChecked
(
setting
,
n
,
checked
);
checked
=
data
.
nodeChecked
(
setting
,
n
,
checked
);
n
.
checkedOld
=
checked
;
n
.
checkedOld
=
checked
;
if
(
typeof
n
.
nocheck
==
"string"
)
n
.
nocheck
=
tools
.
eqs
(
n
.
nocheck
,
"true"
);
if
(
typeof
n
.
nocheck
==
"string"
)
n
.
nocheck
=
tools
.
eqs
(
n
.
nocheck
,
"true"
);
n
.
nocheck
=
!!
n
.
nocheck
||
(
setting
.
check
.
nocheckInherit
&&
parentNode
&&
!!
parentNode
.
nocheck
);
n
.
nocheck
=
!!
n
.
nocheck
||
(
setting
.
check
.
nocheckInherit
&&
parentNode
&&
!!
parentNode
.
nocheck
);
if
(
typeof
n
.
chkDisabled
==
"string"
)
n
.
chkDisabled
=
tools
.
eqs
(
n
.
chkDisabled
,
"true"
);
if
(
typeof
n
.
chkDisabled
==
"string"
)
n
.
chkDisabled
=
tools
.
eqs
(
n
.
chkDisabled
,
"true"
);
n
.
chkDisabled
=
!!
n
.
chkDisabled
||
(
setting
.
check
.
chkDisabledInherit
&&
parentNode
&&
!!
parentNode
.
chkDisabled
);
n
.
chkDisabled
=
!!
n
.
chkDisabled
||
(
setting
.
check
.
chkDisabledInherit
&&
parentNode
&&
!!
parentNode
.
chkDisabled
);
if
(
typeof
n
.
halfCheck
==
"string"
)
n
.
halfCheck
=
tools
.
eqs
(
n
.
halfCheck
,
"true"
);
if
(
typeof
n
.
halfCheck
==
"string"
)
n
.
halfCheck
=
tools
.
eqs
(
n
.
halfCheck
,
"true"
);
n
.
halfCheck
=
!!
n
.
halfCheck
;
n
.
halfCheck
=
!!
n
.
halfCheck
;
n
.
check_Child_State
=
-
1
;
n
.
check_Child_State
=
-
1
;
n
.
check_Focus
=
false
;
n
.
check_Focus
=
false
;
n
.
getCheckStatus
=
function
()
{
return
data
.
getCheckStatus
(
setting
,
n
);};
n
.
getCheckStatus
=
function
()
{
return
data
.
getCheckStatus
(
setting
,
n
);
};
if
(
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
&&
setting
.
check
.
radioType
==
consts
.
radio
.
TYPE_ALL
&&
checked
)
{
if
(
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
&&
setting
.
check
.
radioType
==
consts
.
radio
.
TYPE_ALL
&&
checked
)
{
var
r
=
data
.
getRoot
(
setting
);
var
r
=
data
.
getRoot
(
setting
);
r
.
radioCheckedList
.
push
(
n
);
r
.
radioCheckedList
.
push
(
n
);
}
}
},
},
//add dom for check
//add dom for check
_beforeA
=
function
(
setting
,
node
,
html
)
{
_beforeA
=
function
(
setting
,
node
,
html
)
{
if
(
setting
.
check
.
enable
)
{
if
(
setting
.
check
.
enable
)
{
data
.
makeChkFlag
(
setting
,
node
);
data
.
makeChkFlag
(
setting
,
node
);
html
.
push
(
"<span ID='"
,
node
.
tId
,
consts
.
id
.
CHECK
,
"' class='"
,
view
.
makeChkClass
(
setting
,
node
),
"' treeNode"
,
consts
.
id
.
CHECK
,
(
node
.
nocheck
===
true
?
" style='display:none;'"
:
""
),
"></span>"
);
html
.
push
(
"<span ID='"
,
node
.
tId
,
consts
.
id
.
CHECK
,
"' class='"
,
view
.
makeChkClass
(
setting
,
node
),
"' treeNode"
,
consts
.
id
.
CHECK
,
(
node
.
nocheck
===
true
?
" style='display:none;'"
:
""
),
"></span>"
);
}
}
},
},
//update zTreeObj, add method of check
//update zTreeObj, add method of check
_zTreeTools
=
function
(
setting
,
zTreeTools
)
{
_zTreeTools
=
function
(
setting
,
zTreeTools
)
{
zTreeTools
.
checkNode
=
function
(
node
,
checked
,
checkTypeFlag
,
callbackFlag
)
{
zTreeTools
.
checkNode
=
function
(
node
,
checked
,
checkTypeFlag
,
callbackFlag
)
{
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
if
(
node
.
chkDisabled
===
true
)
return
;
if
(
node
.
chkDisabled
===
true
)
return
;
if
(
checked
!==
true
&&
checked
!==
false
)
{
if
(
checked
!==
true
&&
checked
!==
false
)
{
checked
=
!
nodeChecked
;
checked
=
!
nodeChecked
;
}
}
callbackFlag
=
!!
callbackFlag
;
callbackFlag
=
!!
callbackFlag
;
if
(
nodeChecked
===
checked
&&
!
checkTypeFlag
)
{
if
(
nodeChecked
===
checked
&&
!
checkTypeFlag
)
{
return
;
return
;
}
else
if
(
callbackFlag
&&
tools
.
apply
(
this
.
setting
.
callback
.
beforeCheck
,
[
this
.
setting
.
treeId
,
node
],
true
)
==
false
)
{
}
else
if
(
callbackFlag
&&
tools
.
apply
(
this
.
setting
.
callback
.
beforeCheck
,
[
this
.
setting
.
treeId
,
node
],
true
)
==
false
)
{
return
;
return
;
}
}
if
(
tools
.
uCanDo
(
this
.
setting
)
&&
this
.
setting
.
check
.
enable
&&
node
.
nocheck
!==
true
)
{
if
(
tools
.
uCanDo
(
this
.
setting
)
&&
this
.
setting
.
check
.
enable
&&
node
.
nocheck
!==
true
)
{
data
.
nodeChecked
(
setting
,
node
,
checked
);
data
.
nodeChecked
(
setting
,
node
,
checked
);
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
this
.
setting
);
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
this
.
setting
);
if
(
checkTypeFlag
||
this
.
setting
.
check
.
chkStyle
===
consts
.
radio
.
STYLE
)
view
.
checkNodeRelation
(
this
.
setting
,
node
);
if
(
checkTypeFlag
||
this
.
setting
.
check
.
chkStyle
===
consts
.
radio
.
STYLE
)
view
.
checkNodeRelation
(
this
.
setting
,
node
);
view
.
setChkClass
(
this
.
setting
,
checkObj
,
node
);
view
.
setChkClass
(
this
.
setting
,
checkObj
,
node
);
view
.
repairParentChkClassWithSelf
(
this
.
setting
,
node
);
view
.
repairParentChkClassWithSelf
(
this
.
setting
,
node
);
if
(
callbackFlag
)
{
if
(
callbackFlag
)
{
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
null
,
this
.
setting
.
treeId
,
node
]);
this
.
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
null
,
this
.
setting
.
treeId
,
node
]);
}
}
}
}
}
}
zTreeTools
.
checkAllNodes
=
function
(
checked
)
{
zTreeTools
.
checkAllNodes
=
function
(
checked
)
{
view
.
repairAllChk
(
this
.
setting
,
!!
checked
);
view
.
repairAllChk
(
this
.
setting
,
!!
checked
);
}
}
zTreeTools
.
getCheckedNodes
=
function
(
checked
)
{
zTreeTools
.
getCheckedNodes
=
function
(
checked
)
{
var
checked
=
(
checked
!==
false
);
var
checked
=
(
checked
!==
false
);
var
children
=
data
.
nodeChildren
(
setting
,
data
.
getRoot
(
this
.
setting
));
var
children
=
data
.
nodeChildren
(
setting
,
data
.
getRoot
(
this
.
setting
));
return
data
.
getTreeCheckedNodes
(
this
.
setting
,
children
,
checked
);
return
data
.
getTreeCheckedNodes
(
this
.
setting
,
children
,
checked
);
}
}
zTreeTools
.
getChangeCheckedNodes
=
function
()
{
zTreeTools
.
getChangeCheckedNodes
=
function
()
{
var
children
=
data
.
nodeChildren
(
setting
,
data
.
getRoot
(
this
.
setting
));
var
children
=
data
.
nodeChildren
(
setting
,
data
.
getRoot
(
this
.
setting
));
return
data
.
getTreeChangeCheckedNodes
(
this
.
setting
,
children
);
return
data
.
getTreeChangeCheckedNodes
(
this
.
setting
,
children
);
}
}
zTreeTools
.
setChkDisabled
=
function
(
node
,
disabled
,
inheritParent
,
inheritChildren
)
{
zTreeTools
.
setChkDisabled
=
function
(
node
,
disabled
,
inheritParent
,
inheritChildren
)
{
disabled
=
!!
disabled
;
disabled
=
!!
disabled
;
inheritParent
=
!!
inheritParent
;
inheritParent
=
!!
inheritParent
;
inheritChildren
=
!!
inheritChildren
;
inheritChildren
=
!!
inheritChildren
;
view
.
repairSonChkDisabled
(
this
.
setting
,
node
,
disabled
,
inheritChildren
);
view
.
repairSonChkDisabled
(
this
.
setting
,
node
,
disabled
,
inheritChildren
);
view
.
repairParentChkDisabled
(
this
.
setting
,
node
.
getParentNode
(),
disabled
,
inheritParent
);
view
.
repairParentChkDisabled
(
this
.
setting
,
node
.
getParentNode
(),
disabled
,
inheritParent
);
}
}
var
_updateNode
=
zTreeTools
.
updateNode
;
var
_updateNode
=
zTreeTools
.
updateNode
;
zTreeTools
.
updateNode
=
function
(
node
,
checkTypeFlag
)
{
zTreeTools
.
updateNode
=
function
(
node
,
checkTypeFlag
)
{
if
(
_updateNode
)
_updateNode
.
apply
(
zTreeTools
,
arguments
);
if
(
_updateNode
)
_updateNode
.
apply
(
zTreeTools
,
arguments
);
if
(
!
node
||
!
this
.
setting
.
check
.
enable
)
return
;
if
(
!
node
||
!
this
.
setting
.
check
.
enable
)
return
;
var
nObj
=
$$
(
node
,
this
.
setting
);
var
nObj
=
$$
(
node
,
this
.
setting
);
if
(
nObj
.
get
(
0
)
&&
tools
.
uCanDo
(
this
.
setting
))
{
if
(
nObj
.
get
(
0
)
&&
tools
.
uCanDo
(
this
.
setting
))
{
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
this
.
setting
);
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
this
.
setting
);
if
(
checkTypeFlag
==
true
||
this
.
setting
.
check
.
chkStyle
===
consts
.
radio
.
STYLE
)
view
.
checkNodeRelation
(
this
.
setting
,
node
);
if
(
checkTypeFlag
==
true
||
this
.
setting
.
check
.
chkStyle
===
consts
.
radio
.
STYLE
)
view
.
checkNodeRelation
(
this
.
setting
,
node
);
view
.
setChkClass
(
this
.
setting
,
checkObj
,
node
);
view
.
setChkClass
(
this
.
setting
,
checkObj
,
node
);
view
.
repairParentChkClassWithSelf
(
this
.
setting
,
node
);
view
.
repairParentChkClassWithSelf
(
this
.
setting
,
node
);
}
}
}
}
},
},
//method of operate data
//method of operate data
_data
=
{
_data
=
{
getRadioCheckedList
:
function
(
setting
)
{
getRadioCheckedList
:
function
(
setting
)
{
var
checkedList
=
data
.
getRoot
(
setting
).
radioCheckedList
;
var
checkedList
=
data
.
getRoot
(
setting
).
radioCheckedList
;
for
(
var
i
=
0
,
j
=
checkedList
.
length
;
i
<
j
;
i
++
)
{
for
(
var
i
=
0
,
j
=
checkedList
.
length
;
i
<
j
;
i
++
)
{
if
(
!
data
.
getNodeCache
(
setting
,
checkedList
[
i
].
tId
))
{
if
(
!
data
.
getNodeCache
(
setting
,
checkedList
[
i
].
tId
))
{
checkedList
.
splice
(
i
,
1
);
checkedList
.
splice
(
i
,
1
);
i
--
;
j
--
;
i
--
;
}
j
--
;
}
}
return
checkedList
;
}
},
return
checkedList
;
getCheckStatus
:
function
(
setting
,
node
)
{
},
if
(
!
setting
.
check
.
enable
||
node
.
nocheck
||
node
.
chkDisabled
)
return
null
;
getCheckStatus
:
function
(
setting
,
node
)
{
var
checked
=
data
.
nodeChecked
(
setting
,
node
),
if
(
!
setting
.
check
.
enable
||
node
.
nocheck
||
node
.
chkDisabled
)
return
null
;
r
=
{
var
checked
=
data
.
nodeChecked
(
setting
,
node
),
checked
:
checked
,
r
=
{
half
:
node
.
halfCheck
?
node
.
halfCheck
:
(
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
?
(
node
.
check_Child_State
===
2
)
:
(
checked
?
(
node
.
check_Child_State
>
-
1
&&
node
.
check_Child_State
<
2
)
:
(
node
.
check_Child_State
>
0
)))
checked
:
checked
,
};
half
:
node
.
halfCheck
?
node
.
halfCheck
:
(
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
?
(
node
.
check_Child_State
===
2
)
:
(
checked
?
(
node
.
check_Child_State
>
-
1
&&
node
.
check_Child_State
<
2
)
:
(
node
.
check_Child_State
>
0
)))
return
r
;
};
},
return
r
;
getTreeCheckedNodes
:
function
(
setting
,
nodes
,
checked
,
results
)
{
},
if
(
!
nodes
)
return
[];
getTreeCheckedNodes
:
function
(
setting
,
nodes
,
checked
,
results
)
{
var
onlyOne
=
(
checked
&&
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
&&
setting
.
check
.
radioType
==
consts
.
radio
.
TYPE_ALL
);
if
(
!
nodes
)
return
[];
results
=
!
results
?
[]
:
results
;
var
onlyOne
=
(
checked
&&
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
&&
setting
.
check
.
radioType
==
consts
.
radio
.
TYPE_ALL
);
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
results
=
!
results
?
[]
:
results
;
var
node
=
nodes
[
i
];
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
var
node
=
nodes
[
i
];
var
children
=
data
.
nodeChildren
(
setting
,
node
);
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
&&
nodeChecked
==
checked
)
{
results
.
push
(
node
);
if
(
onlyOne
)
{
break
;
}
}
data
.
getTreeCheckedNodes
(
setting
,
children
,
checked
,
results
);
if
(
onlyOne
&&
results
.
length
>
0
)
{
break
;
}
}
return
results
;
},
getTreeChangeCheckedNodes
:
function
(
setting
,
nodes
,
results
)
{
if
(
!
nodes
)
return
[];
results
=
!
results
?
[]
:
results
;
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
var
node
=
nodes
[
i
];
var
children
=
data
.
nodeChildren
(
setting
,
node
);
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
&&
nodeChecked
!=
node
.
checkedOld
)
{
results
.
push
(
node
);
}
data
.
getTreeChangeCheckedNodes
(
setting
,
children
,
results
);
}
return
results
;
},
makeChkFlag
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
var
chkFlag
=
-
1
;
var
children
=
data
.
nodeChildren
(
setting
,
node
);
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
children
)
{
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
var
cNode
=
children
[
i
];
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
cNode
);
var
tmp
=
-
1
;
if
(
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
)
{
if
(
cNode
.
nocheck
===
true
||
cNode
.
chkDisabled
===
true
)
{
tmp
=
cNode
.
check_Child_State
;
}
else
if
(
cNode
.
halfCheck
===
true
)
{
tmp
=
2
;
}
else
if
(
nodeChecked
)
{
tmp
=
2
;
}
else
{
tmp
=
cNode
.
check_Child_State
>
0
?
2
:
0
;
}
if
(
tmp
==
2
)
{
chkFlag
=
2
;
break
;
}
else
if
(
tmp
==
0
)
{
chkFlag
=
0
;
}
}
else
if
(
setting
.
check
.
chkStyle
==
consts
.
checkbox
.
STYLE
)
{
if
(
cNode
.
nocheck
===
true
||
cNode
.
chkDisabled
===
true
)
{
tmp
=
cNode
.
check_Child_State
;
}
else
if
(
cNode
.
halfCheck
===
true
)
{
tmp
=
1
;
}
else
if
(
nodeChecked
)
{
tmp
=
(
cNode
.
check_Child_State
===
-
1
||
cNode
.
check_Child_State
===
2
)
?
2
:
1
;
}
else
{
tmp
=
(
cNode
.
check_Child_State
>
0
)
?
1
:
0
;
}
if
(
tmp
===
1
)
{
chkFlag
=
1
;
break
;
}
else
if
(
tmp
===
2
&&
chkFlag
>
-
1
&&
i
>
0
&&
tmp
!==
chkFlag
)
{
chkFlag
=
1
;
break
;
}
else
if
(
chkFlag
===
2
&&
tmp
>
-
1
&&
tmp
<
2
)
{
chkFlag
=
1
;
break
;
}
else
if
(
tmp
>
-
1
)
{
chkFlag
=
tmp
;
}
}
}
}
node
.
check_Child_State
=
chkFlag
;
}
},
//method of event proxy
_event
=
{},
//method of event handler
_handler
=
{
onCheckNode
:
function
(
event
,
node
)
{
if
(
node
.
chkDisabled
===
true
)
return
false
;
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeCheck
,
[
setting
.
treeId
,
node
],
true
)
==
false
)
return
true
;
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
&&
nodeChecked
==
checked
)
{
data
.
nodeChecked
(
setting
,
node
,
!
nodeChecked
);
results
.
push
(
node
);
view
.
checkNodeRelation
(
setting
,
node
);
if
(
onlyOne
)
{
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
break
;
view
.
setChkClass
(
setting
,
checkObj
,
node
);
}
view
.
repairParentChkClassWithSelf
(
setting
,
node
);
}
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
event
,
setting
.
treeId
,
node
]);
data
.
getTreeCheckedNodes
(
setting
,
children
,
checked
,
results
);
return
true
;
if
(
onlyOne
&&
results
.
length
>
0
)
{
},
break
;
onMouseoverCheck
:
function
(
event
,
node
)
{
}
if
(
node
.
chkDisabled
===
true
)
return
false
;
}
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
return
results
;
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
},
node
.
check_Focus
=
true
;
getTreeChangeCheckedNodes
:
function
(
setting
,
nodes
,
results
)
{
view
.
setChkClass
(
setting
,
checkObj
,
node
);
if
(
!
nodes
)
return
[];
return
true
;
results
=
!
results
?
[]
:
results
;
},
for
(
var
i
=
0
,
l
=
nodes
.
length
;
i
<
l
;
i
++
)
{
onMouseoutCheck
:
function
(
event
,
node
)
{
var
node
=
nodes
[
i
];
if
(
node
.
chkDisabled
===
true
)
return
false
;
var
children
=
data
.
nodeChildren
(
setting
,
node
);
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
node
.
check_Focus
=
false
;
view
.
setChkClass
(
setting
,
checkObj
,
node
);
return
true
;
}
},
//method of tools for zTree
_tools
=
{},
//method of operate ztree dom
_view
=
{
checkNodeRelation
:
function
(
setting
,
node
)
{
var
pNode
,
i
,
l
,
r
=
consts
.
radio
;
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
&&
nodeChecked
!=
node
.
checkedOld
)
{
if
(
setting
.
check
.
chkStyle
==
r
.
STYLE
)
{
results
.
push
(
node
);
var
checkedList
=
data
.
getRadioCheckedList
(
setting
);
}
if
(
nodeChecked
)
{
data
.
getTreeChangeCheckedNodes
(
setting
,
children
,
results
);
if
(
setting
.
check
.
radioType
==
r
.
TYPE_ALL
)
{
}
for
(
i
=
checkedList
.
length
-
1
;
i
>=
0
;
i
--
)
{
return
results
;
pNode
=
checkedList
[
i
];
},
var
pNodeChecked
=
data
.
nodeChecked
(
setting
,
pNode
);
makeChkFlag
:
function
(
setting
,
node
)
{
if
(
pNodeChecked
&&
pNode
!=
node
)
{
if
(
!
node
)
return
;
data
.
nodeChecked
(
setting
,
pNode
,
false
);
var
chkFlag
=
-
1
;
checkedList
.
splice
(
i
,
1
);
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
children
)
{
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
var
cNode
=
children
[
i
];
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
cNode
);
var
tmp
=
-
1
;
if
(
setting
.
check
.
chkStyle
==
consts
.
radio
.
STYLE
)
{
if
(
cNode
.
nocheck
===
true
||
cNode
.
chkDisabled
===
true
)
{
tmp
=
cNode
.
check_Child_State
;
}
else
if
(
cNode
.
halfCheck
===
true
)
{
tmp
=
2
;
}
else
if
(
nodeChecked
)
{
tmp
=
2
;
}
else
{
tmp
=
cNode
.
check_Child_State
>
0
?
2
:
0
;
}
if
(
tmp
==
2
)
{
chkFlag
=
2
;
break
;
}
else
if
(
tmp
==
0
){
chkFlag
=
0
;
}
}
else
if
(
setting
.
check
.
chkStyle
==
consts
.
checkbox
.
STYLE
)
{
if
(
cNode
.
nocheck
===
true
||
cNode
.
chkDisabled
===
true
)
{
tmp
=
cNode
.
check_Child_State
;
}
else
if
(
cNode
.
halfCheck
===
true
)
{
tmp
=
1
;
}
else
if
(
nodeChecked
)
{
tmp
=
(
cNode
.
check_Child_State
===
-
1
||
cNode
.
check_Child_State
===
2
)
?
2
:
1
;
}
else
{
tmp
=
(
cNode
.
check_Child_State
>
0
)
?
1
:
0
;
}
if
(
tmp
===
1
)
{
chkFlag
=
1
;
break
;
}
else
if
(
tmp
===
2
&&
chkFlag
>
-
1
&&
i
>
0
&&
tmp
!==
chkFlag
)
{
chkFlag
=
1
;
break
;
}
else
if
(
chkFlag
===
2
&&
tmp
>
-
1
&&
tmp
<
2
)
{
chkFlag
=
1
;
break
;
}
else
if
(
tmp
>
-
1
)
{
chkFlag
=
tmp
;
}
}
}
}
node
.
check_Child_State
=
chkFlag
;
}
},
//method of event proxy
_event
=
{
},
//method of event handler
_handler
=
{
onCheckNode
:
function
(
event
,
node
)
{
if
(
node
.
chkDisabled
===
true
)
return
false
;
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
);
if
(
tools
.
apply
(
setting
.
callback
.
beforeCheck
,
[
setting
.
treeId
,
node
],
true
)
==
false
)
return
true
;
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
data
.
nodeChecked
(
setting
,
node
,
!
nodeChecked
);
view
.
checkNodeRelation
(
setting
,
node
);
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
view
.
setChkClass
(
setting
,
checkObj
,
node
);
view
.
repairParentChkClassWithSelf
(
setting
,
node
);
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
event
,
setting
.
treeId
,
node
]);
return
true
;
},
onMouseoverCheck
:
function
(
event
,
node
)
{
if
(
node
.
chkDisabled
===
true
)
return
false
;
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
node
.
check_Focus
=
true
;
view
.
setChkClass
(
setting
,
checkObj
,
node
);
return
true
;
},
onMouseoutCheck
:
function
(
event
,
node
)
{
if
(
node
.
chkDisabled
===
true
)
return
false
;
var
setting
=
data
.
getSetting
(
event
.
data
.
treeId
),
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
node
.
check_Focus
=
false
;
view
.
setChkClass
(
setting
,
checkObj
,
node
);
return
true
;
}
},
//method of tools for zTree
_tools
=
{
},
view
.
setChkClass
(
setting
,
$$
(
pNode
,
consts
.
id
.
CHECK
,
setting
),
pNode
);
//method of operate ztree dom
if
(
pNode
.
parentTId
!=
node
.
parentTId
)
{
_view
=
{
view
.
repairParentChkClassWithSelf
(
setting
,
pNode
);
checkNodeRelation
:
function
(
setting
,
node
)
{
}
var
pNode
,
i
,
l
,
}
r
=
consts
.
radio
;
}
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
checkedList
.
push
(
node
);
if
(
setting
.
check
.
chkStyle
==
r
.
STYLE
)
{
}
else
{
var
checkedList
=
data
.
getRadioCheckedList
(
setting
);
var
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
if
(
nodeChecked
)
{
var
children
=
data
.
nodeChildren
(
setting
,
parentNode
);
if
(
setting
.
check
.
radioType
==
r
.
TYPE_ALL
)
{
for
(
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
checkedList
.
length
-
1
;
i
>=
0
;
i
--
)
{
pNode
=
children
[
i
];
pNode
=
checkedList
[
i
];
var
pNodeChecked
=
data
.
nodeChecked
(
setting
,
pNode
);
var
pNodeChecked
=
data
.
nodeChecked
(
setting
,
pNode
);
if
(
pNodeChecked
&&
pNode
!=
node
)
{
if
(
pNodeChecked
&&
pNode
!=
node
)
{
data
.
nodeChecked
(
setting
,
pNode
,
false
);
data
.
nodeChecked
(
setting
,
pNode
,
false
);
view
.
setChkClass
(
setting
,
$$
(
pNode
,
consts
.
id
.
CHECK
,
setting
),
pNode
);
checkedList
.
splice
(
i
,
1
);
}
}
}
}
else
if
(
setting
.
check
.
radioType
==
r
.
TYPE_ALL
)
{
for
(
i
=
0
,
l
=
checkedList
.
length
;
i
<
l
;
i
++
)
{
if
(
node
==
checkedList
[
i
])
{
checkedList
.
splice
(
i
,
1
);
break
;
}
}
}
view
.
setChkClass
(
setting
,
$$
(
pNode
,
consts
.
id
.
CHECK
,
setting
),
pNode
);
}
else
{
if
(
pNode
.
parentTId
!=
node
.
parentTId
)
{
var
children
=
data
.
nodeChildren
(
setting
,
node
);
view
.
repairParentChkClassWithSelf
(
setting
,
pNode
);
if
(
nodeChecked
&&
(
!
children
||
children
.
length
==
0
||
setting
.
check
.
chkboxType
.
Y
.
indexOf
(
"s"
)
>
-
1
))
{
}
view
.
setSonNodeCheckBox
(
setting
,
node
,
true
);
}
}
}
if
(
!
nodeChecked
&&
(
!
children
||
children
.
length
==
0
||
setting
.
check
.
chkboxType
.
N
.
indexOf
(
"s"
)
>
-
1
))
{
checkedList
.
push
(
node
);
view
.
setSonNodeCheckBox
(
setting
,
node
,
false
);
}
else
{
}
var
parentNode
=
(
node
.
parentTId
)
?
node
.
getParentNode
()
:
data
.
getRoot
(
setting
);
if
(
nodeChecked
&&
setting
.
check
.
chkboxType
.
Y
.
indexOf
(
"p"
)
>
-
1
)
{
var
children
=
data
.
nodeChildren
(
setting
,
parentNode
);
view
.
setParentNodeCheckBox
(
setting
,
node
,
true
);
for
(
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
}
pNode
=
children
[
i
];
if
(
!
nodeChecked
&&
setting
.
check
.
chkboxType
.
N
.
indexOf
(
"p"
)
>
-
1
)
{
var
pNodeChecked
=
data
.
nodeChecked
(
setting
,
pNode
);
view
.
setParentNodeCheckBox
(
setting
,
node
,
false
);
if
(
pNodeChecked
&&
pNode
!=
node
)
{
}
data
.
nodeChecked
(
setting
,
pNode
,
false
);
}
view
.
setChkClass
(
setting
,
$$
(
pNode
,
consts
.
id
.
CHECK
,
setting
),
pNode
);
},
}
makeChkClass
:
function
(
setting
,
node
)
{
}
var
c
=
consts
.
checkbox
,
r
=
consts
.
radio
,
}
fullStyle
=
""
;
}
else
if
(
setting
.
check
.
radioType
==
r
.
TYPE_ALL
)
{
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
for
(
i
=
0
,
l
=
checkedList
.
length
;
i
<
l
;
i
++
)
{
if
(
node
.
chkDisabled
===
true
)
{
if
(
node
==
checkedList
[
i
])
{
fullStyle
=
c
.
DISABLED
;
checkedList
.
splice
(
i
,
1
);
}
else
if
(
node
.
halfCheck
)
{
break
;
fullStyle
=
c
.
PART
;
}
}
else
if
(
setting
.
check
.
chkStyle
==
r
.
STYLE
)
{
}
fullStyle
=
(
node
.
check_Child_State
<
1
)
?
c
.
FULL
:
c
.
PART
;
}
}
else
{
fullStyle
=
nodeChecked
?
((
node
.
check_Child_State
===
2
||
node
.
check_Child_State
===
-
1
)
?
c
.
FULL
:
c
.
PART
)
:
((
node
.
check_Child_State
<
1
)
?
c
.
FULL
:
c
.
PART
);
}
else
{
}
var
chkName
=
setting
.
check
.
chkStyle
+
"_"
+
(
nodeChecked
?
c
.
TRUE
:
c
.
FALSE
)
+
"_"
+
fullStyle
;
chkName
=
(
node
.
check_Focus
&&
node
.
chkDisabled
!==
true
)
?
chkName
+
"_"
+
c
.
FOCUS
:
chkName
;
return
consts
.
className
.
BUTTON
+
" "
+
c
.
DEFAULT
+
" "
+
chkName
;
},
repairAllChk
:
function
(
setting
,
checked
)
{
if
(
setting
.
check
.
enable
&&
setting
.
check
.
chkStyle
===
consts
.
checkbox
.
STYLE
)
{
var
root
=
data
.
getRoot
(
setting
);
var
children
=
data
.
nodeChildren
(
setting
,
root
);
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
var
node
=
children
[
i
];
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
data
.
nodeChecked
(
setting
,
node
,
checked
);
}
view
.
setSonNodeCheckBox
(
setting
,
node
,
checked
);
}
}
},
repairChkClass
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
data
.
makeChkFlag
(
setting
,
node
);
if
(
node
.
nocheck
!==
true
)
{
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
view
.
setChkClass
(
setting
,
checkObj
,
node
);
}
},
repairParentChkClass
:
function
(
setting
,
node
)
{
if
(
!
node
||
!
node
.
parentTId
)
return
;
var
pNode
=
node
.
getParentNode
();
view
.
repairChkClass
(
setting
,
pNode
);
view
.
repairParentChkClass
(
setting
,
pNode
);
},
repairParentChkClassWithSelf
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
children
&&
children
.
length
>
0
)
{
view
.
repairParentChkClass
(
setting
,
children
[
0
]);
}
else
{
view
.
repairParentChkClass
(
setting
,
node
);
}
},
repairSonChkDisabled
:
function
(
setting
,
node
,
chkDisabled
,
inherit
)
{
if
(
!
node
)
return
;
if
(
node
.
chkDisabled
!=
chkDisabled
)
{
node
.
chkDisabled
=
chkDisabled
;
}
view
.
repairChkClass
(
setting
,
node
);
var
children
=
data
.
nodeChildren
(
setting
,
node
);
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
nodeChecked
&&
(
!
children
||
children
.
length
==
0
||
setting
.
check
.
chkboxType
.
Y
.
indexOf
(
"s"
)
>
-
1
))
{
if
(
children
&&
inherit
)
{
view
.
setSonNodeCheckBox
(
setting
,
node
,
true
);
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
}
var
sNode
=
children
[
i
];
if
(
!
nodeChecked
&&
(
!
children
||
children
.
length
==
0
||
setting
.
check
.
chkboxType
.
N
.
indexOf
(
"s"
)
>
-
1
))
{
view
.
repairSonChkDisabled
(
setting
,
sNode
,
chkDisabled
,
inherit
);
view
.
setSonNodeCheckBox
(
setting
,
node
,
false
);
}
}
}
if
(
nodeChecked
&&
setting
.
check
.
chkboxType
.
Y
.
indexOf
(
"p"
)
>
-
1
)
{
},
view
.
setParentNodeCheckBox
(
setting
,
node
,
true
);
repairParentChkDisabled
:
function
(
setting
,
node
,
chkDisabled
,
inherit
)
{
}
if
(
!
node
)
return
;
if
(
!
nodeChecked
&&
setting
.
check
.
chkboxType
.
N
.
indexOf
(
"p"
)
>
-
1
)
{
if
(
node
.
chkDisabled
!=
chkDisabled
&&
inherit
)
{
view
.
setParentNodeCheckBox
(
setting
,
node
,
false
);
node
.
chkDisabled
=
chkDisabled
;
}
}
}
view
.
repairChkClass
(
setting
,
node
);
},
view
.
repairParentChkDisabled
(
setting
,
node
.
getParentNode
(),
chkDisabled
,
inherit
);
makeChkClass
:
function
(
setting
,
node
)
{
},
var
c
=
consts
.
checkbox
,
r
=
consts
.
radio
,
setChkClass
:
function
(
setting
,
obj
,
node
)
{
fullStyle
=
""
;
if
(
!
obj
)
return
;
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
node
);
if
(
node
.
nocheck
===
true
)
{
if
(
node
.
chkDisabled
===
true
)
{
obj
.
hide
();
fullStyle
=
c
.
DISABLED
;
}
else
{
}
else
if
(
node
.
halfCheck
)
{
obj
.
show
();
fullStyle
=
c
.
PART
;
}
}
else
if
(
setting
.
check
.
chkStyle
==
r
.
STYLE
)
{
obj
.
attr
(
'class'
,
view
.
makeChkClass
(
setting
,
node
));
fullStyle
=
(
node
.
check_Child_State
<
1
)?
c
.
FULL
:
c
.
PART
;
},
}
else
{
setParentNodeCheckBox
:
function
(
setting
,
node
,
value
,
srcNode
)
{
fullStyle
=
nodeChecked
?
((
node
.
check_Child_State
===
2
||
node
.
check_Child_State
===
-
1
)
?
c
.
FULL
:
c
.
PART
)
:
((
node
.
check_Child_State
<
1
)?
c
.
FULL
:
c
.
PART
);
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
}
if
(
!
srcNode
)
srcNode
=
node
;
var
chkName
=
setting
.
check
.
chkStyle
+
"_"
+
(
nodeChecked
?
c
.
TRUE
:
c
.
FALSE
)
+
"_"
+
fullStyle
;
data
.
makeChkFlag
(
setting
,
node
);
chkName
=
(
node
.
check_Focus
&&
node
.
chkDisabled
!==
true
)
?
chkName
+
"_"
+
c
.
FOCUS
:
chkName
;
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
return
consts
.
className
.
BUTTON
+
" "
+
c
.
DEFAULT
+
" "
+
chkName
;
data
.
nodeChecked
(
setting
,
node
,
value
);
},
view
.
setChkClass
(
setting
,
checkObj
,
node
);
repairAllChk
:
function
(
setting
,
checked
)
{
if
(
setting
.
check
.
autoCheckTrigger
&&
node
!=
srcNode
)
{
if
(
setting
.
check
.
enable
&&
setting
.
check
.
chkStyle
===
consts
.
checkbox
.
STYLE
)
{
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
null
,
setting
.
treeId
,
node
]);
var
root
=
data
.
getRoot
(
setting
);
}
var
children
=
data
.
nodeChildren
(
setting
,
root
);
}
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
if
(
node
.
parentTId
)
{
var
node
=
children
[
i
];
var
pSign
=
true
;
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
if
(
!
value
)
{
data
.
nodeChecked
(
setting
,
node
,
checked
);
var
pNodes
=
data
.
nodeChildren
(
setting
,
node
.
getParentNode
());
}
for
(
var
i
=
0
,
l
=
pNodes
.
length
;
i
<
l
;
i
++
)
{
view
.
setSonNodeCheckBox
(
setting
,
node
,
checked
);
var
pNode
=
pNodes
[
i
];
}
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
pNode
);
}
if
((
pNode
.
nocheck
!==
true
&&
pNode
.
chkDisabled
!==
true
&&
nodeChecked
)
},
||
((
pNode
.
nocheck
===
true
||
pNode
.
chkDisabled
===
true
)
&&
pNode
.
check_Child_State
>
0
))
{
repairChkClass
:
function
(
setting
,
node
)
{
pSign
=
false
;
if
(
!
node
)
return
;
break
;
data
.
makeChkFlag
(
setting
,
node
);
}
if
(
node
.
nocheck
!==
true
)
{
}
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
}
view
.
setChkClass
(
setting
,
checkObj
,
node
);
if
(
pSign
)
{
}
view
.
setParentNodeCheckBox
(
setting
,
node
.
getParentNode
(),
value
,
srcNode
);
},
}
repairParentChkClass
:
function
(
setting
,
node
)
{
}
if
(
!
node
||
!
node
.
parentTId
)
return
;
},
var
pNode
=
node
.
getParentNode
();
setSonNodeCheckBox
:
function
(
setting
,
node
,
value
,
srcNode
)
{
view
.
repairChkClass
(
setting
,
pNode
);
if
(
!
node
)
return
;
view
.
repairParentChkClass
(
setting
,
pNode
);
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
},
if
(
!
srcNode
)
srcNode
=
node
;
repairParentChkClassWithSelf
:
function
(
setting
,
node
)
{
if
(
!
node
)
return
;
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
children
&&
children
.
length
>
0
)
{
view
.
repairParentChkClass
(
setting
,
children
[
0
]);
}
else
{
view
.
repairParentChkClass
(
setting
,
node
);
}
},
repairSonChkDisabled
:
function
(
setting
,
node
,
chkDisabled
,
inherit
)
{
if
(
!
node
)
return
;
if
(
node
.
chkDisabled
!=
chkDisabled
)
{
node
.
chkDisabled
=
chkDisabled
;
}
view
.
repairChkClass
(
setting
,
node
);
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
children
&&
inherit
)
{
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
var
sNode
=
children
[
i
];
view
.
repairSonChkDisabled
(
setting
,
sNode
,
chkDisabled
,
inherit
);
}
}
},
repairParentChkDisabled
:
function
(
setting
,
node
,
chkDisabled
,
inherit
)
{
if
(
!
node
)
return
;
if
(
node
.
chkDisabled
!=
chkDisabled
&&
inherit
)
{
node
.
chkDisabled
=
chkDisabled
;
}
view
.
repairChkClass
(
setting
,
node
);
view
.
repairParentChkDisabled
(
setting
,
node
.
getParentNode
(),
chkDisabled
,
inherit
);
},
setChkClass
:
function
(
setting
,
obj
,
node
)
{
if
(
!
obj
)
return
;
if
(
node
.
nocheck
===
true
)
{
obj
.
hide
();
}
else
{
obj
.
show
();
}
obj
.
attr
(
'class'
,
view
.
makeChkClass
(
setting
,
node
));
},
setParentNodeCheckBox
:
function
(
setting
,
node
,
value
,
srcNode
)
{
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
if
(
!
srcNode
)
srcNode
=
node
;
data
.
makeChkFlag
(
setting
,
node
);
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
data
.
nodeChecked
(
setting
,
node
,
value
);
view
.
setChkClass
(
setting
,
checkObj
,
node
);
if
(
setting
.
check
.
autoCheckTrigger
&&
node
!=
srcNode
)
{
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
null
,
setting
.
treeId
,
node
]);
}
}
if
(
node
.
parentTId
)
{
var
pSign
=
true
;
if
(
!
value
)
{
var
pNodes
=
data
.
nodeChildren
(
setting
,
node
.
getParentNode
());
for
(
var
i
=
0
,
l
=
pNodes
.
length
;
i
<
l
;
i
++
)
{
var
pNode
=
pNodes
[
i
];
var
nodeChecked
=
data
.
nodeChecked
(
setting
,
pNode
);
if
((
pNode
.
nocheck
!==
true
&&
pNode
.
chkDisabled
!==
true
&&
nodeChecked
)
||
((
pNode
.
nocheck
===
true
||
pNode
.
chkDisabled
===
true
)
&&
pNode
.
check_Child_State
>
0
))
{
pSign
=
false
;
break
;
}
}
}
if
(
pSign
)
{
view
.
setParentNodeCheckBox
(
setting
,
node
.
getParentNode
(),
value
,
srcNode
);
}
}
},
setSonNodeCheckBox
:
function
(
setting
,
node
,
value
,
srcNode
)
{
if
(
!
node
)
return
;
var
checkObj
=
$$
(
node
,
consts
.
id
.
CHECK
,
setting
);
if
(
!
srcNode
)
srcNode
=
node
;
var
hasDisable
=
false
;
var
hasDisable
=
false
;
var
children
=
data
.
nodeChildren
(
setting
,
node
);
var
children
=
data
.
nodeChildren
(
setting
,
node
);
if
(
children
)
{
if
(
children
)
{
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
var
sNode
=
children
[
i
];
var
sNode
=
children
[
i
];
view
.
setSonNodeCheckBox
(
setting
,
sNode
,
value
,
srcNode
);
view
.
setSonNodeCheckBox
(
setting
,
sNode
,
value
,
srcNode
);
if
(
sNode
.
chkDisabled
===
true
)
hasDisable
=
true
;
if
(
sNode
.
chkDisabled
===
true
)
hasDisable
=
true
;
}
}
}
}
if
(
node
!=
data
.
getRoot
(
setting
)
&&
node
.
chkDisabled
!==
true
)
{
if
(
node
!=
data
.
getRoot
(
setting
)
&&
node
.
chkDisabled
!==
true
)
{
if
(
hasDisable
&&
node
.
nocheck
!==
true
)
{
if
(
hasDisable
&&
node
.
nocheck
!==
true
)
{
data
.
makeChkFlag
(
setting
,
node
);
data
.
makeChkFlag
(
setting
,
node
);
}
}
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
if
(
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
data
.
nodeChecked
(
setting
,
node
,
value
);
data
.
nodeChecked
(
setting
,
node
,
value
);
if
(
!
hasDisable
)
node
.
check_Child_State
=
(
children
&&
children
.
length
>
0
)
?
(
value
?
2
:
0
)
:
-
1
;
if
(
!
hasDisable
)
node
.
check_Child_State
=
(
children
&&
children
.
length
>
0
)
?
(
value
?
2
:
0
)
:
-
1
;
}
else
{
}
else
{
node
.
check_Child_State
=
-
1
;
node
.
check_Child_State
=
-
1
;
}
}
view
.
setChkClass
(
setting
,
checkObj
,
node
);
view
.
setChkClass
(
setting
,
checkObj
,
node
);
if
(
setting
.
check
.
autoCheckTrigger
&&
node
!=
srcNode
&&
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
if
(
setting
.
check
.
autoCheckTrigger
&&
node
!=
srcNode
&&
node
.
nocheck
!==
true
&&
node
.
chkDisabled
!==
true
)
{
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
null
,
setting
.
treeId
,
node
]);
setting
.
treeObj
.
trigger
(
consts
.
event
.
CHECK
,
[
null
,
setting
.
treeId
,
node
]);
}
}
}
}
}
}
},
},
_z
=
{
_z
=
{
tools
:
_tools
,
tools
:
_tools
,
view
:
_view
,
view
:
_view
,
event
:
_event
,
event
:
_event
,
data
:
_data
data
:
_data
};
};
$
.
extend
(
true
,
$
.
fn
.
zTree
.
consts
,
_consts
);
$
.
extend
(
true
,
$
.
fn
.
zTree
.
consts
,
_consts
);
$
.
extend
(
true
,
$
.
fn
.
zTree
.
_z
,
_z
);
$
.
extend
(
true
,
$
.
fn
.
zTree
.
_z
,
_z
);
var
zt
=
$
.
fn
.
zTree
,
var
zt
=
$
.
fn
.
zTree
,
tools
=
zt
.
_z
.
tools
,
tools
=
zt
.
_z
.
tools
,
consts
=
zt
.
consts
,
consts
=
zt
.
consts
,
view
=
zt
.
_z
.
view
,
view
=
zt
.
_z
.
view
,
data
=
zt
.
_z
.
data
,
data
=
zt
.
_z
.
data
,
event
=
zt
.
_z
.
event
,
event
=
zt
.
_z
.
event
,
$$
=
tools
.
$
;
$$
=
tools
.
$
;
data
.
nodeChecked
=
function
(
setting
,
node
,
newChecked
)
{
data
.
nodeChecked
=
function
(
setting
,
node
,
newChecked
)
{
if
(
!
node
)
{
if
(
!
node
)
{
return
false
;
return
false
;
}
}
...
@@ -605,40 +609,40 @@
...
@@ -605,40 +609,40 @@
return
node
[
key
];
return
node
[
key
];
};
};
data
.
exSetting
(
_setting
);
data
.
exSetting
(
_setting
);
data
.
addInitBind
(
_bindEvent
);
data
.
addInitBind
(
_bindEvent
);
data
.
addInitUnBind
(
_unbindEvent
);
data
.
addInitUnBind
(
_unbindEvent
);
data
.
addInitCache
(
_initCache
);
data
.
addInitCache
(
_initCache
);
data
.
addInitNode
(
_initNode
);
data
.
addInitNode
(
_initNode
);
data
.
addInitProxy
(
_eventProxy
,
true
);
data
.
addInitProxy
(
_eventProxy
,
true
);
data
.
addInitRoot
(
_initRoot
);
data
.
addInitRoot
(
_initRoot
);
data
.
addBeforeA
(
_beforeA
);
data
.
addBeforeA
(
_beforeA
);
data
.
addZTreeTools
(
_zTreeTools
);
data
.
addZTreeTools
(
_zTreeTools
);
var
_createNodes
=
view
.
createNodes
;
var
_createNodes
=
view
.
createNodes
;
view
.
createNodes
=
function
(
setting
,
level
,
nodes
,
parentNode
,
index
)
{
view
.
createNodes
=
function
(
setting
,
level
,
nodes
,
parentNode
,
index
)
{
if
(
_createNodes
)
_createNodes
.
apply
(
view
,
arguments
);
if
(
_createNodes
)
_createNodes
.
apply
(
view
,
arguments
);
if
(
!
nodes
)
return
;
if
(
!
nodes
)
return
;
view
.
repairParentChkClassWithSelf
(
setting
,
parentNode
);
view
.
repairParentChkClassWithSelf
(
setting
,
parentNode
);
}
}
var
_removeNode
=
view
.
removeNode
;
var
_removeNode
=
view
.
removeNode
;
view
.
removeNode
=
function
(
setting
,
node
)
{
view
.
removeNode
=
function
(
setting
,
node
)
{
var
parentNode
=
node
.
getParentNode
();
var
parentNode
=
node
.
getParentNode
();
if
(
_removeNode
)
_removeNode
.
apply
(
view
,
arguments
);
if
(
_removeNode
)
_removeNode
.
apply
(
view
,
arguments
);
if
(
!
node
||
!
parentNode
)
return
;
if
(
!
node
||
!
parentNode
)
return
;
view
.
repairChkClass
(
setting
,
parentNode
);
view
.
repairChkClass
(
setting
,
parentNode
);
view
.
repairParentChkClass
(
setting
,
parentNode
);
view
.
repairParentChkClass
(
setting
,
parentNode
);
}
}
var
_appendNodes
=
view
.
appendNodes
;
var
_appendNodes
=
view
.
appendNodes
;
view
.
appendNodes
=
function
(
setting
,
level
,
nodes
,
parentNode
,
index
,
initFlag
,
openFlag
)
{
view
.
appendNodes
=
function
(
setting
,
level
,
nodes
,
parentNode
,
index
,
initFlag
,
openFlag
)
{
var
html
=
""
;
var
html
=
""
;
if
(
_appendNodes
)
{
if
(
_appendNodes
)
{
html
=
_appendNodes
.
apply
(
view
,
arguments
);
html
=
_appendNodes
.
apply
(
view
,
arguments
);
}
}
if
(
parentNode
)
{
if
(
parentNode
)
{
data
.
makeChkFlag
(
setting
,
parentNode
);
data
.
makeChkFlag
(
setting
,
parentNode
);
}
}
return
html
;
return
html
;
}
}
})(
jQuery
);
})(
jQuery
);
\ No newline at end of file
src/main/webapp/resources/ztree/ztree/jquery.ztree.excheck.min.js
View file @
297b19f6
/*
/*
* JQuery zTree excheck v3.5.3
6
* JQuery zTree excheck v3.5.3
7
* 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: 2018-0
6-26
* Date: 2018-0
8-21
*/
*/
(
function
(
n
){
var
q
,
r
,
s
,
p
=
{
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"
}},
w
=
{
check
:{
enable
:
!
1
,
autoCheckTrigger
:
!
1
,
chkStyle
:
p
.
checkbox
.
STYLE
,
nocheckInherit
:
!
1
,
chkDisabledInherit
:
!
1
,
radioType
:
p
.
radio
.
TYPE_LEVEL
,
chkboxType
:{
Y
:
"ps"
,
N
:
"ps"
}},
data
:{
key
:{
checked
:
"checked"
}},
callback
:{
beforeCheck
:
null
,
onCheck
:
null
}};
q
=
function
(
c
,
(
function
(
n
){
var
q
,
r
,
s
,
p
=
{
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"
}},
w
=
{
check
:{
enable
:
!
1
,
autoCheckTrigger
:
!
1
,
chkStyle
:
p
.
checkbox
.
STYLE
,
nocheckInherit
:
!
1
,
chkDisabledInherit
:
!
1
,
radioType
:
p
.
radio
.
TYPE_LEVEL
,
chkboxType
:{
Y
:
"ps"
,
N
:
"ps"
}},
data
:{
key
:{
checked
:
"checked"
}},
callback
:{
beforeCheck
:
null
,
onCheck
:
null
}};
q
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
e
.
getSetting
(
c
.
data
.
treeId
);
if
(
i
.
apply
(
b
.
callback
.
beforeCheck
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
var
d
=
e
.
nodeChecked
(
b
,
a
);
e
.
nodeChecked
(
b
,
a
,
!
d
);
f
.
checkNodeRelation
(
b
,
a
);
d
=
m
(
a
,
h
.
id
.
CHECK
,
b
);
f
.
setChkClass
(
b
,
d
,
a
);
f
.
repairParentChkClassWithSelf
(
b
,
a
);
b
.
treeObj
.
trigger
(
h
.
event
.
CHECK
,[
c
,
b
.
treeId
,
a
]);
return
!
0
};
r
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
e
.
getSetting
(
c
.
data
.
treeId
),
d
=
m
(
a
,
h
.
id
.
CHECK
,
b
);
a
.
check_Focus
=!
0
;
f
.
setChkClass
(
b
,
d
,
a
);
return
!
0
};
s
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
e
.
getSetting
(
c
.
data
.
treeId
);
if
(
i
.
apply
(
b
.
callback
.
beforeCheck
,[
b
.
treeId
,
a
],
!
0
)
==!
1
)
return
!
0
;
var
d
=
e
.
nodeChecked
(
b
,
a
);
e
.
nodeChecked
(
b
,
a
,
!
d
);
f
.
checkNodeRelation
(
b
,
a
);
d
=
m
(
a
,
h
.
id
.
CHECK
,
b
);
f
.
setChkClass
(
b
,
d
,
a
);
f
.
repairParentChkClassWithSelf
(
b
,
a
);
b
.
treeObj
.
trigger
(
h
.
event
.
CHECK
,[
c
,
b
.
treeId
,
a
]);
return
!
0
};
r
=
function
(
c
,
a
){
if
(
a
.
chkDisabled
===!
0
)
return
!
1
;
var
b
=
e
.
getSetting
(
c
.
data
.
treeId
),
d
=
m
(
a
,
h
.
id
.
CHECK
,
b
);
a
.
check_Focus
=!
0
;
f
.
setChkClass
(
b
,
d
,
a
);
return
!
0
};
s
=
function
(
c
,
...
...
src/main/webapp/resources/ztree/ztree/jquery.ztree.exhide.js
0 → 100644
View file @
297b19f6
/*
* JQuery zTree exHideNodes v3.5.37
* http://treejs.cn/
*
* Copyright (c) 2010 Hunter.z
*
* Licensed same as jquery - MIT License
* http://www.opensource.org/licenses/mit-license.php
*
* email: hunter.z@263.net
* Date: 2018-08-21
*/
(
function
(
$
)
{
var
_setting
=
{
data
:
{
key
:
{
isHidden
:
"isHidden"
}
}
};
//default init node of exLib
var
_initNode
=
function
(
setting
,
level
,
n
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
)
{
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
data
.
isHidden
(
setting
,
n
,
isHidden
);
data
.
initHideForExCheck
(
setting
,
n
);
},
//add dom for check
_beforeA
=
function
(
setting
,
node
,
html
)
{
},
//update zTreeObj, add method of exLib
_zTreeTools
=
function
(
setting
,
zTreeTools
)
{
zTreeTools
.
showNodes
=
function
(
nodes
,
options
)
{
view
.
showNodes
(
setting
,
nodes
,
options
);
}
zTreeTools
.
showNode
=
function
(
node
,
options
)
{
if
(
!
node
)
{
return
;
}
view
.
showNodes
(
setting
,
[
node
],
options
);
}
zTreeTools
.
hideNodes
=
function
(
nodes
,
options
)
{
view
.
hideNodes
(
setting
,
nodes
,
options
);
}
zTreeTools
.
hideNode
=
function
(
node
,
options
)
{
if
(
!
node
)
{
return
;
}
view
.
hideNodes
(
setting
,
[
node
],
options
);
}
var
_checkNode
=
zTreeTools
.
checkNode
;
if
(
_checkNode
)
{
zTreeTools
.
checkNode
=
function
(
node
,
checked
,
checkTypeFlag
,
callbackFlag
)
{
if
(
!!
node
&&
!!
data
.
isHidden
(
setting
,
node
))
{
return
;
}
_checkNode
.
apply
(
zTreeTools
,
arguments
);
}
}
},
//method of operate data
_data
=
{
initHideForExCheck
:
function
(
setting
,
n
)
{
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
if
(
isHidden
&&
setting
.
check
&&
setting
.
check
.
enable
)
{
if
(
typeof
n
.
_nocheck
==
"undefined"
)
{
n
.
_nocheck
=
!!
n
.
nocheck
n
.
nocheck
=
true
;
}
n
.
check_Child_State
=
-
1
;
if
(
view
.
repairParentChkClassWithSelf
)
{
view
.
repairParentChkClassWithSelf
(
setting
,
n
);
}
}
},
initShowForExCheck
:
function
(
setting
,
n
)
{
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
if
(
!
isHidden
&&
setting
.
check
&&
setting
.
check
.
enable
)
{
if
(
typeof
n
.
_nocheck
!=
"undefined"
)
{
n
.
nocheck
=
n
.
_nocheck
;
delete
n
.
_nocheck
;
}
if
(
view
.
setChkClass
)
{
var
checkObj
=
$$
(
n
,
consts
.
id
.
CHECK
,
setting
);
view
.
setChkClass
(
setting
,
checkObj
,
n
);
}
if
(
view
.
repairParentChkClassWithSelf
)
{
view
.
repairParentChkClassWithSelf
(
setting
,
n
);
}
}
}
},
//method of operate ztree dom
_view
=
{
clearOldFirstNode
:
function
(
setting
,
node
)
{
var
n
=
node
.
getNextNode
();
while
(
!!
n
)
{
if
(
n
.
isFirstNode
)
{
n
.
isFirstNode
=
false
;
view
.
setNodeLineIcos
(
setting
,
n
);
break
;
}
if
(
n
.
isLastNode
)
{
break
;
}
n
=
n
.
getNextNode
();
}
},
clearOldLastNode
:
function
(
setting
,
node
,
openFlag
)
{
var
n
=
node
.
getPreNode
();
while
(
!!
n
)
{
if
(
n
.
isLastNode
)
{
n
.
isLastNode
=
false
;
if
(
openFlag
)
{
view
.
setNodeLineIcos
(
setting
,
n
);
}
break
;
}
if
(
n
.
isFirstNode
)
{
break
;
}
n
=
n
.
getPreNode
();
}
},
makeDOMNodeMainBefore
:
function
(
html
,
setting
,
node
)
{
var
isHidden
=
data
.
isHidden
(
setting
,
node
);
html
.
push
(
"<li "
,
(
isHidden
?
"style='display:none;' "
:
""
),
"id='"
,
node
.
tId
,
"' class='"
,
consts
.
className
.
LEVEL
,
node
.
level
,
"' tabindex='0' hidefocus='true' treenode>"
);
},
showNode
:
function
(
setting
,
node
,
options
)
{
data
.
isHidden
(
setting
,
node
,
false
);
data
.
initShowForExCheck
(
setting
,
node
);
$$
(
node
,
setting
).
show
();
},
showNodes
:
function
(
setting
,
nodes
,
options
)
{
if
(
!
nodes
||
nodes
.
length
==
0
)
{
return
;
}
var
pList
=
{},
i
,
j
;
for
(
i
=
0
,
j
=
nodes
.
length
;
i
<
j
;
i
++
)
{
var
n
=
nodes
[
i
];
if
(
!
pList
[
n
.
parentTId
])
{
var
pn
=
n
.
getParentNode
();
pList
[
n
.
parentTId
]
=
(
pn
===
null
)
?
data
.
getRoot
(
setting
)
:
n
.
getParentNode
();
}
view
.
showNode
(
setting
,
n
,
options
);
}
for
(
var
tId
in
pList
)
{
var
children
=
data
.
nodeChildren
(
setting
,
pList
[
tId
]);
view
.
setFirstNodeForShow
(
setting
,
children
);
view
.
setLastNodeForShow
(
setting
,
children
);
}
},
hideNode
:
function
(
setting
,
node
,
options
)
{
data
.
isHidden
(
setting
,
node
,
true
);
node
.
isFirstNode
=
false
;
node
.
isLastNode
=
false
;
data
.
initHideForExCheck
(
setting
,
node
);
view
.
cancelPreSelectedNode
(
setting
,
node
);
$$
(
node
,
setting
).
hide
();
},
hideNodes
:
function
(
setting
,
nodes
,
options
)
{
if
(
!
nodes
||
nodes
.
length
==
0
)
{
return
;
}
var
pList
=
{},
i
,
j
;
for
(
i
=
0
,
j
=
nodes
.
length
;
i
<
j
;
i
++
)
{
var
n
=
nodes
[
i
];
if
((
n
.
isFirstNode
||
n
.
isLastNode
)
&&
!
pList
[
n
.
parentTId
])
{
var
pn
=
n
.
getParentNode
();
pList
[
n
.
parentTId
]
=
(
pn
===
null
)
?
data
.
getRoot
(
setting
)
:
n
.
getParentNode
();
}
view
.
hideNode
(
setting
,
n
,
options
);
}
for
(
var
tId
in
pList
)
{
var
children
=
data
.
nodeChildren
(
setting
,
pList
[
tId
]);
view
.
setFirstNodeForHide
(
setting
,
children
);
view
.
setLastNodeForHide
(
setting
,
children
);
}
},
setFirstNode
:
function
(
setting
,
parentNode
)
{
var
children
=
data
.
nodeChildren
(
setting
,
parentNode
);
var
isHidden
=
data
.
isHidden
(
setting
,
children
[
0
],
false
);
if
(
children
.
length
>
0
&&
!
isHidden
)
{
children
[
0
].
isFirstNode
=
true
;
}
else
if
(
children
.
length
>
0
)
{
view
.
setFirstNodeForHide
(
setting
,
children
);
}
},
setLastNode
:
function
(
setting
,
parentNode
)
{
var
children
=
data
.
nodeChildren
(
setting
,
parentNode
);
var
isHidden
=
data
.
isHidden
(
setting
,
children
[
0
]);
if
(
children
.
length
>
0
&&
!
isHidden
)
{
children
[
children
.
length
-
1
].
isLastNode
=
true
;
}
else
if
(
children
.
length
>
0
)
{
view
.
setLastNodeForHide
(
setting
,
children
);
}
},
setFirstNodeForHide
:
function
(
setting
,
nodes
)
{
var
n
,
i
,
j
;
for
(
i
=
0
,
j
=
nodes
.
length
;
i
<
j
;
i
++
)
{
n
=
nodes
[
i
];
if
(
n
.
isFirstNode
)
{
break
;
}
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
if
(
!
isHidden
&&
!
n
.
isFirstNode
)
{
n
.
isFirstNode
=
true
;
view
.
setNodeLineIcos
(
setting
,
n
);
break
;
}
else
{
n
=
null
;
}
}
return
n
;
},
setFirstNodeForShow
:
function
(
setting
,
nodes
)
{
var
n
,
i
,
j
,
first
,
old
;
for
(
i
=
0
,
j
=
nodes
.
length
;
i
<
j
;
i
++
)
{
n
=
nodes
[
i
];
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
if
(
!
first
&&
!
isHidden
&&
n
.
isFirstNode
)
{
first
=
n
;
break
;
}
else
if
(
!
first
&&
!
isHidden
&&
!
n
.
isFirstNode
)
{
n
.
isFirstNode
=
true
;
first
=
n
;
view
.
setNodeLineIcos
(
setting
,
n
);
}
else
if
(
first
&&
n
.
isFirstNode
)
{
n
.
isFirstNode
=
false
;
old
=
n
;
view
.
setNodeLineIcos
(
setting
,
n
);
break
;
}
else
{
n
=
null
;
}
}
return
{
"new"
:
first
,
"old"
:
old
};
},
setLastNodeForHide
:
function
(
setting
,
nodes
)
{
var
n
,
i
;
for
(
i
=
nodes
.
length
-
1
;
i
>=
0
;
i
--
)
{
n
=
nodes
[
i
];
if
(
n
.
isLastNode
)
{
break
;
}
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
if
(
!
isHidden
&&
!
n
.
isLastNode
)
{
n
.
isLastNode
=
true
;
view
.
setNodeLineIcos
(
setting
,
n
);
break
;
}
else
{
n
=
null
;
}
}
return
n
;
},
setLastNodeForShow
:
function
(
setting
,
nodes
)
{
var
n
,
i
,
j
,
last
,
old
;
for
(
i
=
nodes
.
length
-
1
;
i
>=
0
;
i
--
)
{
n
=
nodes
[
i
];
var
isHidden
=
data
.
isHidden
(
setting
,
n
);
if
(
!
last
&&
!
isHidden
&&
n
.
isLastNode
)
{
last
=
n
;
break
;
}
else
if
(
!
last
&&
!
isHidden
&&
!
n
.
isLastNode
)
{
n
.
isLastNode
=
true
;
last
=
n
;
view
.
setNodeLineIcos
(
setting
,
n
);
}
else
if
(
last
&&
n
.
isLastNode
)
{
n
.
isLastNode
=
false
;
old
=
n
;
view
.
setNodeLineIcos
(
setting
,
n
);
break
;
}
else
{
n
=
null
;
}
}
return
{
"new"
:
last
,
"old"
:
old
};
}
},
_z
=
{
view
:
_view
,
data
:
_data
};
$
.
extend
(
true
,
$
.
fn
.
zTree
.
_z
,
_z
);
var
zt
=
$
.
fn
.
zTree
,
tools
=
zt
.
_z
.
tools
,
consts
=
zt
.
consts
,
view
=
zt
.
_z
.
view
,
data
=
zt
.
_z
.
data
,
event
=
zt
.
_z
.
event
,
$$
=
tools
.
$
;
data
.
isHidden
=
function
(
setting
,
node
,
newIsHidden
)
{
if
(
!
node
)
{
return
false
;
}
var
key
=
setting
.
data
.
key
.
isHidden
;
if
(
typeof
newIsHidden
!==
'undefined'
)
{
if
(
typeof
newIsHidden
===
"string"
)
{
newIsHidden
=
tools
.
eqs
(
checked
,
"true"
);
}
newIsHidden
=
!!
newIsHidden
;
node
[
key
]
=
newIsHidden
;
}
return
node
[
key
];
};
data
.
exSetting
(
_setting
);
data
.
addInitNode
(
_initNode
);
data
.
addBeforeA
(
_beforeA
);
data
.
addZTreeTools
(
_zTreeTools
);
// Override method in core
var
_dInitNode
=
data
.
initNode
;
data
.
initNode
=
function
(
setting
,
level
,
node
,
parentNode
,
isFirstNode
,
isLastNode
,
openFlag
)
{
var
tmpPNode
=
(
parentNode
)
?
parentNode
:
data
.
getRoot
(
setting
),
children
=
tmpPNode
[
setting
.
data
.
key
.
children
];
data
.
tmpHideFirstNode
=
view
.
setFirstNodeForHide
(
setting
,
children
);
data
.
tmpHideLastNode
=
view
.
setLastNodeForHide
(
setting
,
children
);
if
(
openFlag
)
{
view
.
setNodeLineIcos
(
setting
,
data
.
tmpHideFirstNode
);
view
.
setNodeLineIcos
(
setting
,
data
.
tmpHideLastNode
);
}
isFirstNode
=
(
data
.
tmpHideFirstNode
===
node
);
isLastNode
=
(
data
.
tmpHideLastNode
===
node
);
if
(
_dInitNode
)
_dInitNode
.
apply
(
data
,
arguments
);
if
(
openFlag
&&
isLastNode
)
{
view
.
clearOldLastNode
(
setting
,
node
,
openFlag
);
}
};
var
_makeChkFlag
=
data
.
makeChkFlag
;
if
(
!!
_makeChkFlag
)
{
data
.
makeChkFlag
=
function
(
setting
,
node
)
{
if
(
!!
node
&&
!!
data
.
isHidden
(
setting
,
node
))
{
return
;
}
_makeChkFlag
.
apply
(
data
,
arguments
);
}
}
var
_getTreeCheckedNodes
=
data
.
getTreeCheckedNodes
;
if
(
!!
_getTreeCheckedNodes
)
{
data
.
getTreeCheckedNodes
=
function
(
setting
,
nodes
,
checked
,
results
)
{
if
(
!!
nodes
&&
nodes
.
length
>
0
)
{
var
p
=
nodes
[
0
].
getParentNode
();
if
(
!!
p
&&
!!
data
.
isHidden
(
setting
,
p
))
{
return
[];
}
}
return
_getTreeCheckedNodes
.
apply
(
data
,
arguments
);
}
}
var
_getTreeChangeCheckedNodes
=
data
.
getTreeChangeCheckedNodes
;
if
(
!!
_getTreeChangeCheckedNodes
)
{
data
.
getTreeChangeCheckedNodes
=
function
(
setting
,
nodes
,
results
)
{
if
(
!!
nodes
&&
nodes
.
length
>
0
)
{
var
p
=
nodes
[
0
].
getParentNode
();
if
(
!!
p
&&
!!
data
.
isHidden
(
setting
,
p
))
{
return
[];
}
}
return
_getTreeChangeCheckedNodes
.
apply
(
data
,
arguments
);
}
}
var
_expandCollapseSonNode
=
view
.
expandCollapseSonNode
;
if
(
!!
_expandCollapseSonNode
)
{
view
.
expandCollapseSonNode
=
function
(
setting
,
node
,
expandFlag
,
animateFlag
,
callback
)
{
if
(
!!
node
&&
!!
data
.
isHidden
(
setting
,
node
))
{
return
;
}
_expandCollapseSonNode
.
apply
(
view
,
arguments
);
}
}
var
_setSonNodeCheckBox
=
view
.
setSonNodeCheckBox
;
if
(
!!
_setSonNodeCheckBox
)
{
view
.
setSonNodeCheckBox
=
function
(
setting
,
node
,
value
,
srcNode
)
{
if
(
!!
node
&&
!!
data
.
isHidden
(
setting
,
node
))
{
return
;
}
_setSonNodeCheckBox
.
apply
(
view
,
arguments
);
}
}
var
_repairParentChkClassWithSelf
=
view
.
repairParentChkClassWithSelf
;
if
(
!!
_repairParentChkClassWithSelf
)
{
view
.
repairParentChkClassWithSelf
=
function
(
setting
,
node
)
{
if
(
!!
node
&&
!!
data
.
isHidden
(
setting
,
node
))
{
return
;
}
_repairParentChkClassWithSelf
.
apply
(
view
,
arguments
);
}
}
})(
jQuery
);
\ No newline at end of file
src/main/webapp/resources/ztree/ztree/jquery.ztree.exhide.min.js
0 → 100644
View file @
297b19f6
/*
* JQuery zTree exHideNodes v3.5.37
* http://treejs.cn/
*
* Copyright (c) 2010 Hunter.z
*
* Licensed same as jquery - MIT License
* http://www.opensource.org/licenses/mit-license.php
*
* email: hunter.z@263.net
* Date: 2018-08-21
*/
(
function
(
j
){
j
.
extend
(
!
0
,
j
.
fn
.
zTree
.
_z
,{
view
:{
clearOldFirstNode
:
function
(
c
,
a
){
for
(
var
b
=
a
.
getNextNode
();
b
;){
if
(
b
.
isFirstNode
){
b
.
isFirstNode
=!
1
;
e
.
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
&&
e
.
setNodeLineIcos
(
c
,
a
);
break
}
if
(
a
.
isFirstNode
)
break
;
a
=
a
.
getPreNode
()}},
makeDOMNodeMainBefore
:
function
(
c
,
a
,
b
){
a
=
d
.
isHidden
(
a
,
b
);
c
.
push
(
"<li "
,
a
?
"style='display:none;' "
:
""
,
"id='"
,
b
.
tId
,
"' class='"
,
l
.
className
.
LEVEL
,
b
.
level
,
"' tabindex='0' hidefocus='true' treenode>"
)},
showNode
:
function
(
c
,
a
){
d
.
isHidden
(
c
,
a
,
!
1
);
d
.
initShowForExCheck
(
c
,
a
);
k
(
a
,
c
).
show
()},
showNodes
:
function
(
c
,
a
,
b
){
if
(
a
&&
a
.
length
!=
0
){
var
f
=
{},
g
,
i
;
for
(
g
=
0
,
i
=
a
.
length
;
g
<
i
;
g
++
){
var
h
=
a
[
g
];
if
(
!
f
[
h
.
parentTId
]){
var
u
=
h
.
getParentNode
();
f
[
h
.
parentTId
]
=
u
===
null
?
d
.
getRoot
(
c
):
h
.
getParentNode
()}
e
.
showNode
(
c
,
h
,
b
)}
for
(
var
j
in
f
)
a
=
d
.
nodeChildren
(
c
,
f
[
j
]),
e
.
setFirstNodeForShow
(
c
,
a
),
e
.
setLastNodeForShow
(
c
,
a
)}},
hideNode
:
function
(
c
,
a
){
d
.
isHidden
(
c
,
a
,
!
0
);
a
.
isFirstNode
=!
1
;
a
.
isLastNode
=!
1
;
d
.
initHideForExCheck
(
c
,
a
);
e
.
cancelPreSelectedNode
(
c
,
a
);
k
(
a
,
c
).
hide
()},
hideNodes
:
function
(
c
,
a
,
b
){
if
(
a
&&
a
.
length
!=
0
){
var
f
=
{},
g
,
i
;
for
(
g
=
0
,
i
=
a
.
length
;
g
<
i
;
g
++
){
var
h
=
a
[
g
];
if
((
h
.
isFirstNode
||
h
.
isLastNode
)
&&!
f
[
h
.
parentTId
]){
var
j
=
h
.
getParentNode
();
f
[
h
.
parentTId
]
=
j
===
null
?
d
.
getRoot
(
c
):
h
.
getParentNode
()}
e
.
hideNode
(
c
,
h
,
b
)}
for
(
var
k
in
f
)
a
=
d
.
nodeChildren
(
c
,
f
[
k
]),
e
.
setFirstNodeForHide
(
c
,
a
),
e
.
setLastNodeForHide
(
c
,
a
)}},
setFirstNode
:
function
(
c
,
a
){
var
b
=
d
.
nodeChildren
(
c
,
a
),
f
=
d
.
isHidden
(
c
,
b
[
0
],
!
1
);
b
.
length
>
0
&&!
f
?
b
[
0
].
isFirstNode
=!
0
:
b
.
length
>
0
&&
e
.
setFirstNodeForHide
(
c
,
b
)},
setLastNode
:
function
(
c
,
a
){
var
b
=
d
.
nodeChildren
(
c
,
a
),
f
=
d
.
isHidden
(
c
,
b
[
0
]);
b
.
length
>
0
&&!
f
?
b
[
b
.
length
-
1
].
isLastNode
=!
0
:
b
.
length
>
0
&&
e
.
setLastNodeForHide
(
c
,
b
)},
setFirstNodeForHide
:
function
(
c
,
a
){
var
b
,
f
,
g
;
for
(
f
=
0
,
g
=
a
.
length
;
f
<
g
;
f
++
){
b
=
a
[
f
];
if
(
b
.
isFirstNode
)
break
;
if
(
!
d
.
isHidden
(
c
,
b
)
&&!
b
.
isFirstNode
){
b
.
isFirstNode
=!
0
;
e
.
setNodeLineIcos
(
c
,
b
);
break
}
else
b
=
null
}
return
b
},
setFirstNodeForShow
:
function
(
c
,
a
){
var
b
,
f
,
g
,
i
,
h
;
for
(
f
=
0
,
g
=
a
.
length
;
f
<
g
;
f
++
){
b
=
a
[
f
];
var
j
=
d
.
isHidden
(
c
,
b
);
if
(
!
i
&&!
j
&&
b
.
isFirstNode
){
i
=
b
;
break
}
else
if
(
!
i
&&!
j
&&!
b
.
isFirstNode
)
b
.
isFirstNode
=!
0
,
i
=
b
,
e
.
setNodeLineIcos
(
c
,
b
);
else
if
(
i
&&
b
.
isFirstNode
){
b
.
isFirstNode
=!
1
;
h
=
b
;
e
.
setNodeLineIcos
(
c
,
b
);
break
}}
return
{
"new"
:
i
,
old
:
h
}},
setLastNodeForHide
:
function
(
c
,
a
){
var
b
,
f
;
for
(
f
=
a
.
length
-
1
;
f
>=
0
;
f
--
){
b
=
a
[
f
];
if
(
b
.
isLastNode
)
break
;
if
(
!
d
.
isHidden
(
c
,
b
)
&&!
b
.
isLastNode
){
b
.
isLastNode
=!
0
;
e
.
setNodeLineIcos
(
c
,
b
);
break
}
else
b
=
null
}
return
b
},
setLastNodeForShow
:
function
(
c
,
a
){
var
b
,
f
,
g
,
i
;
for
(
f
=
a
.
length
-
1
;
f
>=
0
;
f
--
){
b
=
a
[
f
];
var
h
=
d
.
isHidden
(
c
,
b
);
if
(
!
g
&&!
h
&&
b
.
isLastNode
){
g
=
b
;
break
}
else
if
(
!
g
&&!
h
&&!
b
.
isLastNode
)
b
.
isLastNode
=!
0
,
g
=
b
,
e
.
setNodeLineIcos
(
c
,
b
);
else
if
(
g
&&
b
.
isLastNode
){
b
.
isLastNode
=!
1
;
i
=
b
;
e
.
setNodeLineIcos
(
c
,
b
);
break
}}
return
{
"new"
:
g
,
old
:
i
}}},
data
:{
initHideForExCheck
:
function
(
c
,
a
){
if
(
d
.
isHidden
(
c
,
a
)
&&
c
.
check
&&
c
.
check
.
enable
){
if
(
typeof
a
.
_nocheck
==
"undefined"
)
a
.
_nocheck
=!!
a
.
nocheck
,
a
.
nocheck
=!
0
;
a
.
check_Child_State
=-
1
;
e
.
repairParentChkClassWithSelf
&&
e
.
repairParentChkClassWithSelf
(
c
,
a
)}},
initShowForExCheck
:
function
(
c
,
a
){
if
(
!
d
.
isHidden
(
c
,
a
)
&&
c
.
check
&&
c
.
check
.
enable
){
if
(
typeof
a
.
_nocheck
!=
"undefined"
)
a
.
nocheck
=
a
.
_nocheck
,
delete
a
.
_nocheck
;
if
(
e
.
setChkClass
){
var
b
=
k
(
a
,
l
.
id
.
CHECK
,
c
);
e
.
setChkClass
(
c
,
b
,
a
)}
e
.
repairParentChkClassWithSelf
&&
e
.
repairParentChkClassWithSelf
(
c
,
a
)}}}});
var
j
=
j
.
fn
.
zTree
,
m
=
j
.
_z
.
tools
,
l
=
j
.
consts
,
e
=
j
.
_z
.
view
,
d
=
j
.
_z
.
data
,
k
=
m
.
$
;
d
.
isHidden
=
function
(
c
,
a
,
b
){
if
(
!
a
)
return
!
1
;
c
=
c
.
data
.
key
.
isHidden
;
typeof
b
!==
"undefined"
&&
(
typeof
b
===
"string"
&&
(
b
=
m
.
eqs
(
checked
,
"true"
)),
a
[
c
]
=
!!
b
);
return
a
[
c
]};
d
.
exSetting
({
data
:{
key
:{
isHidden
:
"isHidden"
}}});
d
.
addInitNode
(
function
(
c
,
a
,
b
){
a
=
d
.
isHidden
(
c
,
b
);
d
.
isHidden
(
c
,
b
,
a
);
d
.
initHideForExCheck
(
c
,
b
)});
d
.
addBeforeA
(
function
(){});
d
.
addZTreeTools
(
function
(
c
,
a
){
a
.
showNodes
=
function
(
a
,
b
){
e
.
showNodes
(
c
,
a
,
b
)};
a
.
showNode
=
function
(
a
,
b
){
a
&&
e
.
showNodes
(
c
,[
a
],
b
)};
a
.
hideNodes
=
function
(
a
,
b
){
e
.
hideNodes
(
c
,
a
,
b
)};
a
.
hideNode
=
function
(
a
,
b
){
a
&&
e
.
hideNodes
(
c
,[
a
],
b
)};
var
b
=
a
.
checkNode
;
if
(
b
)
a
.
checkNode
=
function
(
f
,
e
,
i
,
h
){(
!
f
||!
d
.
isHidden
(
c
,
f
))
&&
b
.
apply
(
a
,
arguments
)}});
var
n
=
d
.
initNode
;
d
.
initNode
=
function
(
c
,
a
,
b
,
f
,
g
,
i
,
h
){
var
j
=
(
f
?
f
:
d
.
getRoot
(
c
))[
c
.
data
.
key
.
children
];
d
.
tmpHideFirstNode
=
e
.
setFirstNodeForHide
(
c
,
j
);
d
.
tmpHideLastNode
=
e
.
setLastNodeForHide
(
c
,
j
);
h
&&
(
e
.
setNodeLineIcos
(
c
,
d
.
tmpHideFirstNode
),
e
.
setNodeLineIcos
(
c
,
d
.
tmpHideLastNode
));
g
=
d
.
tmpHideFirstNode
===
b
;
i
=
d
.
tmpHideLastNode
===
b
;
n
&&
n
.
apply
(
d
,
arguments
);
h
&&
i
&&
e
.
clearOldLastNode
(
c
,
b
,
h
)};
var
o
=
d
.
makeChkFlag
;
if
(
o
)
d
.
makeChkFlag
=
function
(
c
,
a
){(
!
a
||!
d
.
isHidden
(
c
,
a
))
&&
o
.
apply
(
d
,
arguments
)};
var
p
=
d
.
getTreeCheckedNodes
;
if
(
p
)
d
.
getTreeCheckedNodes
=
function
(
c
,
a
,
b
,
f
){
if
(
a
&&
a
.
length
>
0
){
var
e
=
a
[
0
].
getParentNode
();
if
(
e
&&
d
.
isHidden
(
c
,
e
))
return
[]}
return
p
.
apply
(
d
,
arguments
)};
var
q
=
d
.
getTreeChangeCheckedNodes
;
if
(
q
)
d
.
getTreeChangeCheckedNodes
=
function
(
c
,
a
,
b
){
if
(
a
&&
a
.
length
>
0
){
var
e
=
a
[
0
].
getParentNode
();
if
(
e
&&
d
.
isHidden
(
c
,
e
))
return
[]}
return
q
.
apply
(
d
,
arguments
)};
var
r
=
e
.
expandCollapseSonNode
;
if
(
r
)
e
.
expandCollapseSonNode
=
function
(
c
,
a
,
b
,
f
,
g
){(
!
a
||!
d
.
isHidden
(
c
,
a
))
&&
r
.
apply
(
e
,
arguments
)};
var
s
=
e
.
setSonNodeCheckBox
;
if
(
s
)
e
.
setSonNodeCheckBox
=
function
(
c
,
a
,
b
,
f
){(
!
a
||!
d
.
isHidden
(
c
,
a
))
&&
s
.
apply
(
e
,
arguments
)};
var
t
=
e
.
repairParentChkClassWithSelf
;
if
(
t
)
e
.
repairParentChkClassWithSelf
=
function
(
c
,
a
){(
!
a
||!
d
.
isHidden
(
c
,
a
))
&&
t
.
apply
(
e
,
arguments
)}})(
jQuery
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment