瀏覽代碼

报表定制功能 后台

TonyKang 7 年之前
父節點
當前提交
5d6201104b
共有 3 個文件被更改,包括 124 次插入14 次删除
  1. 112 5
      web/maintain/report/js/rpt_tpl_main.js
  2. 2 0
      web/maintain/report/rpt_tpl_main.html
  3. 10 9
      web/maintain/report/rpt_tpl_tree.html

+ 112 - 5
web/maintain/report/js/rpt_tpl_main.js

@@ -396,6 +396,87 @@ let zTreeOprObj = {
             me.moveSrcTopNode = null;
         }
     },
+    addReportTemplate: function(newUsers) {
+        let me = zTreeOprObj, params = {};
+        params.compilationId = $("#compilations").get(0).value;
+        params.userId = [];
+        if (newUsers.length > 0) {
+            for (let user of newUsers) {
+                params.userId.push(user.userId);
+            }
+        }
+        let allEngIds = [];
+        for (let item of engineeringList) {
+            allEngIds.push(item.value);
+        }
+        params.engineerId = allEngIds;
+        CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){
+            result.sort(function(item1, item2){
+                let rst = 0;
+                if (item1.userId === item2.userId) {
+                    rst = (item1.engineerId > item2.engineerId)?1:((item1.engineerId < item2.engineerId)?-1:0);
+                } else {
+                    if (item1.userId === "-100") {
+                        rst = 1
+                    } else if (item2.userId === "-100") {
+                        rst = -1
+                    } else {
+                        let idx1 = -1, idx2 = -1;
+                        for (let uidx = 0; uidx < newUsers.length; uidx++) {
+                            if (newUsers[uidx].userId === item1.userId) idx1 = uidx;
+                            if (newUsers[uidx].userId === item2.userId) idx2 = uidx;
+                            if (idx1 >= 0 && idx2 >= 0) {
+                                break;
+                            }
+                            rst = (idx1 > idx2)?1:((idx1 < idx2)?-1:0);
+                        }
+                    }
+                }
+                return rst;
+            });
+            let allTopUserIdNodes = [];
+            let allTopTplNodes = [];
+            for (let user of newUsers) {
+                allTopUserIdNodes.push(user.userId);
+                allTopTplNodes.push({userId: user.userId, name: user.real_name, items: [], isParent: true});
+            }
+            for (let item of result) {
+                let uidx = allTopUserIdNodes.indexOf(item.userId);
+                if (uidx >= 0) {
+                    item.isParent = true;
+                    allTopTplNodes[uidx].items.push(item);
+                }
+            }
+            // zTreeHelper.createTreeDirectly(allTopTplNodes, setting, "rptTplTree", me);
+            //add template nodes
+            let isSilent = false;
+            me.treeObj.addNodes(null, -1, allTopTplNodes, isSilent);
+            me.refreshNodes();
+            let private_setup_checked = function (itemNode) {
+                if (itemNode.nodeType === RT.NodeType.NODE) {
+                    me.treeObj.setChkDisabled(itemNode, true);
+                } else if (itemNode.nodeType === RT.NodeType.TEMPLATE) {
+                    me.treeObj.checkNode(itemNode, !!(itemNode.released));
+                }
+                if (itemNode.items && itemNode.items.length > 0) {
+                    for (let subItem of itemNode.items) {
+                        private_setup_checked(subItem);
+                    }
+                }
+            };
+            let topNodes = me.treeObj.getNodes();
+            // me.treeObj.expandAll(true);
+            for (let node of topNodes) {
+                me.treeObj.setChkDisabled(node, true);
+                if (node.items && node.items.length > 0) {
+                    for (let item of node.items) {
+                        me.treeObj.setChkDisabled(item, true);
+                        private_setup_checked(item);
+                    }
+                }
+            }
+        }, null, null);
+    },
     getReportTemplateTree: function(compilationSelect) {
         let me = zTreeOprObj, params = {};
         params.compilationId = compilationSelect.value;
@@ -439,7 +520,7 @@ let zTreeOprObj = {
             let allTopTplNodes = [{userId: "-100", name: "公共模板", items:[], isParent: true}];
             for (let user of userListObj.foundedUserList) {
                 allTopUserIdNodes.push(user.userId);
-                allTopTplNodes.push({userId: user.userId, name: user.username, items: [], isParent: true});
+                allTopTplNodes.push({userId: user.userId, name: user.real_name, items: [], isParent: true});
             }
             for (let item of result) {
                 let uidx = allTopUserIdNodes.indexOf(item.userId);
@@ -707,11 +788,37 @@ let zTreeOprObj = {
 
 let userListObj = {
     foundedUserList: [],
+    UserIdList: [],
+    pushUser: function(user, newUsers) {
+        let me = userListObj;
+        if (me.UserIdList.indexOf(user._id) < 0) {
+            me.UserIdList.push(user._id);
+            let newUser = {userId: user._id, real_name: user.real_name, username: user.username, mobile: user.mobile};
+            me.foundedUserList.push(newUser);
+            newUsers.push(newUser);
+        }
+    },
     findUser: function () {
-        let params = {};
-        CommonAjax.postEx("user/XYZ", params, 20000, true, function(result){
-            //
-        }, null, null);
+        let key = $("#rpt_user_input1").get(0).value;
+        let newUsers = [];
+        $.ajax({
+            type:"GET",
+            url: "user/search?keyword=" + key,
+            cache: false,
+            timeout: 5000,
+            success: function(result){
+                if (result.data && result.data.length > 0) {
+                    for (let user of result.data) {
+                        userListObj.pushUser(user, newUsers);
+                    }
+                    if (newUsers.length > 0) {
+                        zTreeOprObj.addReportTemplate(newUsers);
+                    }
+                }
+            },
+            error: function(jqXHR, textStatus, errorThrown){
+            }
+        });
     }
 };
 

+ 2 - 0
web/maintain/report/rpt_tpl_main.html

@@ -52,6 +52,7 @@
                 </li>
             </ul>
             </div>
+            <!--
             <div class="btn-group">
                 <div class="input-group">
                     <input type="text" class="form-control input-sm" id="rpt_user_input" placeholder="手机/邮箱/姓名/公司" list="users_list">
@@ -62,6 +63,7 @@
                     </span>
                 </div>
             </div>
+            -->
         </nav>
     </div>
     <div class="main">

+ 10 - 9
web/maintain/report/rpt_tpl_tree.html

@@ -1,11 +1,12 @@
-<div class="tab-bar">
-    <!--
-    <a onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm fa fa-plus-square">项目类型</a>
-    <a onclick="zTreeOprObj.addTplNode()" class="btn btn-secondary btn-sm fa fa-plus-square">报表模板</a>
-    <a onclick="zTreeOprObj.moveDownNode()" class="btn btn-sm" id="downMove"><i class="fa fa-arrow-down" aria-hidden="true"></i>下移</a>
-    <a onclick="zTreeOprObj.moveUpNode()" class="btn btn-sm" id="upMove"><i class="fa fa-arrow-up" aria-hidden="true"></i>上移</a>
-    -->
-</div>
-<div class="tab-content" id="rptTplTreeDiv">
+<div class="sub-button p-1">
+    <div class="input-group">
+        <input type="text" class="form-control input-sm" id="rpt_user_input1" placeholder="姓名/手机/邮箱/公司" list="users_list1">
+        <datalist id=users_list1>
+        </datalist>
+        <span class="input-group-btn">
+            <button class="btn btn-primary" id="rpt_user_find_btn1" onclick="userListObj.findUser()">查询</button>
+        </span>
+    </div>
+    <label> </label>
     <ul id="rptTplTree" class="ztree"></ul>
 </div>