jinx 1 年之前
父节点
当前提交
57a70f7806
共有 3 个文件被更改,包括 36 次插入8 次删除
  1. 9 0
      src/graphic/Controls/UIControl.js
  2. 22 3
      src/graphic/Service/RoadService.js
  3. 5 5
      src/views/tables/identification.vue

+ 9 - 0
src/graphic/Controls/UIControl.js

@@ -340,6 +340,14 @@ export default class UIControl {
     } else if (selectUI == VectorEvents.AddNarrowRoad) {
     } else if (selectUI == VectorEvents.UnLock) {
       let road = dataService.getRoad(focusItem.vectorId);
+      let leftEdge = dataService.getRoadEdge(road.leftEdgeId);
+      let rightEdge = dataService.getRoadEdge(road.rightEdgeId);
+      if (leftEdge.roadSide) {
+        leftEdge.setStyle("SingleSolidLine");
+      }
+      if (rightEdge.roadSide) {
+        rightEdge.setStyle("SingleSolidLine");
+      }
       if (road) {
         roadService.convertToLines(focusItem.vectorId);
       } else {
@@ -348,6 +356,7 @@ export default class UIControl {
           curveRoadService.convertToCurveLines(focusItem.vectorId);
         }
       }
+
       if (road) {
         this.deleteVector(focusItem.vectorId, focusItem.type);
         this.layer.history.save();

+ 22 - 3
src/graphic/Service/RoadService.js

@@ -14,7 +14,7 @@ import VectorStyle from "../enum/VectorStyle.js";
 export default class RoadService {
   constructor() {}
 
-  create(startId, endId, vectorId) {
+  create(startId, endId, vectorId, split) {
     let road = new Road(startId, endId, vectorId);
     dataService.addRoad(road);
 
@@ -42,6 +42,7 @@ export default class RoadService {
     }
     this.setLanes(road.vectorId);
     this.initRoadWidthTipsPos(road);
+
     return road;
   }
 
@@ -168,7 +169,9 @@ export default class RoadService {
     if (dir == "start") {
       // 第一步把旧的road的另一端点对应的parent(旧的roadId)断开
       delete endPoint.parent[roadId];
-      newRoad = this.create(pointId, road.endId);
+
+      newRoad = this.create(pointId, road.endId, null);
+
       // 更新旧公路的end
       point.setPointParent(roadId, "end");
       road.endId = pointId;
@@ -228,6 +231,22 @@ export default class RoadService {
         mathUtil.clonePoint(rightEdge.end, oldRightEdgeEndPoint);
       }
     }
+    // console.error(endPoint.parent);
+    let newStartPoint = dataService.getRoadPoint(newRoad.startId);
+    let newEndPoint = dataService.getRoadPoint(newRoad.endId);
+    let parents = {};
+    if (Object.keys(newStartPoint.parent).length > 1) {
+      parents = newStartPoint.parent;
+    }
+
+    if (Object.keys(newEndPoint.parent).length > 1) {
+      parents = newEndPoint.parent;
+    }
+
+    for (let key in parents) {
+      let road = dataService.getRoad(key);
+      this.initRoadWidthTipsPos(road);
+    }
 
     return newRoad.vectorId;
   }
@@ -1422,7 +1441,7 @@ export default class RoadService {
             //   start: crossList[i - 1],
             //   end: crossList[i],
             // });
-            console.error(middleEdgePoint1);
+            // console.error(middleEdgePoint1);
             roadWidthTipsPos.push({
               start: middleEdgePoint1,
               end: middleEdgePoint2,

+ 5 - 5
src/views/tables/identification.vue

@@ -61,7 +61,7 @@
               <span>当事人:</span>
               <div style="flex: 1">
                 <input v-model="data.optionsOne.client" />
-                <div class="content-box">{{ data.optionsOne.client }}</div>
+                <div class="content-box left" >{{ data.optionsOne.client }}</div>
               </div>
             </div>
             <div>
@@ -72,7 +72,7 @@
             <span>交通警察:</span>
             <div style="flex: 1">
               <input v-model="data.optionsOne.police" />
-              <div class="content-box">{{ data.optionsOne.police }}</div>
+              <div class="content-box left">{{ data.optionsOne.police }}</div>
             </div>
           </div>
         </div>
@@ -84,8 +84,8 @@
             <div style="flex: 1">
               <span>当事人:</span>
               <div style="flex: 1">
-                <input v-model="data.optionsOne.client" />
-                <div class="content-box">{{ data.optionsOne.client }}</div>
+                <input v-model="data.optionsTwo.client" />
+                <div class="content-box left">{{ data.optionsTwo.client }}</div>
               </div>
             </div>
             <div>
@@ -96,7 +96,7 @@
             <span>交通警察:</span>
             <div style="flex: 1">
               <input v-model="data.optionsTwo.police" />
-              <div class="content-box">{{ data.optionsTwo.police }}</div>
+              <div class="content-box left">{{ data.optionsTwo.police }}</div>
             </div>
           </div>
         </div>