bill 2 лет назад
Родитель
Сommit
d2bd193bb3

+ 72 - 3
src/components/base/components/icon/iconfont/demo_index.html

@@ -55,6 +55,24 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe772;</span>
+                <div class="name">road_wl</div>
+                <div class="code-name">&amp;#xe772;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe770;</span>
+                <div class="name">fold</div>
+                <div class="code-name">&amp;#xe770;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe771;</span>
+                <div class="name">unfold</div>
+                <div class="code-name">&amp;#xe771;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe75a;</span>
                 <div class="name">huoche_s1</div>
                 <div class="code-name">&amp;#xe75a;</div>
@@ -612,9 +630,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1686129647618') format('woff2'),
-       url('iconfont.woff?t=1686129647618') format('woff'),
-       url('iconfont.ttf?t=1686129647618') format('truetype');
+  src: url('iconfont.woff2?t=1686207721082') format('woff2'),
+       url('iconfont.woff?t=1686207721082') format('woff'),
+       url('iconfont.ttf?t=1686207721082') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -641,6 +659,33 @@
         <ul class="icon_lists dib-box">
           
           <li class="dib">
+            <span class="icon iconfont icon-road_wl"></span>
+            <div class="name">
+              road_wl
+            </div>
+            <div class="code-name">.icon-road_wl
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-fold"></span>
+            <div class="name">
+              fold
+            </div>
+            <div class="code-name">.icon-fold
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-unfold"></span>
+            <div class="name">
+              unfold
+            </div>
+            <div class="code-name">.icon-unfold
+            </div>
+          </li>
+          
+          <li class="dib">
             <span class="icon iconfont icon-huoche_s1"></span>
             <div class="name">
               huoche_s1
@@ -1479,6 +1524,30 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-road_wl"></use>
+                </svg>
+                <div class="name">road_wl</div>
+                <div class="code-name">#icon-road_wl</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-fold"></use>
+                </svg>
+                <div class="name">fold</div>
+                <div class="code-name">#icon-fold</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-unfold"></use>
+                </svg>
+                <div class="name">unfold</div>
+                <div class="code-name">#icon-unfold</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-huoche_s1"></use>
                 </svg>
                 <div class="name">huoche_s1</div>

+ 15 - 3
src/components/base/components/icon/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4084834 */
-  src: url('iconfont.woff2?t=1686129647618') format('woff2'),
-       url('iconfont.woff?t=1686129647618') format('woff'),
-       url('iconfont.ttf?t=1686129647618') format('truetype');
+  src: url('iconfont.woff2?t=1686207721082') format('woff2'),
+       url('iconfont.woff?t=1686207721082') format('woff'),
+       url('iconfont.ttf?t=1686207721082') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,18 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-road_wl:before {
+  content: "\e772";
+}
+
+.icon-fold:before {
+  content: "\e770";
+}
+
+.icon-unfold:before {
+  content: "\e771";
+}
+
 .icon-huoche_s1:before {
   content: "\e75a";
 }

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
src/components/base/components/icon/iconfont/iconfont.js


+ 21 - 0
src/components/base/components/icon/iconfont/iconfont.json

