Browse Source

根据(其他标段)计量比例计量

MaiXinRong 1 month ago
parent
commit
a79a7867b1
3 changed files with 44 additions and 1 deletions
  1. 40 0
      app/public/js/stage.js
  2. 2 1
      app/view/stage/modal.ejs
  3. 2 0
      config/web.js

+ 40 - 0
app/public/js/stage.js

@@ -1090,6 +1090,17 @@ $(document).ready(() => {
                 });
             }
         },
+        updateNodeData: function(data) {
+            postData(window.location.href + '/update', { bills: data }, function(data) {
+                const nodes = stageTree.loadPostStageData(data);
+                stageTreeSpreadObj.refreshTreeNodes(slSpread.getActiveSheet(), nodes);
+                if (detail) {
+                    detail.loadStageLedgerUpdateData(data, nodes);
+                } else {
+                    stageIm.loadUpdateLedgerData(data, nodes);
+                }
+            });
+        },
         loadRelaData: function () {
             const billsSheet = slSpread.getActiveSheet();
             SpreadJsObj.saveTopAndSelect(billsSheet, ckBillsSpread);
@@ -1686,6 +1697,23 @@ $(document).ready(() => {
             if (checkedChanges) checkedChanges.reloadChangeData();
         }
     });
+
+    const spssTenderSelect = TenderSelectMulti({
+        title: '根据(其他标段)计量比例计量',
+        type: 'gather',
+        dataType: 'stage',
+        afterSelect: function(select) {
+            const data = { filter: 'info', tender: select };
+            postData(`/sp/${spid}/spss/load`, data, function(result) {
+                const postil = result.map(x => { return `${x.name}(${x.stage_filter}) ${x.info.contract_tp || 0}`}).join(';');
+                const gatherContractTp = ZhCalc.sum(result.map(x => { return x.info.contract_tp; }));
+                const gatherTp = ZhCalc.sum(result.map(x => { return x.info.total_price; }));
+                const node = SpreadJsObj.getSelectObject(slSheet);
+                const contract_tp = ZhCalc.mul(ZhCalc.div(gatherContractTp, gatherTp), node.total_price);
+                stageTreeSpreadObj.updateNodeData({ stage: { lid: node.id, contract_tp, postil } });
+            });
+        },
+    });
     $.contextMenu({
         selector: '#stage-ledger',
         build: function ($trigger, e) {
@@ -2029,6 +2057,18 @@ $(document).ready(() => {
                     batchImport.show();
                 }
             },
+            percentSpr: '---',
+            percentCalc: {
+                name: '根据(其他标段)计量比例计量',
+                disabled: function(key, opt) {
+                    const node = SpreadJsObj.getSelectObject(slSpread.getActiveSheet());
+                    const posRange = stagePos.getLedgerPos(node.id) || [];
+                    return readOnly || !node || !node.is_tp || posRange.length > 0;
+                },
+                callback: function(key, opt) {
+                    spssTenderSelect.showSelect();
+                }
+            },
             shoufangdanSpr: '---',
             shoufangdan: {
                 name: '生成收方单',

+ 2 - 1
app/view/stage/modal.ejs

@@ -681,4 +681,5 @@
 <% include ../shares/stage_stash_modal.ejs%>
 <% include ../shares/delete_hint_modal.ejs%>
 <% include ../shares/batch_import_modal.ejs%>
-<% include ../shares/import_file_modal.ejs%>
+<% include ../shares/import_file_modal.ejs%>
+<% include ../spss/spss_select_modal.ejs %>

+ 2 - 0
config/web.js

@@ -394,6 +394,7 @@ const JsFiles = {
                     '/public/js/math.min.js',
                     // '/public/js/file-saver/FileSaver.js',
                     '/public/js/axios/axios.min.js', '/public/js/js-xlsx/jszip.min.js', '/public/js/file-saver/FileSaver.min.js',
+                    '/public/js/datepicker/datepicker.min.js', '/public/js/datepicker/datepicker.zh.js',
                 ],
                 mergeFiles: [
                     '/public/js/sub_menu.js',
@@ -414,6 +415,7 @@ const JsFiles = {
                     '/public/js/shares/tenders2tree.js',
                     '/public/js/shares/tender_select.js',
                     '/public/js/shares/batch_import.js',
+                    '/public/js/shares/tender_select_multi.js',
                     // '/public/js/shares/stage_excel.js',
                     '/public/js/ledger_check.js',
                     '/public/js/stage.js',