Преглед на файлове

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionOperation

zhongzewei преди 7 години
родител
ревизия
a61b7ba984

+ 1 - 1
modules/all_models/tpl_tree_node.js

@@ -29,7 +29,7 @@ let TplNodeSchema = new Schema({
 
 let RptTplTreeSchema = new Schema({
     compilationId: String,  //编办的ObjectId
-    engineerId: Number,     //工程专业Id(参考 /modules/common/const/engineering.js)
+    // engineerId: Number,     //工程专业Id(参考 /modules/common/const/engineering.js)
     userId: String,        //用户名的object_id串
     properties: [],         //这是一个预留的属性,假定未来还会有不同的划分细节(如:招标/投标/清单 ... etc)
     name: String,           //显示名称

+ 35 - 10
modules/reports/controllers/rpt_tpl_controller.js

@@ -24,7 +24,8 @@ let callback = function(req, res, err, message, data){
 let mExport = {
     getCustomerCfg(req, res) {
         let params = JSON.parse(req.body.params),
-            userId = params.userId
+            userId = params.userId,
+            me = this;
         ;
         if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
         let userIds = [];
@@ -37,14 +38,26 @@ let mExport = {
                 //success
                 let rst = null;
                 if (custCfg.length > 0) {
+                    rst = [];
+                    rst.push(null);
                     for (let itemCfg of custCfg) {
-                        rst = itemCfg;
+                        // rst = itemCfg;
                         let doc = (itemCfg._doc)?itemCfg._doc:itemCfg;
+                        let dest = {};
+                        copyRptCfg(doc, dest);
                         if (doc.userId !== "-100") {
-                            break;
+                            rst.push(dest);
+                        } else {
+                            rst[0] = dest;
                         }
                     }
                 }
+                if (rst !== null && rst.length === 1) {
+                    //copy dft config
+                    let userDest = {};
+                    copyRptCfg(rst[0], userDest);
+                    rst.push(userDest);
+                }
                 callback(req,res, false, "", rst);
             } else {
                 //failed
@@ -69,7 +82,6 @@ let mExport = {
             }
         })
     },
-
     getDftTemplates(req, res) {
         let filter = {"userId": "-100", "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
         TreeNodeModel.find(filter, '-_id', function(err, data){
@@ -95,8 +107,7 @@ let mExport = {
         let params = JSON.parse(req.body.params),
             compilationId = params.compilationId,
             userId = params.userId,
-            sessionUserId = null,
-            engineerId = params.engineerId;
+            sessionUserId = null;
         let userIds = ["-100"];
         if (req.session.sessionUser && req.session.sessionUser.id) sessionUserId = req.session.sessionUser.id;
         if (userId !== null) {
@@ -113,7 +124,7 @@ let mExport = {
         if (!compilationId) {
             compilationId = req.session.sessionCompilation._id;
         }
-        rttFacade.findTplTree(compilationId, engineerId, userIds).then(function(result) {
+        rttFacade.findTplTree(compilationId, userIds).then(function(result) {
             if (result) {
                 callback(req,res,false,"", result);
             } else {
@@ -187,6 +198,7 @@ let mExport = {
         })
     },
     updateTopNodeName: function (req, res) {
+        //备注:因设计的更改,此方法将被放弃
         let params = JSON.parse(req.body.params),
             compilationId = params.compilationId, engineerId = params.engineerId,
             userId = params.userId,
@@ -207,12 +219,13 @@ let mExport = {
     },
     updateSubLevelOneNode: function (req, res) {
         let params = JSON.parse(req.body.params),
-            compilationId = params.compilationId, engineerId = params.engineerId,
+            compilationId = params.compilationId,
+            // engineerId = params.engineerId,
             userId = params.userId,
             subNode = params.subNode
         ;
-        if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
-        let filter = {"compilationId": compilationId, "engineerId": engineerId, "userId": userId, "items.ID": subNode.ID, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
+        if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id; //备注:这段逻辑只会在前端有效,后端运维不会走到
+        let filter = {"compilationId": compilationId, "userId": userId, "items.ID": subNode.ID, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
         let updateStatement = {$set: {"items.$": subNode}};
         rttFacade.updateTreeInDetail(filter, updateStatement).then(function (rst) {
             if (rst) {
@@ -381,4 +394,16 @@ let mExport = {
     }
 };
 
+function copyRptCfg(src, dest) {
+    dest.margins = {Left: src.margins.Left, Right: src.margins.Right, Top: src.margins.Top, Bottom: src.margins.Bottom};
+    dest.showVerticalLine = src.showVerticalLine;
+    dest.isNarrow = src.isNarrow;
+    dest.fillZero = src.fillZero;
+    dest.fonts = [];
+    for (let font of src.fonts) {
+        dest.fonts.push({"ID": font["ID"], "CfgDispName": font["CfgDispName"], "Name": font["Name"], "FontHeight": font["FontHeight"], "FontColor": font["FontColor"],
+            "FontBold": font["FontBold"], "FontItalic": font["FontItalic"], "FontUnderline": font["FontUnderline"], "FontStrikeOut": font["FontStrikeOut"], "FontAngle": font["FontAngle"]});
+    }
+}
+
 export default mExport;

+ 3 - 6
modules/reports/facade/rpt_tpl_tree_node_facade.js

@@ -11,7 +11,7 @@ const SYSTEM_USER_ID = -100;
 function validate(doc) {
     let rst = true;
     if (doc) {
-        if (!(doc.hasOwnProperty("compilationId") && doc.hasOwnProperty("engineerId") && doc.hasOwnProperty("userId"))) {
+        if (!(doc.hasOwnProperty("compilationId") && doc.hasOwnProperty("userId"))) {
             rst = false;
         }
     } else {
@@ -47,12 +47,9 @@ async function removeTreePhycically(compilationId, engineerId, userId) {
     return await rpt_tpl_tree_mdl.remove(filter);
 }
 
-async function findTplTree(compilationId, engineerIds, userIds) {
+async function findTplTree(compilationId, userIds) {
     //let filter = {"compilationId": compilationId, "engineerId": engineerIds, "userId": userIds};
-    let filter = {"compilationId": compilationId, "engineerId": engineerIds, "userId": userIds, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
-    if (engineerIds instanceof Array) {
-        filter.engineerId = {$in: engineerIds};
-    }
+    let filter = {"compilationId": compilationId, "userId": userIds, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
     if (userIds instanceof Array) {
         filter.userId = {$in: userIds};
     }

+ 35 - 9
web/maintain/report/js/rpt_tpl_main.js

@@ -179,12 +179,12 @@ let zTreeOprObj = {
         let me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
         if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0 || treeNode.nodeType === RT.NodeType.TEMPLATE) return;
         if (treeNode.level === 0) {
-            let addStr = "<span class='button star' id='addBtn_" + treeNode.tId + "' title='新增项目类型' onfocus='this.blur();'></span>";
+            let addStr = "<span class='button star' id='addBtn_" + treeNode.tId + "' title='新增编办类型' onfocus='this.blur();'></span>";
             sObj.after(addStr);
             let btn = $("#addBtn_"+treeNode.tId);
             if (btn) btn.bind("click", function(){
-                let rawNode = me.createIniComilationNode();
-                if (!me.chkIfDupCompilationNode(rawNode, treeNode)) {
+                let rawNode = me.createIniComilationNodeNew();
+                if (!me.chkIfDupCompilationNodeNew(rawNode, treeNode)) {
                     rawNode.userId = treeNode.userId;
                     me.addNewNodeEx(rawNode, function(rst){
                         if (rst) {
@@ -210,7 +210,7 @@ let zTreeOprObj = {
                         }
                     }, null);
                 } else {
-                    alert("有重复编办及工程类型!");
+                    alert("有重复编办!");
                 }
             });
         } else {
@@ -577,6 +577,18 @@ let zTreeOprObj = {
         params.scope = scope;
         CommonAjax.postEx("report_tpl_api/getNewNodeID", params, 5000, true, callback, null, null);
     },
+    chkIfDupCompilationNodeNew: function (rawNode, parentUserNode) {
+        let rst = false;
+        if (parentUserNode.items && parentUserNode.items.length > 0) {
+            for (let node of parentUserNode.items) {
+                if (node.compilationId === rawNode.compilationId && node.userId === rawNode.userId) {
+                    rst = true;
+                    break;
+                }
+            }
+        }
+        return rst;
+    },
     chkIfDupCompilationNode: function (rawNode, parentUserNode) {
         let rst = false;
         if (parentUserNode.items && parentUserNode.items.length > 0) {
@@ -589,6 +601,19 @@ let zTreeOprObj = {
         }
         return rst;
     },
+    createIniComilationNodeNew: function() {
+        let rst = {
+            compilationId: $("#compilations").get(0).selectedOptions[0].value,
+            // engineerId: parseInt($("#engineerIds").get(0).selectedOptions[0].value),
+            userId: (userAccount ===  'admin')?("-100"):userID,
+            properties: [],
+            released: true,
+            isDeleted: false,
+            items: [],
+            name: $("#compilations").get(0).selectedOptions[0].innerText
+        };
+        return rst;
+    },
     createIniComilationNode: function() {
         let rst = {
             compilationId: $("#compilations").get(0).selectedOptions[0].value,
@@ -668,11 +693,12 @@ let zTreeOprObj = {
         if (!isCancel) {
             let me = zTreeOprObj;
             if (treeNode.level === 0) {
-                me.updateTopNodeName(treeNode, true, function(rst){
-                    if (!(rst)) {
-                        alert('修改名称请求失败!');
-                    }
-                }, null);
+                // me.updateTopNodeName(treeNode, true, function(rst){
+                //     if (!(rst)) {
+                //         alert('修改名称请求失败!');
+                //     }
+                // }, null);
+                //因结构变化,已经不允许更改顶节点名字
             } else {
                 let subTopNode = me.getParentNodeByNodeLevel(treeNode, NODE_LEVEL_COMPILATION_NEW + 1);
                 let topPNode = subTopNode.getParentNode();