ananzhusen 3 місяців тому
батько
коміт
b3e3d4d6a7
3 змінених файлів з 47 додано та 14 видалено
  1. 17 0
      src/services/common.ts
  2. 19 10
      src/views/components/Header.vue
  3. 11 4
      src/views/components/View.vue

+ 17 - 0
src/services/common.ts

@@ -118,6 +118,23 @@ export const useDot = () => {
   };
 };
 
+const anchorShow = ref(false);
+
+export const useDAnchor = () => {
+  const getDAnchor = async () => {
+    return anchorShow.value;
+  };
+  const setDAnchor = async (value = true) => {
+    anchorShow.value = value;
+  };
+
+  return {
+    anchorShow,
+    getDAnchor,
+    setDAnchor,
+  };
+};
+
 const { user } = useUser();
 
 export enum SaveType {

+ 19 - 10
src/views/components/Header.vue

@@ -201,11 +201,7 @@
         </t-dropdown-item>
         <t-dropdown-item>
           <a @click="onToggleAnchor">
-            <div
-              class="flex"
-              :style="{
-                color: showAnchor ? '' : '#4f5b75',
-              }">
+            <div class="flex">
               {{$t('添加')}}/{{$t('删除锚点')}} <span class="flex-grow"></span> A
             </div>
           </a>
@@ -583,10 +579,11 @@ import {
 import { formComponents, rootDomain } from '@/services/defaults';
 import Pay from './Pay.vue';
 import {getNetJsDiagram} from '@/services/material';
-import { useMeta2dData } from '@/services/common';
+import { useMeta2dData, useDAnchor } from '@/services/common';
 import { upload } from '@/services/file';
 import { load3d } from '@/services/load3d';
 
+const {anchorShow,setDAnchor } = useDAnchor();
 const { enterprise } = useEnterprise();
 const router = useRouter();
 const route = useRoute();
@@ -681,6 +678,8 @@ const getIotPensMap = () => {
 };
 nextTick(() => {
   meta2d.on('opened', initMeta2dName);
+  meta2d.on('click',anchorClick);
+
   window.addEventListener('message', dealWithMessage);
   getIotPensMap();
 });
@@ -758,6 +757,8 @@ const dealWithMessage = async (e) => {
 
 onUnmounted(() => {
   meta2d.off('opened', initMeta2dName);
+  meta2d.off('click',anchorClick);
+
   window.removeEventListener('message', dealWithMessage);
 });
 
@@ -2826,10 +2827,11 @@ const onDelete = () => {
 const onToggleAnchor = () => {
   //取消连线状态
   // meta2d.store.options.disableAnchor = false;
-  if (!meta2d.store.options.disableAnchor) {
-    meta2d.canvas.drawingLineName && drawPen();
-    meta2d.toggleAnchorMode();
-  }
+  // if (!meta2d.store.options.disableAnchor) {
+  meta2d.store.options.disableAnchor = false;
+  meta2d.canvas.drawingLineName && drawPen();
+  meta2d.toggleAnchorMode();
+  // }
 };
 
 const onAddAnchorHand = () => {
@@ -2873,8 +2875,15 @@ const changeDisableAnchor = () => {
     // 禁用瞄点开了,需要关闭自动瞄点
     onAutoAnchor();
   }
+  setDAnchor(showAnchor.value);
 };
 
+const anchorClick = (e)=>{
+  if(!showAnchor.value){
+    meta2d.store.options.disableAnchor = true;
+  }
+}
+
 const payListDialog = reactive({
   show: false,
   title:'',

+ 11 - 4
src/views/components/View.vue

@@ -905,11 +905,12 @@ import ChargeCloudPublish from './ChargeCloudPublish.vue';
 import { AddIcon, EditIcon, SaveIcon, RootListIcon,SlashIcon, RefreshIcon, ServerIcon, CaretRightIcon, ShareIcon, QrcodeIcon, CloudIcon, DeleteIcon, SearchIcon, RollbackIcon, LaptopIcon, StopCircleIcon , PlayCircleIcon, PlayCircleStrokeIcon, LayersIcon, FullscreenExitIcon, FileIcon, FileExcelIcon, CloudDownloadIcon, PenBrushIcon, PenIcon, LayoutIcon } from 'tdesign-icons-vue-next';
 import {transformData} from '@/services/utils';
 import { importExcel, saveAsExcel } from '@/services/excel';
-import { typeOptions } from '@/services/common';
+import { typeOptions, useDAnchor } from '@/services/common';
 import { upload } from '@/services/file';
 import { getCollectionList } from '@/services/api';
 import { parseSearchToken } from '@le5le/auth-token';
 
+const {anchorShow } = useDAnchor();
 const router = useRouter();
 const route = useRoute();
 const { user, getUser } = useUser();
@@ -1372,7 +1373,9 @@ const oneDraw = () => {
     if (!alwaysD.value) {
       meta2d.finishDrawLine();
       meta2d.drawLine();
-      meta2d.store.options.disableAnchor = true;
+      if(!anchorShow.value){
+        meta2d.store.options.disableAnchor = true;
+      }
     }
   } else {
     oneD.value = true;
@@ -1384,7 +1387,9 @@ const oneDraw = () => {
     meta2d.drawLine();
     oneD.value = false;
     alwaysD.value = false;
-    meta2d.store.options.disableAnchor = true;
+    if(!anchorShow.value){
+      meta2d.store.options.disableAnchor = true;
+    }
   }
 };
 const alwaysDraw = () => {
@@ -1427,7 +1432,9 @@ const lineAdd = (pens: Pen[]) => {
         setTimeout(() => {
           meta2d.finishDrawLine();
           meta2d.drawLine();
-          meta2d.store.options.disableAnchor = true;
+          if(!anchorShow.value){
+            meta2d.store.options.disableAnchor = true;
+          }
         }, 100);
       }
     }