Browse Source

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionOperation

zhongzewei 7 years ago
parent
commit
5f54baf764

+ 1 - 1
modules/reports/controllers/rpt_controller_operation.js

@@ -170,7 +170,7 @@ 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, function(newName){
+                rpt_xl_util.exportExcel(pageRst, pageSize, rptName, isOneSheet, null, null, function(newName){
                     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');

+ 0 - 49
modules/reports/util/pdf_base_files/rpt_pdf_consts.js

@@ -1,49 +0,0 @@
-/**
- * Created by zhang on 2017/8/14.
- */
-module.exports={
-    JV:{
-        NODE_MAIN_INFO: "主信息",
-        NODE_PAGE_INFO: "打印页面_信息",
-        NODE_MARGINS: "页边距",
-
-        NODE_FONT_COLLECTION: "font_collection",
-        NODE_STYLE_COLLECTION: "style_collection",
-        NODE_CONTROL_COLLECTION: "control_collection",
-
-        BAND_PROP_MERGE_BAND: "MergeBand",
-
-        PROP_NAME: "Name",
-        PROP_VALUE: "Value",
-        PROP_FONT: "font",
-        PROP_CONTROL: "control",
-        PROP_STYLE: "style",
-        PROP_AREA: "area",
-        PROP_ID: "ID",
-        PROP_LEFT: "Left",
-        PROP_RIGHT: "Right",
-        PROP_TOP: "Top",
-        PROP_BOTTOM: "Bottom",
-
-        IDX_LEFT: 0,
-        IDX_TOP: 1,
-        IDX_RIGHT: 2,
-        IDX_BOTTOM: 3,
-
-        CONTROL_PROPS: ["Shrink", "ShowZero", "Horizon", "Vertical", "Wrap"],
-        BORDER_STYLE_PROPS: ["LineWeight", "DashStyle", "Color"],
-        PROP_LINE_WEIGHT: "LineWeight",
-        PROP_DASH_STYLE: "DashStyle",
-        PROP_COLOR: "Color",
-        FONT_PROPS: ["Name", "FontHeight", "FontColor", "FontBold", "FontItalic", "FontUnderline", "FontStrikeOut", "FontAngle"],
-
-        OUTPUT_OFFSET: [2,1,2,3],
-        OFFSET_IDX_LEFT: 0,
-        OFFSET_IDX_RIGHT: 1,
-        OFFSET_IDX_TOP: 2,
-        OFFSET_IDX_BOTTOM: 3,
-
-        VERTICAL_ANGLE: "90",
-        ANTI_VERTICAL_ANGLE: "-90"
-    }
-}

+ 16 - 8
modules/reports/util/rpt_excel_util.js

@@ -287,7 +287,7 @@ function writeSharedString(sharedStrList){
     }
     return rst;
 }
-function writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage){
+function writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage, custSheetMergeBands){
     let rst = [];
     let private_pushDftFont = function(){
         let font = {};
@@ -329,15 +329,19 @@ function writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage
     private_pushDftFont();
     private_buildFirstDftStyle();
     if (isSinglePage) {
-        rst.push(writeSheet(pageData, null, paperSize, sharedStrList, stylesObj));
+        rst.push(writeSheet(pageData, null, paperSize, sharedStrList, stylesObj, null));
     } else {
         for (let i = 0; i < pageData.items.length; i++) {
-            rst.push(writeSheet(pageData, pageData.items[i], paperSize, sharedStrList, stylesObj));
+            let appointedMergeBand = null;
+            if (custSheetMergeBands && custSheetMergeBands.length > i) {
+                appointedMergeBand = custSheetMergeBands[i];
+            }
+            rst.push(writeSheet(pageData, pageData.items[i], paperSize, sharedStrList, stylesObj, appointedMergeBand));
         }
     }
     return rst;
 }
-function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj){
+function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, appointedMergeBand){
     let rst = [], xPos = [], yPos = [], yMultiPos = [], headerStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
     let currentPageMergePos = null; //在 JV.PAGING_OPTION_INFINITY 场合应用
     let private_pre_analyze_pos = function(){
@@ -501,6 +505,9 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj){
             mergeBorder = (sheetData)?sheetData[JV.PROP_PAGE_MERGE_BORDER]:pageData[JV.BAND_PROP_MERGE_BAND],
             mergeBand = pageData[JV.BAND_PROP_MERGE_BAND]
         ;
+        if (appointedMergeBand !== null) {
+            mergeBand = appointedMergeBand;
+        }
         if (sheetBorder[borderStr] && sheetBorder[borderStr][JV.PROP_LINE_WEIGHT] !== undefined) {
             rst = sheetBorder[borderStr][JV.PROP_LINE_WEIGHT];
         }
@@ -809,7 +816,7 @@ function mergeProperties(orgObj, newObj) {
 }
 
 module.exports = {
-    exportExcel: function (pageData, paperSize, fName, options, custSheetNames, callback) {
+    exportExcel: function (pageData, paperSize, fName, options, custSheetNames, custSheetMergeBands, callback) {
         let rptOptions = ({singlePage: false, fileName: 'report'});
         if (options === 'true') {
             rptOptions.singlePage = true;
@@ -864,7 +871,7 @@ module.exports = {
         //6.
         let zip_worksheets = zip_xl.folder('worksheets');
         let sharedStrList = [], stylesObj = {};
-        data = writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage);
+        data = writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage, custSheetMergeBands);
         if (isSinglePage) {
             for (let i = 0; i < 1; i++) {
                 file = 'sheet' + (i + 1) + '.xml';
@@ -906,7 +913,7 @@ module.exports = {
         //   -- 简单来说,就是重新包装数据
         try {
             // 1.1 newPageData外围属性
-            let newContrl = {}, newFont = {}, newStyle = {};
+            let newContrl = {}, newFont = {}, newStyle = {}, custMergeBands = [];
             for (let i = 0; i < pageDataArray.length; i++) {
                 mergeProperties(newContrl, pageDataArray[i][JV.NODE_CONTROL_COLLECTION]);
                 mergeProperties(newFont, pageDataArray[i][JV.NODE_FONT_COLLECTION]);
@@ -923,6 +930,7 @@ module.exports = {
             for (let i = 0; i < pageDataArray.length; i++) {
                 let offsetY = 0;
                 let mergeBand = {};
+                custMergeBands.push(pageDataArray[i][JV.BAND_PROP_MERGE_BAND]);
                 mergeBand[JV.PROP_LEFT] = [];
                 mergeBand[JV.PROP_RIGHT] = [];
                 mergeBand[JV.PROP_TOP] = [];
@@ -976,7 +984,7 @@ module.exports = {
                 newPageData.items.push(pageItem);
             }
             //3. everything is ok, then call me
-            me.exportExcel(newPageData, paperSize, fName, 'false', sheetNames, callback);
+            me.exportExcel(newPageData, paperSize, fName, 'false', sheetNames, custMergeBands, callback);
             // fsUtil.writeObjToFile(newPageData, 'D:/GitHome/ConstructionOperation/tmp/combinedHeader.js');
         } catch (e) {
             console.log(e);

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

@@ -5,14 +5,17 @@
  * Created by zhang on 2017/8/14.
  */
 
-const prf_cons = require('./pdf_base_files/rpt_pdf_consts');
 let pdf = require('pdfkit');
 let fs = require('fs');
 let jpcCmnHelper = require('../rpt_component/helper/jpc_helper_common');
 let DPI = jpcCmnHelper.getScreenDPI()[0];
-//let JV = prf_cons.JV;
 let JV = require('../rpt_component/jpc_value_define');
 
+// hwxsb.ttf: 华文中宋
+// Smart.ttf: 宋体(常规)
+// Smart-italic.ttf: 宋体(斜体)
+//目前不支持下划线
+
 module.exports ={
     export_pdf_file:export_pdf_file
 }

+ 3 - 0
web/maintain/main_col_lib/js/main_tree_col.js

@@ -122,6 +122,9 @@ let MainTreeCol = {
         feeRate: function () {
             return feeRateObject.getFeeRateEditCellType();
         },
+        quantity:function () {
+
+        },
         calcBase: function () {
             return calcBaseView.getCalcBaseCellType();
         },

+ 15 - 1
web/maintain/report/js/rpt_tpl_data_map.js

@@ -487,8 +487,22 @@ let dataInfoMapTreeOprObj = {
     beforeEditName: function(treeId, treeNode) {
         let me = dataInfoMapTreeOprObj, rst = false;
         let pn = treeNode.getParentNode();
-        //if (pn && me.checkIfCanAddTxt(pn) pn[JV.PROP_NAME] === "离散文本集") {
         if (pn && me.checkIfCanAddTxt(pn)) {
+            setTimeout(function(){
+                let ip = $("#" + treeNode.tId + IDMark_Input);
+                if (ip.length > 0) {
+                    ip[0].className = "individualRename";
+                } else {
+                    setTimeout(function(){
+                        let ip = $("#" + treeNode.tId + IDMark_Input);
+                        if (ip.length > 0) {
+                            ip[0].className = "individualRename";
+                        } else {
+                            console.log("sorry!");
+                        }
+                    }, 50);
+                }
+            }, 50);
             rst = true;
         }
         return rst;

+ 3 - 0
web/users/js/main_tree_col.js

@@ -122,6 +122,9 @@ let MainTreeCol = {
         feeRate: function () {
             return feeRateObject.getFeeRateEditCellType();
         },
+        quantity:function () {
+
+        },
         calcBase: function () {
             return calcBaseView.getCalcBaseCellType();
         },