瀏覽代碼

fix(report): 报表数据导出

lishihao 4 月之前
父節點
當前提交
6df690ff45

File diff suppressed because it is too large
+ 611 - 468
modules/reports/controllers/rpt_tpl_controller.js


+ 65 - 36
modules/reports/routes/rpt_tpl_router.js

@@ -5,41 +5,70 @@ import reportTplController from "./../controllers/rpt_tpl_controller";
 import reportCfgController from "./../controllers/rpt_cfg_controller";
 
 module.exports = function (app) {
-    app.get('/rpt_tpl',  function(req, res) {
-        if (!req.session.managerData.username) {
-            res.redirect('/login');
-        }
-        else {
-            res.render('maintain/report/html/rpt_tpl_main.html',
-                {   userAccount: req.session.managerData.username,
-                    userID: req.session.managerData.userID,
-                    LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
-                }
-            );
-        }
-    });
+  app.get("/rpt_tpl", function (req, res) {
+    if (!req.session.managerData.username) {
+      res.redirect("/login");
+    } else {
+      res.render("maintain/report/html/rpt_tpl_main.html", {
+        userAccount: req.session.managerData.username,
+        userID: req.session.managerData.userID,
+        LicenseKey: config.getLicenseKey(process.env.NODE_ENV),
+      });
+    }
+  });
 
-    rptTplRouter.post('/createTreeRootNode', reportTplController.createTreeRootNode);
-    rptTplRouter.post('/updateTreeRootNode', reportTplController.updateTreeRootNode);
-    rptTplRouter.post('/partialUpdateTreeNode', reportTplController.partialUpdateTreeNode);
-    rptTplRouter.post('/updateTopNodeName', reportTplController.updateTopNodeName);
-    rptTplRouter.post('/updateSubLevelOneNode', reportTplController.updateSubLevelOneNode);
-    rptTplRouter.post('/removeTreeRootNode', reportTplController.removeTreeRootNode);
-    rptTplRouter.post('/getRptTplTree', reportTplController.getRptTplTree);
-    rptTplRouter.post('/getTplTreeByCompilation', reportTplController.getTplTreeByCompilation);
-    rptTplRouter.post('/getNewNodeID', reportTplController.getNewNodeID);
-    rptTplRouter.post('/updateRptTplNodes', reportTplController.updateTreeNodes);
-    rptTplRouter.post('/deleteRptTplNodes', reportTplController.deleteRptTplNodes);
-    rptTplRouter.post('/createDftRptTpl', reportTplController.createDftRptTpl);
-    rptTplRouter.post('/getRefRptTpl', reportTplController.getRefRptTpl);
-    rptTplRouter.post('/updateRptTpl', reportTplController.updateRptTpl);
-    rptTplRouter.post('/copyRptTpl', reportTplController.copyRptTpl);
-    rptTplRouter.post('/getCompilationList', reportTplController.getCompilationList);
-    rptTplRouter.post('/getCustomizeCfg', reportTplController.getCustomerCfg);
-    rptTplRouter.post('/saveCustomerCfg', reportTplController.saveCustomerCfg);
-    rptTplRouter.post('/getExtCodeTpl', reportTplController.getExtCodeTpl);
+  rptTplRouter.post(
+    "/createTreeRootNode",
+    reportTplController.createTreeRootNode
+  );
+  rptTplRouter.post(
+    "/updateTreeRootNode",
+    reportTplController.updateTreeRootNode
+  );
+  rptTplRouter.post(
+    "/partialUpdateTreeNode",
+    reportTplController.partialUpdateTreeNode
+  );
+  rptTplRouter.post(
+    "/updateTopNodeName",
+    reportTplController.updateTopNodeName
+  );
+  rptTplRouter.post(
+    "/updateSubLevelOneNode",
+    reportTplController.updateSubLevelOneNode
+  );
+  rptTplRouter.post(
+    "/removeTreeRootNode",
+    reportTplController.removeTreeRootNode
+  );
+  rptTplRouter.post("/getRptTplTree", reportTplController.getRptTplTree);
+  rptTplRouter.post("/getAllBackupData", reportTplController.getAllBackupData);
+  rptTplRouter.post(
+    "/getTplTreeByCompilation",
+    reportTplController.getTplTreeByCompilation
+  );
+  rptTplRouter.post("/getNewNodeID", reportTplController.getNewNodeID);
+  rptTplRouter.post("/updateRptTplNodes", reportTplController.updateTreeNodes);
+  rptTplRouter.post(
+    "/deleteRptTplNodes",
+    reportTplController.deleteRptTplNodes
+  );
+  rptTplRouter.post("/createDftRptTpl", reportTplController.createDftRptTpl);
+  rptTplRouter.post("/getRefRptTpl", reportTplController.getRefRptTpl);
+  rptTplRouter.post("/updateRptTpl", reportTplController.updateRptTpl);
+  rptTplRouter.post("/copyRptTpl", reportTplController.copyRptTpl);
+  rptTplRouter.post(
+    "/getCompilationList",
+    reportTplController.getCompilationList
+  );
+  rptTplRouter.post("/getCustomizeCfg", reportTplController.getCustomerCfg);
+  rptTplRouter.post("/saveCustomerCfg", reportTplController.saveCustomerCfg);
+  rptTplRouter.post("/getExtCodeTpl", reportTplController.getExtCodeTpl);
 
-    rptTplRouter.post('/getUserRptCfg', reportCfgController.getReportUserCfg);
-    rptTplRouter.post('/getMappingFields', reportCfgController.getAllMappingFields);
-    app.use("/report_tpl_api", rptTplRouter);
-};
+  rptTplRouter.post("/getUserRptCfg", reportCfgController.getReportUserCfg);
+  rptTplRouter.post(
+    "/getMappingFields",
+    reportCfgController.getAllMappingFields
+  );
+  app.use("/report_tpl_api", rptTplRouter);
+};

