From f990d41ed26b2640ca87d13d53e0dd85675aafb5 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期四, 10 八月 2023 08:20:00 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/priQuoteBudget/priQuoteBudget.js                |   58 +++++++++++
 src/main/java/com/zy/crm/manager/controller/PriSalesController.java       |   18 +++
 src/main/resources/mapper/PriQuoteMapper.xml                              |    1 
 src/main/resources/mapper/PriSalesMapper.xml                              |    1 
 src/main/java/com/zy/crm/manager/controller/PriQuoteBudgetController.java |   18 +++
 src/main/java/com/zy/crm/manager/entity/PriQuoteBudget.java               |    4 
 src/main/webapp/static/js/priSales/priSales.js                            |   58 +++++++++++
 src/main/webapp/views/priSales/priSales.html                              |   56 +++++++++++
 src/main/java/com/zy/crm/manager/entity/PriSales.java                     |    4 
 src/main/webapp/views/priQuoteBudget/priQuoteBudget.html                  |   56 +++++++++++
 10 files changed, 274 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/PriQuoteBudgetController.java b/src/main/java/com/zy/crm/manager/controller/PriQuoteBudgetController.java
index c0c447a..e1e96c0 100644
--- a/src/main/java/com/zy/crm/manager/controller/PriQuoteBudgetController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PriQuoteBudgetController.java
@@ -67,15 +67,32 @@
     }
 
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+        boolean signUserId = false;
+        boolean signDeptId = false;
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            if (entry.getKey().equals("dept_id")){
+                signDeptId = true;
+            }
+        }
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
             if (val.contains(RANGE_TIME_LINK)){
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else if (entry.getKey().equals("dept_id")){
+                if (!val.equals("19")){
+                    wrapper.eq(entry.getKey(), val);
+                }
+            } else if (entry.getKey().equals("user_id") && !signDeptId){
+                signUserId = true;
+                wrapper.eq(entry.getKey(), val);
             } else {
                 wrapper.like(entry.getKey(), val);
             }
+        }
+        if (!signUserId && !signDeptId){
+            wrapper.eq("user_id", getUserId());
         }
     }
 
@@ -97,6 +114,7 @@
 
         //鍒涘缓浜哄憳
         priQuoteBudget.setUserId(getUserId());
+        priQuoteBudget.setDeptId(getDeptId());
         //鏇存柊浜哄憳
         priQuoteBudget.setUpdateUserId(getUserId());
         //鏇存柊鏃堕棿
diff --git a/src/main/java/com/zy/crm/manager/controller/PriSalesController.java b/src/main/java/com/zy/crm/manager/controller/PriSalesController.java
index 16c6e53..3dc0bdc 100644
--- a/src/main/java/com/zy/crm/manager/controller/PriSalesController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PriSalesController.java
@@ -67,15 +67,32 @@
     }
 
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+        boolean signUserId = false;
+        boolean signDeptId = false;
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            if (entry.getKey().equals("dept_id")){
+                signDeptId = true;
+            }
+        }
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
             if (val.contains(RANGE_TIME_LINK)){
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else if (entry.getKey().equals("dept_id")){
+                if (!val.equals("19")){
+                    wrapper.eq(entry.getKey(), val);
+                }
+            } else if (entry.getKey().equals("user_id") && !signDeptId){
+                signUserId = true;
+                wrapper.eq(entry.getKey(), val);
             } else {
                 wrapper.like(entry.getKey(), val);
             }
+        }
+        if (!signUserId && !signDeptId){
+            wrapper.eq("user_id", getUserId());
         }
     }
 
@@ -100,6 +117,7 @@
         priSales.setUpdateUserId(getUserId());
         //鏇存柊鏃堕棿
         priSales.setUpdateTime(new Date());
+        priSales.setDeptId(getDeptId());
 
         //涓氬姟鍛�
         Item item = itemService.selectById(priSales.getItemId());
