Răsfoiți Sursa

feat:工程iframe地址问题

ananzhusen 1 lună în urmă
părinte
comite
b52fa4e488
1 a modificat fișierele cu 64 adăugiri și 36 ștergeri
  1. 64 36
      src/services/project.ts

+ 64 - 36
src/services/project.ts

@@ -575,8 +575,8 @@ let downloadList = [];
 
 const isV = (url) => {
   return (
-    url.indexOf(`v${rootDomain}`) !== -1 ||
-    url.indexOf(`view${rootDomain}/v`) !== -1 ||
+    url.indexOf(`v.le5le.com`) !== -1 ||
+    url.indexOf(`view.le5le.com/v`) !== -1 ||
     url.indexOf(`/view/v`) !== -1 ||
     url.indexOf(`/preview`) !== -1
   );
@@ -584,22 +584,30 @@ const isV = (url) => {
 
 const is3D = (url) => {
   return (
-    url.indexOf(`3d${rootDomain}`) !== -1 ||
-    url.indexOf(`view${rootDomain}/3d`) !== -1 ||
+    url.indexOf(`3d.le5le.com`) !== -1 ||
+    url.indexOf(`view.le5le.com/3d`) !== -1 ||
     url.indexOf(`/view/3d`) !== -1
   );
 };
 
 const is2D = (url) => {
   return (
-    url.indexOf(`2d${rootDomain}`) !== -1 ||
-    url.indexOf(`view${rootDomain}/2d`) !== -1 ||
+    url.indexOf(`2d.le5le.com`) !== -1 ||
+    url.indexOf(`view.le5le.com/2d`) !== -1 ||
     url.indexOf(`/view/2d`) !== -1
   );
 };
 
 const getPageDataByUrl = async (url) => {
-  let id = queryURLParams(url.split('?')[1])?.id;
+  // let id = queryURLParams(url.split('?')[1])?.id;
+  let params = queryURLParams(url.split('?')[1]);
+  let id = params?.id;
+  delete params.id;
+  let search = '';
+  for(let key in params){
+    search += `&${key}=${params[key]}`
+  }
+
   if (isV(url)) {
     if (!pageDatas[id]) {
       let data = await getCollection('v', id);
@@ -607,9 +615,9 @@ const getPageDataByUrl = async (url) => {
     }
     //TODO 更改图纸中的iframe地址
     if (downloadType === Frame.html) {
-      return `/view?data=${id}`; //`/view/v?data=${id}`
+      return `/view?data=${id}${search}`; //`/view/v?data=${id}`
     } else {
-      return `/2d?id=${id}`;
+      return `/2d?id=${id}${search}`;
     }
   } else if (is3D(url)) {
     if (!page3dDatas[id]) {
@@ -617,9 +625,9 @@ const getPageDataByUrl = async (url) => {
       page3dDatas[id] = data.data;
     }
     if (downloadType === Frame.html) {
-      return `/view?data=${id}`; //`/view/v?data=${id}`
+      return `/view?data=${id}${search}`; //`/view/v?data=${id}`
     } else {
-      return `/view/index.html?data=${id}`;
+      return `/view/index.html?data=${id}${search}`;
     }
   } else if (is2D(url)) {
     if (!page2dDatas[id]) {
@@ -627,9 +635,9 @@ const getPageDataByUrl = async (url) => {
       page2dDatas[id] = data.data;
     }
     if (downloadType === Frame.html) {
-      return `/view?data=${id}`; //`/view/v?data=${id}`
+      return `/view?data=${id}${search}`; //`/view/v?data=${id}`
     } else {
-      return `/2d?id=${id}`;
+      return `/2d?id=${id}${search}`;
     }
   }
 };
@@ -1454,6 +1462,20 @@ const deepUpdateID = (treeData, _2dIDMap) => {
   });
 };
 
+function getSearch(url){
+  let params = queryURLParams(url.split('?')[1]);
+  let id = params?.id;
+  delete params.id;
+  let search = '';
+  for(let key in params){
+    search += `&${key}=${params[key]}`
+  }
+  return {
+    id,
+    search
+  }
+}
+
 const update2dData = async (_data, _2dIDMap, _3dIDMap) => {
   let domain = 'https://view.le5le.com';
   // if (isDownload || location.origin.indexOf('le5le.com') === -1) {
@@ -1469,11 +1491,11 @@ const update2dData = async (_data, _2dIDMap, _3dIDMap) => {
     );
     for (let i = 0; i < pens.length; i++) {
       let pen = pens[i];
-      let id = queryURLParams(pen.iframe.split('?')[1])?.id;
+      let { id, search } = getSearch(pen.iframe);
       if (is3D(pen.iframe)) {
-        pen.iframe = `${domain}/3d/?id=${_3dIDMap[id]}`;
+        pen.iframe = `${domain}/3d/?id=${_3dIDMap[id]}${search}`;
       } else {
-        pen.iframe = `${domain}/v/?id=${_2dIDMap[id]}`;
+        pen.iframe = `${domain}/v/?id=${_2dIDMap[id]}${search}`;
       }
     }
 
@@ -1492,22 +1514,25 @@ const update2dData = async (_data, _2dIDMap, _3dIDMap) => {
                 is3D(action.params) ||
                 isV(action.params)
               ) {
-                let id = queryURLParams(action.params.split('?')[1])?.id;
-                action.params = `${domain}/v/?id=${_2dIDMap[id]}`;
+                // let id = queryURLParams(action.params.split('?')[1])?.id;
+                let { id, search } = getSearch(action.params);
+                action.params = `${domain}/v/?id=${_2dIDMap[id]}${search}`;
               }
             } else if (action.action === 1) {
               //更改iframe属性
               if (action.value?.iframe) {
                 if (is2D(action.value.iframe) || isV(action.value.iframe)) {
-                  let id = queryURLParams(
-                    action.value.iframe.split('?')[1]
-                  )?.id;
-                  action.value.iframe = `${domain}/v/?id=${_2dIDMap[id]}`;
+                  // let id = queryURLParams(
+                  //   action.value.iframe.split('?')[1]
+                  // )?.id;
+                  let { id, search } = getSearch(action.value.iframe);
+                  action.value.iframe = `${domain}/v/?id=${_2dIDMap[id]}${search}`;
                 } else if (is3D(action.value.iframe)) {
-                  let id = queryURLParams(
-                    action.value.iframe.split('?')[1]
-                  )?.id;
-                  action.value.iframe = `${domain}/3d/?id=${_3dIDMap[id]}`;
+                  // let id = queryURLParams(
+                  //   action.value.iframe.split('?')[1]
+                  // )?.id;
+                  let { id, search } = getSearch(action.value.iframe);
+                  action.value.iframe = `${domain}/3d/?id=${_3dIDMap[id]}${search}`;
                 }
               }
             } else if (action.action === 13) {
@@ -1531,22 +1556,25 @@ const update2dData = async (_data, _2dIDMap, _3dIDMap) => {
                   is3D(action.params) ||
                   isV(action.params)
                 ) {
-                  let id = queryURLParams(action.params.split('?')[1])?.id;
-                  action.params = `${domain}/v/?id=${_2dIDMap[id]}`;
+                  // let id = queryURLParams(action.params.split('?')[1])?.id;
+                  let { id, search } = getSearch(action.params);
+                  action.params = `${domain}/v/?id=${_2dIDMap[id]}${search}`;
                 }
               } else if (action.action === 1) {
                 //更改iframe属性
                 if (action.value?.iframe) {
                   if (is2D(action.value.iframe) || isV(action.value.iframe)) {
-                    let id = queryURLParams(
-                      action.value.iframe.split('?')[1]
-                    )?.id;
-                    action.value.iframe = `${domain}/v/?id=${_2dIDMap[id]}`;
+                    // let id = queryURLParams(
+                    //   action.value.iframe.split('?')[1]
+                    // )?.id;
+                    let { id, search } = getSearch(action.value.iframe);
+                    action.value.iframe = `${domain}/v/?id=${_2dIDMap[id]}${search}`;
                   } else if (is3D(action.value.iframe)) {
-                    let id = queryURLParams(
-                      action.value.iframe.split('?')[1]
-                    )?.id;
-                    action.value.iframe = `${domain}/3d/?id=${_3dIDMap[id]}`;
+                    // let id = queryURLParams(
+                    //   action.value.iframe.split('?')[1]
+                    // )?.id;
+                    let { id, search } = getSearch(action.value.iframe);
+                    action.value.iframe = `${domain}/3d/?id=${_3dIDMap[id]}${search}`;
                   }
                 }
               } else if (action.action === 13) {