chenshilong vor 6 Jahren
Ursprung
Commit
563b4d83e4

+ 88 - 13
web/building_saas/main/html/main.html

@@ -455,23 +455,68 @@
                                   </div>
                               </div>
                               <!--块模板库-->
-                              <div class="tab-pane" id="kmbk">
-                                  <div class="tools-bar-height-d container-fluid">
+                              <div class="tab-pane" id="kmbk" role="tabpanel">
+                                  <div class="sidebar-tools-bar container-fluid tools-bar-height-z">
                                       <div class="p-1 row">
-                                          <!--<button id="btn_block_collapse" class="btn btn-primary btn-sm" type="button">展开/折叠</button>-->
-                                          <button id="btn_block_newFolder" class="btn btn-primary btn-sm" type="button">新建分类</button>
-                                          <!--<button id="btn_block_newSubFolder" class="btn btn-warning btn-sm" type="button">新建块</button>-->
+                                          <select class="form-control form-control-sm col-6" id="exampleSelect1">
+                                              <option>我的模板库</option>
+                                          </select>
+                                          <div class="col-6">
+                                              <div class="d-inline">
+                                                  <button type="button" class="btn btn-sm btn-secondary" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="btn_block_newFolder">
+                                                      新建分类
+                                                  </button>
+                                                  <div class="dropdown-menu dropdown-menu-right">
+                                                      <form class="px-3 py-2">
+                                                          <div class="form-group m-0">
+                                                              <div class="input-group input-group-sm">
+                                                                  <input type="text" class="form-control" placeholder="请输入分类名称" id="input_block_newFolder">
+                                                                  <div class="input-group-append">
+                                                                      <button class="btn btn-primary" type="button" id="btn_block_newFolder_add">添加</button>
+                                                                  </div>
+                                                              </div>
+                                                          </div>
+                                                      </form>
+                                                  </div>
+                                              </div>
+                                              <div class="d-inline">
+                                                  <button type="button" class="btn btn-sm btn-secondary" data-toggle="dropdown" id="btn_block_reName">
+                                                      重命名
+                                                  </button>
+                                                  <div class="dropdown-menu dropdown-menu-right">
+                                                      <form class="px-3 py-2">
+                                                          <div class="form-group m-0">
+                                                              <!--<label id="lbl_block_reName"></label>-->
+                                                              <div class="input-group input-group-sm" style="width:300px">
+                                                                  <input type="text" class="form-control  is-invalid" placeholder="请输入名称" value="重命名" id="input_block_reName">
+                                                                  <div class="input-group-append">
+                                                                      <button class="btn btn-primary" type="button" id="btn_block_reName_OK">确定</button>
+                                                                  </div>
+                                                                  <!--<div class="invalid-feedback">名称太长了,请减少一些。</div>-->
+                                                              </div>
+                                                          </div>
+                                                      </form>
+                                                  </div>
+                                              </div>
+                                          </div>
                                       </div>
                                   </div>
-                                  <div class="top-content" style="overflow: hidden">
-                                      <div class="main-data-side-d" id="div_block_tree">
-                                      </div>
+                                  <div class="main-data-side-m">
+                                          <div id="div_block_tree" style="height:400px;"></div>
                                   </div>
                                   <div class="resize" id="kmbkResize" style="background: #F1F1F1"></div>
-                                  <div class="bottom-content">
-                                      <div class="main-data-bottom" id="div_block_detail">
-
-                                      </div>
+                                  <div class="sidebar-middle container-fluid">
+                                      <table class="table table-sm table-bordered">
+                                          <tr><th>项目编码</th><th>项目名称</th><th>单位</th><th>综合单价</th><th>项目特征</th></tr>
+                                          <tr><td>010202002</td><td>咬合灌注桩</td><td>m2</td><td>18732.38</td><td></td></tr>
+                                      </table>
+                                  </div>
+                                  <div class="sidebar-bottom container-fluid">
+                                      <table class="table table-sm table-bordered">
+                                          <tr><th>编码</th><th>名称</th><th>单位</th><th>含量</th><th>取费专业</th><th>综合单价</th><th>子目换算状态</th></tr>
+                                          <tr><td>AA0043</td><td>人工沟槽 软</td><td>1000</td><td>0.01</td><td>人工土石</td><td></td><td></td></tr>
+                                          <tr><td>AA0046</td><td>人工沟槽 硬</td><td>1000</td><td>0.21</td><td>人工土石</td><td></td><td></td></tr>
+                                      </table>
                                   </div>
                               </div>
                           </div>
@@ -1567,7 +1612,37 @@
         </div>
     </div>
 </div>
-<img src="/web/dest/css/img/folder_open.png" id="folder_open_pic" style="display: none">
+<!--弹出 生成组价模板-->
+<div class="modal fade" id="zujiamb" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">选择模板存储位置</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <div class="form-group">
+                    <label>模板分类</label>
+                    <select class="form-control" id="select_block_category"><option>1.分类1</option><option>2.分类2</option></select>
+                </div>
+                <div class="form-group">
+                    <div class="form-check form-check-inline">
+                        <input class="form-check-input" type="checkbox" name="inlineRadioOptions" id="inlinecheckbox1" value="option1">
+                        <label class="form-check-label" for="inlinecheckbox1">当存在同名模板时,提示是否覆盖</label>
+                    </div>
+                </div>
+            </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>
+            </div>
+        </div>
+    </div>
+</div>
+
+    <img src="/web/dest/css/img/folder_open.png" id="folder_open_pic" style="display: none">
     <img src="/web/dest/css/img/folder_close.png" id="folder_close_pic" style="display: none">
     <img src="/web/dest/css/img/project.png" id="proj_pic" style="display: none">
     <img src="/web/dest/css/img/engineering.png" id="eng_pic" style="display: none">

