Browse Source

报表模板 - 相同引用可查 step 1

TonyKang 6 năm trước cách đây
mục cha
commit
803f9e8dc6

+ 15 - 25
modules/reports/controllers/rpt_tpl_controller.js

@@ -132,6 +132,21 @@ let mExport = {
             }
         });
     },
+    getTplTreeByCompilation: function (req, res) {
+        let params = JSON.parse(req.body.params),
+            compilationId = params.compilationId;
+        // if (req.session.sessionUser && req.session.sessionUser.id) sessionUserId = req.session.sessionUser.id;
+        if (!compilationId) {
+            compilationId = req.session.sessionCompilation._id;
+        }
+        rttFacade.findTplTreeByCompilation(compilationId).then(function(result) {
+            if (result) {
+                callback(req,res,false,"", result);
+            } else {
+                callback(req,res, true,"no result", null);
+            }
+        });
+    },
     updateTreeNodes: function(req, res) {
         let params = JSON.parse(req.body.params),
             nodes = params.nodes;
@@ -268,30 +283,6 @@ let mExport = {
             })
         }
     },
-    // createTplTreeNode: function(req, res){
-    //     let params = JSON.parse(req.body.params),
-    //         lastNodeId = params.lastNodeId,
-    //         nodeData = params.rawNodeData;
-    //     counter.counterDAO.getIDAfterCount(counter.moduleName.report, 1, function(err, result){
-    //         nodeData.ID = result.value.sequence_value;
-    //         let node = new TreeNodeModel(nodeData);
-    //         node.save(function (err, result) {
-    //             if (err) {
-    //                 callback(req,res, "树节点错误!", "", null);
-    //             } else {
-    //                 if (lastNodeId > 0) {
-    //                     TreeNodeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
-    //                         if (err) {
-    //                             callback(req,res, "树节点错误!", "", null);
-    //                         } else {
-    //                             callback(req,res, false, "", result);
-    //                         }
-    //                     });
-    //                 } else callback(req,res, false, "", result);
-    //             }
-    //         });
-    //     });
-    // },
     getNewNodeID: function(req, res) {
         let params = JSON.parse(req.body.params),
             scope = params.scope;
@@ -324,7 +315,6 @@ let mExport = {
                     if (err) {
                         callback(req,res, "报表模板创建错误", "", null);
                     } else {
-                        //TreeNodeModel.update();
                         let filter = {"compilationId": compilationId, "engineerId": engineerId, "userId": userId, "items.ID": subNode.ID, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
                         let updateStatement = {$set: {"items.$": subNode}};
                         rttFacade.updateTreeInDetail(filter, updateStatement).then(function (rst) {

+ 13 - 7
modules/reports/facade/rpt_tpl_tree_node_facade.js

@@ -65,15 +65,21 @@ async function findTplTreeByOid(objectId) {
     } else return null;
 }
 
+async function findTplTreeByCompilation(compilationId) {
+    let filter = {"compilationId": compilationId, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
+    return await rpt_tpl_tree_mdl.find(filter);
+}
+
 
 let expObj = {
-    createNewTree:          createNewTree,
-    updateTree:             updateTree,
-    updateTreeInDetail:     updateTreeInDetail,
-    removeTree:             removeTree,
-    removeTreePhycically:   removeTreePhycically,
-    findTplTree:            findTplTree,
-    findTplTreeByOid:       findTplTreeByOid
+    createNewTree:              createNewTree,
+    updateTree:                 updateTree,
+    updateTreeInDetail:         updateTreeInDetail,
+    removeTree:                 removeTree,
+    removeTreePhycically:       removeTreePhycically,
+    findTplTree:                findTplTree,
+    findTplTreeByOid:           findTplTreeByOid,
+    findTplTreeByCompilation:   findTplTreeByCompilation
 };
 
 export {expObj as default};

+ 1 - 0
modules/reports/routes/rpt_tpl_router.js

@@ -21,6 +21,7 @@ module.exports = function (app) {
     rptTplRouter.post('/updateSubLevelOneNode', reportTplController.updateSubLevelOneNode);
     rptTplRouter.post('/removeTreeRootNode', reportTplController.removeTreeRootNode);
     rptTplRouter.post('/getRptTplTree', reportTplController.getRptTplTree);
+    rptTplRouter.post('/getTplTreeByCompilation', reportTplController.getTplTreeByCompilation);
     rptTplRouter.post('/getNewNodeID', reportTplController.getNewNodeID);
     rptTplRouter.post('/updateRptTplNodes', reportTplController.updateTreeNodes);
     rptTplRouter.post('/deleteRptTplNodes', reportTplController.deleteRptTplNodes);

+ 64 - 2
web/maintain/report/js/rpt_tpl_main.js

@@ -47,7 +47,8 @@ let zTreeOprObj = {
                         $("#compilations").append("<option value='" + item._id + "'>" + item.name + "</option>");
                     }
                 }
-                me.getReportTemplateTree($("#compilations").get(0));
+                // me.getReportTemplateTree($("#compilations").get(0));
+                me.getReportTemplateTreeFirstTime($("#compilations").get(0));
             }, null, null
         );
     },
@@ -572,6 +573,62 @@ let zTreeOprObj = {
             }
         }, null, null);
     },
+    getReportTemplateTreeFirstTime: function (compilationSelect) {
+        let me = zTreeOprObj, params = {};
+        params.compilationId = compilationSelect.value;
+        CommonAjax.postEx("report_tpl_api/getTplTreeByCompilation", params, 20000, true, function(result){
+            result.sort(function(item1, item2){
+                let rst = 0;
+                if (item1.userId === "-100") {
+                    rst = -1;
+                } else if (item2.userId === "-100") {
+                    rst = 1;
+                }
+                return rst;
+            });
+            let allTopUserIdNodes = ["-100"];
+            let allTopTplNodes = [{userId: "-100", name: "公共模板", items:[], isParent: true}];
+            allTopTplNodes[0].items.push(result[0]);
+            let userIds = [];
+            for (let idx = 1; idx < result.length; idx++) {
+                let item = result[idx];
+                userIds.push(item.userId);
+            }
+            userListObj.findUsersByIds(userIds, function () {
+                // for (let item of result) {
+                //     let uidx = allTopUserIdNodes.indexOf(item.userId);
+                //     item.isParent = true;
+                //     let topItem = {userId: item.userId, name: item.name, items: [], isParent: true};
+                //     allTopTplNodes[uidx].items.push(item);
+                // }
+            });
+            zTreeHelper.createTreeDirectly(allTopTplNodes, setting, "rptTplTree", me);
+            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);
+    },
     getNewNodeID: function (scope, callback) {
         let params = {};
         params.scope = scope;
@@ -838,7 +895,9 @@ let userListObj = {
             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);
+            if (newUsers) {
+                newUsers.push(newUser);
+            }
         }
     },
     findUser: function () {
@@ -862,6 +921,9 @@ let userListObj = {
             error: function(jqXHR, textStatus, errorThrown){
             }
         });
+    },
+    findUsersByIds: function (userIds, cb) {
+        //
     }
 };