Pārlūkot izejas kodu

导出本期合同计量公式

MaiXinRong 1 gadu atpakaļ
vecāks
revīzija
c63fb610c9
2 mainītis faili ar 17 papildinājumiem un 4 dzēšanām
  1. 3 3
      app/controller/revise_controller.js
  2. 14 1
      app/public/js/stage.js

+ 3 - 3
app/controller/revise_controller.js

@@ -590,11 +590,11 @@ module.exports = app => {
 
             switch (data.stdType) {
                 case 'xmj':
-                    return await ctx.service.reviseBills.addStdNodeWithParent(revise.tid, data.stdData, revise.id);
+                    return await this.ctx.service.reviseBills.addStdNodeWithParent(revise.tid, data.stdData, revise.id);
                 case 'gcl':
                     return data.withParent
-                        ? await ctx.service.reviseBills.addGclStdNodeWithParent(revise.tid, data.id, data.stdData, revise.id)
-                        : await ctx.service.reviseBills.addGclStdNode(revise.tid, data.id, data.stdData[data.stdData.length - 1], revise.id);
+                        ? await this.ctx.service.reviseBills.addGclStdNodeWithParent(revise.tid, data.id, data.stdData, revise.id)
+                        : await this.ctx.service.reviseBills.addGclStdNode(revise.tid, data.id, data.stdData[data.stdData.length - 1], revise.id);
                 default:
                     throw '未知标准库';
             }

+ 14 - 1
app/public/js/stage.js

@@ -1422,7 +1422,7 @@ $(document).ready(() => {
                 $('#calc-by-ratio').modal('hide');
             });
         },
-        exportExcel: function (filename, nodes) {
+        exportExcel: function (filename, nodes, withPos = true) {
             const exportNodesData = function (data, nodes) {
                 for (const node of nodes) {
                     data.push({
@@ -1438,10 +1438,12 @@ $(document).ready(() => {
                         c_dgn_qty1: node.c_dgn_qty1, c_dgn_qty2: node.c_dgn_qty2,
                         final_dgn_price: node.final_dgn_price,
                         postil: node.postil, drawing_code: node.drawing_code, memo: node.memo,
+                        contract_expr_str: node.calc_expr ? TreeExprCalc.expr2ExprStr(node.calc_expr) : '',
                     });
                     if (node.children && node.children.length > 0) {
                         exportNodesData(data, node.children);
                     } else {
+                        if (!withPos) continue;
                         const posRange = stagePos.getLedgerPos(node.id);
                         if (posRange && posRange.length > 0) {
                             for (const [i, p] of posRange.entries()) {
@@ -1802,6 +1804,17 @@ $(document).ready(() => {
                     return !node;
                 }
             },
+            exportContractExprXlsx: {
+                name: '导出本期合同计量公式',
+                callback: function(key, opt, menu, e) {
+                    exportExcelSetting.cols.push({title: '本期合同计量计算式', colSpan: '1', rowSpan: '2', field: 'contract_expr_str', hAlign: 0, width: 140, formatter: '@'});
+                    stageTreeSpreadObj.exportExcel($('.sidebar-title').attr('data-original-title') + '本期合同计量公式.xlsx', null, false);
+                    exportExcelSetting.cols.splice(exportExcelSetting.cols.length - 1, 1);
+                },
+                visible: function(key, opt) {
+                    return contractExpr;
+                }
+            },
             importSpr: '---',
             importStageGcl: {
                 name: '导入(其他标段)工程量清单计量数据',