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