diff --git a/src/main/java/com/zy/crm/manager/entity/PriQuoteBudget.java b/src/main/java/com/zy/crm/manager/entity/PriQuoteBudget.java
index b419cd3..def7b25 100644
--- a/src/main/java/com/zy/crm/manager/entity/PriQuoteBudget.java
+++ b/src/main/java/com/zy/crm/manager/entity/PriQuoteBudget.java
@@ -85,6 +85,10 @@
     @TableField("member_id")
     private Long memberId;
 
+    @ApiModelProperty(value= "鍒涘缓閮ㄩ棬")
+    @TableField("dept_id")
+    private Long deptId;
+
     public PriQuoteBudget() {}
 
     public PriQuoteBudget(String title,String sheetData,Date createTime,String filepath) {
diff --git a/src/main/java/com/zy/crm/manager/entity/PriSales.java b/src/main/java/com/zy/crm/manager/entity/PriSales.java
index 26adc70..95b618f 100644
--- a/src/main/java/com/zy/crm/manager/entity/PriSales.java
+++ b/src/main/java/com/zy/crm/manager/entity/PriSales.java
@@ -70,6 +70,10 @@
     @TableField("user_id")
     private Long userId;
 
+    @ApiModelProperty(value= "鍒涘缓閮ㄩ棬")
+    @TableField("dept_id")
+    private Long deptId;
+
     @ApiModelProperty(value= "鏇存柊浜哄憳")
     @TableField("update_user_id")
     private Long updateUserId;
diff --git a/src/main/resources/mapper/PriQuoteMapper.xml b/src/main/resources/mapper/PriQuoteMapper.xml
index cb2a051..f163057 100644
--- a/src/main/resources/mapper/PriQuoteMapper.xml
+++ b/src/main/resources/mapper/PriQuoteMapper.xml
@@ -8,6 +8,7 @@
         <result column="title" property="title" />
         <result column="sheet_data" property="sheetData" />
         <result column="create_time" property="createTime" />
+        <result column="dept_id" property="deptId" />
 
     </resultMap>
 
diff --git a/src/main/resources/mapper/PriSalesMapper.xml b/src/main/resources/mapper/PriSalesMapper.xml
index d0e7fe2..ae27fbc 100644
--- a/src/main/resources/mapper/PriSalesMapper.xml
+++ b/src/main/resources/mapper/PriSalesMapper.xml
@@ -8,6 +8,7 @@
         <result column="title" property="title" />
         <result column="sheet_data" property="sheetData" />
         <result column="create_time" property="createTime" />
+        <result column="dept_id" property="deptId" />
 
     </resultMap>
 
diff --git a/src/main/webapp/static/js/priQuoteBudget/priQuoteBudget.js b/src/main/webapp/static/js/priQuoteBudget/priQuoteBudget.js
index 24af213..c582cea 100644
--- a/src/main/webapp/static/js/priQuoteBudget/priQuoteBudget.js
+++ b/src/main/webapp/static/js/priQuoteBudget/priQuoteBudget.js
@@ -11,6 +11,64 @@
     var layDate = layui.laydate;
     var form = layui.form;
     admin = layui.admin;
+    var tree = layui.tree;
+    var dropdown = layui.dropdown;
+
+    $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon">&#xe61a;</i>');
+
+    // 閮ㄩ棬浜哄憳 绛涢��
+    dropdown.render({
+        elem: '#organization'
+        ,content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('')
+        ,style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);'
+        ,ready: function(){
+            loadTree();
+        }
+    });
+
+    // 鏍戝舰鍥�
+    var organizationTree;
+    window.loadTree = function(condition){
+        var loadIndex = layer.load(2);
+        $.ajax({
+            url: baseUrl+"/dept/user/tree/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {
+                'condition': condition
+            },
+            method: 'POST',
+            success: function (res) {
+                layer.close(loadIndex);
+                if (res.code === 200){
+                    organizationTree = tree.render({
+                        elem: '#organizationTree',
+                        id: 'organizationTree',
+                        onlyIconControl: true,
+                        data: res.data,
+                        click: function (obj) {
+                            treeCond = {
+                                key: obj.data.key,
+                                val: obj.data.id
+                            }
+                            $('#organization').html(obj.data.title + ' <i class="layui-icon">&#xe61a;</i>');
+                            $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
+                            $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
+                            clearFormVal($('#search-box'));
+                            tableIns.reload({
+                                where: {[obj.data.key]: obj.data.id},
+                                page: {curr: 1}
+                            });
+                        }
+                    });
+                    treeData = res.data;
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(res.msg)
+                }
+            }
+        })
+    }
 
     // 鏁版嵁娓叉煋
     tableIns = table.render({
diff --git a/src/main/webapp/static/js/priSales/priSales.js b/src/main/webapp/static/js/priSales/priSales.js
index e366759..6265666 100644
--- a/src/main/webapp/static/js/priSales/priSales.js
+++ b/src/main/webapp/static/js/priSales/priSales.js
@@ -11,6 +11,64 @@
     var layDate = layui.laydate;
     var form = layui.form;
     admin = layui.admin;
+    var tree = layui.tree;
+    var dropdown = layui.dropdown;
+
+    $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon">&#xe61a;</i>');
+
+    // 閮ㄩ棬浜哄憳 绛涢��
+    dropdown.render({
+        elem: '#organization'
+        ,content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('')
+        ,style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);'
+        ,ready: function(){
+            loadTree();
+        }
+    });
+
+    // 鏍戝舰鍥�
+    var organizationTree;
+    window.loadTree = function(condition){
+        var loadIndex = layer.load(2);
+        $.ajax({
+            url: baseUrl+"/dept/user/tree/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {
+                'condition': condition
+            },
+            method: 'POST',
+            success: function (res) {
+                layer.close(loadIndex);
+                if (res.code === 200){
+                    organizationTree = tree.render({
+                        elem: '#organizationTree',
+                        id: 'organizationTree',
+                        onlyIconControl: true,
+                        data: res.data,
+                        click: function (obj) {
+                            treeCond = {
+                                key: obj.data.key,
+                                val: obj.data.id
+                            }
+                            $('#organization').html(obj.data.title + ' <i class="layui-icon">&#xe61a;</i>');
+                            $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
+                            $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
+                            clearFormVal($('#search-box'));
+                            tableIns.reload({
+                                where: {[obj.data.key]: obj.data.id},
+                                page: {curr: 1}
+                            });
+                        }
+                    });
+                    treeData = res.data;
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(res.msg)
+                }
+            }
+        })
+    }
 
     // 鏁版嵁娓叉煋
     tableIns = table.render({
diff --git a/src/main/webapp/views/priQuoteBudget/priQuoteBudget.html b/src/main/webapp/views/priQuoteBudget/priQuoteBudget.html
index 5ef0e16..1a7e11d 100644
--- a/src/main/webapp/views/priQuoteBudget/priQuoteBudget.html
+++ b/src/main/webapp/views/priQuoteBudget/priQuoteBudget.html
@@ -9,6 +9,52 @@
     <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
     <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
     <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <style>
+        .nav-box {
+            position: absolute;
+            top: 1px;
+            left: 5px;
+        }
+        .nav-box-item {
+            display: inline-block;
+            vertical-align: middle;
+            margin-right: 5px;
+        }
+
+        .layui-dropdown.layui-border-box.layui-panel.layui-anim.layui-anim-downbit,.layui-dropdown.layui-border-box.layui-panel.layui-anim.layui-anim-downbit * {
+            box-sizing:inherit;
+        }
+
+        .layui-menu li {
+            width: inherit;
+        }
+        .layui-tree-icon {
+            height: 16px;
+            line-height: 15px;
+            width: 15px;
+            text-align: center;
+            border: 1px solid #c0c4cc;
+        }
+
+        .site-dropdown-demo,
+        .site-dropdown-demo .layui-menu{background: #32363F;border-color: #484e58;}
+        .site-dropdown-demo .layui-menu li{color: #a1a8b8;}
+        .site-dropdown-demo .layui-menu li:hover{background-color: #32363F;}
+        .layui-menu-body-title>.layui-icon {
+            position: relative;
+            margin-right: 5px;
+        }
+
+        .layui-form-radio {
+            display: block;
+        }
+        .layui-unselect.layui-form-radio {
+            display: inline-block;
+        }
+        .layui-form-radio:hover *, .layui-form-radioed, .layui-form-radioed>i {
+            color: #2d8cf0;
+        }
+    </style>
 </head>
 <body>
 
@@ -16,6 +62,16 @@
     <div class="layui-card">
         <div class="layui-card-body">
             <div id="search-box" class="layui-form toolbar" style="display: flex;justify-content: flex-end;position: relative">
+                <div class="nav-box">
+                    <div class="nav-box-item">
+                        <i class="layui-icon" style="color: #1890ff;font-weight: bold">&#xe613;</i>
+                    </div>
+                    <div class="nav-box-item">
+                        <button id="organization" style="border: none;padding-right: 35px;" class="layui-btn layui-btn-primary icon-btn">
+                            鏈煡
+                        </button>
+                    </div>
+                </div>
                 <div class="layui-form-item">
                     <div class="layui-inline">
                         <div class="layui-input-inline">
diff --git a/src/main/webapp/views/priSales/priSales.html b/src/main/webapp/views/priSales/priSales.html
index 2350401..fdafe6b 100644
--- a/src/main/webapp/views/priSales/priSales.html
+++ b/src/main/webapp/views/priSales/priSales.html
@@ -9,6 +9,52 @@
   <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
   <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
   <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+  <style>
+    .nav-box {
+      position: absolute;
+      top: 1px;
+      left: 5px;
+    }
+    .nav-box-item {
+      display: inline-block;
+      vertical-align: middle;
+      margin-right: 5px;
+    }
+
+    .layui-dropdown.layui-border-box.layui-panel.layui-anim.layui-anim-downbit,.layui-dropdown.layui-border-box.layui-panel.layui-anim.layui-anim-downbit * {
+      box-sizing:inherit;
+    }
+
+    .layui-menu li {
+      width: inherit;
+    }
+    .layui-tree-icon {
+      height: 16px;
+      line-height: 15px;
+      width: 15px;
+      text-align: center;
+      border: 1px solid #c0c4cc;
+    }
+
+    .site-dropdown-demo,
+    .site-dropdown-demo .layui-menu{background: #32363F;border-color: #484e58;}
+    .site-dropdown-demo .layui-menu li{color: #a1a8b8;}
+    .site-dropdown-demo .layui-menu li:hover{background-color: #32363F;}
+    .layui-menu-body-title>.layui-icon {
+      position: relative;
+      margin-right: 5px;
+    }
+
+    .layui-form-radio {
+      display: block;
+    }
+    .layui-unselect.layui-form-radio {
+      display: inline-block;
+    }
+    .layui-form-radio:hover *, .layui-form-radioed, .layui-form-radioed>i {
+      color: #2d8cf0;
+    }
+  </style>
 </head>
 <body>
 
@@ -16,6 +62,16 @@
   <div class="layui-card">
     <div class="layui-card-body">
       <div id="search-box" class="layui-form toolbar" style="display: flex;justify-content: flex-end;position: relative">
+        <div class="nav-box">
+          <div class="nav-box-item">
+            <i class="layui-icon" style="color: #1890ff;font-weight: bold">&#xe613;</i>
+          </div>
+          <div class="nav-box-item">
+            <button id="organization" style="border: none;padding-right: 35px;" class="layui-btn layui-btn-primary icon-btn">
+              鏈煡
+            </button>
+          </div>
+        </div>
         <div class="layui-form-item">
           <div class="layui-inline">
             <div class="layui-input-inline">

--
Gitblit v1.9.1