Bläddra i källkod

水印代码准备 + code sync

TonyKang 4 år sedan
förälder
incheckning
d3a5a5e3f4

+ 22 - 105
modules/reports/controllers/rpt_controller.js

@@ -2,6 +2,7 @@
  * Created by Tony on 2017/3/13.
  * Created by Tony on 2017/3/13.
  */
  */
 
 
+import UserModel from "../../users/models/user_model";
 import mongoose from "mongoose";
 import mongoose from "mongoose";
 import async from "async";
 import async from "async";
 
 
@@ -37,7 +38,7 @@ let callback = function(req, res, err, data){
 const WATERMARK_FONT = {
 const WATERMARK_FONT = {
     "Name": "宋体",
     "Name": "宋体",
     "FontHeight": "32",
     "FontHeight": "32",
-    "FontColor": "CYAN",
+    "FontColor": "GOLD",
     "FontBold": "T",
     "FontBold": "T",
     "FontItalic": "F",
     "FontItalic": "F",
     "FontUnderline": "F",
     "FontUnderline": "F",
@@ -361,8 +362,8 @@ function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, custo
 
 
 function fillWaterMark(pageRstArray) {
 function fillWaterMark(pageRstArray) {
     for (const pageRst of pageRstArray) {
     for (const pageRst of pageRstArray) {
-        if (!pageRst[JV.NODE_FONT_COLLECTION].hasOwnProperty('WaterMark')) {
-            pageRst[JV.NODE_FONT_COLLECTION]['WaterMark'] = WATERMARK_FONT;
+        if (!pageRst[JV.NODE_FONT_COLLECTION].hasOwnProperty(JV.PROP_WATERMARK)) {
+            pageRst[JV.NODE_FONT_COLLECTION][JV.PROP_WATERMARK] = WATERMARK_FONT;
         }
         }
         for (const page of pageRst.items) {
         for (const page of pageRst.items) {
             const warterCell = {
             const warterCell = {
@@ -377,12 +378,12 @@ function fillWaterMark(pageRstArray) {
                     "Bottom": 500
                     "Bottom": 500
                 }
                 }
             };
             };
-            page.cells.push(warterCell);
+            //page.cells.push(warterCell);
+            page.cells.unshift(warterCell);
         }
         }
     }
     }
 }
 }
 
 
-
 module.exports = {
 module.exports = {
     getReportAllPages: function (req, res) {
     getReportAllPages: function (req, res) {
         let params = JSON.parse(req.body.params),
         let params = JSON.parse(req.body.params),
@@ -395,7 +396,22 @@ module.exports = {
         // req.session.sessionUser.ssoId
         // req.session.sessionUser.ssoId
         let user_id = req.session.sessionUser.id;
         let user_id = req.session.sessionUser.id;
         getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_NORMAL, function (err, pageRst) {
         getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_NORMAL, function (err, pageRst) {
-            callback(req, res, err, pageRst);
+            try {
+                let userModel = new UserModel();
+                // console.log('req.session.sessionUser.ssoId: ' + req.session.sessionUser.ssoId);
+                userModel.isFree(req.session.sessionUser.ssoId, params.compilation).then(function(rst) {
+                    // console.log('is Free user? ' + rst);
+                    if (rst) {
+                        //加水印!
+                        // fillWaterMark([pageRst]);
+                    }
+                    callback(req, res, err, pageRst);
+                });
+            } catch (error) {
+                //
+            } finally {
+                //callback(req, res, err, pageRst);
+            }
         });
         });
     },
     },
     getMultiReports: function (req, res) {
     getMultiReports: function (req, res) {
@@ -698,105 +714,6 @@ 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);
-        })
-    },
-    getTestExcel: function(req, res) {
-        let rpt_id = req.params.id,
-            pageSize = req.params.size,
-            rptName = req.params.rptName,
-            isOneSheet = req.params.isOneSheet,
-            option = req.params.option;
-        let dftOption = option||JV.PAGING_OPTION_NORMAL;
-        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(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/' + uuidName + '.xlsx');
-                    filestream.on('data', function(chunk) {
-                        res.write(chunk);
-                    });
-                    filestream.on('end', function() {
-                        res.end();
-                    });
-                });
-            } catch (e) {
-                console.log(e);
-            }
-        })
-    },
-    getTestExcelInOneBook: function(req, res) {
-        let rpt_ids = req.params.ids.split(','),
-            pageSize = req.params.size,
-            rptName = req.params.rptName,
-            option = req.params.option;
-        let parallelFunctions = [];
-        let dftOption = option||JV.PAGING_OPTION_NORMAL;
-        for (let id of rpt_ids) {
-            parallelFunctions.push((function (rpt_id) {
-                return function (cb) {
-                    getAllPagesCommonOrg(rpt_id, pageSize, dftOption, function (err, pageRst) {
-                        if(err){
-                            cb(err);
-                        }
-                        else{
-                            cb(null, pageRst);
-                        }
-                    })
-                }
-            })(parseInt(id)));
-        }
-        async.parallel(parallelFunctions, function (err, pageRstArray) {
-            if (err) {
-                callback(req, res, '数据有误', null);
-            } else {
-                rpt_xl_util.exportExcelInOneBook(pageRstArray, pageSize, rptName, function(tmpFilePath){
-                    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/' + tmpFilePath + '.xlsx');
-                    filestream.on('data', function(chunk) {
-                        res.write(chunk);
-                    });
-                    filestream.on('end', function() {
-                        res.end();
-                    });
-                });
-                //callback(req, res, false, '', {compilation: rst, gljLibs: gljLibsRst});
-            }
-        })
-    },
-    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 (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();
-                });
-            })
-
-        })
-
     }
     }
 };
 };
 
 

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

