|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<head th:include="include :: header"></head>
|
|
|
|
<link th:href="@{/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css}" rel="stylesheet"/>
|
|
|
|
<style>
|
|
|
|
body{height:auto;font-family: "Microsoft YaHei";}
|
|
|
|
button{font-family: "SimSun","Helvetica Neue",Helvetica,Arial;}
|
|
|
|
</style>
|
|
|
|
<body class="hold-transition box box-main">
|
|
|
|
<input id="treeId" name="treeId" type="hidden" th:value="${dept.deptId}"/>
|
|
|
|
<input id="treeName" name="treeName" type="hidden" th:value="${dept.deptName}"/>
|
|
|
|
<div class="wrapper"><div class="treeShowHideButton" onclick="search();">
|
|
|
|
<label id="btnShow" title="显示搜索" style="display:none;">︾</label>
|
|
|
|
<label id="btnHide" title="隐藏搜索">︽</label>
|
|
|
|
</div>
|
|
|
|
<div class="treeSearchInput" id="search">
|
|
|
|
<label for="keyword">关键字:</label><input type="text" class="empty" id="keyword" maxlength="50">
|
|
|
|
<button class="btn" id="btn" onclick="searchNode()"> 搜索 </button>
|
|
|
|
</div>
|
|
|
|
<div class="treeExpandCollapse">
|
|
|
|
<a href="javascript:" id="btnExpand">展开</a> /
|
|
|
|
<a href="javascript:" id="btnCollapse">折叠</a>
|
|
|
|
</div>
|
|
|
|
<div id="tree" class="ztree treeselect"></div>
|
|
|
|
</div>
|
|
|
|
<div class="layui-layer-btn">
|
|
|
|
<a class="layui-layer-btn0" th:onclick="'javascript:loadObj()'"><i class="fa fa-check"></i> 确定</a>
|
|
|
|
<a class="layui-layer-btn1" onclick="$.modal.close()"><i class="fa fa-close"></i> 关闭</a>
|
|
|
|
</div>
|
|
|
|
<div th:include="include::footer"></div>
|
|
|
|
<script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js}"></script>
|
|
|
|
<script th:inline="javascript">
|
|
|
|
// 树结构初始化加载
|
|
|
|
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
|
|
|
|
callback:{onClick:function(event, treeId, treeNode){
|
|
|
|
var treeId = treeNode.id;
|
|
|
|
var treeName = treeNode.name;
|
|
|
|
$("#treeId").val(treeId);
|
|
|
|
$("#treeName").val(treeName);
|
|
|
|
}}
|
|
|
|
}, tree, loadTree = function(){
|
|
|
|
$.get(ctx + "system/dept/treeData", function(data) {
|
|
|
|
var treeName = $("#treeName").val();
|
|
|
|
tree = $.fn.zTree.init($("#tree"), setting, data);
|
|
|
|
// 展开第一级节点
|
|
|
|
var nodes = tree.getNodesByParam("level", 0);
|
|
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
|
|
tree.expandNode(nodes[i], true, false, false);
|
|
|
|
selectCheckNode(treeName,nodes[i]);
|
|
|
|
}
|
|
|
|
// 展开第二级节点
|
|
|
|
nodes = tree.getNodesByParam("level", 1);
|
|
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
|
|
tree.expandNode(nodes[i], true, false, false);
|
|
|
|
selectCheckNode(treeName,nodes[i]);
|
|
|
|
}
|
|
|
|
// 展开第二级节点
|
|
|
|
nodes = tree.getNodesByParam("level", 2);
|
|
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
|
|
tree.expandNode(nodes[i], true, false, false);
|
|
|
|
selectCheckNode(treeName,nodes[i]);
|
|
|
|
}
|
|
|
|
}, null, null, "正在加载,请稍后...");
|
|
|
|
};
|
|
|
|
|
|
|
|
$(function() {
|
|
|
|
loadTree();
|
|
|
|
});
|
|
|
|
|
|
|
|
function selectCheckNode(treeName, node) {
|
|
|
|
if(treeName == node.name){
|
|
|
|
tree.selectNode(node, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$('#btnExpand').click(function() {
|
|
|
|
tree.expandAll(true);
|
|
|
|
});
|
|
|
|
$('#btnCollapse').click(function() {
|
|
|
|
tree.expandAll(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
function loadObj(){
|
|
|
|
var treeId = $("#treeId").val();
|
|
|
|
var treeName = $("#treeName").val();
|
|
|
|
parent.$("#treeId").val(treeId);
|
|
|
|
parent.$("#treeName").val(treeName);
|
|
|
|
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
|
|
|
parent.layer.close(index);
|
|
|
|
}
|
|
|
|
|
|
|
|
var lastValue = "", nodeList = [], key = $("#keyword");
|
|
|
|
key.bind("focus", focusKey).bind("blur", blurKey).bind("change cut input propertychange", searchNode);
|
|
|
|
key.bind("keydown", function (e){if(e.which == 13){searchNode();}});
|
|
|
|
|
|
|
|
function focusKey(e) {
|
|
|
|
if (key.hasClass("empty")) {
|
|
|
|
key.removeClass("empty");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function blurKey(e) {
|
|
|
|
if (key.get(0).value === "") {
|
|
|
|
key.addClass("empty");
|
|
|
|
}
|
|
|
|
searchNode(e);
|
|
|
|
}
|
|
|
|
|
|
|
|
function searchNode() {
|
|
|
|
var value = $.trim(key.get(0).value);
|
|
|
|
var keyType = "name";
|
|
|
|
if (lastValue === value) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
lastValue = value;
|
|
|
|
var nodes = tree.getNodes();
|
|
|
|
if (value == "") {
|
|
|
|
showAllNode(nodes);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
hideAllNode(nodes);
|
|
|
|
nodeList = tree.getNodesByParamFuzzy(keyType, value);
|
|
|
|
updateNodes(nodeList);
|
|
|
|
}
|
|
|
|
|
|
|
|
function hideAllNode(nodes){
|
|
|
|
var tree = $.fn.zTree.getZTreeObj("tree");
|
|
|
|
nodes = tree.transformToArray(nodes);
|
|
|
|
for(var i=nodes.length-1; i>=0; i--) {
|
|
|
|
tree.hideNode(nodes[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function showAllNode(nodes){
|
|
|
|
nodes = tree.transformToArray(nodes);
|
|
|
|
for(var i=nodes.length-1; i>=0; i--) {
|
|
|
|
if(nodes[i].getParentNode()!=null){
|
|
|
|
tree.expandNode(nodes[i],false,false,false,false);
|
|
|
|
}else{
|
|
|
|
tree.expandNode(nodes[i],true,true,false,false);
|
|
|
|
}
|
|
|
|
tree.showNode(nodes[i]);
|
|
|
|
showAllNode(nodes[i].children);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function updateNodes(nodeList) {
|
|
|
|
tree.showNodes(nodeList);
|
|
|
|
for(var i=0, l=nodeList.length; i<l; i++) {
|
|
|
|
var treeNode = nodeList[i];
|
|
|
|
showChildren(treeNode);
|
|
|
|
showParent(treeNode)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function showChildren(treeNode){
|
|
|
|
if (treeNode.isParent){
|
|
|
|
for(var idx in treeNode.children){
|
|
|
|
var node = treeNode.children[idx];
|
|
|
|
tree.showNode(node);
|
|
|
|
showChildren(node);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function showParent(treeNode){
|
|
|
|
var parentNode;
|
|
|
|
while((parentNode = treeNode.getParentNode()) != null){
|
|
|
|
tree.showNode(parentNode);
|
|
|
|
tree.expandNode(parentNode, true, false, false);
|
|
|
|
treeNode = parentNode;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function search($this) {
|
|
|
|
$('#search').slideToggle(200);
|
|
|
|
$('#btnShow').toggle();
|
|
|
|
$('#btnHide').toggle();
|
|
|
|
$('#keyword').focus();
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|