Browse Source

report界面小改(隐藏Stage)

TonyKang 5 years ago
parent
commit
536ddd2e08
2 changed files with 13 additions and 55 deletions
  1. 9 54
      app/controller/report_controller.js
  2. 4 1
      app/view/report/index.ejs

+ 9 - 54
app/controller/report_controller.js

@@ -174,6 +174,7 @@ module.exports = app => {
                     try {
                         // console.log('rptCronJob.started: ' + rptCronJob.started);
                         rptCronJob.started = true;
+                        // console.log('this.app.baseDir: ' + this.app.baseDir);
                         rptCronJob.createJob(null, this.app.baseDir + '/app/public/download');
                     } catch (ex) {
                         rptCronJob.started = false;
@@ -1044,24 +1045,13 @@ async function encodeDummySignatureDataUri(pageRst, baseDir) {
     }
 }
 
-async function createDownloadJob(ctx, baseUuid) {
+async function createExportRequestJob(ctx) {
     const params = JSON.parse(ctx.request.body.params);
+    // const uuidArr = params.uuidArr;
     const baseDir = this.app.baseDir;
-    function getExcelByPageData(pageRst, rpt_name, innerRoleRel) {
-        return new Promise(function(resolve, reject) {
-            rpt_xl_util.exportExcel(pageRst, params.pageSize, rpt_name, params.isOneSheet, null, null, baseDir, innerRoleRel,
-                (err, uuidName) => {
-                    if (err) return reject(err);
-                    const fileRst = { uuid: uuidName, reportName: rpt_name };
-                    resolve(fileRst);
-                }
-            );
-        });
-    }
     const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
     const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
     await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
-    const runnableRst = [];
     for (let idx = 0; idx < pageRstArr.length; idx++) {
         let roleRel = null;
         for (const roleR of roleRelArr) {
@@ -1070,47 +1060,12 @@ async function createDownloadJob(ctx, baseUuid) {
                 break;
             }
         }
-        // console.log('roleRel.rel_content: ' + roleRel.rel_content);
-        // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/testBuiltPageResult.jsp');
-        runnableRst.push(getExcelByPageData(pageRstArr[idx], params.rpt_names[idx], roleRel));
-    }
-    const uuidRst = await Promise.all(runnableRst);
-    /*
-    const params = JSON.parse(ctx.request.body.params);
-    await this._saveCustomSelects(params);
-    const baseDir = this.app.baseDir;
-    function getExcelByPageData(pageRst, rpt_name, innerRoleRel) {
-        return new Promise(function(resolve, reject) {
-            rpt_xl_util.exportExcel(pageRst, params.pageSize, rpt_name, params.isOneSheet, null, null, baseDir, innerRoleRel,
-                (err, uuidName) => {
-                    if (err) return reject(err);
-                    const fileRst = { uuid: uuidName, reportName: rpt_name };
-                    resolve(fileRst);
-                }
-            );
-        });
-    }
-    const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
-    // const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id)) : [];
-    const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
-    await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
-
-    const runnableRst = [];
-    for (let idx = 0; idx < pageRstArr.length; idx++) {
-        let roleRel = null;
-        for (const roleR of roleRelArr) {
-            if (roleR.rpt_id === params.rpt_ids[idx]) {
-                roleRel = JSON.parse(roleR.rel_content);
-                break;
-            }
+        if (params.exportType === 'xlsx') {
+            const zip = rpt_xl_util.exportExcel(pageRstArr[idx], params.pageSize, null, params.isOneSheet, null, null, baseDir, roleRel, null); // 给个null报表名称,返回zip对象自己处理,这样就不用改接口结构了
+            zip.generateNodeStream({ type: 'nodebuffer', streamFiles: true })
+                .pipe(fs.createWriteStream(baseDir + '/app/public/download/' + params.uuidArr[idx] + '.xlsx'));
+        } else if (params.exportType === 'pdf') {
+            // PDF的后期补上
         }
-        // console.log('roleRel.rel_content: ' + roleRel.rel_content);
-        // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/testBuiltPageResult.jsp');
-        runnableRst.push(getExcelByPageData(pageRstArr[idx], params.rpt_names[idx], roleRel));
     }
-    // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/计量导出pageArr.js');
-    const uuidRst = await Promise.all(runnableRst);
-    ctx.body = { data: uuidRst };
-    ctx.status = 201;
-    //*/
 }

+ 4 - 1
app/view/report/index.ejs

@@ -13,7 +13,7 @@
             <% } %>
             <div>
                 <div class="d-inline-block">
-                    <div class="dropdown">
+                    <div class="dropdown" id="divSelectableStages">
                         <button class="btn btn-sm btn-light dropdown-toggle text-primary" type="button" id="btnCurrentStage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuButton" id="optionSelectableStages"></div>
                     </div>
@@ -395,6 +395,9 @@
                 }
             }
         }
+        if (STAGE_ID > 0) {
+            $("#divSelectableStages")[0].style.display = 'none';
+        }
     }
 
     function changeCurrentStage(ele) {