@@ -18,11 +18,6 @@ module.exports =function (app) {
         }
         }
     });
     });
 
 
-    //test
-    rptRouter.post('/getTestReport', reportController.getTestReportAllPages);
-    rptRouter.get('/getTestExcel/:id/:size/:rptName/:isOneSheet/:option', reportController.getTestExcel);
-    rptRouter.get('/getTestExcelInOneBook/:ids/:size/:rptName/:option', reportController.getTestExcelInOneBook);
-    rptRouter.get('/getTestPDF/:id/:size/:rptName', reportController.getTestPDF);
     //now is the real:
     //now is the real:
     rptRouter.post('/getReport', reportController.getReportAllPages);
     rptRouter.post('/getReport', reportController.getReportAllPages);
     rptRouter.post('/getReportSvg', reportController.getReportAllPagesSvg);
     rptRouter.post('/getReportSvg', reportController.getReportAllPagesSvg);

+ 5 - 0
public/web/rpt_value_define.js

@@ -150,6 +150,7 @@ const JV = {
     PROP_PREFIX: "Prefix",
     PROP_PREFIX: "Prefix",
     PROP_SUFFIX: "Suffix",
     PROP_SUFFIX: "Suffix",
     PROP_FORMAT: "Format",
     PROP_FORMAT: "Format",
+    PROP_WATERMARK: 'WaterMark',
 
 
     PROP_SHOW_ZERO: "ShowZero",
     PROP_SHOW_ZERO: "ShowZero",
     PROP_EXTENSION_TYPE: "ExtType",
     PROP_EXTENSION_TYPE: "ExtType",
@@ -325,6 +326,10 @@ const JV = {
     ANTI_VERTICAL_ANGLE: "-90",
     ANTI_VERTICAL_ANGLE: "-90",
     VERTICAL_ANGLE_INT: 90,
     VERTICAL_ANGLE_INT: 90,
     ANTI_VERTICAL_ANGLE_INT: -90,
     ANTI_VERTICAL_ANGLE_INT: -90,
+    WATER_MARK_ANGLE: "45",
+    ANTI_WATER_MARK_ANGLE: "-45",
+    WATER_MARK_ANGLE_INT: 45,
+    ANTI_WATER_MARK_ANGLE_INT: -45,
 
 
     LAST_DEF: ""
     LAST_DEF: ""
 };
 };

+ 7 - 0
web/building_saas/report/js/jpc_output.js

