Просмотр исходного кода

1. 清单对比,标红显示问题
2. 清单对比,汇总条件显示问题
3. 台账修订,设计量公式列

MaiXinRong 1 год назад
Родитель
Сommit
ae66b11493
3 измененных файлов с 78 добавлено и 31 удалено
  1. 14 2
      app/public/js/ledger_gather.js
  2. 38 5
      app/public/js/revise.js
  3. 26 24
      app/view/ledger/gather.ejs

+ 14 - 2
app/public/js/ledger_gather.js

@@ -66,8 +66,8 @@ $(document).ready(() => {
             return data
                 ? $('#compare-tag')[0].checked && data.compare_differ
                     ? spreadColor.gcl.calc_differ
-                    : (data.differ ? spreadColor.gcl.differ : defaultColor)
-                : defaultColor;
+                    : (data.differ ? spreadColor.gcl.differ : '#FFFFFF')
+                : '#FFFFFF';
         }
     };
     if (thousandth) sjsSettingObj.setTpThousandthFormat(gclSpreadSetting);
@@ -296,6 +296,18 @@ $(document).ready(() => {
         gatherLeafXmjSpread.refresh();
     });
 
+    // 下部设置显示相关
+    $('a', '[name=pos-tab]').click(function() {
+        const relaTab = this.getAttribute('href');
+        const optionTab = $('#optionTab').children();
+        for (const ot of optionTab) {
+            if (ot.getAttribute('rela-tab') === relaTab) {
+                $(ot).show();
+            } else {
+                $(ot).hide();
+            }
+        }
+    });
     $('[name=gather-xmj]').change(function() {
         const checkOption = $('[name=gather-xmj]:checked');
         if (checkOption.length === 0) {

+ 38 - 5
app/public/js/revise.js

@@ -16,13 +16,13 @@ const invalidFields = {
     posCalc: ['sgfh_qty', 'sgfh_tp', 'sjcl_qty', 'sjcl_tp', 'qtcl_qty', 'qtcl_tp'],
     posXmj: ['code'],
 };
-function getExprInfo (field) {
+function getExprInfo (field, converse = false) {
     const exprField = [
         {qty: 'sgfh_qty', expr: 'sgfh_expr'},
         {qty: 'sjcl_qty', expr: 'sjcl_expr'},
         {qty: 'qtcl_qty', expr: 'qtcl_expr'},
     ];
-    return _.find(exprField, {qty: field});
+    return converse ?  _.find(exprField, {expr: field}) : _.find(exprField, {qty: field});
 }
 function transExpr(expr) {
     return $.trim(expr).replace('\t', '').replace('=', '').replace('%', '/100');
@@ -1708,6 +1708,23 @@ $(document).ready(() => {
                         return;
                     }
                 }
+            } else if (col.field.indexOf('_expr') > 0) {
+                const exprInfo = getExprInfo(col.field, true);
+                if (!exprInfo) return;
+
+                if (newText) {
+                    try {
+                        data.postData[exprInfo.qty] = math.evaluate(transExpr(newText));
+                        data.postData[exprInfo.expr] = newText;
+                    } catch(err) {
+                        toastr.error('输入的表达式非法');
+                        SpreadJsObj.reLoadRowData(info.sheet, info.row);
+                        return;
+                    }
+                } else {
+                    data.postData[exprInfo.qty] = 0;
+                    data.postData[exprInfo.expr] = '';
+                }
             } else {
                 data.postData[col.field] = newText;
             }
@@ -1746,10 +1763,15 @@ $(document).ready(() => {
                         const style = sheet.getStyle(iRow, iCol);
                         if (!style.locked) {
                             const colSetting = sheet.zh_setting.cols[iCol];
-                            data[colSetting.field] = null;
-                            const exprInfo = getExprInfo(colSetting.field);
-                            if (exprInfo) {
+                            if (colSetting.field.indexOf('_expr') > 0) {
+                                const exprInfo = getExprInfo(colSetting.field, true);
+                                if (!exprInfo) continue;
                                 data[exprInfo.expr] = '';
+                                data[exprInfo.qty] = 0;
+                            } else {
+                                data[colSetting.field] = null;
+                                const exprInfo = getExprInfo(colSetting.field);
+                                if (exprInfo) data[exprInfo.expr] = '';
                             }
                             bDel = true;
                         }
@@ -1901,6 +1923,17 @@ $(document).ready(() => {
                                 bPaste = false;
                             }
                         }
+                    } else if (colSetting.field.indexOf('_expr') > 0) {
+                        try {
+                            const exprInfo = getExprInfo(colSetting.field, true);
+                            posData[exprInfo.expr] = trimInvalidChar(info.sheet.getText(curRow, curCol));
+                            posData[exprInfo.qty] = math.evaluate(transExpr(posData[exprInfo.expr]));
+                            bPaste = true;
+                        } catch (err) {
+                            toastMessageUniq(hint.expr);
+                        }
+                    } else {
+                        bPaste = true;
                     }
                 }
                 if (bPaste) {

+ 26 - 24
app/view/ledger/gather.ejs

@@ -25,36 +25,38 @@
                 <div class="bcontent-wrap" id="main-bottom">
                     <div id="main-resize" class="resize-y" r-Type="height" div1="#gcl-spread" div2="#main-bottom" store-id="ledger-gather" store-version="1.0.0" min="100"></div>
                     <div class="bc-bar mb-1">
-                        <ul class="nav nav-tabs">
+                        <ul class="nav nav-tabs" name="pos-tab">
                             <li class="nav-item">
                                 <a class="nav-link active" data-toggle="tab" href="#xmujie" role="tab">所属项目节</a>
                             </li>
                             <li class="nav-item">
                                 <a class="nav-link" data-toggle="tab" href="#xmjGather" role="tab">项目节汇总</a>
                             </li>
-                            <li class="nav-item">
-                                <div class="d-inline-block ml-2 mt-1">
-                                    <span>汇总条件:</span>
-                                    <div class="d-inline-block" style="vertical-align: middle">
-                                        <div class="form-check form-check-inline">
-                                            <input class="form-check-input pt-1" type="checkbox" id="gather-xmj-dwgc" value="dwgc" name="gather-xmj">
-                                            <label class="form-check-label" for="gather-xmj-dwgc">单位工程</label>
-                                        </div>
-                                        <div class="form-check form-check-inline">
-                                            <input class="form-check-input" type="checkbox" id="gather-xmj-fbgc" value="fbgc" name="gather-xmj">
-                                            <label class="form-check-label" for="gather-xmj-fbgc">分部工程</label>
-                                        </div>
-                                        <div class="form-check form-check-inline">
-                                            <input class="form-check-input" type="checkbox" id="gather-xmj-fxgc" value="fxgc" name="gather-xmj">
-                                            <label class="form-check-label" for="gather-xmj-fxgc">分项工程</label>
-                                        </div>
-                                        <div class="form-check form-check-inline">
-                                            <input class="form-check-input" type="checkbox" id="gather-xmj-xm" value="jldy" name="gather-xmj">
-                                            <label class="form-check-label" for="gather-xmj-xm">细目</label>
-                                        </div>
-                                        <div class="form-check form-check-inline">
-                                            <input class="form-check-input" type="checkbox" id="gather-xmj-jldy" value="bwmx" checked name="gather-xmj">
-                                            <label class="form-check-label" for="gather-xmj-jldy">计量单元</label>
+                            <li class="nav-item" id="optionTab">
+                                <div rela-tab="#xmjGather" style="display: none;">
+                                    <div class="d-inline-block ml-2 mt-1">
+                                        <span>汇总条件:</span>
+                                        <div class="d-inline-block" style="vertical-align: middle">
+                                            <div class="form-check form-check-inline">
+                                                <input class="form-check-input pt-1" type="checkbox" id="gather-xmj-dwgc" value="dwgc" name="gather-xmj">
+                                                <label class="form-check-label" for="gather-xmj-dwgc">单位工程</label>
+                                            </div>
+                                            <div class="form-check form-check-inline">
+                                                <input class="form-check-input" type="checkbox" id="gather-xmj-fbgc" value="fbgc" name="gather-xmj">
+                                                <label class="form-check-label" for="gather-xmj-fbgc">分部工程</label>
+                                            </div>
+                                            <div class="form-check form-check-inline">
+                                                <input class="form-check-input" type="checkbox" id="gather-xmj-fxgc" value="fxgc" name="gather-xmj">
+                                                <label class="form-check-label" for="gather-xmj-fxgc">分项工程</label>
+                                            </div>
+                                            <div class="form-check form-check-inline">
+                                                <input class="form-check-input" type="checkbox" id="gather-xmj-xm" value="jldy" name="gather-xmj">
+                                                <label class="form-check-label" for="gather-xmj-xm">细目</label>
+                                            </div>
+                                            <div class="form-check form-check-inline">
+                                                <input class="form-check-input" type="checkbox" id="gather-xmj-jldy" value="bwmx" checked name="gather-xmj">
+                                                <label class="form-check-label" for="gather-xmj-jldy">计量单元</label>
+                                            </div>
                                         </div>
                                     </div>
                                 </div>