ソースを参照

按编号克隆时要区分处理:建筑取前9位,公路招投标往上追溯父结点,概预算直接取自己。

chenshilong 5 年 前
コミット
84579d36fc

+ 17 - 0
web/building_saas/main/js/models/calc_program.js

@@ -1093,6 +1093,23 @@
       array.push({name:p.name,ID:p.ID});
     } 
     return array;
+  },
+  getCodeForBlock: function(node){
+    let code = node.data.code;
+    if (calcTools.isBillProject()){
+        let tempNode = node;
+        while ((tempNode.data.code.indexOf('-') == 0) && (tempNode.parent != undefined)) {
+            code = tempNode.parent.data.code + code;
+            tempNode = tempNode.parent;
+        }
+    };
+    return code;
+  },
+  getCodeFromBlock: function(block){
+    let code = '';
+    let i = block.data.nodeName.indexOf(' ');
+    if (i != -1) code = block.data.nodeName.slice(0, i);
+    return code;
   }
  };
 

+ 6 - 2
web/building_saas/main/js/views/block_lib.js

@@ -590,8 +590,12 @@ var blockLibObj = {
     oneToOneClone: function (projectNode, block, options) {
         return new Promise(function (resolve, reject) {
             let canClone = true;
-            if (options.checkCode)
-                canClone = canClone && (projectNode.data.code.substr(0, 9) == block.data.code.substr(0, 9));
+            if (options.checkCode){
+                let nodeCode = calcTools.getCodeForBlock(projectNode);
+                let blockCode = calcTools.getCodeFromBlock(block);
+                canClone = canClone && (nodeCode == blockCode);
+            }
+                
             if (options.checkName)
                 canClone = canClone && (projectNode.data.name == block.data.name);
             if (options.checkUnit)

+ 3 - 10
web/building_saas/main/js/views/project_view.js

@@ -3252,16 +3252,9 @@ $(function () {
                 vBlock_WC = JSON.parse(JSON.stringify(vBlock_WC));
                 // 块文件名称:编号要根据实际情况对父清单的编号进行拼装。
                 //  let newCode = divideObj.getExeBillCode(vBlock_WC.datas[0].ID);
-                let newCode = node.data.code;
-                if (calcTools.isBillProject()){
-                    let tempNode = node;
-                    while ((tempNode.data.code.indexOf('-') == 0) && (tempNode.parent != undefined)) {
-                        newCode = tempNode.parent.data.code + newCode;
-                        tempNode = tempNode.parent;
-                    }
-                };
-                 let unit = node.data.unit ? node.data.unit : '';
-                let fileName = newCode + ' ' + node.data.name + ' ' + unit;
+                let code = calcTools.getCodeForBlock(node);
+                let unit = node.data.unit ? node.data.unit : '';
+                let fileName = code + ' ' + node.data.name + ' ' + unit;
                 fileName = fileName.replace(/^\s+|\s+$/g, "");    // 只去两头空格
 
                 let extN = blockLibObj.getSameNameNode(fileName, categoryID);