Преглед изворни кода

align前后端分行的逻辑判断基础

TonyKang пре 3 година
родитељ
комит
cdfa4d33ff

+ 4 - 2
modules/reports/rpt_component/helper/jpc_helper_common.js

@@ -144,7 +144,8 @@ let JpcCommonHelper = {
             for (let sIdx = 0; sIdx < strVal.length; sIdx++) {
                 currentW = (strVal.charCodeAt(sIdx) > 127)?chnW:otherW;
                 txtWidth += currentW;
-                if (txtWidth > areaWidth) {
+                if (txtWidth > (areaWidth - 4)) {
+                    //减4个像素是考虑到导出excel的情况
                     rst++;
                     txtWidth = currentW;
                 }
@@ -166,7 +167,8 @@ let JpcCommonHelper = {
             for (let sIdx = 0; sIdx < strVal.length; sIdx++) {
                 currentW = (strVal.charCodeAt(sIdx) > 127)?chnW:otherW;
                 txtWidth += currentW;
-                if (txtWidth > areaWidth) {
+                if (txtWidth > (areaWidth - 4)) {
+                    //减4个像素是考虑到导出excel的情况
                     if (preSIdx < sIdx) {
                         rst.push(strVal.substr(preSIdx, sIdx - preSIdx));
                         preSIdx = sIdx;

+ 3 - 2
web/building_saas/report/js/jpc_output.js

@@ -282,10 +282,11 @@ let JpcCanvasOutput = {
             //根据control的 自动折行 及 缩放优先 这俩属性 来分解cell value
             if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_WRAP]] === 'T' && control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK_FIRST]] !== 'T') {
                 let vals = [];
-                let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT];
+                let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT] - 1;
                 for (let val of orgValues) {
                     let actW = ctx2D.measureText(val).width;
-                    if (actW > validAreaTxtWidth) {
+                    if (actW > (validAreaTxtWidth - 4)) {
+                        //减4个像素是考虑到导出excel的情况
                         vals = vals.concat(private_splitString(val, validAreaTxtWidth, ctx2D));
                     } else {
                         vals.push(val);

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

@@ -57,7 +57,7 @@ let JV = {
     PAGES_SIZE_IDX: [8, 9, 11, 13, 1, 5, 7, 93],
     PAGES_SIZE: [[11.69, 16.54], [8.27, 11.69], [5.83, 8.27], [6.93, 9.84], [8.5, 11.0], [8.5, 14.0], [7.25, 10.5], [7.25, 10.5]],
 
-    OUTPUT_OFFSET: [2,2,1,3],
+    OUTPUT_OFFSET: [1,1,1,1],
     OFFSET_IDX_LEFT: 0,
     OFFSET_IDX_RIGHT: 1,
     OFFSET_IDX_TOP: 2,

+ 3 - 2
web/building_saas/report/js/rpt_jspdf.js

@@ -143,10 +143,11 @@ let JpcJsPDFHelper = {
             //根据control的 自动折行 及 缩放优先 这俩属性 来分解cell value
             if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_WRAP]] === 'T' && control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK_FIRST]] !== 'T') {
                 let vals = [];
-                let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT];
+                let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT] - 1;
                 for (let val of orgValues) {
                     let actW = doc.getTextWidth(val);
-                    if (actW > validAreaTxtWidth) {
+                    if (actW > (validAreaTxtWidth - 4)) {
+                        //减4个像素是考虑到导出excel的情况
                         vals = vals.concat(private_splitString(val, validAreaTxtWidth, doc));
                     } else {
                         vals.push(val);

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

@@ -195,10 +195,11 @@ function _splitValues(cell, control, orgValues, ctx2D) {
     //根据control的 自动折行 及 缩放优先 这俩属性 来分解cell value
     if (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_WRAP]] === 'T' && control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK_FIRST]] !== 'T') {
         let vals = [];
-        let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT];
+        let validAreaTxtWidth = cell[JV.PROP_AREA][JV.PROP_RIGHT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT] - JV.OUTPUT_OFFSET[JV.OFFSET_IDX_LEFT] - 1;
         for (let val of orgValues) {
             let actW = ctx2D.measureText(val).width;
-            if (actW > validAreaTxtWidth) {
+            if (actW > (validAreaTxtWidth - 4)) {
+                //减4个像素是考虑到导出excel的情况
                 vals = vals.concat(private_splitString(val, validAreaTxtWidth, ctx2D));
             } else {
                 vals.push(val);