Explorar el Código

一对多克隆。

chenshilong hace 6 años
padre
commit
6475996692

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

@@ -205,6 +205,23 @@ let calcTools = {
             treeNode.data.gljList = projectObj.project.ration_glj.getGatherGljArrByRations(rations, needOneBill, q);
         };
     },
+    getLeafBills: function (treeNode){
+        let leafBills = [];
+
+        function getBill(node){
+            if (!node) return;
+            if (calcTools.isLeafBill(node))
+                leafBills.push(node);
+
+            if (node.firstChild()) getBill(node.firstChild());
+            if (node.nextSibling) getBill(node.nextSibling);
+        };
+
+        let fc = treeNode.firstChild();
+        if (fc) getBill(fc);
+
+        return leafBills;
+    },
 
     initFees: function (treeNode){
         if (!treeNode.data.fees) {

+ 7 - 1
web/building_saas/main/js/views/project_view.js

@@ -3026,7 +3026,13 @@ $(function () {
                 blockLibObj.oneToOneClone(projectNode, block, options);
                 break;
             case 2:
-
+                let bills = calcTools.getLeafBills(projectNode);
+                for (let bill of bills){
+                    projectObj.mainController.tree.selected = bill;
+                    let idx = projectObj.project.mainTree.items.indexOf(bill);
+                    projectObj.mainSpread.getActiveSheet().setSelection(idx, 0, 1, 2);
+                    blockLibObj.oneToOneClone(bill, block, options);
+                };
                 break;
             case 3: