| 
					
				 | 
			
			
				@@ -351,6 +351,33 @@ let JpcCanvasOutput = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    highlightConflictArea: function (pageObj, pageIdx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (pageObj && pageObj.items.length > 0 && pageObj.items.length >= pageIdx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let private_create_conflict_line = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return {"LineWeight": "1", "DashStyle": "SOLID", "Color": "RED"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let page = pageObj.items[pageIdx - 1], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                styleConflict = {"Left": private_create_conflict_line(), "Right": private_create_conflict_line(), "Top": private_create_conflict_line(), "Bottom": private_create_conflict_line()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pageObj[JV.NODE_STYLE_COLLECTION]["ConflictCell"] = styleConflict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let conflictIds = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let j = 0; j < page.cells.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (conflictIds.indexOf(j) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let cell1 = page.cells[j]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (let k = j + 1; k < page.cells.length; k++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let cell2 = page.cells[k]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //判断area是否有交叉 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (areaConflict(cell1[JV.PROP_AREA], cell2[JV.PROP_AREA])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            conflictIds.push(j); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            conflictIds.push(k); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            cell1[JV.PROP_STYLE] = "ConflictCell"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            cell2[JV.PROP_STYLE] = "ConflictCell"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     drawPageBorder: function(rptTpl, canvas, resolution) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let size = me.getReportSizeInPixel(rptTpl, resolution); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -378,4 +405,20 @@ let JpcCanvasOutput = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rst[1] = Math.round(resolution[0] * rst[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function areaConflict(area1,area2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let maxX,maxY,minX,minY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        w1 = area1[JV.PROP_RIGHT] - area1[JV.PROP_LEFT], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        w2 = area2[JV.PROP_RIGHT] - area2[JV.PROP_LEFT], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        h1 = area1[JV.PROP_BOTTOM] - area1[JV.PROP_TOP], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        h2 = area2[JV.PROP_BOTTOM] - area2[JV.PROP_TOP] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //1. 求2个矩形的最小外包矩形 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    minX = (area1[JV.PROP_LEFT] <= area2[JV.PROP_LEFT]) ? area1[JV.PROP_LEFT] : area2[JV.PROP_LEFT]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    minY = (area1[JV.PROP_TOP] <= area2[JV.PROP_TOP]) ? area1[JV.PROP_TOP] : area2[JV.PROP_TOP]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    maxX = (area1[JV.PROP_RIGHT] >= area2[JV.PROP_RIGHT]) ? area1[JV.PROP_RIGHT] : area2[JV.PROP_RIGHT]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    maxY = (area1[JV.PROP_BOTTOM] >= area2[JV.PROP_BOTTOM]) ? area1[JV.PROP_BOTTOM] : area2[JV.PROP_BOTTOM]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //2. 判断外包矩形与高与宽是否小于俩矩形的高与宽之和(这里的边界条件是小于,等于的话不算;而且是高与宽都得符合条件!) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return (maxX - minX < w1 + w2 && maxY - minY < h1 + h2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |