From f74bb3a0d31392a2ea06ac231a854c38df060e65 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 19 一月 2021 11:20:47 +0800
Subject: [PATCH] #

---
 /dev/null                                                            |  183 --------------------------
 src/main/java/zy/cloud/wms/manager/utils/NodeUtils.java              |   32 ++++
 src/main/java/zy/cloud/wms/manager/service/impl/NodeServiceImpl.java |    7 +
 src/main/webapp/views/allo/allo.html                                 |   13 +
 src/main/webapp/views/area/area.html                                 |   20 ++
 src/main/java/zy/cloud/wms/manager/service/NodeService.java          |    3 
 src/main/java/zy/cloud/wms/manager/controller/NodeController.java    |   56 +++++++
 src/main/webapp/static/js/allo/allo.js                               |   19 ++
 src/main/webapp/static/js/area/area.js                               |   21 ++
 src/main/webapp/views/allo/allo_detail.html                          |   20 ++
 src/main/webapp/views/area/area_detail.html                          |   29 +++
 src/main/webapp/static/js/cool.js                                    |    5 
 12 files changed, 206 insertions(+), 202 deletions(-)

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 df36c99..1a60a4a 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
@@ -15,11 +15,9 @@
 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.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RestController
 public class NodeController extends BaseController {
@@ -63,6 +61,26 @@
     @RequestMapping(value = "/node/add/auth")
     @ManagerAuth
     public R add(Node node) {
+        if (node.getType() != 1) {
+            Node parentNode = nodeService.selectById(node.getParentId());
+            if (parentNode == null || parentNode.getStatus() == 0) {
+                return R.error(node.getType()==2?"鎵�灞炰粨搴撲笉瀛樺湪":"鎵�灞炲簱鍖轰笉瀛樺湪");
+            }
+            node.setParentName(parentNode.getName());
+            node.setLevel(parentNode.getLevel() + 1);
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(node);
+        node.setPath(nodeUtils.path.toString());
+        node.setNamePath(nodeUtils.pathName.toString());
+
+        node.setLevel(node.getType());
+        node.setCreateBy(getUserId());
+        node.setCreateTime(new Date());
+        node.setUpdateBy(getUserId());
+        node.setUpdateTime(new Date());
+        node.setStatus(1);
         nodeService.insert(node);
         return R.ok();
     }
@@ -73,6 +91,22 @@
         if (Cools.isEmpty(node) || null==node.getId()){
             return R.error();
         }
+        if (node.getType() != 1) {
+            Node parentNode = nodeService.selectById(node.getParentId());
+            if (parentNode == null || parentNode.getStatus() == 0) {
+                return R.error(node.getType()==2?"鎵�灞炰粨搴撲笉瀛樺湪":"鎵�灞炲簱鍖轰笉瀛樺湪");
+            }
+            node.setParentName(parentNode.getName());
+            node.setLevel(parentNode.getLevel() + 1);
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(node);
+        node.setPath(nodeUtils.path.toString());
+        node.setNamePath(nodeUtils.pathName.toString());
+
+        node.setUpdateBy(getUserId());
+        node.setUpdateTime(new Date());
         nodeService.updateById(node);
         return R.ok();
     }
@@ -127,4 +161,18 @@
         return R.ok();
     }
 
+    @PostMapping(value = "/parent/node/group")
+    public R getParentNodeGroup(@RequestParam(required = false) String condition,
+                                @RequestParam Integer type) {
+        List<Node> nodes = nodeService.selectList(new EntityWrapper<Node>().eq("type", type).eq("status", 1));
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (Node node : nodes) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("key", node.getId());
+            map.put("val", node.getName());
+            result.add(map);
+        }
+        return R.ok().add(result);
+    }
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/NodeService.java b/src/main/java/zy/cloud/wms/manager/service/NodeService.java
index 6a2e3bc..72126df 100644
--- a/src/main/java/zy/cloud/wms/manager/service/NodeService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/NodeService.java
@@ -5,4 +5,7 @@
 
 public interface NodeService extends IService<Node> {
 
+
+    String getPathName(Node node);
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/NodeServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/NodeServiceImpl.java
index 009abf7..c6a1df4 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/NodeServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/NodeServiceImpl.java
@@ -9,4 +9,11 @@
 @Service("nodeService")
 public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements NodeService {
 
+    @Override
+    public String getPathName(Node node) {
+        if (node.getParentId() != null) {
+            Node node1 = selectById(node.getParentId());
+        }
+        return null;
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/utils/NodeUtils.java b/src/main/java/zy/cloud/wms/manager/utils/NodeUtils.java
new file mode 100644
index 0000000..ba20490
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/utils/NodeUtils.java
@@ -0,0 +1,32 @@
+package zy.cloud.wms.manager.utils;
+
+import com.core.common.SpringUtils;
+import zy.cloud.wms.manager.entity.Node;
+import zy.cloud.wms.manager.service.NodeService;
+
+/**
+ * Created by vincent on 2021/1/19
+ */
+public class NodeUtils {
+
+    public StringBuilder path = new StringBuilder();
+
+    public StringBuilder pathName = new StringBuilder();
+
+    public void executePath(Node node) {
+        NodeService bean = SpringUtils.getBean(NodeService.class);
+        Node parent = bean.selectById(node.getParentId());
+        if (null != parent) {
+            path.insert(0, parent.getId()).insert(0,",");
+            pathName.insert(0, parent.getName()).insert(0,",");
+            if (parent.getParentId() != null) {
+                executePath(parent);
+            } else {
+                path.deleteCharAt(0);
+                pathName.deleteCharAt(0);
+            }
+        }
+
+    }
+
+}
diff --git a/src/main/webapp/static/js/allo/allo.js b/src/main/webapp/static/js/allo/allo.js
index a73c886..f14975b 100644
--- a/src/main/webapp/static/js/allo/allo.js
+++ b/src/main/webapp/static/js/allo/allo.js
@@ -1,4 +1,17 @@
 var pageCurr;
+
+getParentNode();
+function getParentNode(el) {
+    http.post(baseUrl + "/parent/node/group", {type: 2}, function (res) {
+        if (res.data != null) {
+            var tpl = $("#parentNodeGroup").html();
+            var template = Handlebars.compile(tpl);
+            var html = template(res);
+            $('#parentId').append(html);
+        }
+    });
+}
+
 layui.use(['table','laydate', 'form'], function(){
     var table = layui.table;
     var $ = layui.jquery;
@@ -12,7 +25,7 @@
         headers: {token: localStorage.getItem('token')},
         url: baseUrl+'/node/list/auth',
         page: true,
-        where: {type: 2},
+        where: {type: 3},
         limit: 16,
         limits: [16, 30, 50, 100, 200, 500],
         even: true,
@@ -24,7 +37,7 @@
             ,{field: 'uuid', align: 'center',title: '缂栧彿'}
             ,{field: 'name', align: 'center',title: '浠撳簱鍚嶇О'}
             // ,{field: 'parentId', align: 'center',title: '鐖剁骇'}
-            // ,{field: 'parentName', align: 'center',title: '鐖剁骇鍚嶇О'}
+            ,{field: 'parentName', align: 'center',title: '鎵�灞炲簱鍖�'}
             // ,{field: 'type$', align: 'center',title: '绫诲瀷'}
             // ,{field: 'path', align: 'center',title: '鍏宠仈璺緞'}
             // ,{field: 'namePath', align: 'center',title: '鍏宠仈璺緞鍚�'}
@@ -234,7 +247,7 @@
             type: 3,
             path: $('#path').val(),
             namePath: $('#namePath').val(),
-            level: 3,
+            level: $('#level').val(),
             leading: $('#leading').val(),
             sort: $('#sort').val(),
             barcode: $('#barcode').val(),
diff --git a/src/main/webapp/static/js/area/area.js b/src/main/webapp/static/js/area/area.js
index 1438f39..14626a3 100644
--- a/src/main/webapp/static/js/area/area.js
+++ b/src/main/webapp/static/js/area/area.js
@@ -1,4 +1,18 @@
 var pageCurr;
+var tableIns;
+
+getParentNode();
+function getParentNode(el) {
+    http.post(baseUrl + "/parent/node/group", {type: 1}, function (res) {
+        if (res.data != null) {
+            var tpl = $("#parentNodeGroup").html();
+            var template = Handlebars.compile(tpl);
+            var html = template(res);
+            $('#parentId').append(html);
+        }
+    });
+}
+
 layui.use(['table','laydate', 'form'], function(){
     var table = layui.table;
     var $ = layui.jquery;
@@ -22,9 +36,9 @@
             {type: 'checkbox'}
             // ,{field: 'id', align: 'center',title: 'ID'}
             ,{field: 'uuid', align: 'center',title: '缂栧彿'}
-            ,{field: 'name', align: 'center',title: '浠撳簱鍚嶇О'}
+            ,{field: 'name', align: 'center',title: '搴撳尯鍚嶇О'}
             // ,{field: 'parentId', align: 'center',title: '鐖剁骇'}
-            // ,{field: 'parentName', align: 'center',title: '鐖剁骇鍚嶇О'}
+            ,{field: 'parentName', align: 'center',title: '鎵�灞炰粨搴�'}
             // ,{field: 'type$', align: 'center',title: '绫诲瀷'}
             // ,{field: 'path', align: 'center',title: '鍏宠仈璺緞'}
             // ,{field: 'namePath', align: 'center',title: '鍏宠仈璺緞鍚�'}
@@ -302,9 +316,10 @@
         type: 'datetime'
     });
 
-
 });
 
+
+
 // 鍏抽棴鍔ㄤ綔
 $(document).on('click','#data-detail-close', function () {
     parent.layer.closeAll();
diff --git a/src/main/webapp/static/js/cool.js b/src/main/webapp/static/js/cool.js
index f970bcc..03ebe7a 100644
--- a/src/main/webapp/static/js/cool.js
+++ b/src/main/webapp/static/js/cool.js
@@ -151,3 +151,8 @@
         }
     });
 }
+
+// layui select 榛樿璧嬪��
+function setOption(el, value) {
+    el.siblings("div.layui-form-select").find('dl').find('dd[lay-value=' + value + ']').click();
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/node/node.js b/src/main/webapp/static/js/node/node.js
deleted file mode 100644
index b79f48a..0000000
--- a/src/main/webapp/static/js/node/node.js
+++ /dev/null
@@ -1,488 +0,0 @@
-var pageCurr;
-layui.use(['table','laydate', 'form'], function(){
-    var table = layui.table;
-    var $ = layui.jquery;
-    var layer = layui.layer;
-    var layDate = layui.laydate;
-    var form = layui.form;
-
-    // 鏁版嵁娓叉煋
-    tableIns = table.render({
-        elem: '#node',
-        headers: {token: localStorage.getItem('token')},
-        url: baseUrl+'/node/list/auth',
-        page: true,
-        limit: 16,
-        limits: [16, 30, 50, 100, 200, 500],
-        even: true,
-        toolbar: '#toolbar',
-        cellMinWidth: 50,
-        cols: [[
-            {type: 'checkbox'}
-//            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
-            ,{field: 'id', align: 'center',title: 'ID'}
-            ,{field: 'uuid', align: 'center',title: '缂栧彿'}
-            ,{field: 'name', align: 'center',title: '鍚嶇О'}
-            ,{field: 'parentId', align: 'center',title: '鐖剁骇'}
-            ,{field: 'parentName', align: 'center',title: '鐖剁骇鍚嶇О'}
-            ,{field: 'type$', align: 'center',title: '绫诲瀷'}
-            ,{field: 'path', align: 'center',title: '鍏宠仈璺緞'}
-            ,{field: 'namePath', align: 'center',title: '鍏宠仈璺緞鍚�'}
-            ,{field: 'level', align: 'center',title: '绛夌骇'}
-            ,{field: 'leading', align: 'center',title: '璐熻矗浜�'}
-            ,{field: 'sort', align: 'center',title: '鎺掑簭'}
-            ,{field: 'barcode', align: 'center',title: '鏉$爜'}
-            ,{field: 'major', align: 'center',title: '鎺ㄨ崘浣�'}
-            ,{field: 'status$', align: 'center',title: '鐘舵��'}
-            ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
-            ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳',event: 'createBy', style: 'cursor:pointer'}
-            ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
-            ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳',event: 'updateBy', style: 'cursor:pointer'}
-            ,{field: 'memo', align: 'center',title: '澶囨敞'}
-
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
-        ]],
-        request: {
-            pageName: 'curr',
-            pageSize: 'limit'
-        },
-        parseData: function (res) {
-            return {
-                'code': res.code,
-                'msg': res.msg,
-                'count': res.data.total,
-                'data': res.data.records
-            }
-        },
-        response: {
-            statusCode: 200
-        },
-        done: function(res, curr, count) {
-            if (res.code === 403) {
-                top.location.href = baseUrl+"/";
-            }
-            pageCurr=curr;
-            limit();
-            form.on('checkbox(tableCheckbox)', function (data) {
-                var _index = $(data.elem).attr('table-index')||0;
-                if(data.elem.checked){
-                    res.data[_index][data.value] = 'Y';
-                }else{
-                    res.data[_index][data.value] = 'N';
-                }
-            });
-        }
-    });
-
-    // 鐩戝惉鎺掑簭浜嬩欢
-    table.on('sort(locMast)', function (obj) {
-        var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
-            searchData[this.name] = this.value;
-        });
-        searchData['orderByField'] = obj.field;
-        searchData['orderByType'] = obj.type;
-        tableIns.reload({
-            where: searchData,
-            page: {
-                curr: 1
-            },
-            done: function (res, curr, count) {
-                if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
-                }
-                pageCurr=curr;
-                limit();
-            }
-        });
-    });
-
-    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
-    table.on('toolbar(node)', function (obj) {
-        var checkStatus = table.checkStatus(obj.config.id);
-        switch(obj.event) {
-            case 'addData':
-                layer.open({
-                    type: 2,
-                    title: '鏂板',
-                    maxmin: true,
-                    area: [top.detailWidth, top.detailHeight],
-                    content: 'node_detail.html',
-                    success: function(layero, index){
-                        layer.getChildFrame('#data-detail-submit-edit', index).hide();
-                    	clearFormVal(layer.getChildFrame('#detail', index));
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                    }
-                });
-                break;
-            case 'deleteData':
-                var data = checkStatus.data;
-                if (data.length === 0){
-                    layer.msg('璇烽�夋嫨鏁版嵁');
-                } else {
-                    layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
-                        $.ajax({
-                            url: baseUrl+"/node/delete/auth",
-                            headers: {'token': localStorage.getItem('token')},
-                            data: {param: JSON.stringify(data)},
-                            method: 'POST',
-                            traditional:true,
-                            success: function (res) {
-                                if (res.code === 200){
-                                    layer.closeAll();
-                                    tableReload(false);
-                                } else if (res.code === 403){
-                                    top.location.href = baseUrl+"/";
-                                } else {
-                                    layer.msg(res.msg)
-                                }
-                            }
-                        })
-                    });
-                }
-                break;
-            case 'exportData':
-                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
-                        }
-                    });
-                    var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function() {
-                        exportData[this.name] = this.value;
-                    });
-                    var param = {
-                        'node': exportData,
-                        'fields': fields
-                    };
-                    $.ajax({
-                        url: baseUrl+"/node/export/auth",
-                        headers: {'token': localStorage.getItem('token')},
-                        data: JSON.stringify(param),
-                        dataType:'json',
-                        contentType:'application/json;charset=UTF-8',
-                        method: 'POST',
-                        success: function (res) {
-                            layer.closeAll();
-                            if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
-                            } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
-                            } else {
-                                layer.msg(res.msg)
-                            }
-                        }
-                    });
-                });
-                break;
-        }
-    });
-
-    // 鐩戝惉琛屽伐鍏蜂簨浠�
-    table.on('tool(node)', function(obj){
-        var data = obj.data;
-        switch (obj.event) {
-            // 璇︽儏
-            case 'detail':
-                layer.open({
-                    type: 2,
-                    title: '璇︽儏',
-                    maxmin: true,
-                    area: [top.detailWidth, top.detailHeight],
-                    shadeClose: true,
-                    content: 'node_detail.html',
-                    success: function(layero, index){
-                        setFormVal(layer.getChildFrame('#detail', index), data, true);
-                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                        layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                    }
-                });
-                break;
-            // 缂栬緫
-            case 'edit':
-                layer.open({
-                    type: 2,
-                    title: '淇敼',
-                    maxmin: true,
-                    area: [top.detailWidth, top.detailHeight],
-                    content: 'node_detail.html',
-                    success: function(layero, index){
-                        layer.getChildFrame('#data-detail-submit-save', index).hide();
-                        setFormVal(layer.getChildFrame('#detail', index), data, false);
-                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
-                        top.convertDisabled(layer.getChildFrame('#id', index), true);
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                        layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                    }
-                });
-                break;
-            case 'createBy':
-                var param = top.reObject(data).createBy;
-                if (param === undefined) {
-                    layer.msg("鏃犳暟鎹�");
-                } else {
-                   layer.open({
-                       type: 2,
-                       title: '娣诲姞浜哄憳璇︽儏',
-                       maxmin: true,
-                       area: [top.detailWidth, top.detailHeight],
-                       shadeClose: true,
-                       content: '../user/user_detail.html',
-                       success: function(layero, index){
-                           $.ajax({
-                               url: "baseUrl+/user/"+ param +"/auth",
-                               headers: {'token': localStorage.getItem('token')},
-                               method: 'GET',
-                               success: function (res) {
-                                   if (res.code === 200){
-                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
-                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                                   } else if (res.code === 403){
-                                       top.location.href = baseUrl+"/";
-                                   }else {
-                                       layer.msg(res.msg)
-                                   }
-                               }
-                           })
-                       }
-                   });
-                }
-                break;
-            case 'updateBy':
-                var param = top.reObject(data).updateBy;
-                if (param === undefined) {
-                    layer.msg("鏃犳暟鎹�");
-                } else {
-                   layer.open({
-                       type: 2,
-                       title: '淇敼浜哄憳璇︽儏',
-                       maxmin: true,
-                       area: [top.detailWidth, top.detailHeight],
-                       shadeClose: true,
-                       content: '../user/user_detail.html',
-                       success: function(layero, index){
-                           $.ajax({
-                               url: "baseUrl+/user/"+ param +"/auth",
-                               headers: {'token': localStorage.getItem('token')},
-                               method: 'GET',
-                               success: function (res) {
-                                   if (res.code === 200){
-                                       setFormVal(layer.getChildFrame('#detail', index), res.data, true);
-                                       top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                                       layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                                       layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                                       layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                                   } else if (res.code === 403){
-                                       top.location.href = baseUrl+"/";
-                                   }else {
-                                       layer.msg(res.msg)
-                                   }
-                               }
-                           })
-                       }
-                   });
-                }
-                break;
-
-        }
-    });
-
-    // 鏁版嵁淇濆瓨鍔ㄤ綔
-    form.on('submit(save)', function () {
-        if (banMsg != null){
-            layer.msg(banMsg);
-            return;
-        }
-        method("add");
-    });
-
-    // 鏁版嵁淇敼鍔ㄤ綔
-    form.on('submit(edit)', function () {
-        method("update")
-    });
-
-    function method(name){
-        var index = layer.load(1, {
-            shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
-        });
-        var data = {
-//            id: $('#id').val(),
-            id: $('#id').val(),
-            uuid: $('#uuid').val(),
-            name: $('#name').val(),
-            parentId: $('#parentId').val(),
-            parentName: $('#parentName').val(),
-            type: $('#type').val(),
-            path: $('#path').val(),
-            namePath: $('#namePath').val(),
-            level: $('#level').val(),
-            leading: $('#leading').val(),
-            sort: $('#sort').val(),
-            barcode: $('#barcode').val(),
-            major: $('#major').val(),
-            status: $('#status').val(),
-            createTime: top.strToDate($('#createTime\\$').val()),
-            createBy: $('#createBy').val(),
-            updateTime: top.strToDate($('#updateTime\\$').val()),
-            updateBy: $('#updateBy').val(),
-            memo: $('#memo').val(),
-
-        };
-        $.ajax({
-            url: baseUrl+"/node/"+name+"/auth",
-            headers: {'token': localStorage.getItem('token')},
-            data: top.reObject(data),
-            method: 'POST',
-            success: function (res) {
-                if (res.code === 200){
-                    parent.layer.closeAll();
-                    parent.$(".layui-laypage-btn")[0].click();
-                    $("#data-detail :input").each(function () {
-                        $(this).val("");
-                    });
-                } else if (res.code === 403){
-                    top.location.href = baseUrl+"/";
-                }else {
-                    layer.msg(res.msg)
-                }
-                layer.close(index);
-            }
-        })
-    }
-
-    // 澶嶉�夋浜嬩欢
-    form.on('checkbox(detailCheckbox)', function (data) {
-        var el = data.elem;
-        if (el.checked) {
-            $(el).val('Y');
-        } else {
-            $(el).val('N');
-        }
-    });
-
-    // 鎼滅储鏍忔悳绱簨浠�
-    form.on('submit(search)', function (data) {
-        pageCurr = 1;
-        tableReload(false);
-    });
-
-    // 鎼滅储鏍忛噸缃簨浠�
-    form.on('submit(reset)', function (data) {
-        pageCurr = 1;
-        clearFormVal($('#search-box'));
-        tableReload(false);
-    });
-
-    // 鏃堕棿閫夋嫨鍣�
-    layDate.render({
-        elem: '#createTime\\$',
-        type: 'datetime'
-    });
-    layDate.render({
-        elem: '#updateTime\\$',
-        type: 'datetime'
-    });
-
-
-});
-
-// 鍏抽棴鍔ㄤ綔
-$(document).on('click','#data-detail-close', function () {
-    parent.layer.closeAll();
-});
-
-function tableReload(child) {
-    var searchData = {};
-    $.each($('#search-box [name]').serializeArray(), function() {
-        searchData[this.name] = this.value;
-    });
-    (child ? parent.tableIns : tableIns).reload({
-        where: searchData,
-        page: {
-            curr: pageCurr
-        },
-        done: function (res, curr, count) {
-            if (res.code === 403) {
-                top.location.href = baseUrl+"/";
-            }
-            pageCurr=curr;
-            if (res.data.length === 0 && count !== 0) {
-                tableIns.reload({
-                    where: searchData,
-                    page: {
-                        curr: pageCurr-1
-                    }
-                });
-                pageCurr -= 1;
-            }
-            limit(child);
-        }
-    });
-}
-
-function setFormVal(el, data, showImg) {
-    for (var val in data) {
-        var find = el.find(":input[id='" + val + "']");
-        if (find[0]!=null){
-            if (find[0].type === 'checkbox'){
-                if (data[val]==='Y'){
-                    find.attr("checked","checked");
-                    find.val('Y');
-                } else {
-                    find.remove("checked");
-                    find.val('N');
-                }
-                continue;
-            }
-        }
-        find.val(data[val]);
-        if (showImg){
-            var next = find.next();
-            if (next.get(0)){
-                if (next.get(0).localName === "img") {
-                    find.hide();
-                    next.attr("src", data[val]);
-                    next.show();
-                }
-            }
-        }
-    }
-}
-
-function clearFormVal(el) {
-    $(':input', el)
-        .val('')
-        .removeAttr('checked')
-        .removeAttr('selected');
-}
-
-function detailScreen(index) {
-    var detail = layer.getChildFrame('#data-detail', index);
-    var height = detail.height()+60;
-    if (height > ($(window).height()*0.9)) {
-        height = ($(window).height()*0.8);
-    }
-    layer.style(index, {
-//        top: (($(window).height()-height)/3)+"px",
-        height: height+'px'
-    });
-}
-
-$('body').keydown(function () {
-    if (event.keyCode === 13) {
-        $("#search").click();
-    }
-});
diff --git a/src/main/webapp/views/allo/allo.html b/src/main/webapp/views/allo/allo.html
index 94f2c70..4c8d1d0 100644
--- a/src/main/webapp/views/allo/allo.html
+++ b/src/main/webapp/views/allo/allo.html
@@ -24,6 +24,12 @@
             <input class="layui-input" type="text" name="name" placeholder="浠撳簱鍚嶇О" autocomplete="off">
         </div>
     </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <select id="parentId" name="parent_id" lay-search="">
