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

电子签名输出坐标调整

TonyKang 4 éve
szülő
commit
04493fca1a
1 módosított fájl, 25 hozzáadás és 13 törlés
  1. 25 13
      app/public/report/js/jpc_output.js

+ 25 - 13
app/public/report/js/jpc_output.js

@@ -377,7 +377,10 @@ let JpcCanvasOutput = {
             const rst = [0, 0, 0, 0]; // left, top, right, bottom
             if (cell && cell[JV.PROP_AREA]) {
                 let width = cell[JV.PROP_AREA][JV.PROP_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT],
-                    height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP];
+                    height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP],
+                    centerPh = (cell[JV.PROP_AREA][JV.PROP_RIGHT] + cell[JV.PROP_AREA][JV.PROP_LEFT]) / 2,
+                    centerPv = (cell[JV.PROP_AREA][JV.PROP_BOTTOM] + cell[JV.PROP_AREA][JV.PROP_TOP]) / 2
+                    ;
                 if (width > height * 2) {
                     width = height * 2;
                 } else {
@@ -385,23 +388,32 @@ let JpcCanvasOutput = {
                 }
                 switch (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]]) {
                     case 'left':
-                        rst[0] = cell[JV.PROP_AREA][JV.PROP_LEFT];
-                        rst[1] = cell[JV.PROP_AREA][JV.PROP_TOP];
-                        rst[2] = rst[0] + width;
-                        rst[3] = rst[1] + height;
+                        rst[JV.IDX_LEFT] = cell[JV.PROP_AREA][JV.PROP_LEFT];
+                        rst[JV.IDX_RIGHT] = rst[0] + width;
                         break;
                     case 'right':
-                        rst[2] = cell[JV.PROP_AREA][JV.PROP_RIGHT];
-                        rst[3] = cell[JV.PROP_AREA][JV.PROP_BOTTOM];
-                        rst[0] = rst[2] - width;
-                        rst[1] = rst[3] - height;
+                        rst[JV.IDX_RIGHT] = cell[JV.PROP_AREA][JV.PROP_RIGHT];
+                        rst[JV.IDX_LEFT] = rst[JV.IDX_RIGHT] - width;
                         break;
                     default:
                         //center
-                        rst[0] = (cell[JV.PROP_AREA][JV.PROP_LEFT] + cell[JV.PROP_AREA][JV.PROP_RIGHT] - width) / 2;
-                        rst[1] = cell[JV.PROP_AREA][JV.PROP_TOP];
-                        rst[2] = rst[0] + width;
-                        rst[3] = rst[1] + height;
+                        rst[JV.IDX_LEFT] = centerPh - width / 2;
+                        rst[JV.IDX_RIGHT] = centerPh + width / 2;
+                        break;
+                }
+                switch (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]]) {
+                    case 'top':
+                        rst[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP];
+                        rst[JV.IDX_BOTTOM] = rst[JV.IDX_TOP] + height;
+                        break;
+                    case 'bottom':
+                        rst[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_BOTTOM];
+                        rst[JV.IDX_TOP] = rst[JV.IDX_BOTTOM] - height;
+                        break;
+                    default:
+                        //center
+                        rst[JV.IDX_TOP] = centerPv - height / 2;
+                        rst[JV.IDX_BOTTOM] = centerPv + height / 2;
                         break;
                 }
             }