Pārlūkot izejas kodu

低空修改250310-02

zhiyuan-007 1 mēnesi atpakaļ
vecāks
revīzija
cb0e7c2c72
1 mainītis faili ar 73 papildinājumiem un 16 dzēšanām
  1. 73 16
      src/components/mapJK.vue

+ 73 - 16
src/components/mapJK.vue

@@ -110,7 +110,9 @@ export default {
     let realFlyPointDataQueue = [];
     let addFlowPathEvent = null;
     let movePointEvent = null;
-    let currentRealPowerShow = false;
+    let currentRealPowerShow = false;  //当前是否显示无极网格
+    let currentRealPowerIds = [];   //当前无极网格
+    let currentRealPowerLevel = null; //当前无极网格层级
     onMounted(() =>{
       bus.on('CreateMap',() =>{
         MapReady = $.Deferred();
@@ -744,6 +746,8 @@ export default {
         if(status === "hide"){
           if(scale_handle_id === "scale_handle_cube"){
             currentRealPowerShow = false;
+            currentRealPowerIds = [];
+            currentRealPowerLevel = null;
             getCurrentRealPower({
               status:"hide",
               id:"power_wj"
@@ -826,8 +830,11 @@ export default {
             getCurrentRealPower({
               status:'hide'
             })
+            currentRealPowerIds = [];
+            currentRealPowerLevel = null;
             break;
           case (scaleValue <= 1500000 && scaleValue > 300000): //15级
+            currentRealPowerLevel = 15;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -841,6 +848,7 @@ export default {
             })
             break;
           case (scaleValue <= 300000 && scaleValue > 150000): //16级
+            currentRealPowerLevel = 16;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -854,6 +862,7 @@ export default {
             })
             break;
           case (scaleValue <= 150000 && scaleValue > 100000): //17级
+            currentRealPowerLevel = 17;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -867,6 +876,7 @@ export default {
             })
             break;
           case (scaleValue <= 100000 && scaleValue > 40000): //18级
+            currentRealPowerLevel = 18;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -880,6 +890,7 @@ export default {
             })
             break;
           case (scaleValue <= 40000 && scaleValue > 15000): //19级
+            currentRealPowerLevel = 19;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -893,6 +904,8 @@ export default {
             })
             break;
           case (scaleValue <= 15000 && scaleValue > 6000): //20级
+            debugger
+            currentRealPowerLevel = 20;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -906,6 +919,8 @@ export default {
             })
             break;
           case (scaleValue <= 6000 && scaleValue > 3000): //21级
+              debugger
+            currentRealPowerLevel = 21;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -919,6 +934,8 @@ export default {
             })
             break;
           case (scaleValue <= 3000 && scaleValue > 1500): //22级
+              debugger
+            currentRealPowerLevel = 22;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -932,6 +949,7 @@ export default {
             })
             break;
           case (scaleValue <= 1500): //23级
+            currentRealPowerLevel = 23;
             getCurrentRealPower({
               status:"show",
               id:"power_wj",
@@ -2126,7 +2144,6 @@ export default {
       //无极变换
       function getCurrentRealPower(params){
         let id = params.id;
-        let lastId = params.lastId;
         let status = params.status;
         let level = params.level;
         let center = params.center;
@@ -2140,11 +2157,12 @@ export default {
             id:params.id,
             status:"hide"
           });
+          currentRealPowerIds = [];
+          currentRealPowerLevel = null;
           return
         }
         getCurrentPowerPoints({
           id,
-          lastId,
           "x": center.x,
           "y": center.y,
           status,
@@ -2170,23 +2188,62 @@ export default {
           fields: params.fields,
           scrollId: params.scrollId,
         }).then(res =>{
-          showThreeCubeDetail({
-            id:params.id,
-            status:"hide"
-          });
-          if(currentRealPowerShow){
-            if(res.data.data.list?.length > 0){
-              showThreeCubeDetail({
-                "id":params.id,
-                "status":params.status,
-                "size":params.size,
-                "points":res.data.data.list,
-              })
+          console.log("当前执行的level-需要的level",params.level,currentRealPowerLevel)
+            if (currentRealPowerShow) {
+              if (res.data.data.list?.length > 0) {
+                let data = res.data.data.list;
+                let newData = [];
+                if (currentRealPowerIds.length > 0) {
+                  //将data对象数组中girdCode与currentRealPowerIds数组中的元素进行对比,如果相同则不添加到newData数组中
+                  newData = data.filter(item => !currentRealPowerIds.includes(item.gridCode));
+                  if(newData.length > 0){
+                    showThreeCubeDetail({
+                      "id": params.id + currentRealPowerLevel,
+                      "status": params.status,
+                      "size": params.size,
+                      "points": newData,
+                    })
+                  }else{
+                    closeOtherThreeCubeDetail(params.id);
+                    showThreeCubeDetail({
+                      "id": params.id + currentRealPowerLevel,
+                      "status": params.status,
+                      "size": params.size,
+                      "points": newData,
+                    })
+                  }
+                  let newDataIds = newData.map(item => item.gridCode);
+                  currentRealPowerIds= [...currentRealPowerIds, ...newDataIds];
+                } else {
+                  //将data对象数组中girdCode取出来,组成一个数组
+                  let gridCodes = data.map(item => item.gridCode);
+                  currentRealPowerIds = gridCodes;
+                  newData = data;
+                  showThreeCubeDetail({
+                    "id": params.id + currentRealPowerLevel,
+                    "status": params.status,
+                    "size": params.size,
+                    "points": newData,
+                  })
+                  closeOtherThreeCubeDetail(params.id,currentRealPowerLevel)
+                }
+              }
             }
-          }
         })
       }
 
+      function closeOtherThreeCubeDetail(paramsId,index){
+        let levels = [15,16,17,18,19,20,21,22,23];
+        let newLevels = levels.filter(item => item != index);
+        newLevels.forEach((level) =>{
+          showThreeCubeDetail({
+            "id":paramsId + level,
+            "status":"hide"
+          })
+        })
+
+      }
+
 
 
       //获取当前场景