+            </select>
+        </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>
@@ -51,10 +57,17 @@
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <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/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/allo/allo.js" charset="utf-8"></script>
 
 <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
 
 </body>
+<script type="text/template" id="parentNodeGroup">
+    <option value="">閫夋嫨搴撳尯</option>
+    {{#each data}}
+    <option value="{{this.key}}">{{this.val}}</option>
+    {{/each}}
+</script>
 </html>
 
diff --git a/src/main/webapp/views/allo/allo_detail.html b/src/main/webapp/views/allo/allo_detail.html
index 08b3257..b48d5cd 100644
--- a/src/main/webapp/views/allo/allo_detail.html
+++ b/src/main/webapp/views/allo/allo_detail.html
@@ -33,12 +33,19 @@
                 <input id="name" class="layui-input" type="text"  autocomplete="off">
             </div>
         </div>
-        <div class="layui-inline"  style="width:31%;;display: none">
-            <label class="layui-form-label">鐖躲��銆�绾э細</label>
+        <div class="layui-inline" style="width:85%;">
+            <label class="layui-form-label form-required">鎵�灞炲簱鍖猴細</label>
             <div class="layui-input-inline">
-                <input id="parentId" class="layui-input" type="text" lay-verify="number" >
+                <select id="parentId" lay-verify="required" lay-search="">
+                </select>
             </div>
         </div>
+<!--        <div class="layui-inline"  style="width:31%;;display: none">-->
+<!--            <label class="layui-form-label">鐖躲��銆�绾э細</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input id="parentId" class="layui-input" type="text" lay-verify="number" >-->
+<!--            </div>-->
+<!--        </div>-->
         <div class="layui-inline"  style="width:31%;;display: none">
             <label class="layui-form-label">鐖剁骇鍚嶇О锛�</label>
             <div class="layui-input-inline">
@@ -170,6 +177,13 @@
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <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/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/allo/allo.js" charset="utf-8"></script>
+<script type="text/template" id="parentNodeGroup">
+    <option value="">閫夋嫨搴撳尯</option>
+    {{#each data}}
+    <option value="{{this.key}}">{{this.val}}</option>
+    {{/each}}
+</script>
 </html>
 
diff --git a/src/main/webapp/views/area/area.html b/src/main/webapp/views/area/area.html
index eff2429..f239ad2 100644
--- a/src/main/webapp/views/area/area.html
+++ b/src/main/webapp/views/area/area.html
@@ -9,6 +9,11 @@
     <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">
+    <style>
+        .layui-form-select dl {
+            max-height: 200px;
+        }
+    </style>
 </head>
 <body>
 
@@ -21,7 +26,13 @@
     </div>
     <div class="layui-inline">
         <div class="layui-input-inline">
-            <input class="layui-input" type="text" name="name" placeholder="浠撳簱鍚嶇О" autocomplete="off">
+            <input class="layui-input" type="text" name="name" placeholder="搴撳尯鍚嶇О" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <select id="parentId" name="parent_id" lay-search="">
+            </select>
         </div>
     </div>
     <!-- 寰呮坊鍔� -->
@@ -51,10 +62,17 @@
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <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/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/area/area.js" charset="utf-8"></script>
 
 <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
 
 </body>
+<script type="text/template" id="parentNodeGroup">
+    <option value="">閫夋嫨浠撳簱</option>
+    {{#each data}}
+    <option value="{{this.key}}">{{this.val}}</option>
+    {{/each}}
+</script>
 </html>
 
diff --git a/src/main/webapp/views/area/area_detail.html b/src/main/webapp/views/area/area_detail.html
index 08605ab..1eb3daf 100644
--- a/src/main/webapp/views/area/area_detail.html
+++ b/src/main/webapp/views/area/area_detail.html
@@ -9,6 +9,11 @@
     <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">
+    <style>
+        .layui-form-select dl {
+            max-height: 200px;
+        }
+    </style>
 </head>
 <body>
 
@@ -24,21 +29,28 @@
         <div class="layui-inline"  style="width:85%;">
             <label class="layui-form-label form-required">缂栧彿锛�</label>
             <div class="layui-input-inline">
-                <input id="uuid" class="layui-input" type="text" autocomplete="off">
+                <input id="uuid" class="layui-input" type="text" autocomplete="off" lay-verify="required">
             </div>
         </div>
         <div class="layui-inline"  style="width:85%;">
             <label class="layui-form-label form-required">鍚嶇О锛�</label>
             <div class="layui-input-inline">
-                <input id="name" class="layui-input" type="text"  autocomplete="off">
+                <input id="name" class="layui-input" type="text" autocomplete="off" lay-verify="required">
             </div>
         </div>
-        <div class="layui-inline"  style="width:31%;;display: none">
-            <label class="layui-form-label">鐖躲��銆�绾э細</label>
+        <div class="layui-inline" style="width:85%;">
+            <label class="layui-form-label form-required">鎵�灞炰粨搴擄細</label>
             <div class="layui-input-inline">
-                <input id="parentId" class="layui-input" type="text" lay-verify="number" >
+                <select id="parentId" lay-verify="required" lay-search="">
+                </select>
             </div>
         </div>
+<!--        <div class="layui-inline"  style="width:31%;;display: none">-->
+<!--            <label class="layui-form-label">鐖躲��銆�绾э細</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input id="parentId" class="layui-input" type="text" lay-verify="number" >-->
+<!--            </div>-->
+<!--        </div>-->
         <div class="layui-inline"  style="width:31%;;display: none">
             <label class="layui-form-label">鐖剁骇鍚嶇О锛�</label>
             <div class="layui-input-inline">
@@ -170,6 +182,13 @@
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <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/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/area/area.js" charset="utf-8"></script>
+<script type="text/template" id="parentNodeGroup">
+    <option value="">閫夋嫨浠撳簱</option>
+    {{#each data}}
+    <option value="{{this.key}}">{{this.val}}</option>
+    {{/each}}
+</script>
 </html>
 
diff --git a/src/main/webapp/views/node/node.html b/src/main/webapp/views/node/node.html
deleted file mode 100644
index 9ae3218..0000000
--- a/src/main/webapp/views/node/node.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title></title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-    <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">
-</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="id" placeholder="缂栧彿" autocomplete="off">
-        </div>
-    </div>
-    <div class="layui-inline">
-        <div class="layui-input-inline cool-auto-complete">
-            <input id="createBy" class="layui-input" name="create_by" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
-            <input id="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="娣诲姞浜哄憳" onfocus=this.blur()>
-            <div class="cool-auto-complete-window">
-                <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                </select>
-            </div>
-        </div>
-    </div>
-    <div class="layui-inline">
-        <div class="layui-input-inline cool-auto-complete">
-            <input id="updateBy" class="layui-input" name="update_by" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
-            <input id="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="淇敼浜哄憳" onfocus=this.blur()>
-            <div class="cool-auto-complete-window">
-                <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                </select>
-            </div>
-        </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="node" lay-filter="node"></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>
-        <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
-        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
-    </div>
-</script>
-
-<script type="text/html" id="operate">
-    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
-    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
-</script>
-
-<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
-<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
-<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/node/node.js" charset="utf-8"></script>
-
-<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
-
-</body>
-</html>
-
diff --git a/src/main/webapp/views/node/node_detail.html b/src/main/webapp/views/node/node_detail.html
deleted file mode 100644
index 65eb364..0000000
--- a/src/main/webapp/views/node/node_detail.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title></title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-    <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">
-</head>
-<body>
-
-<!-- 璇︽儏 -->
-<div id="data-detail" class="layer_self_wrap">
-    <form id="detail" class="layui-form">
-    <!--
-        <div class="layui-inline"  style="display: none">
-            <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
-            <div class="layui-input-inline">
-                <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
-            </div>
-        </div>
-    -->
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label"><span class="not-null">*</span>I銆�銆�D锛�</label>
-            <div class="layui-input-inline">
-                <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'node')" lay-verify="number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">缂栥��銆�鍙凤細</label>
-            <div class="layui-input-inline">
-                <input id="uuid" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鍚嶃��銆�绉帮細</label>
-            <div class="layui-input-inline">
-                <input id="name" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鐖躲��銆�绾э細</label>
-            <div class="layui-input-inline">
-                <input id="parentId" class="layui-input" type="text" lay-verify="number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鐖剁骇鍚嶇О锛�</label>
-            <div class="layui-input-inline">
-                <input id="parentName" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">绫汇��銆�鍨嬶細</label>
-            <div class="layui-input-inline">
-                <select id="type">
-                    <option value="" style="display: none"></option>
-                    <option value="1">浠撳簱</option>
-                    <option value="2">搴撳尯</option>
-                    <option value="3">璐т綅</option>
-                </select>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鍏宠仈璺緞锛�</label>
-            <div class="layui-input-inline">
-                <input id="path" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鍏宠仈璺緞鍚嶏細</label>
-            <div class="layui-input-inline">
-                <input id="namePath" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">绛夈��銆�绾э細</label>
-            <div class="layui-input-inline">
-                <input id="level" class="layui-input" type="text" lay-verify="number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">璐� 璐� 浜猴細</label>
-            <div class="layui-input-inline">
-                <input id="leading" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鎺掋��銆�搴忥細</label>
-            <div class="layui-input-inline">
-                <input id="sort" class="layui-input" type="text" lay-verify="number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鏉°��銆�鐮侊細</label>
-            <div class="layui-input-inline">
-                <input id="barcode" class="layui-input" type="text">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鎺� 鑽� 浣嶏細</label>
-            <div class="layui-input-inline">
-                <input id="major" class="layui-input" type="text" lay-verify="number" >
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">鐘躲��銆�鎬侊細</label>
-            <div class="layui-input-inline">
-                <select id="status">
-                    <option value="" style="display: none"></option>
-                    <option value="1">姝e父</option>
-                    <option value="0">绂佺敤</option>
-                </select>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">娣诲姞鏃堕棿锛�</label>
-            <div class="layui-input-inline">
-                <input id="createTime$" class="layui-input" type="text" autocomplete="off">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">娣诲姞浜哄憳锛�</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="createBy" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">淇敼鏃堕棿锛�</label>
-            <div class="layui-input-inline">
-                <input id="updateTime$" class="layui-input" type="text" autocomplete="off">
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">淇敼浜哄憳锛�</label>
-            <div class="layui-input-inline cool-auto-complete">
-                <input id="updateBy" class="layui-input" type="text" lay-verify="number"  style="display: none">
-                <input id="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
-                <div class="cool-auto-complete-window">
-                    <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
-                    <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
-                    </select>
-                </div>
-            </div>
-        </div>
-        <div class="layui-inline"  style="width:31%;">
-            <label class="layui-form-label">澶囥��銆�娉細</label>
-            <div class="layui-input-inline">
-                <input id="memo" class="layui-input" type="text">
-            </div>
-        </div>
-
-
-        <hr class="layui-bg-gray">
-
-        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
-            <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
-            <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
-            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
-        </div>
-
-        <div id="prompt">
-            娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
-        </div>
-    </form>
-</div>
-</body>
-<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
-<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
-<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/node/node.js" charset="utf-8"></script>
-</html>
-

--
Gitblit v1.9.1