From 42f42dc88214f283b43c422f37e10ab45c5c5578 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 12 三月 2025 17:32:13 +0800
Subject: [PATCH] 1. 新增绘图模式的切换 2. 新增行政区划的切换展示

---
 src/model/FactorDatas.js |   71 ++++++++++++++++++++++++++++-------
 1 files changed, 56 insertions(+), 15 deletions(-)

diff --git a/src/model/FactorDatas.js b/src/model/FactorDatas.js
index b6b1d30..eba6446 100644
--- a/src/model/FactorDatas.js
+++ b/src/model/FactorDatas.js
@@ -1,5 +1,6 @@
-import { Factor } from "./Factor";
-import calculate from "@/utils/map/calculate";
+import { Factor } from './Factor';
+import calculate from '@/utils/map/calculate';
+import { Legend } from './Legend';
 
 /**
  *
@@ -16,12 +17,24 @@
   // 鐩戞祴鍥犲瓙鏁版嵁锛孧ap<String, Factor>
   this.factor = new Map();
 
-  if (options != undefined) {
-    this.times = options.times;
-    this.lnglats_GPS = options.lnglats_GPS;
-    this.lnglats_GD = options.lnglats_GD;
-    this.coors_GD = options.coors_GD;
-    this.factor = options.factor;
+  this.legendType = Legend.S_TYPE; //鍥句緥妯″紡
+
+  // if (options != undefined) {
+  //   this.times = options.times;
+  //   this.lnglats_GPS = options.lnglats_GPS;
+  //   this.lnglats_GD = options.lnglats_GD;
+  //   this.coors_GD = options.coors_GD;
+  //   this.factor = options.factor;
+  //   this.legendType = options.legendType;
+  // }
+
+  if (typeof options === 'object') {
+    for (const key in options) {
+      if (Object.prototype.hasOwnProperty.call(options, key)) {
+        const value = options[key];
+        this[key] = value;
+      }
+    }
   }
 }
 
@@ -47,6 +60,9 @@
         }]
         */
   setData: function (dataList, drawMode, callback) {
+    if (dataList.length == 0) {
+      return;
+    }
     this.clearData();
 
     dataList.forEach((d) => {
@@ -55,20 +71,24 @@
       d.values.forEach((v) => {
         var f = this.factor[v.factorId];
         if (f == undefined) {
-          f = new Factor();
+          f = new Factor({
+            legendType: this.legendType
+          });
           this.factor[v.factorId] = f;
         }
         f.pushData(v, drawMode == undefined ? 0 : drawMode);
       });
     });
 
-    
-
     this.convertGPS(this.lnglats_GPS, callback);
   },
 
   // 鏂板涓�涓柊鏁版嵁
   addData: function (dataList, drawMode, callback) {
+    if (dataList.length == 0) {
+      return;
+    }
+
     var newGps = [];
     dataList.forEach((data) => {
       this.times.push(data.time);
@@ -113,17 +133,38 @@
 
   // 璁剧疆缁樺浘鑼冨洿
   setRange: function (key, range) {
-    this.factor[key].setRange(range);
+    this.legendType = Legend.C_TYPE;
+    if (key != undefined) {
+      this.factor[key].setRange(range);
+    } else {
+      for (const k in this.factor) {
+        this.factor[k].setRange(range);
+      }
+    }
   },
 
   // 閲嶇疆缁樺浘鑼冨洿
   resetRange: function (key) {
-    this.factor[key].clearRange();
+    this.legendType = Legend.D_TYPE;
+    if (key != undefined) {
+      this.factor[key].clearRange();
+    } else {
+      for (const k in this.factor) {
+        this.factor[k].clearRange();
+      }
+    }
   },
 
   // 璁剧疆涓烘爣鍑嗙粯鍥捐寖鍥�
   standardRange: function (key) {
-    this.factor[key].standardRange();
+    this.legendType = Legend.S_TYPE;
+    if (key != undefined) {
+      this.factor[key].standardRange();
+    } else {
+      for (const k in this.factor) {
+        this.factor[k].standardRange();
+      }
+    }
   },
 
   // 鏍规嵁褰撳墠缁樺浘鑼冨洿閲嶆柊璁$畻缁樺浘楂樺害
@@ -162,7 +203,7 @@
   // 鑾峰彇鏁版嵁闀垮害
   length: function () {
     return this.lnglats_GD.length;
-  },
+  }
 };
 
 export { FactorDatas };

--
Gitblit v1.9.3