Browse Source

fix:组件预览&项目删除

ananzhusen 7 months ago
parent
commit
4b94609acc
3 changed files with 30 additions and 6 deletions
  1. 8 2
      src/views/Preview.vue
  2. 19 4
      src/views/components/Graphics.vue
  3. 3 0
      src/views/components/View.vue

+ 8 - 2
src/views/Preview.vue

@@ -12,7 +12,7 @@ import { defaultFormat } from '@/services/defaults';
 import { useRouter, useRoute } from 'vue-router';
 import { Meta2d, Options, Pen } from '@meta2d/core';
 import { registerBasicDiagram } from '@/services/register';
-import { cdn, getLe5leV } from '@/services/api';
+import { cdn, getLe5leV,getComponents } from '@/services/api';
 import { getDownloadList, getPayList,getFrameDownloadList, Frame} from '@/services/download';
 const route = useRoute();
 
@@ -95,7 +95,13 @@ const watcher = watch(
 
 const open = async () => {
   if (route.query.id) {
-    const ret: any = await getLe5leV(route.query.id + '');
+    // const ret: any = await getLe5leV(route.query.id + '');
+    let ret: any;
+    if (route.query.c) {
+      ret = await getComponents(route.query.id + '');
+    } else {
+      ret = await getLe5leV(route.query.id + '',undefined , route.query.historyId as string);
+    }
     if(ret && ret.data){
       if(!ret.data.background){
         ret.data.background = '#1e2430';

+ 19 - 4
src/views/components/Graphics.vue

@@ -270,7 +270,7 @@
       @close="delDialog.show = false"
       @confirm="delComponent"
     >
-      确定删除该数据吗?删除后不可恢复!
+      {{current?'检测到该图纸正在被编辑,':''}}确定删除该数据吗?{{current?'画布将被清空,':''}}删除后不可恢复!
     </t-dialog>
     <!-- <t-dialog
       v-if="chargeDialog.show"
@@ -387,7 +387,7 @@
 
 <script lang="ts" setup>
 import { onMounted, onUnmounted, reactive, ref } from 'vue';
-import { useRouter } from 'vue-router';
+import { useRouter, useRoute } from 'vue-router';
 import { MessagePlugin } from 'tdesign-vue-next';
 import axios from 'axios';
 import { deepClone } from '@meta2d/core';
@@ -446,6 +446,7 @@ import Structure from './Structure.vue';
 const { user } = useUser();
 const { setFolder, getFolder } = useFolder();
 const router = useRouter();
+const route = useRoute();
 const { select } = useSelection();
 const activedGroup = ref('');
 const activeAssets = ref('system');
@@ -1778,6 +1779,11 @@ const onMenu = async (val: string) => {
       hideContextmenu();
       break;
     case 'del':
+      if(route.query.id===id){
+        current.value = true;
+      }else{
+        current.value = false;
+      }
       delDialog.show = true;
       Object.assign(delDialog.contextmenuObj, contextmenu);
       break;
@@ -1994,7 +2000,7 @@ const _delComponent = async () => {
 
   MessagePlugin.success('删除成功');
 };
-
+const current = ref(false);
 const delComponent = async () => {
   // const id = contextmenu.component._id || contextmenu.component.id;
   if (['组件', '方案', '模板'].includes(activedGroup.value)) {
@@ -2026,6 +2032,14 @@ const delComponent = async () => {
         }
       }
     );
+    if(current.value){
+      router.push({
+        path: '/',
+        query: {
+          r: Date.now() + '',
+        },
+      });
+    };
   } else {
     const id =
       delDialog.contextmenuObj.component._id ||
@@ -2042,7 +2056,7 @@ const delComponent = async () => {
         }
       }
     );
-  }
+  // }
   let fullname: string =
     delDialog.contextmenuObj.component.fullname ||
     delDialog.contextmenuObj.component.image;
@@ -2059,6 +2073,7 @@ const delComponent = async () => {
     fullnames: [fullname],
     physically: true,
   });
+  }
   delDialog.show = false;
   delDialog.contextmenuObj = {};
 

+ 3 - 0
src/views/components/View.vue

@@ -1594,6 +1594,9 @@ const preview = async () => {
   if (data.id) {
     url += `&id=${data.id}`;
   }
+  if(route.query.c||data.component){
+    url += '&c=1';
+  }
   window.open(
     url,
     '',