@@ -6,6 +6,27 @@
   "description": "交通事故现场勘验系统",
   "glyphs": [
     {
+      "icon_id": "35892743",
+      "name": "road_wl",
+      "font_class": "road_wl",
+      "unicode": "e772",
+      "unicode_decimal": 59250
+    },
+    {
+      "icon_id": "35885718",
+      "name": "fold",
+      "font_class": "fold",
+      "unicode": "e770",
+      "unicode_decimal": 59248
+    },
+    {
+      "icon_id": "35885719",
+      "name": "unfold",
+      "font_class": "unfold",
+      "unicode": "e771",
+      "unicode_decimal": 59249
+    },
+    {
       "icon_id": "35882982",
       "name": "huoche_s1",
       "font_class": "huoche_s1",

BIN
src/components/base/components/icon/iconfont/iconfont.ttf


BIN
src/components/base/components/icon/iconfont/iconfont.woff


BIN
src/components/base/components/icon/iconfont/iconfont.woff2


+ 1 - 0
src/graphic/Renderer/Draw.js

@@ -309,6 +309,7 @@ export default class Draw {
         vector.vectorId
       );
     }
+
     this.drawRoadEdge(vector, isTemp);
     vector.leftLanes && vector.leftLanes.forEach(this.drawLan.bind(this));
     vector.rightLanes && vector.rightLanes.forEach(this.drawLan.bind(this));

+ 18 - 13
src/views/graphic/geos/road.vue

@@ -10,7 +10,7 @@
 <script setup lang="ts">
 import GeoTeleport from "@/views/graphic/geos/geo-teleport.vue";
 import UiIcon from "@/components/base/components/icon/index.vue";
-import {drawRef, FocusVector} from '@/hook/useGraphic'
+import {drawRef, FocusVector, VectorType} from '@/hook/useGraphic'
 import {computed, ref} from "vue";
 import {dataService} from "@/graphic/Service/DataService";
 import GeoActions from "@/graphic/enum/GeoActions"
@@ -23,6 +23,22 @@ const clickHandlerFactory = (key) => {
   return () => drawRef.value.uiControl.updateVectorForSelectUI(key)
 }
 
+const appendMenus = props.geo.type === VectorType.CurveRoad
+  ? [
+    {
+      key: VectorEvents.AddCrossPoint,
+      icon: "control_a",
+      text: "加控制点",
+      onClick: clickHandlerFactory(VectorEvents.AddCrossPoint)
+    },
+    {
+      key: VectorEvents.MinusCrossPoint,
+      icon: "control_d",
+      text: "减控制点" ,
+      onClick: clickHandlerFactory(VectorEvents.MinusCrossPoint)
+    },
+  ]
+  : []
 const menus = ref([
   {
     key: VectorEvents.AddLane,
@@ -36,18 +52,7 @@ const menus = ref([
     text: "减车道",
     onClick: clickHandlerFactory(VectorEvents.DelLane)
   },
-  {
-    key: VectorEvents.AddCrossPoint,
-    icon: "control_a",
-    text: "加控制点",
-    onClick: clickHandlerFactory(VectorEvents.AddCrossPoint)
-  },
-  {
-    key: VectorEvents.MinusCrossPoint,
-    icon: "control_d",
-    text: "减控制点" ,
-    onClick: clickHandlerFactory(VectorEvents.MinusCrossPoint)
-  },
+  ...appendMenus,
   {
     key: 'copy',
     icon: 'copy',

+ 20 - 14
src/views/graphic/geos/roadEdge.vue

@@ -5,7 +5,7 @@
 
 <script setup lang="ts">
 import GeoTeleport from "@/views/graphic/geos/geo-teleport.vue";
-import {drawRef, FocusVector} from '@/hook/useGraphic'
+import {drawRef, FocusVector, VectorType} from '@/hook/useGraphic'
 import {computed, ref, toRaw, UnwrapRef} from "vue";
 import {dataService} from "@/graphic/Service/DataService";
 import GeoActions from "@/graphic/enum/GeoActions"
@@ -16,7 +16,7 @@ import VectorStyle from "@/graphic/enum/VectorStyle";
 
 const props = defineProps<{ geo: FocusVector }>()
 const vector = computed(() => dataService.getLine(props.geo.vectorId))
-
+console.error(props.geo)
 
 const clickHandlerFactory = (key) => {
   return () => drawRef.value.uiControl.updateVectorForSelectUI(key)
@@ -60,6 +60,23 @@ const lineWidthMenu = [
   {key: VectorStyle.Bold, icon: 'l_thick', text: "粗", onClick: clickHandlerFactory(VectorStyle.Bold)},
   {key: VectorStyle.Thinning, icon: 'l_thin', text: "细", onClick: clickHandlerFactory(VectorStyle.Thinning)},
 ]
+
+const appendMenus = props.geo.type === VectorType.CurveRoadEdge
+  ? [
+      {
+        key: VectorEvents.AddCrossPoint,
+        icon: "control_a",
+        text: "加控制点",
+        onClick: clickHandlerFactory(VectorEvents.AddCrossPoint)
+      },
+      {
+        key: VectorEvents.MinusCrossPoint,
+        icon: "control_d",
+        text: "减控制点",
+        onClick: clickHandlerFactory(VectorEvents.MinusCrossPoint)
+      },
+    ]
+  : []
 const childMenus = ref<UnwrapRef<typeof menus>>()
 const menus = ref([
   {
@@ -78,18 +95,7 @@ const menus = ref([
       childMenus.value = toRaw(childMenus.value) === lineWidthMenu ? null : lineWidthMenu
     }
   },
-  {
-    key: VectorEvents.AddCrossPoint,
-    icon: "control_a",
-    text: "加控制点",
-    onClick: clickHandlerFactory(VectorEvents.AddCrossPoint)
-  },
-  {
-    key: VectorEvents.MinusCrossPoint,
-    icon: "control_d",
-    text: "减控制点",
-    onClick: clickHandlerFactory(VectorEvents.MinusCrossPoint)
-  },
+  ...appendMenus,
   {
     key: 'copy',
     icon: 'copy',

+ 1 - 0
src/views/graphic/imageLabel.vue

@@ -78,6 +78,7 @@ defineEmits<{ (e: "quit") }>();
   left: calc(var(--editor-menu-left) + var(--editor-menu-width));
   padding: 16px;
   overflow-y: auto;
+  width: 304px;
 
   .menu-list {
     display: grid;

+ 1 - 6
src/views/graphic/menus.ts

@@ -141,6 +141,7 @@ export const mainMenusRaw: MenusRaw = [
       { key: UIType.TwoEdgeOneLanRoad, icon: "road_ds", text: "双向单车道直路" },
       { key: UIType.TwoEdgeTwoLanRoad, icon: "road_dd", text: "双向双车道直路" },
       { key: UIType.TwoEdgeThreeLanRoad, icon: "road_dt", text: "双向三车道直路" },
+      { key: UIType.CurveRoad, icon: "road_wl", text: "弯路" },
       { key: UITypeExtend.structure, icon: "r_template", text: "道路结构", extend: structureMenusRaw },
       { key: UITypeExtend.template, icon: "r_structure", text: "道路模板", extend: templateMenusRaw },
     ]
@@ -162,12 +163,6 @@ export const mainMenusRaw: MenusRaw = [
   { key: UIType.Magnifier, text: "放大镜", icon: "magnify_g" },
 ];
 
-if (import.meta.env.DEV) {
-  mainMenusRaw.unshift(
-    { key: UIType.CurveRoad, text: "弯路", icon: "road", }
-  )
-}
-
 export const photoMenusRaw: MenusRaw = [
   { key: UIType.Text, text: "文字", icon: "text" },
   { key: UIType.Circle, text: "圈出", icon: "circle" },