123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <!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>
|