From 234c83d83c8835667c97c962d201ab4a3ce868b8 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 25 十二月 2024 17:47:45 +0800
Subject: [PATCH] 数据获取逻辑迁移至stores

---
 src/views/satellitetelemetry/SatelliteTelemetry copy.vue |  149 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 149 insertions(+), 0 deletions(-)

diff --git a/src/views/satellitetelemetry/SatelliteTelemetry copy.vue b/src/views/satellitetelemetry/SatelliteTelemetry copy.vue
new file mode 100644
index 0000000..77117f5
--- /dev/null
+++ b/src/views/satellitetelemetry/SatelliteTelemetry copy.vue
@@ -0,0 +1,149 @@
+<template>
+  <div>
+    <!-- <el-button
+      class="p-events-auto"
+      type="info"
+      icon="Memo"
+      plain
+      @click="draw"
+    >
+      缁樺埗缃戞牸
+    </el-button> -->
+    <SatelliteManage
+      class="satellite-manage"
+      :gridDataList="gridDataList"
+      :loading="loading"
+      @search="onSearch"
+      @row-click="handleRowClick"
+    ></SatelliteManage>
+    <el-row class="historical" justify="center">
+      <SatelliteAnimation
+        :loading="animaLoading"
+        :grid-data="gridDataDetailList"
+        :mapViews="mapViews"
+      ></SatelliteAnimation>
+    </el-row>
+  </div>
+</template>
+<script setup>
+import { map } 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 } from 'vue';
+import gridApi from '@/api/gridApi';
+import SatelliteManage from './component/SatelliteManage.vue';
+import SatelliteProxy from './SatelliteProxy';
+import { useFetchData } from '@/composables/fetchData';
+import { useSatelliteGridStore } from '@/stores/satellite-grid';
+
+const satelliteGridStore = useSatelliteGridStore();
+const { loading, fetchData } = useFetchData(10000);
+const animaLoading = ref(true);
+// 缃戞牸淇℃伅
+let gridInfo = [];
+// 缃戞牸鏁版嵁缁�
+const gridDataList = ref([]);
+let count = 0,
+  max = 0;
+// 缃戞牸鏁版嵁璇︽儏
+const gridDataDetailMap = new Map();
+const gridDataDetailList = ref([]);
+// 鍦板浘缃戞牸鐩稿叧瀵硅薄
+let mapViews;
+
+// 鏌ヨ缃戞牸淇℃伅鍜岄仴鎰熸暟鎹粍
+function onSearch(options) {
+  fetchGridCell(options.id);
+  fetchGridData(options.id);
+}
+
+// 鑾峰彇缃戞牸淇℃伅
+function fetchGridCell(groupId) {
+  return fetchData(() => {
+    return gridApi.fetchGridCell(groupId).then((res) => {
+      gridInfo = res.data;
+      drawGrid(gridInfo);
+    });
+  });
+}
+
+// 鑾峰彇閬ユ劅鏁版嵁缁�
+function fetchGridData(groupId) {
+  return gridApi.fetchGridData(groupId).then((res) => {
+    gridDataList.value = res.data;
+    count = 0;
+    max = res.data.length;
+    fetchGridDataDetail(res.data);
+  });
+}
+
+function fetchGridDataDetail(dataList) {
+  dataList.forEach((d) => {
+    gridApi.fetchGridDataDetail(d.id, d.groupId).then((res) => {
+      gridDataDetailMap.set(d.id, res.data);
+      // const gridData = res.data;
+      // drawTextAndColor(gridData);
+      finish();
+    });
+  });
+}
+
+function finish() {
+  count++;
+  if (count == max) {
+    animaLoading.value = false;
+    const list = [];
+    gridDataDetailMap.forEach((value, key) => {
+      list.push(value);
+    });
+
+    gridDataDetailList.value = list.sort((a, b) => {
+      return a.dataId - b.dataId;
+    });
+    console.log(gridDataDetailList.value);
+  }
+}
+
+function drawGrid(gridInfo) {
+  SatelliteProxy.clearAll(mapViews);
+  mapViews = SatelliteProxy.drawPolyline(gridInfo);
+}
+
+// 缁樺埗缃戞牸閬ユ劅鏁版嵁鍊煎拰缃戞牸棰滆壊
+function drawTextAndColor(gridData) {
+  // SatelliteProxy.clearText(mapViews);
+  // 鏂囨湰鏍囪
+  mapViews.textViews = SatelliteProxy.drawDataText(
+    mapViews.points,
+    gridData,
+    mapViews.textViews
+  );
+  SatelliteProxy.drawColor(mapViews.gridViews, gridData);
+}
+
+function handleRowClick(row) {
+  if (gridDataDetailMap.has(row.id)) {
+    const gridData = gridDataDetailMap.get(row.id);
+    drawTextAndColor(gridData);
+  } else {
+    gridApi.fetchGridDataDetail(row.id, row.groupId).then((res) => {
+      gridDataDetailMap.set(row.id, res.data);
+      const gridData = res.data;
+      drawTextAndColor(gridData);
+    });
+  }
+}
+</script>
+<style scoped>
+.satellite-manage {
+}
+
+.historical {
+  position: absolute;
+  bottom: 10px;
+  left: 0;
+  right: 0;
+}
+</style>

--
Gitblit v1.9.3