Browse Source

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

xushiting 2 years ago
parent
commit
c488cf7c04

File diff suppressed because it is too large
+ 1 - 1
server/test/SS-t-P1d6CwREny2/attach/sceneStore


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

@@ -280,6 +280,19 @@ export default class UIControl {
     this._prompts.push(Message.success({ msg }));
   }
 
+  // 进入持续添加出确认与取消框
+  showConfirm() {
+    this.graphicStateUI.continuedMode = true
+  }
+  confirmEntry() {
+    console.log("确认")
+    this.graphicStateUI.continuedMode = false
+  }
+  confirmCancel() {
+    console.log("取消")
+    this.graphicStateUI.continuedMode = false
+  }
+
   hidePrompt() {
     for (let prompt of this._prompts) {
       prompt();

+ 1 - 0
src/hook/useGraphic.ts

@@ -35,6 +35,7 @@ export const graphicState = ref({
   canAngleLocationMode: false,
   canAllLocationMode: false,
   existsBaseLine: false,
+  continuedMode: false
 })
 
 export const setCanvas = async (canvas: HTMLCanvasElement, data: Ref<AccidentPhoto | RoadPhoto>) => {

+ 44 - 0
src/views/graphic/confirm.vue

@@ -0,0 +1,44 @@
+<template>
+  <div class="confirm">
+    <GraphicAction class="confirm-action">
+      <ui-icon
+          type="checkbox1"
+          ctrl
+          @click="() => drawRef.uiControl.confirmEntry()"
+      />
+    </GraphicAction>
+    <GraphicAction class="confirm-action">
+      <ui-icon
+          type="close"
+          ctrl
+          @click="() => drawRef.uiControl.confirmCancel()"
+      />
+    </GraphicAction>
+  </div>
+</template>
+
+<script setup lang="ts">
+import {customMap} from "@/hook";
+import GraphicAction from "@/components/button-pane/index.vue";
+import UiIcon from "@/components/base/components/icon/index.vue";
+import {uiType, drawRef} from '@/hook/useGraphic'
+
+</script>
+
+<style scoped lang="scss">
+.confirm {
+  position: absolute;
+  left: 50%;
+  bottom: var(--boundMargin);
+  width: 145px;
+  display: flex;
+  justify-content: space-between;
+}
+
+.confirm-action {
+  position: static;
+  width: 64px;
+  font-size: 22px;
+  justify-content: center;
+}
+</style>

+ 5 - 3
src/views/graphic/index.vue

@@ -18,7 +18,8 @@
       />
     </GraphicAction>
     <VectorMenus :menus="focusMenus" v-if="focusMenus" />
-    <Component :is="geoComponent as any" v-if="geoComponent" :geo="currentVector"/>
+    <Confirm v-if="graphicState.continuedMode" />
+    <Component :is="geoComponent as any" v-else-if="geoComponent" :geo="currentVector"/>
   </MainPanel>
 </template>
 
@@ -30,12 +31,12 @@ import Container from './container.vue'
 import GraphicAction from '@/components/button-pane/index.vue'
 import UiIcon from "@/components/base/components/icon/index.vue";
 import VectorMenus from './vectorMenus.vue'
+import Confirm from './confirm.vue'
 import {router} from '@/router'
-
 import {computed} from "vue";
 import {customMap} from '@/hook'
 import {focusMenuRaw, generateMixMenus, mainMenusRaw, photoMenusRaw, Mode, UITypeExtend} from './menus'
-import {currentVector} from "@/hook/useGraphic";
+import {currentVector, graphicState} from "@/hook/useGraphic";
 import geos, {GlobalComp} from "./geos/index";
 
 const menusRaws = computed(() => {
@@ -45,6 +46,7 @@ const menusRaws = computed(() => {
 const store = computed(() => generateMixMenus(
   "extend",
   (mainMenuRaw) => ({
+    ...mainMenuRaw,
     title: mainMenuRaw.text,
     name: mainMenuRaw.key,
     isRoute: false,

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

@@ -5,6 +5,7 @@ import {
   generateMixMenus as generateMixMenusRaw
 } from '@/utils/menus'
 import Message from "@/components/base/components/message/message.vue";
+import {computed} from "vue";
 
 export enum Mode {
   Road,
@@ -75,7 +76,11 @@ export const templateMenusRaw = [
 ]
 
 export const measureMenusRaw = [
-  { key: UIType.BaseLine, text: "基准线" },
+  {
+    key: UIType.BaseLine,
+    text: "基准线",
+    disabled: computed(() => graphicState.value.existsBaseLine)
+  },
   { key: UIType.BasePoint, text: "基准点" },
   { key: UIType.NormalLocationMode, text: "自由测量" },
   {

+ 2 - 0
src/views/sys/menu/item/index.vue

@@ -7,6 +7,7 @@
     :ref="attrs.children[0].menuRef"
     :data-route-name="attrs.atom.name"
     class="menu-item"
+    :class="{disabled: attrs.atom.disabled?.value}"
     @enter="enterHandler"
     @leave="leaveHandler"
     @click="emit('select', attrs.atom)"
@@ -36,6 +37,7 @@
     :ref="attrs.children[index].menuRef"
     :data-route-name="raw.name"
     class="menu-item child-menu-item"
+    :class="{disabled: raw.disabled}"
     @enter="enterHandler(index)"
     @leave="leaveHandler(index)"
     @click="selectHandler(index, raw)"