From 7b1293cec33b47680f08756bd1f8518d3cb1a729 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期三, 01 一月 2025 22:33:32 +0800
Subject: [PATCH] 新增对比色

---
 src/views/satellitetelemetry/SatelliteTelemetry.vue |  121 ++++++++++++++++++++++++---------------
 1 files changed, 74 insertions(+), 47 deletions(-)

diff --git a/src/views/satellitetelemetry/SatelliteTelemetry.vue b/src/views/satellitetelemetry/SatelliteTelemetry.vue
index 9260b30..0f0698f 100644
--- a/src/views/satellitetelemetry/SatelliteTelemetry.vue
+++ b/src/views/satellitetelemetry/SatelliteTelemetry.vue
@@ -1,6 +1,7 @@
 <template>
-  <div>
-    <!-- <el-button
+  <el-row class="wrap">
+    <el-col span="2">
+      <!-- <el-button
       class="p-events-auto"
       type="info"
       icon="Memo"
@@ -9,21 +10,37 @@
     >
       缁樺埗缃戞牸
     </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>
+      <el-row>
+        <SatelliteManage
+          v-show="show"
+          class="satellite-manage"
+          :gridDataList="satelliteGridStore.gridDataList"
+          :loading="loading"
+          @search="onSearch"
+          @row-click="handleRowClick"
+          @show-rank="handleRankClick"
+          @show-data="handleDataClick"
+          @change-color="handleColorClick"
+        ></SatelliteManage>
+      </el-row>
+    </el-col>
+    <el-col span="2">
+      <el-row>
+        <CardButton
+          name="鍗槦閬ユ祴鏁版嵁"
+          direction="right"
+          @click="() => (show = !show)"
+        ></CardButton>
+      </el-row>
+    </el-col>
+  </el-row>
+  <el-row class="historical" justify="center">
+    <SatelliteAnimation
+      :loading="animaLoading"
+      :grid-data="gridDataDetailList"
+      :mapViews="mapViews"
+    ></SatelliteAnimation>
+  </el-row>
 </template>
 <script setup>
 import { map } from '@/utils/map/index_old';
@@ -36,13 +53,13 @@
 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([]);
+const show = ref(true);
+
 let count = 0,
   max = 0;
 // 缃戞牸鏁版嵁璇︽儏
@@ -53,28 +70,10 @@
 
 // 鏌ヨ缃戞牸淇℃伅鍜岄仴鎰熸暟鎹粍
 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);
-    });
+  satelliteGridStore.fetchGridCell(options.id).then(() => {
+    drawGrid(satelliteGridStore.gridInfo);
   });
-}
-
-// 鑾峰彇閬ユ劅鏁版嵁缁�
-function fetchGridData(groupId) {
-  return gridApi.fetchGridData(groupId).then((res) => {
-    gridDataList.value = res.data;
-    count = 0;
-    max = res.data.length;
-    fetchGridDataDetail(res.data);
-  });
+  satelliteGridStore.fetchGridData(options.id);
 }
 
 function fetchGridDataDetail(dataList) {
@@ -113,26 +112,54 @@
 function drawTextAndColor(gridData) {
   // SatelliteProxy.clearText(mapViews);
   // 鏂囨湰鏍囪
-  mapViews.textViews = SatelliteProxy.drawDataText(
-    mapViews.points,
-    gridData,
-    mapViews.textViews
-  );
+  const { textViews: dataTxt, labelsLayer: dataLayer } =
+    SatelliteProxy.drawDataText(
+      mapViews.points,
+      gridData,
+      mapViews.dataTxt,
+      mapViews.dataLayer
+    );
+  mapViews.dataTxt = dataTxt;
+  mapViews.dataLayer = dataLayer;
+  const { textViews: rankTxt, labelsLayer: rankLayer } =
+    SatelliteProxy.drawRankText(
+      mapViews.points,
+      gridData,
+      mapViews.rankTxt,
+      mapViews.rankLayer
+    );
+  mapViews.rankTxt = rankTxt;
+  mapViews.rankLayer = rankLayer;
   SatelliteProxy.drawColor(mapViews.gridViews, gridData);
 }
 
+let selectedGridData
 function handleRowClick(row) {
   if (gridDataDetailMap.has(row.id)) {
     const gridData = gridDataDetailMap.get(row.id);
+    selectedGridData = gridData
     drawTextAndColor(gridData);
   } else {
     gridApi.fetchGridDataDetail(row.id, row.groupId).then((res) => {
       gridDataDetailMap.set(row.id, res.data);
       const gridData = res.data;
+      selectedGridData = gridData
       drawTextAndColor(gridData);
     });
   }
 }
+
+function handleRankClick(rankVisible) {
+  rankVisible ? map.add(mapViews.rankLayer) : map.remove(mapViews.rankLayer);
+}
+
+function handleDataClick(dataVisible) {
+  dataVisible ? map.add(mapViews.dataLayer) : map.remove(mapViews.dataLayer);
+}
+
+function handleColorClick(isStandardColor) {
+  SatelliteProxy.drawColor(mapViews.gridViews, selectedGridData, !isStandardColor);
+}
 </script>
 <style scoped>
 .satellite-manage {

--
Gitblit v1.9.3