From 7152dea94bcf2e4d275a2154161d3663dcf9fa49 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 27 二月 2021 09:30:05 +0800
Subject: [PATCH] #
---
src/main/webapp/views/locDetl/locDetl.html | 131 +++++++++++++++++++++-----
src/main/webapp/static/js/nodeTree.js | 86 +++++++++++++++++
src/main/java/zy/cloud/wms/manager/controller/NodeController.java | 19 +++
src/main/java/zy/cloud/wms/common/utils/TreeUtils.java | 45 +++++++++
src/main/java/zy/cloud/wms/common/web/BaseController.java | 12 ++
5 files changed, 268 insertions(+), 25 deletions(-)
diff --git a/src/main/java/zy/cloud/wms/common/utils/TreeUtils.java b/src/main/java/zy/cloud/wms/common/utils/TreeUtils.java
index 43f36e7..717c8dd 100644
--- a/src/main/java/zy/cloud/wms/common/utils/TreeUtils.java
+++ b/src/main/java/zy/cloud/wms/common/utils/TreeUtils.java
@@ -4,7 +4,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Component;
+import zy.cloud.wms.manager.entity.Node;
import zy.cloud.wms.manager.entity.Tag;
+import zy.cloud.wms.manager.service.NodeService;
import zy.cloud.wms.manager.service.TagService;
import java.util.*;
@@ -18,6 +20,8 @@
@Autowired
private TagService tagService;
+ @Autowired
+ private NodeService nodeService;
/**
* 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
@@ -41,6 +45,27 @@
}
/**
+ * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
+ */
+ @Cacheable(cacheNames="nodeTree",key="#id")
+ public ArrayList<Map> getNodeTree(String id){
+ ArrayList<Map> result = new ArrayList<>();
+ Node node = nodeService.selectById(id);
+ // 涓昏妭鐐�
+ Map<String, Object> map = new HashMap<>();
+ map.put("title", node.getName());
+ map.put("id", node.getId());
+ map.put("spread", true);
+ List<Map> childrens = new ArrayList<>();
+ map.put("children", childrens);
+ dealNode(node, childrens);
+ result.add(map);
+ // 寮�濮嬪鐞嗗瓧鑺傜偣
+// deal(tag, childrens);
+ return result;
+ }
+
+ /**
* 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹�
*/
public void deal(Tag parent, List<Map> list) {
@@ -60,6 +85,26 @@
}
}
+ /**
+ * 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹�
+ */
+ public void dealNode(Node parent, List<Map> list) {
+ List<Node> nodes = nodeService.selectList(
+ new EntityWrapper<Node>()
+ .eq("parent_id", parent.getId())
+ .eq("status", "1"));
+ for (Node node : nodes) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("title", node.getName());
+ map.put("id", node.getId());
+ map.put("spread", true);
+ List<Map> childrens = new ArrayList<>();
+ map.put("children", childrens);
+ dealNode(node, childrens);
+ list.add(map);
+ }
+ }
+
diff --git a/src/main/java/zy/cloud/wms/common/web/BaseController.java b/src/main/java/zy/cloud/wms/common/web/BaseController.java
index 4321d81..1bb099b 100644
--- a/src/main/java/zy/cloud/wms/common/web/BaseController.java
+++ b/src/main/java/zy/cloud/wms/common/web/BaseController.java
@@ -9,7 +9,9 @@
import com.core.exception.CoolException;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.beans.factory.annotation.Autowired;
+import zy.cloud.wms.manager.entity.Node;
import zy.cloud.wms.manager.entity.Tag;
+import zy.cloud.wms.manager.service.NodeService;
import zy.cloud.wms.manager.service.TagService;
import zy.cloud.wms.system.entity.User;
import zy.cloud.wms.system.service.UserService;
@@ -32,6 +34,8 @@
private UserService userService;
@Autowired
private TagService tagService;
+ @Autowired
+ private NodeService nodeService;
protected Long getUserId(){
return Long.parseLong(String.valueOf(request.getAttribute("userId")));
@@ -62,6 +66,14 @@
return tag;
}
+ protected Node getOriginNode(){
+ Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("level", 0));
+ if (node == null) {
+ throw new CoolException("搴撳尯鏁版嵁閿欒");
+ }
+ return node;
+ }
+
/**
* 鍒嗛〉缁勮
* @param pageNumber
diff --git a/src/main/java/zy/cloud/wms/manager/controller/NodeController.java b/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
index 1a60a4a..c2ed398 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
@@ -12,11 +12,14 @@
import com.core.common.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import zy.cloud.wms.common.utils.ListUtils;
+import zy.cloud.wms.common.utils.TreeUtils;
import zy.cloud.wms.common.web.BaseController;
import zy.cloud.wms.manager.entity.Node;
import zy.cloud.wms.manager.service.NodeService;
import zy.cloud.wms.manager.utils.NodeUtils;
+import java.io.IOException;
import java.util.*;
@RestController
@@ -24,6 +27,8 @@
@Autowired
private NodeService nodeService;
+ @Autowired
+ private TreeUtils treeUtils;
@RequestMapping(value = "/node/{id}/auth")
@ManagerAuth
@@ -175,4 +180,18 @@
return R.ok().add(result);
}
+ @PostMapping(value = "/node/tree/auth")
+ @ManagerAuth
+ public R tree(@RequestParam(required = false, defaultValue = "") String condition) throws IOException, ClassNotFoundException {
+ ArrayList<Map> tree = treeUtils.getNodeTree(String.valueOf(getOriginNode().getId()));
+ // 娣辨嫹璐�
+ List<Map> result = ListUtils.deepCopy(tree);
+ if (!Cools.isEmpty(condition)) {
+ treeUtils.remove(condition, result);
+ treeUtils.remove(condition, result);
+ }
+ return R.ok(result);
+ }
+
+
}
diff --git a/src/main/webapp/static/js/nodeTree.js b/src/main/webapp/static/js/nodeTree.js
new file mode 100644
index 0000000..081cd25
--- /dev/null
+++ b/src/main/webapp/static/js/nodeTree.js
@@ -0,0 +1,86 @@
+var currentTemId;
+var currentTemName;
+var currentTemSsbm;
+var init = false;
+
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/" // 閰嶇疆妯″潡鎵�鍦ㄧ殑鐩綍
+}).use(['table','laydate', 'form', 'tree', 'xmSelect'], function() {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var tree = layui.tree;
+ var xmSelect = layui.xmSelect;
+ var selObj, treeData; // 宸︽爲閫変腑鏁版嵁
+
+ var organizationTree;
+ window.loadTree = function(condition){
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/node/tree/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ 'condition': condition
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ layer.close(loadIndex);
+ // 鏍戝舰鍥�
+ organizationTree = tree.render({
+ elem: '#organizationTree',
+ id: 'organizationTree',
+ onlyIconControl: true,
+ data: res.data,
+ click: function (obj) {
+ currentTemId = obj.data.id;
+ currentTemName = obj.data.title.split(" - ")[0];
+ currentTemSsbm = obj.data.title.split(" - ")[1];
+ selObj = obj;
+ $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
+ $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
+ tableIns.reload({
+ where: {node_id: obj.data.id},
+ page: {curr: 1}
+ });
+ }
+ });
+ treeData = res.data;
+ if (isEmpty(condition) && init) {
+ tableIns.reload({
+ where: {node_id: ""},
+ page: {curr: 1}
+ });
+ }
+ if (!init) {
+ init = true;
+ }
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ loadTree();
+
+ /* 鏍戝舰鍥鹃噸缃� */
+ $('#treeReset').click(function () {
+ $("#condition").val("");
+ loadTree("");
+ })
+
+})
+
+function closeDialog() {
+ layer.closeAll();
+}
+
+/* 鏍戝舰鍥炬悳绱� */
+function findData(el) {
+ var condition = $(el).val();
+ loadTree(condition)
+}
\ No newline at end of file
diff --git a/src/main/webapp/views/locDetl/locDetl.html b/src/main/webapp/views/locDetl/locDetl.html
index c131a32..2487450 100644
--- a/src/main/webapp/views/locDetl/locDetl.html
+++ b/src/main/webapp/views/locDetl/locDetl.html
@@ -9,39 +9,119 @@
<link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../static/css/cool.css" media="all">
<link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <link rel="stylesheet" href="../../static/css/tree.css" media="all">
+ <style>
+ body {
+ color: #595959;
+ background-color: #f5f7f9;
+ }
+ .layui-fluid {
+ padding: 15px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ /*margin: 15px 0 35px 0;*/
+ width: 100%;
+ border-width: 1px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ height: calc(100vh - 160px);
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ margin: 0;
+ }
+ </style>
</head>
<body>
-<!-- 鎼滅储鏍� -->
-<div id="search-box" class="layui-form layui-card-header">
- <div class="layui-inline">
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="loc_no" placeholder="璐т綅缂栧彿" autocomplete="off">
+<div class="layui-fluid" style="padding-bottom: 0;">
+ <!-- 宸� -->
+ <div class="layui-row layui-col-space15">
+ <div class="layui-col-md3">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <!-- 鏍戝伐鍏锋爮 -->
+ <div class="layui-form toolbar" id="organizationTreeBar">
+ <div class="layui-inline" style="max-width: 200px;">
+ <input id="condition" onkeyup="findData(this)" type="text" class="layui-input" placeholder="璇疯緭鍏ュ叧閿瓧" autocomplete="off">
+ </div>
+ <div class="layui-inline">
+ <button class="layui-btn icon-btn" id="treeReset">
+ <i class="layui-icon layui-icon-close"></i>
+ </button>
+ </div>
+ </div>
+ <!-- 鏍� -->
+ <div class="layui-form toolbar" id="organizationTree"></div>
+ </div>
+ </div>
</div>
- </div>
- <div class="layui-inline">
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+ <!-- 鍙� -->
+ <div class="layui-col-md9">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <!-- 琛ㄦ牸宸ュ叿鏍�2 -->
+ <div id="search-box" class="layui-form toolbar" style="padding-top: 5px">
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">璐т綅缂栧彿:</label>
+ <div class="layui-input-inline">
+ <input name="loc_no" class="layui-input" placeholder="杈撳叆璐т綅缂栧彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鍟嗗搧缂栧彿:</label>
+ <div class="layui-input-inline">
+ <input name="matnr" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鍟嗗搧鍚嶇О:</label>
+ <div class="layui-input-inline">
+ <input name="maktx" class="layui-input" placeholder="杈撳叆鍟嗗搧鍚嶇О"/>
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ </div>
+ </div>
+ <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>
+ </div>
+ </div>
</div>
- </div>
-
- <div class="layui-inline">
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="maktx" placeholder="鍟嗗搧鍚嶇О" autocomplete="off">
- </div>
- </div>
-
- <!-- 寰呮坊鍔� -->
- <div id="data-search-btn" class="layui-btn-container layui-form-item">
- <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
- <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
</div>
</div>
-<!-- 琛ㄦ牸 -->
-<div class="layui-form">
- <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>
-</div>
+<!--<!– 鎼滅储鏍� –>-->
+<!--<div id="search-box" class="layui-form layui-card-header">-->
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="loc_no" placeholder="璐т綅缂栧彿" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="maktx" placeholder="鍟嗗搧鍚嶇О" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+
+<!-- <!– 寰呮坊鍔� –>-->
+<!-- <div id="data-search-btn" class="layui-btn-container layui-form-item">-->
+<!-- <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>-->
+<!-- <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>-->
+<!-- </div>-->
+<!--</div>-->
+
+<!--<!– 琛ㄦ牸 –>-->
+<!--<div class="layui-form">-->
+<!-- <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>-->
+<!--</div>-->
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
@@ -60,6 +140,7 @@
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/locDetl/locDetl.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/nodeTree.js" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
--
Gitblit v1.9.1