Ver código fonte

0号台账,部位台账,添加查找定位

MaiXinRong 5 anos atrás
pai
commit
5d6cc99496
4 arquivos alterados com 118 adições e 14 exclusões
  1. 82 0
      app/public/js/ledger_bwtz.js
  2. 2 1
      app/public/js/ledger_search.js
  3. 33 13
      app/view/ledger/bwtz.ejs
  4. 1 0
      config/web.js

+ 82 - 0
app/public/js/ledger_bwtz.js

@@ -9,6 +9,7 @@
  */
 
 $(document).ready(() => {
+    let xmjSearch;
     autoFlashHeight();
     const xmjSpread = SpreadJsObj.createNewSpread($('#xmj-spread')[0]);
     const xmjSheet = xmjSpread.getActiveSheet();
@@ -82,6 +83,87 @@ $(document).ready(() => {
             unitSpread.refresh();
         }
     });
+    $.divResizer({
+        select: '#right-spr',
+        callback: function () {
+            xmjSpread.refresh();
+            unitSpread.refresh();
+            if (xmjSearch) {
+                xmjSearch.spread.refresh();
+            }
+        }
+    });
+
+    $('a', '.side-menu').bind('click', function (e) {
+        e.preventDefault();
+        const tab = $(this), tabPanel = $(tab.attr('content'));
+        const showSideTools = function (show) {
+            const left = $('#left-view'), right = $('#right-view'), parent = left.parent();
+            if (show) {
+                right.show();
+                autoFlashHeight();
+                /**
+                 * right.show()后, parent被撑开成2倍left.height, 导致parent.width减少了10px
+                 * 第一次left.width调整后,parent的缩回left.height, 此时parent.width又增加了10px
+                 * 故需要通过最终的parent.width再计算一次left.width
+                 *
+                 * Q: 为什么不通过先计算left.width的宽度,以避免计算两次left.width?
+                 * A: 右侧工具栏不一定显示,当右侧工具栏显示过一次后,就必须使用parent和right来计算left.width
+                 *
+                 */
+                    //left.css('width', parent.width() - right.outerWidth());
+                    //left.css('width', parent.width() - right.outerWidth());
+                const percent = 100 - right.outerWidth() /parent.width() * 100;
+                left.css('width', percent + '%');
+            } else {
+                left.width(parent.width());
+                right.hide();
+            }
+        };
+        // 展开工具栏、切换标签
+        if (!tab.hasClass('active')) {
+            const close = $('.active', '#side-menu').length === 0;
+            $('a', '#side-menu').removeClass('active');
+            tab.addClass('active');
+            $('.tab-content .tab-pane').removeClass('active');
+            tabPanel.addClass('active');
+            showSideTools(tab.hasClass('active'));
+            if (tab.attr('content') === '#search' && !xmjSearch) {
+                if (!xmjSearch) {
+                    xmjSearch = $.billsSearch({
+                        selector: '#search',
+                        searchSpread: xmjSpread,
+                        searchRangeStr: '项目节编号/名称',
+                        resultSpreadSetting: {
+                            cols: [
+                                {title: '项目节编号', field: 'code', hAlign: 0, width: 120, formatter: '@', readOnly: true},
+                                {title: '名称', field: 'name', width: 150, hAlign: 0, formatter: '@', readOnly: true},
+                                {title: '单位', field: 'unit', width: 50, hAlign: 1, formatter: '@', readOnly: true},
+                                {title: '台账金额', field: 'total_price', hAlign: 2, width: 80, readOnly: true},
+                            ],
+                            emptyRows: 0,
+                            headRows: 1,
+                            headRowHeight: [32],
+                            defaultRowHeight: 21,
+                            headerFont: '12px 微软雅黑',
+                            font: '12px 微软雅黑',
+                            selectedBackColor: '#fffacd',
+                        },
+                        afterLocated: function () {
+                            unitTreeObj.loadCurUnitData();
+                        }
+                    });
+                }
+                xmjSearch.spread.refresh();
+            }
+        } else { // 收起工具栏
+            tab.removeClass('active');
+            tabPanel.removeClass('active');
+            showSideTools(tab.hasClass('active'));
+        }
+        xmjSpread.refresh();
+        unitSpread.refresh();
+    });
 
     // 显示层次
     (function (select, sheet) {

+ 2 - 1
app/public/js/ledger_search.js

@@ -108,12 +108,13 @@
     }
     $.billsSearch = function (setting) {
         if (!setting.selector || !setting.searchSpread || !setting.resultSpreadSetting) return;
+        if (!setting.searchRangeStr) setting.searchRangeStr = '项目节编号/清单编号/名称';
         const resultId = setting.id + '-search-result';
         const obj = $(setting.selector);
         obj.html(
             '                        <div class="sjs-bar">\n' +
             '                            <div class="input-group input-group-sm pb-1">\n' +
-            '                                <input id="searchKeyword" type="text" class="form-control" placeholder="可查找 项目节编号/清单编号/名称" aria-label="Recipient\'s username" aria-describedby="button-addon2">\n' +
+            '                                <input id="searchKeyword" type="text" class="form-control" placeholder="可查找 ' + setting.searchRangeStr + '" aria-label="Recipient\'s username" aria-describedby="button-addon2">\n' +
             '                                <div class="input-group-append">\n' +
             '                                    <button class="btn btn-outline-secondary" type="button"">搜索</button>\n' +
             '                                </div>\n' +

+ 33 - 13
app/view/ledger/bwtz.ejs

@@ -29,23 +29,43 @@
             </div>
         </div>
     </div>
-    <div class="content-wrap">
+    <div class="content-wrap pr-46">
         <div class="c-header p-0"></div>
-        <div class="c-body">
-            <div class="sjs-height-1" id="xmj-spread">
-            </div>
-            <div class="bcontent-wrap" id="main-bottom">
-                <div id="main-resize" class="resize-y" r-Type="height" div1="#xmj-spread" div2="#main-bottom" store-id="stage-bwtz" store-version="1.0.0" min="100"></div>
-                <div class="bc-bar mb-1">
-                    <ul class="nav nav-tabs">
-                        <li class="nav-item">
-                            <a class="nav-link active" data-toggle="tab" href="#jldyjlqd" role="tab">计量单元/计量清单</a>
-                        </li>
-                    </ul>
+        <div class="row w-100 sub-content">
+            <!--左栏-->
+            <div class="c-body" id="left-view" style="width: 100%">
+                <div class="sjs-height-1" id="xmj-spread">
                 </div>
-                <div class="sp-wrap" id="unit-spread">
+                <div class="bcontent-wrap" id="main-bottom">
+                    <div id="main-resize" class="resize-y" r-Type="height" div1="#xmj-spread" div2="#main-bottom" store-id="stage-bwtz" store-version="1.0.0" min="100"></div>
+                    <div class="bc-bar mb-1">
+                        <ul class="nav nav-tabs">
+                            <li class="nav-item">
+                                <a class="nav-link active" data-toggle="tab" href="#jldyjlqd" role="tab">计量单元/计量清单</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <div class="sp-wrap" id="unit-spread">
+                    </div>
                 </div>
             </div>
+            <!--右栏-->
+            <div class="c-body" id="right-view" style="display: none; width: 33%">
+                <div class="resize-x" id="right-spr" r-Type="width" div1="#left-view" div2="#right-view" title="调整大小" a-type="percent"><!--调整左右高度条--></div>
+                <div class="tab-content">
+                    <div id="search" class="tab-pane">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!--右侧菜单-->
+        <div class="side-menu">
+            <!--右侧菜单-->
+            <ul class="nav flex-column right-nav">
+                <li class="nav-item">
+                    <a class="nav-link" href="javascript: void(0);" role="tab" content="#search">查找定位</a>
+                </li>
+            </ul>
         </div>
     </div>
 </div>

+ 1 - 0
config/web.js

@@ -178,6 +178,7 @@ const JsFiles = {
                     "/public/js/div_resizer.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
                     "/public/js/shares/sjs_setting.js",
+                    "/public/js/ledger_search.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
                     "/public/js/shares/bills_pos_convert.js",