tangning 2 лет назад
Родитель
Сommit
187e45be33

+ 29 - 0
src/api/lastApi/index.ts

@@ -0,0 +1,29 @@
+//import { defHttp } from '/@/utils/http/axios';
+//import { Result } from '/#/axios';
+import axios from 'axios';
+import { getToken } from '/@/utils/auth';
+const token = getToken();
+
+const config = {
+  headers: {
+    'Content-Type': 'application/json;charset=UTF-8',
+    fdToken: token,
+  },
+};
+const url = 'https://testlaser-jp.4dkankan.com/backend';
+// if (!window.location.host.includes('test')) {
+//   url = 'https://mega.4dkankan.jp';
+// }
+enum Api {
+  sceneDetail = url + '/laser/4dage/sceneDetail',
+  buildSceneObj = url + '/laser/4dage/scene/buildSceneObj',
+}
+
+/**
+ * @description: Get sample list value
+ */
+
+export const sceneDetail = (params) => axios.post(Api.sceneDetail, params, config);
+// axios.post(Api.sceneDetail, params, { ...config, data: params });
+
+export const buildSceneObj = (params) => axios.post(Api.buildSceneObj, params, config);

+ 6 - 0
src/locales/lang/ja/routes/scenes.ts

@@ -56,4 +56,10 @@ export default {
     content: 'シーンは同じカメラの下にバインドされます。 シーンをコピーしますか?',
     ok: 'コピー成功',
   },
+  creatobj: '生成 obj',
+  objTips: {
+    coverData: '重新生成Mesh场景将覆盖现有场景信息,计算过程中Mesh场景无法打开,确定要重新生成吗?',
+    Modifying: 'Mesh场景正在计算中,请耐心等待',
+    updateSuccess: '生成obj需要较长时间,请耐心等待',
+  },
 };

+ 6 - 0
src/locales/lang/zh-CN/routes/scenes.ts

@@ -7,6 +7,7 @@ export default {
   num: '场景码',
   process: '下载进度',
   jointVisit: '带看',
+  creatobj: '生成 obj',
   upgrade: '升级',
   sceneList: '场景列表',
   bindAnchor: '绑定主播',
@@ -56,4 +57,9 @@ export default {
     content: '复制场景,场景归属在原相机下。确定要复制场景吗?',
     ok: '复制成功',
   },
+  objTips: {
+    coverData: '重新生成Mesh场景将覆盖现有场景信息,计算过程中Mesh场景无法打开,确定要重新生成吗?',
+    Modifying: 'Mesh场景正在计算中,请耐心等待',
+    updateSuccess: '生成obj需要较长时间,请耐心等待',
+  },
 };

+ 4 - 1
src/utils/http/axios/Axios.ts

@@ -193,7 +193,10 @@ export class VAxios {
     const transform = this.getTransform();
 
     const { requestOptions } = this.options;
-
+    // if (conf.headers.fdToken) {
+    //   this.setHeader(conf.headers);
+    // }
+    console.log('options', this.options, conf);
     const opt: RequestOptions = Object.assign({}, requestOptions, options);
 
     const { beforeRequestHook, requestCatchHook, transformRequestHook } = transform || {};

+ 34 - 6
src/views/scenes/list.vue

@@ -61,11 +61,11 @@
                 disabled: record.status != -2,
                 onClick: handleCopy.bind(null, record),
               },
-              //{
-              //  label: t('routes.scenes.jointVisit'),
-              //  ifShow: record.isUpgrade != 1,
-              //  onClick: handleLivestream.bind(null, record),
-              //},
+              {
+                label: t('routes.scenes.creatobj'),
+                ifShow: record.status == -2 && tableType == 2,
+                onClick: handleGenerate.bind(null, record),
+              },
               {
                 // icon: 'dashicons:editor-kitchensink',
                 color: 'error',
@@ -106,7 +106,7 @@
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useModal } from '/@/components/Modal';
   import { Tabs } from 'ant-design-vue';
-  // import { uploadApi } from '/@/api/sys/upload';
+  import { sceneDetail, buildSceneObj } from '/@/api/lastApi/index';
   // import { Progress } from 'ant-design-vue';
   // import { h } from 'vue';
   // addDownloadNumApi,
@@ -287,6 +287,33 @@
           return T;
         },
       });
+      async function handleGenerate(record: Recordable) {
+        let { data } = await sceneDetail({ id: record.id });
+        let { buildObjStatus } = data.data;
+        let toastText =
+          buildObjStatus == 2
+            ? t('routes.scenes.objTips.Modifying')
+            : buildObjStatus == 1
+            ? t('routes.scenes.objTips.coverData')
+            : t('routes.scenes.objTips.updateSuccess');
+        console.log('buildObjStatus', data);
+        if (data.code === 200) {
+          createConfirm({
+            iconType: 'warning',
+            title: () => h('span', t('routes.scenes.creatobj')),
+            content: () => h('span', toastText),
+            onOk: async () => {
+              if (buildObjStatus !== 2) {
+                await buildSceneObj({ id: record.id });
+              }
+              createMessage.success(t('common.optSuccess'));
+              reload();
+            },
+          });
+        } else {
+          createMessage.error(t(`apiCode.errCode${data.code}`));
+        }
+      }
       function handleLivestream(item) {
         let url = item.webSite;
         let page = url.substring(url.lastIndexOf('/') + 1, url.lastIndexOf('.html'));
@@ -373,6 +400,7 @@
         registerTable,
         createMessage,
         t,
+        handleGenerate,
         openSceneEditor,
         handleDownloadScene,
         handleDelete,