浏览代码

修正问题

bill 2 年之前
父节点
当前提交
c4824e7a30

文件差异内容过多而无法显示
+ 1 - 1
server/test/a0k4xu045_202305311600080410/attach/sceneStore


文件差异内容过多而无法显示
+ 467 - 444
src/components/base/components/icon/iconfont/demo_index.html


+ 7 - 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=1687654509901') format('woff2'),
-       url('iconfont.woff?t=1687654509901') format('woff'),
-       url('iconfont.ttf?t=1687654509901') format('truetype');
+  src: url('iconfont.woff2?t=1687679372862') format('woff2'),
+       url('iconfont.woff?t=1687679372862') format('woff'),
+       url('iconfont.ttf?t=1687679372862') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-return_l:before {
+  content: "\e7a7";
+}
+
 .icon-measure_free:before {
   content: "\e7a6";
 }

文件差异内容过多而无法显示
+ 1 - 1
src/components/base/components/icon/iconfont/iconfont.js


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

@@ -6,6 +6,13 @@
   "description": "交通事故现场勘验系统",
   "glyphs": [
     {
+      "icon_id": "36128160",
+      "name": "return_l",
+      "font_class": "return_l",
+      "unicode": "e7a7",
+      "unicode_decimal": 59303
+    },
+    {
       "icon_id": "36080980",
       "name": "measure_free",
       "font_class": "measure_free",

二进制
src/components/base/components/icon/iconfont/iconfont.ttf


二进制
src/components/base/components/icon/iconfont/iconfont.woff


二进制
src/components/base/components/icon/iconfont/iconfont.woff2


+ 1 - 1
src/components/photos/header.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="photos-header">
     <div>
-      <ui-icon :type="type || 'home'" ctrl style="margin-right: 10px" @click="() => onBack ? onBack() : back()" />
+      <ui-icon :type="type || 'return_l'" ctrl style="margin-right: 10px" @click="() => onBack ? onBack() : back()" />
       <span>{{ title }}</span>
     </div>
     <span class="center" v-if="count">

+ 7 - 7
src/components/photos/index.vue

@@ -8,8 +8,8 @@
           @click="selectMode ? changeSelects(photo, !selects.includes(photo)) : $emit('update:active', photo)"
       >
         <div class="img-layout">
-          <div class="occupying" v-if="!urls.get(photo).value">
-            <p>图片加载中</p>
+          <div class="occupying" v-if="!urls.get(photo).value" :style="{paddingTop: ratio}">
+            <ui-icon type="map" />
           </div>
           <img :src="urls.get(photo).value" v-else />
           <ui-input
@@ -58,7 +58,7 @@ const urls = computed(() => {
   })
   return urls
 })
