فهرست منبع

Merge branch 'master' of http://192.168.0.115:3000/bill/traffic-laser

xzw 2 سال پیش
والد
کامیت
3b4f22cb28

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
server/test/a0k4xu045_202305311600080410/attach/sceneStore


+ 3 - 1
src/graphic/Controls/AddLine.js

@@ -6,7 +6,9 @@ import Point from "../Geometry/Point.js";
 import { mathUtil } from "../Util/MathUtil";
 import Settings from "../Settings";
 import { pointService } from "../Service/PointService";
+import { uiService } from "../Service/UIService";
 import Constant from "../Constant";
+
 export default class AddLine {
   constructor() {
     this.newLine = null;
@@ -90,7 +92,7 @@ export default class AddLine {
         }
       }
       if (this.newLine.getCategory() == VectorCategory.Line.BaseLine) {
-        Settings.baseLineId = this.newLine.vectorId;
+        uiService.setBaseLineId(this.newLine.vectorId);
       }
     }
   }

+ 2 - 3
src/graphic/Controls/UIControl.js

@@ -363,7 +363,6 @@ export default class UIControl {
         break;
       case VectorType.Line:
         let line = dataService.getLine(vectorId);
-
         dataService.deleteLine(vectorId);
         if (vectorId == Settings.baseLineId) {
           this.layer.initLocation();
@@ -447,7 +446,7 @@ export default class UIControl {
         dataService.deleteCircle(vectorId);
         break;
       case VectorType.Text:
-        dataService.deleteText(vectorId);
+        textService.deleteText(vectorId);
         break;
       case VectorType.Magnifier:
         dataService.deleteMagnifier(vectorId);
@@ -645,7 +644,7 @@ export default class UIControl {
   menu_clear(isBack) {
     dataService.clear();
     Settings.selectLocationMode = null;
-    Settings.baseLineId = null;
+    uiService.setBaseLineId(null);
     uiService.setSelectBasePointId(null);
     elementService.hideAll();
     this.layer.exit();

+ 1 - 1
src/graphic/Layer.js

@@ -1399,7 +1399,7 @@ export default class Layer {
   }
 
   initLocation() {
-    Settings.baseLineId = null;
+    uiService.setBaseLineId(null);
     this.uiControl.graphicStateUI.canAngleLocationMode = false;
     this.uiControl.graphicStateUI.canAllLocationMode = false;
     this.uiControl.graphicStateUI.canVerticalMeasure = false;

+ 2 - 2
src/graphic/Load.js

@@ -161,7 +161,7 @@ export default class Load {
 
           line.setDisplay(dataLocal.lines[key].display);
           if (line.getCategory() == VectorCategory.Line.BaseLine) {
-            Settings.baseLineId = key;
+            uiService.setBaseLineId(key);
           }
         }
       }
@@ -427,7 +427,7 @@ export default class Load {
               this.getXY(width, height, data3d.measures[i].pos[1]),
               VectorCategory.Line.MeasureLine
             );
-            if (data3d.measures[i].dis) {
+            if (line && data3d.measures[i].dis) {
               line.value = data3d.measures[i].dis;
             }
           }

+ 6 - 7
src/graphic/Renderer/Draw.js

@@ -1164,13 +1164,6 @@ export default class Draw {
     this.context.save();
     const [_, foo] = help.setVectorStyle(this.context, vector);
 
-    let select = false;
-    const geo = stateService.getFocusItem();
-    if (geo) {
-      const realVector = dataService.getGeo(geo.type, geo.vectorId);
-      select = realVector && realVector.linkedTextId === vector.vectorId;
-    }
-
     this.context.fillStyle = vector.color;
     this.context.textBaseline = "bottom";
     this.context.font = `${
@@ -1182,6 +1175,12 @@ export default class Draw {
 
     this.context.fillText(vector.value, bound[3].x, bound[3].y);
 
+    let select = false;
+    const geo = stateService.getFocusItem();
+    if (geo) {
+      const realVector = dataService.getGeo(geo.type, geo.vectorId);
+      select = realVector && realVector.linkedTextId === vector.vectorId;
+    }
     if (select || foo) {
       this.context.beginPath();
       const padding = 2 * coordinate.ratio;

+ 1 - 1
src/graphic/Service/LineService.js

@@ -58,7 +58,7 @@ export default class LineService {
           dataService.deletePoint(key);
         }
       }
-      Settings.baseLineId = null;
+      uiService.setBaseLineId(null);
     }
     dataService.deleteLine();
   }

+ 4 - 0
src/graphic/Service/PointService.js

@@ -4,6 +4,7 @@ import { dataService } from "./DataService.js";
 import VectorCategory from "../enum/VectorCategory.js";
 import { mathUtil } from "../Util/MathUtil.js";
 import { lineService } from "./LineService.js";
+import { uiService } from "./UIService.js";
 import Settings from "../Settings.js";
 export default class PointService {
   constructor() {}
@@ -92,6 +93,9 @@ export default class PointService {
     let parent = normalPoint.getParent();
     for (let key in parent) {
       dataService.deleteLine(key);
+      if (Settings.baseLineId == key) {
+        uiService.setBaseLineId(null);
+      }
     }
   }
 

+ 8 - 0
src/graphic/Service/TextService.js

@@ -22,6 +22,14 @@ export default class TextService {
     newText.setFontSize(text.fontSize);
     return newText.vectorId;
   }
+
+  deleteText(vectorId) {
+    let text = dataService.getText(vectorId);
+    if (text.linkedPointId) {
+      dataService.deletePoint(text.linkedPointId);
+    }
+    dataService.deleteText(vectorId);
+  }
 }
 
 const textService = new TextService();

+ 8 - 0
src/graphic/Service/UIService.js

@@ -268,6 +268,14 @@ export default class UIService {
     Settings.lineWidth = value;
   }
 
+  setBaseLineId(value) {
+    Settings.baseLineId = value;
+  }
+
+  getBaseLineId() {
+    return Settings.baseLineId;
+  }
+
   //如果position在屏幕左上角,返回的就朝向右下角,如果是右下角,则返回的是左上角。其他情况以此类推
   getNewPositionForPop(position) {
     const offset = 50;