riku
2025-03-14 8372d022614a1897120802cf1bac90d61651177f
2025.3.14
已修改7个文件
168 ■■■■ 文件已修改
src/components/grid/GridTool.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/model/Legend.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/stores/grid-info.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/map/util.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/satellitetelemetry/SatelliteProxy.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/satellitetelemetry/SatelliteTelemetry.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/satellitetelemetry/component/SatelliteMixTool.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/grid/GridTool.vue
@@ -14,7 +14,8 @@
        <template #content>
          <div class="content-wrap">
            <div v-for="(g, i) in gridStore.gridClzList" :key="i">
              <div>
              <div v-for="(value, key) in g.mapViewsMap" :key="key">
                {{ value[1].extData.name }}
                <el-text>g.name</el-text>
              </div>
              <el-row>
src/model/Legend.js
@@ -292,7 +292,7 @@
  getCustomColor: function (data, min, max) {
    var per = (max - min) / this._custom.length;
    var i = parseInt(data / per);
    var i = parseInt((data - min) / per);
    if (i >= this._custom.length) {
      i = this._custom.length - 1;
    }
src/stores/grid-info.js
@@ -9,5 +9,14 @@
  const selectedGridCellAndDataDetail = ref(undefined);
  return { gridClzList, selectedSatelliteProxy, selectedGridCellAndDataDetail };
  function pushGridClz(clz) {
    gridClzList.value.push(clz);
  }
  return {
    gridClzList,
    selectedSatelliteProxy,
    selectedGridCellAndDataDetail,
    pushGridClz
  };
});
src/utils/map/util.js
@@ -1,5 +1,6 @@
import { map, isDragging } from '@/utils/map/index_old';
import marks from '@/utils/map/marks';
import Layer from '@/utils/map/3dLayer';
/**
 * 坐标集合的最西南角和最东北角
@@ -84,6 +85,7 @@
  clearMap() {
    marks.clearMassMarks();
    map.clearMap();
    Layer.clear();
  },
  setFitView(views) {
    if (views) {
src/views/satellitetelemetry/SatelliteProxy.js
@@ -4,14 +4,8 @@
import { useCloned } from '@vueuse/core';
export class SatelliteProxy {
  constructor(name) {
    this.name = name;
  }
  // 地图网格相关对象
  mapViews;
  mapViewsList = [];
  mapViewsMap = new Map();
@@ -272,70 +266,6 @@
    }
  }
  //
  drawGrids({
    gridDataDetailList,
    useCustomColor,
    opacity,
    zIndex,
    showDataTxt,
    showRankTxt
  }) {
    if (this.mapViewsList.length < gridDataDetailList.length) {
      let index = this.mapViewsList.length;
      while (index < gridDataDetailList.length) {
        const newMapViews = {
          gridViews: gridMapUtil.drawPolylines({
            points: this.mapViews.gridPoints,
            event: this.firstEvent
          }),
          gridPoints: JSON.parse(JSON.stringify(this.mapViews.gridPoints)),
          points: JSON.parse(JSON.stringify(this.mapViews.points))
        };
        this.mapViewsList.push(newMapViews);
      }
    }
    this.mapViewsList.forEach((m, i) => {
      this.drawGrid({
        gridDataDetail: gridDataDetailList[i],
        useCustomColor,
        opacity,
        zIndex,
        showDataTxt,
        showRankTxt,
        mapViews: m
      });
    });
  }
  drawNewGrid({
    gridDataDetail,
    useCustomColor,
    opacity,
    zIndex,
    showDataTxt,
    showRankTxt
  }) {
    const newMapViews = {
      gridViews: gridMapUtil.drawPolylines({
        points: this.mapViews.gridPoints,
        event: this.firstEvent
      }),
      gridPoints: JSON.parse(JSON.stringify(this.mapViews.gridPoints)),
      points: JSON.parse(JSON.stringify(this.mapViews.points))
    };
    this.mapViewsList.push(newMapViews);
    this.drawGrid({
      gridDataDetail,
      useCustomColor,
      opacity,
      zIndex,
      showDataTxt,
      showRankTxt,
      mapViews: newMapViews
    });
  }
  drawTagGrid({
    tag,
    gridDataDetail,
@@ -343,7 +273,8 @@
    opacity,
    zIndex,
    showDataTxt,
    showRankTxt
    showRankTxt,
    extData
  }) {
    if (!this.mapViewsMap.has(tag)) {
      const newMapViews = {
@@ -352,7 +283,8 @@
          event: this.firstEvent
        }),
        gridPoints: JSON.parse(JSON.stringify(this.mapViews.gridPoints)),
        points: JSON.parse(JSON.stringify(this.mapViews.points))
        points: JSON.parse(JSON.stringify(this.mapViews.points)),
        extData: extData
      };
      this.mapViewsMap.set(tag, newMapViews);
    }
src/views/satellitetelemetry/SatelliteTelemetry.vue
@@ -45,16 +45,10 @@
  </el-row> -->
</template>
<script setup>
import { map, onMapMounted } from '@/utils/map/index_old';
import calculate from '@/utils/map/calculate';
import marks from '@/utils/map/marks';
import grid from '@/utils/map/grid';
import { ref, onMounted } from 'vue';
import gridApi from '@/api/gridApi';
import SatelliteManage from './component/SatelliteManage.vue';
import SatelliteDataMix from './component/SatelliteDataMix.vue';
import SatelliteMixTool from './component/SatelliteMixTool.vue';
import moment from 'moment';
import GridStyleTool from './component/GridStyleTool.vue';
import { SatelliteProxy } from './SatelliteProxy';
import { useFetchData } from '@/composables/fetchData';
@@ -66,6 +60,8 @@
const gridStore = useGridStore();
gridStore.selectedSatelliteProxy = satelliteProxy;
gridStore.pushGridClz(satelliteProxy);
const sceneStore = useSceneStore();
const satelliteGridStore = useSatelliteGridStore();
@@ -155,15 +151,27 @@
  });
}
function drawGrid(gridDataDetail) {
  satelliteProxy.drawGrid({
    gridDataDetail: gridDataDetail,
    useDataTxtColor: true
function drawGrid(useCustomColor) {
  satelliteProxy.changeVisibility({
    showGridViews: false,
    showDataTxt: false,
    showRankTxt: false
  });
  satelliteProxy.drawTagGrid({
    tag: satelliteGridStore.selectedGridData.id,
    gridDataDetail: satelliteGridStore.selectedGridDataDetail,
    useCustomColor,
    useDataTxtColor: true,
    extData: {
      name: `卫星遥测数据 - ${moment(satelliteGridStore.selectedGridData).format('YYYY-MM-DD')}`
    }
  });
}
function handleRowClick(row) {
  satelliteGridStore.fetchGridDataDetail(row, drawGrid);
  satelliteGridStore.fetchGridDataDetail(row, () => {
    drawGrid();
  });
}
function handleRankClick(rankVisible) {
@@ -175,11 +183,7 @@
}
function handleColorClick(isStandardColor) {
  satelliteProxy.drawGrid({
    gridDataDetail: satelliteGridStore.selectedGridDataDetail,
    useCustomColor: !isStandardColor,
    useDataTxtColor: true
  });
  drawGrid(!isStandardColor);
}
function handleOpacityClick(value) {
src/views/satellitetelemetry/component/SatelliteMixTool.vue
@@ -195,11 +195,6 @@
  satelliteProxy.gridPrepare(gridInfo);
}
// 绘制网格遥感数据值和网格颜色
function drawGrid(gridDataDetail) {
  satelliteProxy.drawGrid({ gridDataDetail, opacity: 1, zIndex: 11 });
}
// watch(mission, (nV, oV) => {
//   if (nV != oV) {
//     checkUnderwayFusionResult();
@@ -233,37 +228,12 @@
  }
});
let selectedGridDataDetail;
// 叠加融合
// function handleFusionClick() {
//   // resetButton();
//   const d = fusionData.value;
//   if (gridDataDetailMap.has(d.id)) {
//     selectedGridDataDetail = gridDataDetailMap.get(d.id);
//     // selectedGridData = gridData;
//     drawGrid(selectedGridDataDetail);
//   } else {
//     gridApi.fetchGridDataDetail(d.id, d.groupId).then((res) => {
//       gridDataDetailMap.set(d.id, res.data);
//       selectedGridDataDetail = res.data;
//       // selectedGridData = gridData;
//       drawGrid(selectedGridDataDetail);
//     });
//   }
// }
function handleFusionClick() {
  // resetButton();
  satelliteProxy.changeVisibility({ showGridViews: false });
  selectedfusionData.value.forEach((i) => {
    const d = fusionDataList.value[i];
    if (gridDataDetailMap.has(d.id)) {
      // const gdd = gridDataDetailMap.get(d.id);
      // satelliteProxy.drawTagGrid({
      //   tag: d.id,
      //   gridDataDetail: gdd,
      //   opacity: 1,
      //   zIndex: 11
      // });
      satelliteProxy.changeVisibility({ tag: d.id, showGridViews: true });
    } else {
      gridApi.fetchGridDataDetail(d.id, d.groupId).then((res) => {
@@ -302,12 +272,6 @@
function handleColorClick() {
  isStandardColor.value = !isStandardColor.value;
  // satelliteProxy.drawGrid({
  //   gridDataDetail: selectedGridDataDetail,
  //   useCustomColor: !isStandardColor.value,
  //   opacity: 1,
  //   zIndex: 11
  // });
  selectedfusionData.value.forEach((i) => {
    const d = fusionDataList.value[i];
    if (gridDataDetailMap.has(d.id)) {