chenshilong 6 anni fa
parent
commit
1427acb7b5

+ 1 - 1
web/building_saas/main/html/main.html

@@ -1704,7 +1704,7 @@
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
-                <a href="" class="btn btn-primary" id="btn_block_createBlocks">确定生成</a>
+                <button type="button" class="btn btn-primary" data-dismiss="modal" id="btn_block_createBlocks">确定生成</button>
             </div>
         </div>
     </div>

+ 1 - 8
web/building_saas/main/js/views/block_lib.js

@@ -337,14 +337,7 @@ var blockLibObj = {
     },
     reName: function (node, newName){
         node.data.name = newName;
-        let nodes = blockLibObj.mainTree.items;
-        let idx = -1;
-        for (let i = 0; i < nodes.length; i++) {
-            if (node == nodes[i]){
-                idx = i;
-                break;
-            }
-        }
+        let idx = blockLibObj.mainTree.items.indexOf(node);
         blockLibObj.mainSheet.setValue(idx, 0, newName);
     },
     getCategories: function () {

+ 33 - 15
web/building_saas/main/js/views/project_view.js

@@ -1507,18 +1507,11 @@ var projectObj = {
                         return selected.sourceType != ModuleNames.bills;
                     },
                     callback:function(){
-                        let selected = project.mainTree.selected;
-                        if (selected.data.name == undefined || selected.data.name == ''){
-                            hintBox.infoBox('系统提示','清单名称为空,无法生成块模板文件!', 1);
-                            return false;
-                        }
-                        else{
-                            if (!$("#kmbk").is(":visible")){
-                                $('#blockLibTab').click()
-                            };
+                        if (!$("#kmbk").is(":visible")){
+                            $('#blockLibTab').click()
+                        };
 
-                            $("#zujiamb").modal({show: true});
-                        }
+                        $("#zujiamb").modal({show: true});
                     },
                     visible: function(key, opt){
                         return G_SHOW_BLOCK_LIB;
@@ -2897,11 +2890,36 @@ $(function () {
 
     $("#btn_block_createBlocks").click(function () {
         if ($("#select_block_category")[0].options.length < 1) return;
-        let selected = projectObj.project.mainTree.selected;
-        let name = selected.data.code + ' ' + selected.data.name + ' ' + selected.data.unit;
-        name = name.replace(/^\s+|\s+$/g, "");    // 只去两头空格
         let cID = $("#select_block_category").val();
-        blockLibObj.newNode(2, name, cID);
+        let selected = projectObj.project.mainTree.selected;
+
+        function createBlocks(aNode, categoryID){
+            function createBlock(node) {
+                let name = node.data.code + ' ' + node.data.name + ' ' + node.data.unit;
+                name = name.replace(/^\s+|\s+$/g, "");    // 只去两头空格
+                blockLibObj.newNode(2, name, categoryID);
+            };
+
+            function createRecursion(node){
+                if (!node) return;
+
+                if (calcTools.isLeafBill(node)){
+                    if (node.data.name == undefined || node.data.name == '') return  // 清单名称为空,不生成块模板文件
+                    else createBlock(node);
+                }
+
+                if (node.firstChild()) createRecursion(node.firstChild());
+                if (node.nextSibling) createRecursion(node.nextSibling);
+            };
+
+            if (calcTools.isLeafBill(aNode))
+                createBlock(aNode)
+            else
+                createRecursion(aNode.firstChild());
+        };
+
+        createBlocks(selected, cID);
+        $("#zujiamb").modal("hide");
     });