+ 5 - 0
web/maintain/report/html/rpt_tpl_main.html

@@ -70,6 +70,10 @@
             </div>
             <!--
             -->
+            <!--  导出数据(包括配置、指标、报表树、模板) -->
+            <div class="p-2" style="position: absolute;top: -40px;right: 0;"><button class="btn btn-success btn-sm"
+                    onclick="reportDataOutputHelper.outPutFile()">导出数据</button></div>
+
             <div class="p-2">
                 <label id="id_after_saved_lbl" style="color:yellowgreen;font-weight:bold">...</label>
                 <button class="btn btn-primary btn-sm" onclick="tplHelper.saveRptTpl(false)">保存</button>
@@ -120,6 +124,7 @@
     <script src="/web/maintain/report/js/cfg_const.js"></script>
     <script src="/web/maintain/report/js/rpt_tpl_preview_util.js"></script>
     <script src="/web/maintain/report/js/jpc_output.js"></script>
+    <script src="/web/maintain/report/js/rpt_output_to file.js"></script>
     <!-- zTree -->
     <script type="text/javascript" src="/public/web/date_util.js"></script>
     <script type="text/javascript" src="/lib/ztree/jquery.ztree.core.js"></script>

+ 21 - 0
web/maintain/report/js/rpt_output_to file.js

@@ -0,0 +1,21 @@
+/**
+ * Created by lishihao on 2025/1/23.
+ * 报表数据导出为文件
+ * 包括配置、报表树、报表模板、指标
+ */
+
+let reportDataOutputHelper = {
+  outPutFile: async function () {
+    CommonAjax.postEx(
+      "report_tpl_api/getAllBackupData",
+      {},
+      200000,
+      true,
+      function (result) {
+        // 下载文件
+        window.open(result);
+      }
+    );
+    return [];
+  },
+};