@@ -200,6 +200,13 @@ let JpcCanvasOutput = {
             } else if (font.FontAngle === JV.ANTI_VERTICAL_ANGLE) {
             } else if (font.FontAngle === JV.ANTI_VERTICAL_ANGLE) {
                 ctx.rotate(-Math.PI/2);
                 ctx.rotate(-Math.PI/2);
             }
             }
+            if (font.FontAngle === JV.WATER_MARK_ANGLE) {
+                ctx.rotate(Math.PI/4);
+                ctx.fillStyle = font.FontColor;
+            } else if (font.FontAngle === JV.ANTI_WATER_MARK_ANGLE) {
+                ctx.rotate(-Math.PI/4);
+                ctx.fillStyle = font.FontColor;
+            }
             if (validAreaTxtWidth >= ctx.measureText(val).width ||
             if (validAreaTxtWidth >= ctx.measureText(val).width ||
                 (control && control.Shrink !== 'T' && validTxtLines < private_splitString(val, validAreaTxtWidth, ctx)) ) {
                 (control && control.Shrink !== 'T' && validTxtLines < private_splitString(val, validAreaTxtWidth, ctx)) ) {
                 if (font[JV.FONT_PROPS[5]] === 'T' && parseInt(font.FontAngle) === 0) {
                 if (font[JV.FONT_PROPS[5]] === 'T' && parseInt(font.FontAngle) === 0) {

+ 5 - 1
web/building_saas/report/js/jpc_output_value_define.js

@@ -66,5 +66,9 @@ let JV = {
     VERTICAL_ANGLE_INT: 90,
     VERTICAL_ANGLE_INT: 90,
     ANTI_VERTICAL_ANGLE_INT: -90,
     ANTI_VERTICAL_ANGLE_INT: -90,
     VERTICAL_ANGLE: "90",
     VERTICAL_ANGLE: "90",
-    ANTI_VERTICAL_ANGLE: "-90"
+    ANTI_VERTICAL_ANGLE: "-90",
+    WATER_MARK_ANGLE: "45",
+    ANTI_WATER_MARK_ANGLE: "-45",
+    WATER_MARK_ANGLE_INT: 45,
+    ANTI_WATER_MARK_ANGLE_INT: -45
 };
 };

+ 3 - 0
web/building_saas/report/js/rpt_main.js

@@ -274,6 +274,7 @@ let zTreeOprObj = {
     },
     },
     requestReport: function (params) {
     requestReport: function (params) {
         let me = zTreeOprObj;
         let me = zTreeOprObj;
+        params.compilation = projectObj.project.projectInfo.compilation;
         hintBox.waitBox();
         hintBox.waitBox();
         CommonAjax.postEx("report_api/getReport", params, 15000, true,
         CommonAjax.postEx("report_api/getReport", params, 15000, true,
             function(result){
             function(result){
@@ -508,6 +509,7 @@ let rptControlObj = {
             params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
             params.orientation = ((zTreeOprObj.checkedRptTplNodes.length > 1)?null:me.getCurrentOrientation());
             params.custCfg = zTreeOprObj.reportPageCfg;
             params.custCfg = zTreeOprObj.reportPageCfg;
             params.option = "normal";
             params.option = "normal";
+            params.compilation = projectObj.project.projectInfo.compilation;
             CommonAjax.postEx("report_api/createPdfFiles", params, WAIT_TIME_EXPORT, true, function(result){
             CommonAjax.postEx("report_api/createPdfFiles", params, WAIT_TIME_EXPORT, true, function(result){
                     if (result) {
                     if (result) {
                         let uuIdUrls = [];
                         let uuIdUrls = [];
@@ -556,6 +558,7 @@ let rptControlObj = {
                 rpt_names.push(tplNode.name);
                 rpt_names.push(tplNode.name);
             }
             }
             params.rpt_ids = rptIds.join(",");
             params.rpt_ids = rptIds.join(",");
+            params.compilation = projectObj.project.projectInfo.compilation;
             CommonAjax.postEx("report_api/getMultiReports", params, WAIT_TIME_EXPORT, true,
             CommonAjax.postEx("report_api/getMultiReports", params, WAIT_TIME_EXPORT, true,
                 function(result){
                 function(result){
                     $.bootstrapLoading.end();
                     $.bootstrapLoading.end();