Эх сурвалжийг харах

feat:连线相交弯曲功能

JosephHo 1 жил өмнө
parent
commit
7f379084c2

+ 19 - 1
src/services/common.ts

@@ -1076,4 +1076,22 @@ export function changeType(value: string) {
     return value;
   }
   return Number(value);
-}
+}
+// 附加缓存数据
+const extendData = reactive<any>({
+  lineIntersect: false,
+});
+
+export const useExtendData = () => {
+  const setExtendData = (key: any,value:any) => {
+    extendData[key] = value;
+  }
+  const getExtendData = (key: any) => {
+    return extendData[key];
+  }
+  return {
+    extendData,
+    getExtendData,
+    setExtendData,
+  };
+};

+ 31 - 3
src/views/components/FileProps.vue

@@ -103,7 +103,7 @@
         </t-space>
         <t-space direction="vertical" size="small" class="mt-8">
           <t-collapse
-            :defaultValue="['1', '2']"
+            :defaultValue="['1', '2','3']"
             expandIconPlacement="right"
             :borderless="true"
           >
@@ -255,6 +255,19 @@
                 </div>
               </t-space>
             </t-collapse-panel>
+            <t-collapse-panel value="3" header="辅助设置">
+              <t-space direction="vertical" size="small">
+                <div class="form-item">
+                  <label title="此功能仅对直线和折线有效">连线相交弯曲</label>
+                  <t-switch
+                      :value="extendData.lineIntersect"
+                      class="ml-8 mt-8"
+                      size="small"
+                      @change="changeLineIntersect"
+                    />
+                </div>
+              </t-space>
+            </t-collapse-panel>
           </t-collapse>
         </t-space>
       </t-tab-panel>
@@ -301,10 +314,12 @@ import { loadCss } from '@meta2d/core';
 import { defaultPureColor } from '@/services/defaults';
 import { useEnterprise } from '@/services/enterprise';
 import { MoreIcon, CloseIcon, EllipsisIcon} from 'tdesign-icons-vue-next';
-import { useMeta2dData } from '@/services/common';
+import { useMeta2dData,useExtendData } from '@/services/common';
+import { lineCross,clearLineCross } from '@meta2d/utils';
 
 const { getEnterprise } = useEnterprise();
 const { meta2dData, setMeta2dData } = useMeta2dData();
+const { extendData, setExtendData } = useExtendData();
 
 const headers = {
   Authorization: 'Bearer ' + (getCookie('token') || ''),
@@ -463,7 +478,14 @@ const fileRemoved = () => {
   meta2d.render();
   data.background = [];
 };
-
+const changeLineIntersect = (e:any)=>{
+  setExtendData('lineIntersect',e);
+  if(e){
+    lineCross(true);
+  }else{
+    clearLineCross();
+  }
+}
 const changeValue = (e: any, key: string) => {
   // @ts-ignore
   meta2d.store.data[key] = e;
@@ -487,10 +509,16 @@ onMounted(() => {
   }
   openData();
   meta2d.on('opened', openData);
+  if(extendData.lineIntersect){
+    lineCross(true);
+  }
 });
 
 onUnmounted(() => {
   meta2d.off('opened', openData);
+  setTimeout(()=>{
+    clearLineCross();
+  },2000);
 });
 
 function openData() {