feiyu02
2025-03-20 419fe50acad4674f50c6639b3ec7ccbcaf2cbf44
src/views/underwaymix/UnderwayMixMode.vue
@@ -51,8 +51,16 @@
                  @change="handleMixClick"
                >
                </CheckButton>
                <CheckButton
                  :disabled="!mixActive"
                  active-text="风险热力图"
                  inactive-text="风险热力图"
                  :default-value="false"
                  @change="handleHeatMapClick"
                >
                </CheckButton>
              </el-row>
              <div class="m-t-8">网格要素</div>
              <!-- <div class="m-t-8">网格要素</div>
              <el-row class="m-t-8">
                <CheckButton
                  active-text="显示网格"
@@ -99,7 +107,6 @@
              </el-row>
              <div class="m-t-8">走航要素</div>
              <el-row class="m-t-8">
                <!-- <el-divider content-position="left"></el-divider> -->
                <el-button
                  type="primary"
@@ -110,7 +117,7 @@
                >
                  {{ underwayVisible ? '隐藏走航路线' : '显示走航路线' }}
                </el-button>
              </el-row>
              </el-row> -->
            </template>
            <template #footer> </template>
          </BaseCard>
@@ -126,7 +133,10 @@
        </el-row>
      </el-col>
    </el-row>
    <GridStyleTool :gridCtrls="gridCtrls"></GridStyleTool>
    <GridStyleTool
      :gridCtrls="gridCtrls"
      @show-underway="handleUnderwayClick"
    ></GridStyleTool>
  </el-row>
  <!-- </div> -->
</template>
@@ -272,12 +282,19 @@
  });
  if (mixActive.value) {
    satelliteGrid.mixGrid(tags);
    gridCtrls.value = [satelliteGrid];
  } else {
    satelliteGrid.changeVisibility({
      tags,
      showGridViews: true
    });
  }
}
function handleHeatMapClick() {
  const tags = fusionDataList.value
    .filter((v, i) => selectedfusionData.value.indexOf(i) != -1)
    .map((v) => v.id);
}
function handleGridClick() {
@@ -291,9 +308,18 @@
  });
}
function handleUnderwayClick() {
function handleUnderwayClick({ isShow, dataId }) {
  underwayVisible.value = !underwayVisible.value;
  underwayVisible.value ? draw() : mapLine.hideLine();
  if (isShow) {
    draw(dataId);
  } else {
    const d = fusionDataList.value.find((v) => v.id == dataId);
    const mission = missionStore.missionList.find((v) => {
      return v.missionCode == d.mixDataId;
    });
    mapLine.hideLine(mission.missionCode);
  }
}
function handleRankClick() {
@@ -389,30 +415,49 @@
  });
}
function draw() {
function draw(dataId) {
  if (isUnmounted.value) return;
  selectedfusionData.value.forEach((i) => {
    const d = fusionDataList.value[i];
  // selectedfusionData.value.forEach((i) => {
  //   const d = fusionDataList.value[i];
    const mission = missionStore.missionList.find((v) => {
      return v.missionCode == d.mixDataId;
    });
  //   const mission = missionStore.missionList.find((v) => {
  //     return v.missionCode == d.mixDataId;
  //   });
    if (factorDataMap.has(mission.missionCode)) {
      const fd = factorDataMap.get(mission.missionCode);
      drawLine(mission.missionCode, fd);
    } else {
      search(mission).then((res) => {
        const fd = new FactorDatas();
        fd.setData(res.data, drawMode.value, () => {
          fd.refreshHeight(factorType.value);
          factorDataMap.set(mission.missionCode, fd);
          drawLine(mission.missionCode, fd);
        });
      });
    }
  //   if (factorDataMap.has(mission.missionCode)) {
  //     const fd = factorDataMap.get(mission.missionCode);
  //     drawLine(mission.missionCode, fd);
  //   } else {
  //     search(mission).then((res) => {
  //       const fd = new FactorDatas();
  //       fd.setData(res.data, drawMode.value, () => {
  //         fd.refreshHeight(factorType.value);
  //         factorDataMap.set(mission.missionCode, fd);
  //         drawLine(mission.missionCode, fd);
  //       });
  //     });
  //   }
  // });
  const d = fusionDataList.value.find((v) => v.id == dataId);
  const mission = missionStore.missionList.find((v) => {
    return v.missionCode == d.mixDataId;
  });
  if (factorDataMap.has(mission.missionCode)) {
    const fd = factorDataMap.get(mission.missionCode);
    drawLine(mission.missionCode, fd);
  } else {
    search(mission).then((res) => {
      const fd = new FactorDatas();
      fd.setData(res.data, drawMode.value, () => {
        fd.refreshHeight(factorType.value);
        factorDataMap.set(mission.missionCode, fd);
        drawLine(mission.missionCode, fd);
      });
    });
  }
}
function drawLine(missionCode, fd) {