| 
					
				 | 
			
			
				@@ -26,8 +26,6 @@ import { useStore } from "vuex"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { unByKey } from "ol/Observable"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let store = useStore(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const ROLE = store.state.home.userRole; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 选中样式(高亮) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // const selectedStyle = new Style({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //     image: new Icon({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,7 +43,7 @@ const currentTree = ref(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const isDrawing = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const enableBoxSelect = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const data = mapPoint.value.filter((item) => item.fosterStatus === 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const data = mapPoint.value.filter((item) => !item.isRenyang); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     addCluster(data, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     isDrawing.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     dragBox = new DragBox({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -92,6 +90,24 @@ const stopBoxSelect = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     window.removeEventListener("keyup", handleKeyUp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function saveSelect(callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let sampleIds = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    treeClusterLayer.layer.getSource().getSource().getFeatures().forEach((feature) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (feature.get("highlight")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sampleIds.push(feature.get("sampleId")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sampleIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        isRenyang: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        farmId: Number(sessionStorage.getItem("currentFarmId")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    VE_API.manage_interface.batchOpenOrCloseSample(params).then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        callback && callback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log('sampleIds', sampleIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let treeClusterLayer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let level = 16; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -145,7 +161,7 @@ function addCluster(treeListData, distanceVal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 只有一个数据,不需要聚合,直接使用第一项数据的图标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (size == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                let featureOne = feature.get("features")[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const key = featureOne.get('fosterStatus')+"status" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const key = featureOne.get('isRenyang')+"status" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let style = styleCache[key]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // let style = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!style) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -168,16 +184,16 @@ function addCluster(treeListData, distanceVal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         style = new Style({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             image: new Circle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                radius: featureOne.get("fosterStatus") === 0 || !featureOne.get("fosterStatus") ? 10 : 12, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                radius: featureOne.get("isRenyang") === 0 || !featureOne.get("isRenyang") ? 10 : 12, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 fill: new Fill({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     color: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        featureOne.get("fosterStatus") === 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            ? (ROLE == 1 ? "#ffffff00" : "#BBBBBB99") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            : featureOne.get("fosterStatus") === 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        featureOne.get("isRenyang") === 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            ? "#ffffff00" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            : featureOne.get("isRenyang") === 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             ? "#EEEEEE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            : featureOne.get("fosterStatus") === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            : featureOne.get("isRenyang") === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             ? "#F0AC37" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            : (ROLE == 1 ? "#ffffff00" : "#BBBBBB99"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            : "#ffffff00", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 stroke: new Stroke({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     color: "#fff", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -207,13 +223,14 @@ function addCluster(treeListData, distanceVal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 color: "#fff", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        zIndex: 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return style; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 多个点位聚合,循环处理得到图标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const featureObj = feature.get("features")[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // let pointId = featureObj.get('fosterStatus') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // let pointId = featureObj.get('isRenyang') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // let style = styleCache[pointId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const imgIcon = featureObj.get('icon') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let style = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -224,7 +241,7 @@ function addCluster(treeListData, distanceVal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         offsetX: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         offsetY: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         font: "bold 10px sans-serif", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        fill: new Fill({ color: featureObj.get("fosterStatus") === 1 ? "#000" : "#fff" }), // 字体颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        fill: new Fill({ color: featureObj.get("isRenyang") === 1 ? "#000" : "#fff" }), // 字体颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // stroke: new Stroke({ color: "green" }), // 字体颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     zIndex: 3, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -261,21 +278,22 @@ function addCluster(treeListData, distanceVal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     width: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     color: "#fff", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            zIndex: 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         style = new Style({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             image: new Circle({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                radius: featureObj.get("fosterStatus") === 0 || !featureObj.get("fosterStatus") ? 10 : 12, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                radius: featureObj.get("isRenyang") === 0 || !featureObj.get("isRenyang") ? 10 : 12, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 fill: new Fill({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     color: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        featureObj.get("fosterStatus") === 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            ? (ROLE == 1 ? "#ffffff00" : "#BBBBBB99") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            : featureObj.get("fosterStatus") === 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        featureObj.get("isRenyang") === 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            ? "#ffffff00" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            : featureObj.get("isRenyang") === 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             ? "#EEEEEE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            : featureObj.get("fosterStatus") === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            : featureObj.get("isRenyang") === 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             ? "#F0AC37" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            : (ROLE == 1 ? "#ffffff00" : "#BBBBBB99"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            : "#ffffff00", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 stroke: new Stroke({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     color: "#fff", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -328,7 +346,7 @@ function addCluster(treeListData, distanceVal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const fs = features[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         currentTree.value = features[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         console.log('hasFeatures', fs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        eventBus.emit("click:point", { farmId: fs.get("farmId"), sampleId: fs.get("sampleId"), data: fs.getProperties() }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        eventBus.emit("click:point", { farmId: Number(sessionStorage.getItem("currentFarmId")), sampleId: fs.get("sampleId"), data: fs.getProperties() }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // eventBus.emit("clickMapPoint", features[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -349,7 +367,7 @@ function clearCluster() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function zoomToFeatures(features) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const extent = boundingExtent(features.map((r) => r.getGeometry().getCoordinates())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    kmap.getView().fit(extent, { duration: 500, padding: [200, 250, 120, 250] }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    kmap.getView().fit(extent, { duration: 500, padding: [80, 250, 100, 250] }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // const center = getCenter(extent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // kmap.setCenter2(center); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -359,7 +377,7 @@ function resetCurrentTree() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     currentTree.value && currentTree.value.set("currentTree", false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-defineExpose({ addCluster, enableBoxSelect, stopBoxSelect, initAreaMap, resetCurrentTree }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+defineExpose({ addCluster, enableBoxSelect, stopBoxSelect, initAreaMap, resetCurrentTree, saveSelect }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 分区 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let regionLayer = null; 
			 |