فهرست منبع

台账分解、台账修订、计量台账,显示隐藏计量单元

MaiXinRong 1 ماه پیش
والد
کامیت
5786d4e34b

+ 1 - 0
app/public/css/main.css

@@ -350,6 +350,7 @@ input.nospin[type="number"]{-moz-appearance:textfield;}
   bottom:10px;
   right:20px;
 }
+
 .min-side .side-fold{
   position: absolute;
   bottom:15px;

+ 32 - 6
app/public/js/div_resizer.js

@@ -30,6 +30,7 @@
     $.divResizer = function(setting) {
         const obj = $(setting.select);
         let drag, mouseMoveCount, startPos, orgSize1, orgSize2, newSize1, newSize2, objSize;
+        const rType = obj.attr('r-type'), aType = obj.attr('a-type');
         // if (obj.attr('r-type') === 'height') {
         //     obj.css('width', '100%').css('height', '1%').css('resize', 'vertical').css('cursor', 's-resize').css('float', 'top');
         // } else {
@@ -38,7 +39,6 @@
         // 根据localStorage初始化
 
         const refreshDivSize = function() {
-            const rType = obj.attr('r-type'), aType = obj.attr('a-type');
             const div1 = $(obj.attr('div1')), div2 = $(obj.attr('div2'));
             const parent = div1.parent();
             if (aType !== 'percent' && parent[rType]() > 0) {
@@ -53,9 +53,35 @@
             }
             if (setting.callback) { setting.callback(); }
         };
+        const showSprPart = function (show) {
+            const rParent = obj.attr('rParent');
+            const div1 = $(obj.attr('div1')), div2 = $(obj.attr('div2'));
+            const parent = div1.parent();
+            if (show) {
+                if (rParent === 'div1') {
+                    div1.show();
+                    autoFlashHeight();
+                    div2[rType](orgSize2);
+                } else {
+                    div2.show();
+                    autoFlashHeight();
+                    div1[rType](orgSize1);
+                }
+            } else {
+                if (rParent === 'div1') {
+                    div1.hide();
+                    autoFlashHeight();
+                    div2[rType](parent[rType]());
+                } else {
+                    div2.hide();
+                    autoFlashHeight();
+                    div1[rType](parent[rType]());
+                }
+            }
+        };
 
         if (obj.attr('store-id')) {
-            const rType = obj.attr('r-type'), version = obj.attr('store-version') ? ('-'+obj.attr('store-version')) : '' ;
+            const version = obj.attr('store-version') ? ('-'+obj.attr('store-version')) : '' ;
             const objSize1 = getLocalCache('v-resize-1-' + obj.attr('store-id') + version);
             if (objSize1) {
                 $(obj.attr('div1')).css(rType, objSize1);
@@ -66,10 +92,12 @@
             }
             refreshDivSize();
             if (setting.callback) { setting.callback(); }
+        } else {
+            orgSize1 = $($(this).attr('div1'))[rType]();
+            orgSize2 = $($(this).attr('div2'))[rType]();
         }
 
         obj.mousedown(function (e) {
-            const rType = obj.attr('r-type');
             mouseMoveCount = 0;
             drag = true;
             startPos = rType === 'height' ? e.clientY : e.clientX;
@@ -84,7 +112,6 @@
         });
         $('body').mousemove(function (e) {
             if (drag) {
-                const rType = obj.attr('r-type'), aType = obj.attr('a-type');
                 const moveSize = rType === 'height' ? e.clientY - startPos : e.clientX - startPos;
                 //实时刷新页面
                 mouseMoveCount += moveSize;
@@ -118,7 +145,6 @@
         $('body').mouseup(function () {
             if (drag) {
                 drag = false;
-                const rType = obj.attr('r-type'), aType = obj.attr('a-type');
                 const localId = obj.attr('store-id'), version = obj.attr('store-version') ? ('-'+obj.attr('store-version')) : '' ;
                 const div1 = $(obj.attr('div1')), div2 = $(obj.attr('div2'));
                 if (aType === 'percent') {
@@ -131,6 +157,6 @@
             }
         });
 
-        return { refreshDivSize };
+        return { refreshDivSize, showSprPart };
     }
 })(jQuery);

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

@@ -5,7 +5,7 @@ function autoFlashHeight(){
     const select = $(".scrollbar-auto .active");
     if (select.length > 0) $(".scrollbar-auto")[0].scrollTop = select[0].offsetTop - 72;
     function getObjHeight(select) {
-        return select.length > 0 ? select.height() : 0;
+        return select.length > 0 && select.is(':visible') ? select.height() : 0;
     }
     /*侧栏高度*/
     var sBar1 = getObjHeight($(".sjs-bar-1"));
@@ -1308,6 +1308,7 @@ const spreadColor = {
     }
 };
 const featureShowCache = 'zh-feature-show';
+const posShowCache = 'zh-pos-show';
 
 $(document).ready(function () {
   $('.modal').draggable({handle: '.modal-header'});

+ 24 - 2
app/public/js/ledger.js

@@ -63,7 +63,7 @@ const checkOption = {
 $(document).ready(function() {
     const unit = ledgerSpreadSetting.cols.find(x => { return x.field === 'unit'; });
     if (unit) unit.comboEdit = true;
-    let stdXmj, stdGcl, dealBills, searchLedger, featureDisplay;
+    let stdXmj, stdGcl, dealBills, searchLedger, featureDisplay, posDisplay;
     autoFlashHeight();
     const changeFeaturesDisplay = function (show, init = false) {
         $('#features-show').html(show ? '<i class="fa fa-eye-slash"></i> 隐藏特征' : '<i class="fa fa-eye"></i> 显示特征');
@@ -2309,7 +2309,7 @@ $(document).ready(function() {
     const posSearch = $.posSearch({selector: '#pos-search', searchSpread: posSpread});
     // 台账模式加载计量单元数据
     if (checkTzMeasureType()) {
-        $.divResizer({
+        const mainSpr = $.divResizer({
             select: '#main-resize',
             callback: function () {
                 ledgerSpread.refresh();
@@ -2321,6 +2321,28 @@ $(document).ready(function() {
             }
         });
         sjsSettingObj.setGridSelectStyle(posSpreadSetting);
+
+        const changePosDisplay = function (show, init = false) {
+            $('#pos-show').html(show ? '<i class="fa fa-eye-slash"></i> 隐藏计量单元' : '<i class="fa fa-eye"></i> 显示计量单元');
+            if (!init) {
+                posDisplay = show;
+                setLocalCache(posShowCache, show ? 1 : 0);
+            }
+            mainSpr.showSprPart(show);
+            ledgerSpread.refresh();
+            posSpread.refresh();
+            if (ancGclSpread) ancGclSpread.refresh();
+            if (posCalcDetail) posCalcDetail.refresh();
+        };
+        const reloadPosDisplayCache = function () {
+            posDisplay = getLocalCache(posShowCache);
+            posDisplay = posDisplay ? parseInt(posDisplay) : 1;
+            changePosDisplay(posDisplay, true);
+        };
+        reloadPosDisplayCache();
+        $('#pos-show').click(function() {
+            changePosDisplay(!posDisplay);
+        });
     }
     posSpreadSetting.headColWidth = [50];
     posSpreadSetting.rowHeader = [

+ 21 - 2
app/public/js/revise.js

@@ -55,7 +55,7 @@ const checkOption = {
 $(document).ready(() => {
     const unit = billsSpreadSetting.cols.find(x => { return x.field === 'unit'; });
     if (unit) unit.comboEdit = true;
-    let stdXmj, stdGcl, searchLedger, reviseAtt;
+    let stdXmj, stdGcl, searchLedger, reviseAtt, posDisplay;
     autoFlashHeight();
     // 初始化spread
     const billsSpread = SpreadJsObj.createNewSpread($('#bills-spread')[0]);
@@ -2245,7 +2245,7 @@ $(document).ready(() => {
 
         checkList.loadHisCheckData();
     }, null);
-    $.divResizer({
+    const mainSpr = $.divResizer({
         select: '#revise-resize',
         callback: function () {
             billsSpread.refresh();
@@ -2254,6 +2254,25 @@ $(document).ready(() => {
             posSpread.refresh();
         }
     });
+    const changePosDisplay = function (show, init = false) {
+        $('#pos-show').html(show ? '<i class="fa fa-eye-slash"></i> 隐藏计量单元' : '<i class="fa fa-eye"></i> 显示计量单元');
+        if (!init) {
+            posDisplay = show;
+            setLocalCache(posShowCache, show ? 1 : 0);
+        }
+        mainSpr.showSprPart(show);
+        billsSpread.refresh();
+        posSpread.refresh();
+    };
+    const reloadPosDisplayCache = function () {
+        posDisplay = getLocalCache(posShowCache);
+        posDisplay = posDisplay ? parseInt(posDisplay) : 1;
+        changePosDisplay(posDisplay, true);
+    };
+    reloadPosDisplayCache();
+    $('#pos-show').click(function() {
+        changePosDisplay(!posDisplay);
+    });
 
     class DealBills {
         constructor (selector, spreadSetting) {

+ 3 - 3
app/public/js/spreadjs_rela/spreadjs_zh.js

@@ -50,7 +50,7 @@ const textUtils = {
         const textRow = Math.ceil(textMertrices.width / displayWidth);
         return textRow * fontHeight + 2 + (textRow - 1) * 1;
     }
-}
+};
 
 // 简写Spread常量
 const spreadNS = GC.Spread.Sheets;
@@ -307,10 +307,10 @@ const SpreadJsObj = {
                         .attr("id", 'spread-sum-tip');
                     document.body.insertBefore(sumTip, null);
                 }
-                const hitinfo = info.sheet.getCellRect(sel.row, sel.col + sel.colCount);
+                const hitinfo = info.sheet.getCellRect(sel.row, sel.col + sel.colCount - 1);
                 const pos = SpreadJsObj.getObjPos(info.sheet.getParent().qo);
                 const showTop = Math.min(pos.y + hitinfo.y + indent, window.innerHeight - 72); // 52(w)+10(p)+10(i)
-                let showLeft = pos.x + hitinfo.x + indent;
+                let showLeft = pos.x + hitinfo.x + hitinfo.width + indent;
                 if (showLeft > window.innerWidth - maxHintWidth) {
                     const textWidth = textUtils.getStringListDisplayWidth(info.sheet, "9pt Arial", text);
                     showLeft = Math.min(showLeft, window.innerWidth - textWidth - 10 - indent);

+ 21 - 2
app/public/js/stage.js

@@ -236,7 +236,7 @@ $(document).ready(() => {
         headerFont: 'bold 10px 微软雅黑',
         font: '10px 微软雅黑'
     };
-    let detail, searchLedger, checkedChanges;
+    let detail, searchLedger, checkedChanges, posDisplay;
     const tpCalcFields = [{qty: 'qc_qty', tp: 'qc_tp'}];
     if (tenderInfo.calc_type === 'up' && !correctCalcContractTp) tpCalcFields.unshift({qty: 'contract_qty', tp: 'contract_tp'});
     const checkOption = {
@@ -2703,7 +2703,7 @@ $(document).ready(() => {
     $('#pos-measure').click(stagePosSpreadObj.loadCurPosData);
     $('#pos-un-measure').click(stagePosSpreadObj.loadCurPosData);
     // 加载上下窗口resizer
-    $.divResizer({
+    const mainSpr = $.divResizer({
         select: '#main-resize',
         callback: function () {
             slSpread.refresh();
@@ -2713,6 +2713,25 @@ $(document).ready(() => {
             window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
         }
     });
+    const changePosDisplay = function (show, init = false) {
+        $('#pos-show').html(show ? '<i class="fa fa-eye-slash"></i> 隐藏计量单元' : '<i class="fa fa-eye"></i> 显示计量单元');
+        if (!init) {
+            posDisplay = show;
+            setLocalCache(posShowCache, show ? 1 : 0);
+        }
+        mainSpr.showSprPart(show);
+        slSpread.refresh();
+        spSpread.refresh();
+    };
+    const reloadPosDisplayCache = function () {
+        posDisplay = getLocalCache(posShowCache);
+        posDisplay = posDisplay ? parseInt(posDisplay) : 1;
+        changePosDisplay(posDisplay, true);
+    };
+    reloadPosDisplayCache();
+    $('#pos-show').click(function() {
+        changePosDisplay(!posDisplay);
+    });
 
     // 加载计量单元数据 - 暂时统一加载,如有需要,切换成动态加载并缓存
     postData(window.location.pathname + '/load', { filter: 'ledger;pos;detail;stageChange;import_change;tag;reCalcChange' }, function (result) {

+ 6 - 4
app/view/ledger/explode.ejs

@@ -27,9 +27,11 @@
                     <a href="javascript:void(0)" id="down-level" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="降级"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
                     <a href="javascript:void(0)" id="down-move" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
                     <a href="javascript:void(0)" id="up-move" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="copy" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="cut" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
-                    <a href="javascript:void(0)" id="paste" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
+                </div>
+                <div class="d-inline-block">
+                    <div class="btn-group">
+                        <button href="javascript: void(0);" class="btn btn-sm btn-light text-primary" id="pos-show"><i class="fa fa-eye-slash"></i> 隐藏计量单元</button>
+                    </div>
                 </div>
                 <div class="d-inline-block">
                     <div class="btn-group">
@@ -100,7 +102,7 @@
                 <div id="ledger-spread" class="sjs-height-1"></div>
                 <% if (tender.measure_type === measureType.tz.value) { %>
                 <div class="bcontent-wrap" id="main-bottom">
-                    <div id="main-resize" class="resize-y" id="top-spr" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" title="调整大小"><!--调整上下高度条--></div>
+                    <div id="main-resize" class="resize-y" id="top-spr" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" r-parent="div2" title="调整大小"><!--调整上下高度条--></div>
                     <div class="bc-bar mb-1 d-flex">
                         <div class="d-inline-block">
                             <ul class="nav nav-tabs">

+ 6 - 4
app/view/revise/info.ejs

@@ -29,9 +29,11 @@
                     <a href="javascript: void(0);" name="base-opr" type="down-level" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="降级"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
                     <a href="javascript: void(0);" name="base-opr" type="down-move" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
                     <a href="javascript: void(0);" name="base-opr" type="up-move" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
-                    <a href="javascript: void(0);" name="cpc" type="copy" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
-                    <a href="javascript: void(0);" name="cpc" type="cut" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
-                    <a href="javascript: void(0);" name="cpc" type="paste" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
+                </div>
+                <div class="d-inline-block">
+                    <div class="btn-group">
+                        <button href="javascript: void(0);" class="btn btn-sm btn-light text-primary" id="pos-show"><i class="fa fa-eye-slash"></i> 隐藏计量单元</button>
+                    </div>
                 </div>
                 <div class="d-inline-block">
                     <div class="input-group input-group-sm ml-2">
@@ -78,7 +80,7 @@
                 <div class="sjs-height-1" style="overflow: hidden" id="bills-spread">
                 </div>
                 <div class="bcontent-wrap">
-                    <div id="revise-resize" class="resize-y" id="top-spr" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" title="调整大小"><!--调整上下高度条--></div>
+                    <div id="revise-resize" class="resize-y" id="top-spr" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" r-parent="div2" title="调整大小"><!--调整上下高度条--></div>
                     <div class="bc-bar mb-1">
                         <ul class="nav nav-tabs">
                             <li class="nav-item">

+ 6 - 1
app/view/stage/index.ejs

@@ -27,6 +27,11 @@
                 </div>
                 <div class="d-inline-block">
                     <div class="btn-group">
+                        <button href="javascript: void(0);" class="btn btn-sm btn-light text-primary" id="pos-show"><i class="fa fa-eye-slash"></i> 隐藏计量单元</button>
+                    </div>
+                </div>
+                <div class="d-inline-block">
+                    <div class="btn-group">
                         <button href="javascript: void(0);" class="btn btn-sm btn-light text-primary" id="features-show"><i class="fa fa-eye"></i> 显示特征</button>
                     </div>
                 </div>
@@ -69,7 +74,7 @@
                 </div>
                 <!--下部分-->
                 <div class="bcontent-wrap" id="main-bottom">
-                    <div id="main-resize" class="resize-y" r-Type="height" div1="#stage-ledger" div2="#main-bottom" store-id="stage-main" store-version="1.0.0" min="100"></div>
+                    <div id="main-resize" class="resize-y" r-Type="height" div1="#stage-ledger" div2="#main-bottom" r-parent="div2" store-id="stage-main" store-version="1.0.0" min="100"></div>
                     <div class="bc-bar mb-1">
                         <ul class="nav nav-tabs">
                             <li class="nav-item">