+ 50 - 12
web/building_saas/main/js/views/block_lib.js

@@ -64,6 +64,7 @@ var blockLibObj = {
             me.mainTree.loadDatas(datas);
             me.mainTreeController.showTreeData();
             me.mainSheet.getRange(-1, 0, -1, 1).cellType(me.getTreeCell(me.mainTree));
+            me.mainTree.selected = me.mainTree.items[0];
 /*            me.mainTreeController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, function (node) {
                 rationLibObj.loadSectionRations(node && node.children.length === 0 ? node.getID() : null);
             });
@@ -284,7 +285,7 @@ var blockLibObj = {
         };
         return new TreeCell();
     },
-    newNode: function (nodeType, nodeName){     // 1 分类  2 块文件
+    newNode: function (nodeType, nodeName, categoryID){     // 1 分类  2 块文件
         let tree = blockLibObj.mainTree;
         let pID = -1, nID = -1;
         let select = tree.selected;
@@ -299,12 +300,9 @@ var blockLibObj = {
             else if (select.data.type == 2){
                 nID = select.parent.getNextSiblingID();
             };
-            newNode = tree.insert(pID, nID);
-            newNode.data.type = 1;
-            newNode.data.name = '分类';
         }
         else if (nodeType == 2) {
-            if (!select) {
+/*            if (!select) {
                 pID = tree.items[0].getID();
             }
             else if (select.data.type == 1){
@@ -313,12 +311,15 @@ var blockLibObj = {
             else if (select.data.type == 2){
                 pID = select.getParentID();
                 nID = select.getNextSiblingID();
-            };
-            newNode = tree.insert(pID, nID);
-            newNode.data.type = 2;
-            newNode.data.name = nodeName;
+            };*/
+
+            pID = categoryID;
+            nID = -1;
         }
 
+        newNode = tree.insert(pID, nID);
+        newNode.data.type = nodeType;
+        newNode.data.name = nodeName;
         tree.selected = newNode;
 
         let sheet = blockLibObj.mainSheet;
@@ -333,6 +334,27 @@ var blockLibObj = {
 
         sheet.resumeEvent();
         sheet.resumePaint();
+    },
+    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;
+            }
+        }
+        blockLibObj.mainSheet.setValue(idx, 0, newName);
+    },
+    getCategories: function () {
+        let nodes = [], node = blockLibObj.mainTree.items[0];
+        nodes.push(node);
+        while (node.nextSibling != null){
+            node = node.nextSibling;
+            nodes.push(node);
+        };
+        return nodes;
     }
 };
 
@@ -345,9 +367,25 @@ $(document).ready(function(){
         }
     });
     $('#btn_block_newFolder').on('click', function (){
-        blockLibObj.newNode(1);
+        $('#input_block_newFolder').val('');
+    });
+
+    $('#btn_block_newFolder_add').on('click', function (){
+        let name = $('#input_block_newFolder').val();
+        if (name != '') blockLibObj.newNode(1, name);
     });
-    $('#btn_block_newSubFolder').on('click', function (){
-        blockLibObj.newNode(2);
+
+    $('#btn_block_reName').on('click', function (){
+        let select = blockLibObj.mainTree.selected;
+        // $('#lbl_block_reName').text(select.data.name);
+        $('#input_block_reName').val(select.data.name);
     });
+
+    $('#btn_block_reName_OK').on('click', function (){
+        let select = blockLibObj.mainTree.selected;
+        let oldName = select.data.name;
+        let newName = $('#input_block_reName').val();
+        if (oldName != newName) blockLibObj.reName(select, newName);
+    });
+
 });

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

@@ -1507,12 +1507,18 @@ var projectObj = {
                         return selected.sourceType != ModuleNames.bills;
                     },
                     callback:function(){
-                        if (!$("#kmbk").is(":visible")){
-                            $('#blockLibTab').click()
-                        };
                         let selected = project.mainTree.selected;
-                        let name = selected.data.code + ' ' + selected.data.name + ' ' + selected.data.unit;
-                        blockLibObj.newNode(2, name);
+                        if (selected.data.name == undefined || selected.data.name == ''){
+                            hintBox.infoBox('系统提示','清单名称为空,无法生成块模板文件!', 1);
+                            return false;
+                        }
+                        else{
+                            if (!$("#kmbk").is(":visible")){
+                                $('#blockLibTab').click()
+                            };
+
+                            $("#zujiamb").modal({show: true});
+                        }
                     },
                     visible: function(key, opt){
                         return G_SHOW_BLOCK_LIB;
@@ -2873,6 +2879,31 @@ $(function () {
 
     });
 
+    $("#zujiamb").on('show.bs.modal', function(){
+        function getBlockCategoriesHtml(Categories) {
+            let result = '';
+            if (Categories.length <= 0) return result;
+
+            for (let c of Categories){
+                result += '<option value="'+ c.data.ID +'">'+ c.data.name +'</option>';
+            };
+            return result;
+        };
+
+        let sHtml = getBlockCategoriesHtml(blockLibObj.getCategories());
+        $("#select_block_category").html(sHtml);
+        $("#select_block_category")[0].selectedIndex = 0;
+    });
+
+    $("#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);
+    });
+
 
     function spreadAutoFocus(spread,relateSpread) {
         if(relateSpread&&relateSpread.getActiveSheet().isEditing()){//关联的spread不在编辑状态的情况下,才自动获得焦点;