Forráskód Böngészése

导出Excel把用户设置也带进去

TonyKang 7 éve
szülő
commit
0281dcfecc

+ 155 - 51
modules/reports/controllers/rpt_controller.js

@@ -269,15 +269,17 @@ module.exports = {
         let params = JSON.parse(req.body.params),
             prj_id = params.prj_id,
             rpt_ids = params.rpt_ids.split(','),
+            pageSize = params.pageSize,
+            orientation = params.orientation,
             customizeCfg = params.custCfg,
             option = params.option;
         let user_id = req.session.sessionUser.id;
-        let parallelFucs = [];
+        let parallelFunctions = [];
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let id of rpt_ids) {
-            parallelFucs.push((function (rpt_id) {
+            parallelFunctions.push((function (rpt_id) {
                 return function (cb) {
-                    getAllPagesCommon(user_id, prj_id, rpt_id, null, null, customizeCfg, dftOption, function (err, pageRst) {
+                    getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, dftOption, function (err, pageRst) {
                         if(err){
                             cb(err);
                         }
@@ -288,7 +290,7 @@ module.exports = {
                 }
             })(parseInt(id)));
         }
-        async.parallel(parallelFucs, function (err, pageRstArray) {
+        async.parallel(parallelFunctions, function (err, pageRstArray) {
             if (err) {
                 callback(req, res, '数据有误', null);
             } else {
@@ -312,14 +314,106 @@ module.exports = {
         });
     },
 
-    getTestReportAllPages: function(req, res){
-        let rpt_id = req.body.ID;
-        let pageSize = req.body.pageSize;
-        getAllPagesCommonOrg(rpt_id, pageSize, JV.PAGING_OPTION_NORMAL, function(err, pageRst){
-            //fs.writeFileSync('D:/GitHome/ConstructionOperation/tmp/testRpt.js', JSON.stringify(pageRst));
-            callback(req, res, err, pageRst);
+    createExcelFilesInOneBook: function (req, res) {
+        let params = JSON.parse(req.body.params),
+            prj_id = params.prj_id,
+            rpt_ids = params.rpt_ids,
+            rptName = params.rptName,
+            pageSize = params.pageSize,
+            orientation = params.orientation,
+            customizeCfg = params.custCfg,
+            option = params.option;
+        let user_id = req.session.sessionUser.id;
+        let parallelFunctions = [];
+        let dftOption = option||JV.PAGING_OPTION_NORMAL;
+        for (let idx = 0; idx < rpt_ids.length; idx++) {
+            let r_id = rpt_ids[idx];
+            parallelFunctions.push((function (rpt_id) {
+                return function (cb) {
+                    getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, dftOption, function (err, pageRst) {
+                        if(err){
+                            cb(err);
+                        }
+                        else{
+                            cb(err, pageRst);
+                        }
+                    })
+                }
+            })(parseInt(r_id)));
+        }
+        async.parallel(parallelFunctions, function (err, pageRstArray) {
+            if (err) {
+                callback(req, res, '数据有误', null);
+            } else {
+                rpt_xl_util.exportExcelInOneBook(pageRstArray, pageSize, rptName, function(uuidName){
+                    let fileRst = {uuid: uuidName, reportName: rptName};
+                    callback(req, res, err, fileRst);
+                });
+            }
         })
     },
+
+    createExcelFiles: function (req, res) {
+        let params = JSON.parse(req.body.params),
+            prj_id = params.prj_id,
+            rpt_ids = params.rpt_ids,
+            rpt_names = params.rpt_names,
+            pageSize = params.pageSize,
+            orientation = params.orientation,
+            isOneSheet = params.isOneSheet,
+            customizeCfg = params.custCfg,
+            option = params.option;
+        let user_id = req.session.sessionUser.id;
+        let parallelFunctions = [];
+        let dftOption = option||JV.PAGING_OPTION_NORMAL;
+        for (let idx = 0; idx < rpt_ids.length; idx++) {
+            let r_id = rpt_ids[idx];
+            let r_name = rpt_names[idx];
+            parallelFunctions.push((function (rpt_id, rpt_name) {
+                return function (cb) {
+                    getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, dftOption, function (err, pageRst) {
+                        if(err){
+                            cb(err);
+                        }
+                        else{
+                            rpt_xl_util.exportExcel(pageRst, pageSize, rpt_name, isOneSheet, null, null, function(uuidName){
+                                let fileRst = {uuid: uuidName, reportName: rpt_name};
+                                cb(err, fileRst);
+                            })
+                        }
+                    })
+                }
+            })(parseInt(r_id), r_name));
+        }
+        async.parallel(parallelFunctions, function (err, fileRstArray) {
+            if (err) {
+                callback(req, res, '数据有误', null);
+            } else {
+                // console.log(err);
+                callback(req, res, err, fileRstArray);
+            }
+        })
+    },
+    getExcelByUUID: function (req, res) {
+        let uuid = req.params.uuid,
+            rptName = req.params.rptName
+        ;
+        // let user_id = req.session.sessionUser.id; //未来要校验user id
+        try {
+            res.setHeader('Content-Type', 'application/vnd.openxmlformats');
+            let rptNameURI = encodeURI(rptName);
+            res.setHeader("Content-Disposition", "attachment; filename=\"" + rptNameURI + ".xlsx\"; filename*=utf-8''" + rptNameURI + '.xlsx' );
+            let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + uuid + '.xlsx');
+            filestream.on('data', function(chunk) {
+                res.write(chunk);
+            });
+            filestream.on('end', function() {
+                res.end();
+            });
+        } catch (e) {
+            console.log(e);
+        }
+    },
     getExcel: function(req, res) {
         let prj_id = req.params.prj_id,
             rpt_id = req.params.rpt_id,
@@ -327,16 +421,18 @@ module.exports = {
             orientation = req.params.orientation,
             rptName = req.params.rptName,
             isOneSheet = req.params.isOneSheet,
-            option = req.params.option;
+            option = req.params.option
+        ;
+        let customizeCfg = null;
         let user_id = req.session.sessionUser.id;
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
-        getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, null, dftOption, function(err, pageRst){
+        getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, dftOption, function(err, pageRst){
             try {
-                rpt_xl_util.exportExcel(pageRst, pageSize, rptName, isOneSheet, null, null, function(newName){
+                rpt_xl_util.exportExcel(pageRst, pageSize, rptName, isOneSheet, null, null, function(uuidName){
                     res.setHeader('Content-Type', 'application/vnd.openxmlformats');
                     let rptNameURI = encodeURI(rptName);
                     res.setHeader("Content-Disposition", "attachment; filename=\"" + rptNameURI + ".xlsx\"; filename*=utf-8''" + rptNameURI + '.xlsx' );
-                    let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + newName + '.xlsx');
+                    let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + uuidName + '.xlsx');
                     filestream.on('data', function(chunk) {
                         res.write(chunk);
                     });
@@ -356,10 +452,10 @@ module.exports = {
             rptName = req.params.rptName,
             option = req.params.option;
         let user_id = req.session.sessionUser.id;
-        let parallelFucs = [];
+        let parallelFunctions = [];
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let id of rpt_ids) {
-            parallelFucs.push((function (rpt_id) {
+            parallelFunctions.push((function (rpt_id) {
                 return function (cb) {
                     getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, null, null, dftOption, function (err, pageRst) {
                         if(err){
@@ -372,7 +468,7 @@ module.exports = {
                 }
             })(parseInt(id)));
         }
-        async.parallel(parallelFucs, function (err, pageRstArray) {
+        async.parallel(parallelFunctions, function (err, pageRstArray) {
             if (err) {
                 callback(req, res, '数据有误', null);
             } else {
@@ -391,6 +487,41 @@ module.exports = {
             }
         })
     },
+    getPDF:function (req, res) {
+        let prj_id = req.params.prj_id,
+            rpt_id = req.params.rpt_id,
+            pageSize = req.params.size,
+            orientation = req.params.orientation,
+            rptName = req.params.rptName
+        ;
+        let user_id = req.session.sessionUser.id;
+        getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, null, JV.PAGING_OPTION_NORMAL, function(err, pageRst){
+            rpt_pdf_util.export_pdf_file(pageRst, pageSize, rptName,function (uuidName) {
+                res.setHeader('Content-Type', 'application/vnd.openxmlformats');
+                // res.setHeader("Content-Disposition", "attachment; filename=" + strUtil.getPinYinCamelChars(rptName) + ".pdf");
+                let rptNameURI = encodeURI(rptName);
+                res.setHeader("Content-Disposition", "attachment; filename=\"" + rptNameURI + ".pdf\"; filename*=utf-8''" + rptNameURI + ".pdf" );
+
+                let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + uuidName + '.pdf');
+                filestream.on('data', function(chunk) {
+                    res.write(chunk);
+                });
+                filestream.on('end', function() {
+                    res.end();
+                });
+            })
+
+        })
+
+    },
+    getTestReportAllPages: function(req, res){
+        let rpt_id = req.body.ID;
+        let pageSize = req.body.pageSize;
+        getAllPagesCommonOrg(rpt_id, pageSize, JV.PAGING_OPTION_NORMAL, function(err, pageRst){
+            //fs.writeFileSync('D:/GitHome/ConstructionOperation/tmp/testRpt.js', JSON.stringify(pageRst));
+            callback(req, res, err, pageRst);
+        })
+    },
     getTestExcel: function(req, res) {
         let rpt_id = req.params.id,
             pageSize = req.params.size,
@@ -401,10 +532,10 @@ module.exports = {
         getAllPagesCommonOrg(rpt_id, pageSize, dftOption, function(err, pageRst){
             fs.writeFileSync('D:/GitHome/ConstructionOperation/tmp/testRpt.js', JSON.stringify(pageRst));
             try {
-                rpt_xl_util.exportExcel(pageRst, pageSize, rptName, isOneSheet, null, null, function(newName){
+                rpt_xl_util.exportExcel(pageRst, pageSize, rptName, isOneSheet, null, null, function(uuidName){
                     res.setHeader('Content-Type', 'application/vnd.openxmlformats');
                     res.setHeader("Content-Disposition", "attachment; filename=" + strUtil.getPinYinCamelChars(rptName) + ".xlsx");
-                    let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + newName + '.xlsx');
+                    let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + uuidName + '.xlsx');
                     filestream.on('data', function(chunk) {
                         res.write(chunk);
                     });
@@ -422,10 +553,10 @@ module.exports = {
             pageSize = req.params.size,
             rptName = req.params.rptName,
             option = req.params.option;
-        let parallelFucs = [];
+        let parallelFunctions = [];
         let dftOption = option||JV.PAGING_OPTION_NORMAL;
         for (let id of rpt_ids) {
-            parallelFucs.push((function (rpt_id) {
+            parallelFunctions.push((function (rpt_id) {
                 return function (cb) {
                     getAllPagesCommonOrg(rpt_id, pageSize, dftOption, function (err, pageRst) {
                         if(err){
@@ -438,7 +569,7 @@ module.exports = {
                 }
             })(parseInt(id)));
         }
-        async.parallel(parallelFucs, function (err, pageRstArray) {
+        async.parallel(parallelFunctions, function (err, pageRstArray) {
             if (err) {
                 callback(req, res, '数据有误', null);
             } else {
@@ -457,46 +588,19 @@ module.exports = {
             }
         })
     },
-    getPDF:function (req, res) {
-        let prj_id = req.params.prj_id,
-            rpt_id = req.params.rpt_id,
-            pageSize = req.params.size,
-            orientation = req.params.orientation,
-            rptName = req.params.rptName
-        ;
-        let user_id = req.session.sessionUser.id;
-        getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, null, JV.PAGING_OPTION_NORMAL, function(err, pageRst){
-            rpt_pdf_util.export_pdf_file(pageRst, pageSize, rptName,function (newName) {
-                res.setHeader('Content-Type', 'application/vnd.openxmlformats');
-                // res.setHeader("Content-Disposition", "attachment; filename=" + strUtil.getPinYinCamelChars(rptName) + ".pdf");
-                let rptNameURI = encodeURI(rptName);
-                res.setHeader("Content-Disposition", "attachment; filename=\"" + rptNameURI + ".pdf\"; filename*=utf-8''" + rptNameURI + ".pdf" );
-
-                let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + newName + '.pdf');
-                filestream.on('data', function(chunk) {
-                    res.write(chunk);
-                });
-                filestream.on('end', function() {
-                    res.end();
-                });
-            })
-
-        })
-
-    },
     getTestPDF:function (req, res) {
         let rpt_id = req.params.id,
             pageSize = req.params.size,
             rptName = req.params.rptName;
 
         getAllPagesCommonOrg(rpt_id, pageSize, JV.PAGING_OPTION_NORMAL, function(err, pageRst){
-            rpt_pdf_util.export_pdf_file(pageRst, pageSize, rptName,function (newName) {
+            rpt_pdf_util.export_pdf_file(pageRst, pageSize, rptName,function (uuidName) {
                 res.setHeader('Content-Type', 'application/vnd.openxmlformats');
                 // res.setHeader("Content-Disposition", "attachment; filename=" + strUtil.getPinYinCamelChars(rptName) + ".pdf");
                 let rptNameURI = encodeURI(rptName);
                 res.setHeader("Content-Disposition", "attachment; filename=\"" + rptNameURI + ".pdf\"; filename*=utf-8''" + rptNameURI + ".pdf"  );
 
-                let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + newName + '.pdf');
+                let filestream = fs.createReadStream(__dirname.slice(0, __dirname.length - 28) + '/tmp/' + uuidName + '.pdf');
                 filestream.on('data', function(chunk) {
                     res.write(chunk);
                 });

+ 3 - 0
modules/reports/routes/report_router.js

@@ -27,8 +27,11 @@ module.exports =function (app) {
     rptRouter.post('/getReport', reportController.getReportAllPages);
     rptRouter.post('/getReportSvg', reportController.getReportAllPagesSvg);
     rptRouter.post('/getMultiReports', reportController.getMultiReports);
+    rptRouter.post('/createExcelFiles', reportController.createExcelFiles);
+    rptRouter.post('/createExcelFilesInOneBook', reportController.createExcelFilesInOneBook);
     rptRouter.get('/getExcelInOneBook/:prj_id/:rpt_ids/:size/:rptName/:option', reportController.getExcelInOneBook);
     rptRouter.get('/getExcel/:prj_id/:rpt_id/:size/:orientation/:rptName/:isOneSheet/:option', reportController.getExcel);
+    rptRouter.get('/getExcelByUUID/:uuid/:rptName', reportController.getExcelByUUID);
     rptRouter.get('/getPDF/:prj_id/:rpt_id/:size/:orientation/:rptName', reportController.getPDF);
     // rptRouter.get('/getExcelInOneBook/:ids/:size/:rptName/:option', reportController.getExcelInOneBook);
 

+ 11 - 3
modules/reports/util/rpt_excel_util.js

@@ -9,6 +9,7 @@ let jpcCmnHelper = require('../rpt_component/helper/jpc_helper_common');
 let DPI = jpcCmnHelper.getScreenDPI()[0];
 let fsUtil = require('../../../public/fsUtil');
 const dftHeadXml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
+const uuidV1 = require('uuid/v1');
 
 function writeContentTypes(sheets, isSinglePage) {
     let rst = [];
@@ -157,6 +158,9 @@ function writeStyles(stylesObj){
         if (strUtil.convertStrToBoolean(font[JV.FONT_PROPS[3]])) {
             rst.push('<b/>');
         }
+        if (strUtil.convertStrToBoolean(font[JV.FONT_PROPS[4]])) {
+            rst.push('<i/>');
+        }
         if (strUtil.convertStrToBoolean(font[JV.FONT_PROPS[5]])) {
             rst.push('<u/>');
         }
@@ -443,7 +447,8 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, ap
             if (sheetFont) {
                 // if (font[JV.FONT_PROPS[0]] === sheetFont[JV.FONT_PROPS[0]] && font.size === Math.round(sheetFont[JV.FONT_PROPS[1]] * 3 / 4)
                 if (font[JV.FONT_PROPS[0]] === sheetFont[JV.FONT_PROPS[0]] && font.size === Math.floor(sheetFont[JV.FONT_PROPS[1]] * 3 / 4)
-                    && font[JV.FONT_PROPS[3]] === sheetFont[JV.FONT_PROPS[3]] && font[JV.FONT_PROPS[5]] === sheetFont[JV.FONT_PROPS[5]]) {
+                    && font[JV.FONT_PROPS[3]] === sheetFont[JV.FONT_PROPS[3]] && font[JV.FONT_PROPS[4]] === sheetFont[JV.FONT_PROPS[4]]
+                    && font[JV.FONT_PROPS[5]] === sheetFont[JV.FONT_PROPS[5]] ) {
                     hasFont = true;
                     rst = i;
                     break;
@@ -460,6 +465,7 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, ap
             font.charset = 134;
             font.colorIdx = "8";
             font[JV.FONT_PROPS[3]] = sheetFont[JV.FONT_PROPS[3]]; //font bold
+            font[JV.FONT_PROPS[4]] = sheetFont[JV.FONT_PROPS[4]]; //font italic
             font[JV.FONT_PROPS[5]] = sheetFont[JV.FONT_PROPS[5]]; //font underline
             stylesObj.fonts.push(font);
             rst = stylesObj.fonts.length - 1;
@@ -818,7 +824,7 @@ function mergeProperties(orgObj, newObj) {
 module.exports = {
     exportExcel: function (pageData, paperSize, fName, options, custSheetNames, custSheetMergeBands, callback) {
         let rptOptions = ({singlePage: false, fileName: 'report'});
-        if (options === 'true') {
+        if (options === 'true' || options === true) {
             rptOptions.singlePage = true;
         }
         let isSinglePage = rptOptions.singlePage;
@@ -891,7 +897,9 @@ module.exports = {
         zip_xl.file(file, data.join(''), {compression: 'DEFLATE'});
 
         if (fName) {
-            let newName = '' + (new Date()).valueOf();
+            // let newName = '' + (new Date()).valueOf();
+            let newName = uuidV1();
+
             zip.generateNodeStream({type:'nodebuffer',streamFiles:true})
                 .pipe(fs.createWriteStream(__dirname.slice(0, __dirname.length - 21) + '/tmp/' + newName + '.xlsx'))
                 .on('finish', function () {

+ 5 - 4
modules/reports/util/rpt_pdf_util.js

@@ -10,22 +10,23 @@ let fs = require('fs');
 let jpcCmnHelper = require('../rpt_component/helper/jpc_helper_common');
 let DPI = jpcCmnHelper.getScreenDPI()[0];
 let JV = require('../rpt_component/jpc_value_define');
+const uuidV1 = require('uuid/v1');
 
 // hwxsb.ttf: 华文中宋
 // Smart.ttf: 宋体(常规)
 // Smart-italic.ttf: 宋体(斜体)
-//目前不支持下划线
+// 目前不支持下划线
 
-module.exports ={
+module.exports = {
     export_pdf_file:export_pdf_file
 }
 
-
 function export_pdf_file (pageData, paperSize, fName, callback) {
     let offsetX= 10;
     let offsetY=10;
     let doc = new pdf({autoFirstPage: false});
-    let newName = '' + (new Date()).valueOf();
+    // let newName = '' + (new Date()).valueOf();
+    let newName = uuidV1();
     let stream = doc.pipe(fs.createWriteStream(__dirname.slice(0, __dirname.length - 21) + '/tmp/'+newName+'.pdf'));
     let pageObj = pageData;
     // doc.rect(5,5,1190,890).lineWidth(1).strokeColor('black').stroke();//边框

+ 48 - 12
web/building_saas/report/js/rpt_main.js

@@ -350,28 +350,63 @@ let rptControlObj = {
     },
     getAllInOneBook: function () {
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
+            let me = rptControlObj;
             let orgRptName = projectInfoObj.projectInfo.name;
             let refRptTplIds = [];
             for (let node of zTreeOprObj.checkedRptTplNodes) {
                 refRptTplIds.push(node.refId);
             }
-            window.location = "/report_api/getExcelInOneBook/" + projectInfoObj.projectInfo.ID + "/" + refRptTplIds.join(",") + "/" +
-                rptControlObj.getCurrentPageSize() + "/" + orgRptName + "/" + 'normal';
+            let params = {};
+            params.prj_id = projectInfoObj.projectInfo.ID;
+            params.rpt_ids = refRptTplIds;
+            params.rptName = orgRptName;
+            params.pageSize = me.getCurrentPageSize();
+            params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
+            params.custCfg = zTreeOprObj.reportPageCfg;
+            params.option = "normal";
+            CommonAjax.postEx("report_api/createExcelFilesInOneBook", params, 20000, true, function(result){
+                    if (result) {
+                        let uuIdUrls = [];
+                        let uuIdUrl =  "/report_api/getExcelByUUID/" + result.uuid + "/" + result.reportName;
+                        uuIdUrls.push(uuIdUrl);
+                        downloadReport(uuIdUrls);
+                    } else {
+                        //
+                    }
+                }, null, null
+            );
         }
     },
     getAllIndividualExcelBook: function () {
         let me = rptControlObj;
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
-            let urls = [];
-            let orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
-            if (zTreeOprObj.checkedRptTplNodes.length > 1) orientation = null;
+            let rpt_ids = [], rpt_names = [];
             for (let tplNode of zTreeOprObj.checkedRptTplNodes) {
-                let orgRptName = tplNode.name;
-                let url =  "/report_api/getExcel/" + projectInfoObj.projectInfo.ID + "/" + tplNode.refId + "/" +
-                    me.getCurrentPageSize() + "/" + orientation + "/" + orgRptName + "/" + true + "/" + 'normal';
-                urls.push(url);
+                rpt_ids.push(tplNode.refId);
+                rpt_names.push(tplNode.name)
             }
-            downloadReport(urls);
+            let params = {};
+            params.prj_id = projectInfoObj.projectInfo.ID;
+            params.rpt_ids = rpt_ids;
+            params.rpt_names = rpt_names;
+            params.pageSize = me.getCurrentPageSize();
+            params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
+            params.isOneSheet = true;
+            params.custCfg = zTreeOprObj.reportPageCfg;
+            params.option = "normal";
+            CommonAjax.postEx("report_api/createExcelFiles", params, 20000, true, function(result){
+                    if (result) {
+                        let uuIdUrls = [];
+                        for (let uuIdObj of result) {
+                            let uuIdUrl =  "/report_api/getExcelByUUID/" + uuIdObj.uuid + "/" + uuIdObj.reportName;
+                            uuIdUrls.push(uuIdUrl);
+                        }
+                        downloadReport(uuIdUrls);
+                    } else {
+                        //
+                    }
+                }, null, null
+            );
         }
     },
     checkAndGetExcel: function () {
@@ -400,7 +435,8 @@ let rptControlObj = {
             for (let tplNode of zTreeOprObj.checkedRptTplNodes) {
                 let orgRptName = tplNode.name;
                 let url =  "/report_api/getPDF/" + projectInfoObj.projectInfo.ID + "/" + tplNode.refId + "/" +
-                    me.getCurrentPageSize() + "/" + orientation + "/" + orgRptName;
+                    me.getCurrentPageSize() + "/" + orientation + "/" + orgRptName
+                    // + "/" + encodeURI(JSON.stringify(zTreeOprObj.reportPageCfg));
                 urls.push(url);
             }
             downloadReport(urls);
@@ -527,4 +563,4 @@ function downloadReport(urls) {
         }
     }
     private_download();
-}
+}

+ 2 - 0
web/building_saas/report/js/rpt_print.js

@@ -7,6 +7,8 @@ let rptPrintHelper = {
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
             let rptIds = [];
             let params = {};
+            params.pageSize = rptControlObj.getCurrentPageSize();
+            params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:rptControlObj.getCurrentOrientation());
             params.custCfg = zTreeOprObj.reportPageCfg;
             params.prj_id = projectInfoObj.projectInfo.ID;
             for (let tplNode of zTreeOprObj.checkedRptTplNodes) {