-
+const ratio = (window.innerHeight / window.innerWidth) * 100 + '%'
 const changeSelects = (item: Item, selected: boolean) => {
   const olSelected = props.selects.includes(item)
   if (selected !== olSelected) {
@@ -110,16 +110,16 @@ const changeSelects = (item: Item, selected: boolean) => {
 }
 
 .occupying {
-  background-color: #ccc;
-  color: #003eff;
+  background: #1A1A1A;
   position: relative;
-  padding-top: 52%;
 
-  p {
+  .icon {
     position: absolute;
     top: 50%;
+    font-size: 30px;
     left: 50%;
     transform: translate(-50%, -50%);
+    color: rgba(255, 255, 255, 0.10);
   }
 }
 </style>

+ 2 - 2
src/graphic/CanvasStyle/ImageLabels/SVGIcons.js

@@ -601,7 +601,7 @@ const SVGIcons = {
     }
 
   }, "huoche_p.svg": {
-    text: "货车面",
+    text: "货车平面面",
     draw: function (ctx) {
       ctx.save();
       //// ctx.strokeStyle = "rgba(0,0,0,0)";
@@ -820,7 +820,7 @@ const SVGIcons = {
     }
 
   }, "jiaoche_p.svg": {
-    text: "车平面",
+    text: "轿车平面",
     draw: function (ctx) {
       ctx.save();
       //// ctx.strokeStyle = "rgba(0,0,0,0)";

+ 16 - 0
src/store/SVGLabel.ts

@@ -0,0 +1,16 @@
+import {ref} from "vue";
+
+type Use = {count: number, key: string}
+
+export const defaultUses: Use[] = [
+  { count: 0, key: "keche_p.svg" },
+  { count: 0, key: "keche_s.svg" },
+  { count: 0, key: "jiaoche_p.svg" },
+  { count: 0, key: "jiaoche_s.svg" },
+  { count: 0, key: "huoche_p.svg" },
+  { count: 0, key: "huoche_s1.svg" },
+  { count: 0, key: "huoche_s2.svg" },
+  { count: 0, key: "rt_rt.svg" },
+  { count: 0, key: "rt_st.svg" },
+]
+export const uses = ref<Use[]>([])

+ 4 - 0
src/store/sync.ts

@@ -11,6 +11,7 @@ import {watch} from "vue";
 import {params} from "@/hook";
 import router, {writeRouteName} from "@/router";
 import {baseURL} from "@/dbo/main";
+import {defaultUses, uses} from '@/store/SVGLabel'
 
 const global = window as any;
 
@@ -51,6 +52,7 @@ export const api =
           ]
           const notBase64 = notBase64BaseTypes.some(type => paths[paths.length - 1].includes(type))
           if (notBase64) {
+            await new Promise(resolve => setTimeout(resolve, 2000))
             return baseURL + url
           } else {
             const data = await axios.get(url, { responseType: "blob" });
@@ -207,6 +209,7 @@ const loadStore = async () => {
   photos.value = data?.photos || [];
   accidentPhotos.value = data?.accidentPhotos || [];
   roadPhotos.value = data?.roadPhotos || [];
+  uses.value = data?.uses || defaultUses
 
   syncSceneStore();
   console.log("开始同步syncSceneStore")
@@ -240,6 +243,7 @@ const syncSceneStore = () => {
       basePoints: basePoints.value,
       fixPoints: fixPoints.value,
       photos: photos.value,
+      uses: uses.value,
       accidentPhotos: accidentPhotos.value,
       roadPhotos: roadPhotos.value,
     }),

+ 1 - 1
src/views/accidents/index.vue

@@ -1,7 +1,7 @@
 <template>
   <MainPanel>
     <template v-slot:header>
-      <Header type="close" :count="selects.length" :title="`已标注照片(${sortPhotos.length})`">
+      <Header type="return_l" :count="selects.length" :title="`已标注照片(${sortPhotos.length})`">
         <ui-button
             :type="selectMode ? 'primary' : 'normal'"
             @click="selectMode = !selectMode"

+ 40 - 14
src/views/graphic/imageLabel.vue

@@ -21,7 +21,7 @@
             :key="menu.key"
             class="menu"
             :class="{active: uiType.current === menu.key}"
-            @click="uiType.change(menu.key as any)"
+            @click="clickHandler(menu.key)"
         >
           <ui-icon :type="menu.icon" class="icon" />
           <p>{{ menu.text }}</p>
@@ -37,6 +37,7 @@ import { uiType } from '@/hook/useGraphic'
 import icons, {typeKeys} from "@/graphic/CanvasStyle/ImageLabels/SVGIcons"
 import {computed, ref, watch} from "vue";
 import UiInput from "@/components/base/components/input/index.vue";
+import {uses} from '@/store/SVGLabel'
 
 
 const typeMenusRaw = typeKeys.map(({type, children}) => ({
@@ -48,25 +49,50 @@ const typeMenusRaw = typeKeys.map(({type, children}) => ({
   }))
 }))
 const keyword = ref("")
-console.log(typeMenusRaw)
-const typeMenus = computed(() => typeMenusRaw
-  .map(
-    (typeMenu) => ({
-      ...typeMenu,
-      children: typeMenu.children
-        .filter(item => item.text.includes(keyword.value))
-        .sort((a, b) => a.icon.localeCompare(b.icon))
-    })
-  )
-  .filter(typeMenu => typeMenu.children.length > 0)
-)
+const typeMenus = computed(() => {
+  const raws = typeMenusRaw.map((typeMenu) => ({
+    ...typeMenu,
+    children: typeMenu.children
+      .filter(item => item.text.includes(keyword.value))
+      .sort((a, b) => a.icon.localeCompare(b.icon))
+  }));
+  const items = [
+    {
+      title: "常用",
+      children: uses.value
+        .sort((item1, item2) => item2.count - item1.count).slice(0, 10)
+        .map(item => {
+          for (let menu of typeMenusRaw) {
+            const findItem = menu.children.find(menuItem => menuItem.key === item.key);
+            if (findItem) {
+              return findItem
+            }
+          }
+        })
+        .filter(item => !!item)
+    },
+    ...raws
+  ]
+
+
+  return items.filter(item => item.children.length)
+})
 const showTypeMenu = ref()
 watch(
   typeMenus,
   () => showTypeMenu.value = typeMenus.value[0],
   { immediate: true }
 )
-console.log(typeMenus, showTypeMenu.value)
+
+const clickHandler = (key) => {
+  const findUse = uses.value.find(use => use.key === key);
+  if (findUse) {
+    findUse.count++
+  } else {
+    uses.value.push({ key, count: 1 })
+  }
+  uiType.change(key as any)
+}
 
 defineEmits<{ (e: "quit") }>();
 

+ 1 - 1
src/views/roads/index.vue

@@ -1,7 +1,7 @@
 <template>
   <MainPanel>
     <template v-slot:header>
-      <Header :count="selects.length" :title="`现场图管理(${sortPhotos.length})`" type="close">
+      <Header :count="selects.length" :title="`现场图管理(${sortPhotos.length})`" type="return_l">
         <ui-button
             :type="selectMode ? 'primary' : 'normal'"
             @click="selectMode = !selectMode"

+ 1 - 1
src/views/scene/index.vue

@@ -8,7 +8,7 @@
     <Measures />
     <Photo />
     <ButtonPane class="back fun-ctrl" size="48" @click="back" v-if="!childPage">
-      <ui-icon type="home" class="icon" />
+      <ui-icon type="return_l" class="icon" />
     </ButtonPane>
     <Mode />
   </template>