gemercheung 1 год назад
Родитель
Сommit
9bf9969653

+ 13 - 0
src/api/scene/list.ts

@@ -10,6 +10,7 @@ import {
   collaborateParam,
   unCollaborateParam,
   collaborateDetailParam,
+  GenOBJParam,
 } from './model';
 import { Result } from '/#/axios';
 
@@ -27,6 +28,7 @@ enum Api {
   collaborate = 'service/manage_jp/contractor/collaborate',
   unCollaborate = 'service/manage_jp/contractor/unCollaborate',
   unCollaborateList = 'service/manage_jp/contractor/details',
+  genOBJ = 'service/manage_jp/scene/generateObjFile',
 }
 
 /**
@@ -164,3 +166,14 @@ export const getUnCollaborateDetailApi = (params: collaborateDetailParam) =>
       ignoreCancelToken: true,
     },
   });
+
+export const generateObjFileAPI = (params: GenOBJParam) =>
+  defHttp.post<Result>({
+    url: Api.genOBJ,
+    params,
+
+    headers: {
+      // @ts-ignore
+      ignoreCancelToken: true,
+    },
+  });

+ 3 - 0
src/api/scene/model.ts

@@ -97,6 +97,9 @@ export interface unCollaborateParam {
 export interface collaborateDetailParam {
   id: string;
 }
+export interface GenOBJParam {
+  num: string;
+}
 
 /**
  * @description: Request list return value

+ 2 - 0
src/locales/lang/ja/apiCode.ts

@@ -73,6 +73,8 @@ export default {
   errCode5019: '企業が存在しない、または企業管理者が存在しないです。',
   errCode5020: 'このゼネコンは存在しまん。',
   errCode5021: 'アーカイブに失敗、シーンはまだ計算中です。',
+  errCode5022: 'このシーンはOBJの生成をサポートしません',
+  errCode5023: 'このシーンはOBJの生成をサポートしません',
 
   errCode50006: 'メール送信テンプレートが存在しません',
   errCode50050: '長さが限界を超えています!',

+ 2 - 0
src/locales/lang/zh-CN/apiCode.ts

@@ -24,6 +24,8 @@ export default {
   errCode5019: '场景所属公司不存在,或者公司管理员不存在',
   errCode5020: '总承包商不存在',
   errCode5021: '归档失败,场景未计算完成',
+  errCode5022: '只能操作激光场景',
+  errCode5023: '当前场景不支持生成 obj',
 
   errCode50006: '邮件发送模板不存在',
   errCode50050: '长度超出限制!',

+ 27 - 26
src/views/scenes/list.vue

@@ -129,7 +129,7 @@
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useModal } from '/@/components/Modal';
   import { Tabs } from 'ant-design-vue';
-  import { sceneDetail, buildSceneObj } from '/@/api/lastApi/index';
+  // import { sceneDetail, buildSceneObj } from '/@/api/lastApi/index';
   // import { Progress } from 'ant-design-vue';
   // import { h } from 'vue';
   // addDownloadNumApi,
@@ -144,6 +144,7 @@
     UpgradeToV4,
     sceneCopy,
     patchcoldStorageApi,
+    generateObjFileAPI,
   } from '/@/api/scene/list';
   import { useI18n } from '/@/hooks/web/useI18n';
   import {
@@ -344,31 +345,31 @@
         },
       });
       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}`));
-        }
+        await generateObjFileAPI({ num: record.num });
+        createMessage.success(t('common.optSuccess'));
+        reload();
+        // 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 });
+        //       }
+
+        //     },
+        //   });
+        // } else {
+        //   createMessage.error(t(`apiCode.errCode${data.code}`));
+        // }
       }
       function handleLivestream(item) {
         let url = item.webSite;