chenshilong 6 years ago
parent
commit
7df95308c2

+ 12 - 0
web/building_saas/main/js/models/bills.js

@@ -816,6 +816,18 @@ var Bills = {
             }
 
         };
+        bills.prototype.deleteChildren = function(node) {
+            if (!(node.children.length && node.children.length > 0)) return;
+            let me = this;
+            let firstChild = node.firstChild();
+            projectObj.mainController.tree.selected = firstChild;
+            let idx = projectObj.project.mainTree.items.indexOf(firstChild);
+            projectObj.mainSpread.getActiveSheet().setSelection(idx, 0, node.children.length, 2);
+            me.deleteSelectedNodes();
+            projectObj.mainController.tree.selected = node;
+            let idxN = projectObj.project.mainTree.items.indexOf(node);
+            projectObj.mainSpread.getActiveSheet().setSelection(idxN, 0, 1, 2);
+        };
         bills.prototype.setNodeToMapAndArray=function (node,map,array) {
             let nodeID = node.getID();
             if(map[nodeID]==undefined||map[nodeID]==null){

+ 7 - 5
web/building_saas/main/js/views/block_lib.js

@@ -464,7 +464,7 @@ var blockLibObj = {
             items: {
                 "oneToOneClone": {
                     name: '一对一克隆',
-                    icon: "fa-battery-empty",
+                    icon: "fa-stop",
                     disabled: function () {
                         let ok = me.curIsBlock() && calcTools.isLeafBill(projectObj.project.mainTree.selected);
                         return !ok;
@@ -478,7 +478,7 @@ var blockLibObj = {
                 },
                 "oneToMoreClone": {
                     name: '一对多克隆',
-                    icon: "fa-battery-half",
+                    icon: "fa-th-list",
                     disabled: function () {
                         let ok = me.curIsBlock() && calcTools.isParentBill(projectObj.project.mainTree.selected);
                         return !ok;
@@ -492,7 +492,7 @@ var blockLibObj = {
                 },
                 "moreToMoreClone": {
                     name: '多对多克隆',
-                    icon: "fa-battery-full",
+                    icon: "fa-th",
                     disabled: function () {
                         let ok = me.curIsCategory() && calcTools.isParentBill(projectObj.project.mainTree.selected);
                         return !ok;
@@ -547,8 +547,9 @@ var blockLibObj = {
         $("#div_cloneOptions").modal({show: true});
     },
     oneToOneClone: function (projectNode, block, options) {
-        // if (options.overwriteRations)
-        //     projectNode.deleteChildren();
+        if (options.overwriteRations)
+            projectObj.project.Bills.deleteChildren(projectNode);
+        return;
 
         let canClone = true;
         if (options.checkCode)
@@ -570,6 +571,7 @@ var blockLibObj = {
             zeroQuantity: options.zeroQuantity,
             datas: block.data.children       // rations
         };
+        vBlock_WC = JSON.parse(JSON.stringify(vBlock_WC));
         BlockController.confirmPaste(vBlock_WC, projectNode, 'sub');
     },
     oneToMoreCloneXX: function () {

+ 5 - 5
web/building_saas/main/js/views/project_view.js

@@ -2970,7 +2970,7 @@ $(function () {
                 if (node.children.length == 0) return;
                 // 封装成伟城的块文件格式,直接调用伟城接口(定额这里的业务太多太庞杂,不要再重做一遍,尽量共用,维护代价小)
                 // 块文件要构建自己的树结构,所以也有自己的一部分数据。两种结构揉合在一起,显得有点杂乱,但利大于弊。
-                let block_WC = {
+                let vBlock_WC = {
                     compilationID: projectInfoObj.projectInfo.compilation,
                     firstNodeType: node.data.type,
                     isFBFX: projectObj.project.Bills.isFBFX(node),
@@ -2978,17 +2978,17 @@ $(function () {
                     datas: []
                 };
                 let ration_glj_Map = _.groupBy(projectObj.project.ration_glj.datas, 'rationID');
-                block_WC.datas.push(BlockController.getNodeDatas(node, ration_glj_Map));
-
+                vBlock_WC.datas.push(BlockController.getNodeDatas(node, ration_glj_Map));
+                vBlock_WC = JSON.parse(JSON.stringify(vBlock_WC));
                 let fileName = node.data.code + ' ' + node.data.name + ' ' + node.data.unit;
                 fileName = fileName.replace(/^\s+|\s+$/g, "");    // 只去两头空格
 
                 let extN = blockLibObj.getSameNameNode(fileName);
                 if (extN){
-                    if (cover) blockLibObj.assignData(extN, block_WC);
+                    if (cover) blockLibObj.assignData(extN, vBlock_WC);
                 }
                 else
-                    blockLibObj.newNode(2, fileName, categoryID, block_WC);
+                    blockLibObj.newNode(2, fileName, categoryID, vBlock_WC);
             };
 
             function createRecursion(node){