Selaa lähdekoodia

Merge branch 'v1.9.0-jm' of http://192.168.0.115:3000/bill/fuse-code into v1.9.0-jm

xzw 7 kuukautta sitten
vanhempi
commit
7bca7c0c51

+ 3 - 5
src/api/fuse-model.ts

@@ -67,7 +67,7 @@ export const getSceneUrl = (sceneData: Scene) => {
         url = sceneData.modelGlbUrl;
         break;
       default:
-        url = sceneData.modelGlbUrl;
+        url = sceneData.modelGlbUrl || sceneData.modelObjUrl;
     }
     try {
       url = JSON.parse(url);
@@ -104,7 +104,7 @@ const serviceToLocal = (
       : "-",
     modelId: serviceModel.sceneData?.modelId,
     fusionId: serviceModel.fusionId,
-    type: serviceModel.sceneData?.type,
+    type: serviceModel.sceneData?.type === SceneType.DSFXJ ? SceneType.SWKK : serviceModel.sceneData?.type,
     size: serviceModel.sceneData?.modelSize,
     raw: serviceModel.sceneData,
     time: serviceModel.sceneData?.createTime,
@@ -135,9 +135,7 @@ export const fetchFuseModels = async () => {
   const serviceModels = await axios.get<ServiceFuseModel[]>(FUSE_MODEL_LIST, {
     params: { caseId: params.caseId },
   });
-  console.error(
-    serviceModels.map((item, index) => serviceToLocal(item, index == 0))
-  );
+  console.log('===>', serviceModels.map((item, index) => serviceToLocal(item, index == 0)))
   return serviceModels.map((item, index) => serviceToLocal(item, index == 0));
 };
 

+ 20 - 0
src/components/materials/index.vue

@@ -56,6 +56,9 @@
             <template v-if="column.key === 'size'">
               {{ getSizeStr(record.size) }}
             </template>
+            <template v-if="column.key === 'group'">
+              <span class="group-str">{{ record.group }}</span>
+            </template>
             <template v-else-if="column.key === 'action'">
               <span>
                 <a @click="delHandler(record.id)">删除</a>
@@ -259,6 +262,14 @@ const handleTableChange: TableProps["onChange"] = (pag, filters) => {
     // overflow: hidden;
   }
 }
+
+.group-str {
+  display: block;
+  overflow: hidden;
+  text-overflow: ellipsis; //文本溢出显示省略号
+  white-space: nowrap; //文本不会换行
+  max-width: 200px;
+}
 </style>
 
 <style lang="less">
@@ -273,4 +284,13 @@ const handleTableChange: TableProps["onChange"] = (pag, filters) => {
 .content-header-search {
   flex: 1;
 }
+
+.ant-table-filter-dropdown .ant-dropdown-menu-title-content > span {
+  max-width: 200px;
+  overflow: hidden;
+  display: inline-block;
+  vertical-align: middle;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
 </style>

+ 3 - 1
src/components/path/list.vue

@@ -37,7 +37,9 @@ const updateLinePosition = (ndx: number, linePosition: Path["linePosition"]) =>
   }
 };
 const nodeHandler = (index: number, node: any) => {
-  nodes[index] = { node, id: props.paths[index].id };
+  if (index < props.paths.length) {
+    nodes[index] = { node, id: props.paths[index].id };
+  }
 };
 
 defineExpose(nodes);

+ 1 - 0
src/components/tagging/sign-new.vue

@@ -142,6 +142,7 @@ const getPosition = () => ({
 let currentPosition = getPosition();
 let changeTimeout: any;
 tag.bus.on("changePosition", (data) => {
+  console.error(data);
   clearTimeout(changeTimeout);
   emit(
     "changePosition",

+ 4 - 0
src/env/index.ts

@@ -55,6 +55,10 @@ export type Params = {
   caseId: number,
   baseURL?: string,
   modelId?: string,
+  fileUrl?: string
+  sign?: string
+  type?: string
+  title?: string
   m?: string
   share?: boolean,
   single?: boolean

+ 34 - 2
src/main.ts

@@ -36,12 +36,44 @@ addHook({
   },
 });
 
+addHook({
+  before(config: any) {
+    if (params.sign) {
+      config.headers["sign"] = params.sign
+    }
+  },
+});
+
 watchEffect(
   (onCleanup) => {
     if (
-      [RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)
+      params.sign && [RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)
     ) {
-      const untokenURLS = [URL.AUTH_PWD];
+      const untokenURLS = [
+        URL.FUSE_MODEL_LIST,
+        URL.MODEL_LIST,
+        URL.GET_SETTING,
+        URL.TAGGING_LIST,
+        URL.TAGGING_POINT_LIST,
+        URL.TAGGING_STYLE_LIST,
+        URL.MESASURE_LIST,
+        URL.GUIDE_LIST,
+        URL.GUIDE_PATH_LIST,
+        URL.RECORD_LIST,
+        URL.RECORD_FRAGMENT_LIST,
+        URL.VIEW_LIST,
+        URL.FOLDER_TYPE_LIST,
+        URL.FLODER_LIST,
+        URL.MODEL_SIGN,
+        URL.CASE_INFO,
+        URL.PATH_LIST,
+        URL.AUTH_PWD,
+        '/fusion-xj/caseInquest/info',
+        '/fusion-xj/caseExtractDetail/info',
+        '/fusion-xj/caseInquest/downDocx',
+        '/fusion-xj/caseExtractDetail/downDocx',
+        '/fusion-xj/caseImg/getFfmpegImage'
+      ]
       addUnsetTokenURLS(...untokenURLS);
       onCleanup(() => {
         delUnsetTokenURLS(...untokenURLS);

+ 2 - 2
src/model/app.vue

@@ -137,8 +137,8 @@ export const Model = defineComponent({
           // 手动渲染融合场景
           console.log("手动渲染!");
           setTimeout(() => {
-            (window as any).viewer.setDisplay(true);
-          }, 100);
+            (window as any).viewer?.setDisplay(true);
+          }, 1000);
         }
 
         const interval = setInterval(async () => {

+ 0 - 1
src/sdk/association/path.ts

@@ -97,7 +97,6 @@ export const associationPaths = (sdk: SDK, el: HTMLDivElement) => {
             pathNodes.set(path, node.node);
           })
         })
-        console.error(pathNodes)
       },
       {immediate: true}
     );

+ 16 - 19
src/views/guide/path/edit-path.vue

@@ -223,24 +223,6 @@ watch(
 );
 
 const activePointNdx = ref(-1);
-watchEffect((onCleanup) => {
-  if (!node.value) return;
-  const $node = node.value;
-  const handler = (ndx: number) => {
-    activePointNdx.value = ndx;
-    console.error("change ndx", ndx);
-  };
-  $node.changeEditMode(true);
-  $node.bus.on("activePoint", handler);
-
-  console.log("监听");
-  onCleanup(() => {
-    console.log("取消监听");
-    $node.bus.off("activePoint", handler);
-    $node.changeEditMode(false);
-  });
-});
-
 const deletePoint = () => {
   node.value?.deletePoint(activePointNdx.value);
   activePointNdx.value = -1;
@@ -262,12 +244,27 @@ const keepAdding = () => {
 
 watch(
   node,
-  () => {
+  ($node, _, onCleanup) => {
+    if (!$node) return;
     if (!props.data.points.length) {
       keepAdding();
       console.error("keeplo");
       // nextTick(() => stopWatch());
     }
+
+    const handler = (ndx: number) => {
+      activePointNdx.value = ndx;
+      console.error("change ndx", ndx);
+    };
+    $node.changeEditMode(true);
+    $node.bus.on("activePoint", handler);
+
+    console.log("监听");
+    onCleanup(() => {
+      console.log("取消监听");
+      $node.bus.off("activePoint", handler);
+      $node.changeEditMode(false);
+    });
   },
   { immediate: true }
 );

+ 11 - 1
src/views/registration/index.vue

@@ -74,7 +74,13 @@ import { diffArrayChange } from "@/utils";
 import { useViewStack } from "@/hook";
 import { autoSaveFuseModels, getFuseModel, leave } from "@/store";
 import { router, RoutesName } from "@/router";
-import { currentModelStack, custom, showMeasuresStack } from "@/env";
+import {
+  currentModelStack,
+  custom,
+  showMeasuresStack,
+  showPathsStack,
+  showPathStack,
+} from "@/env";
 
 import type { ControlExpose } from "@/components/control-panl";
 
@@ -135,12 +141,16 @@ watchEffect((onCleanup) => {
   if (smodel) {
     smodel.enterAlignment();
     const pop = currentModelStack.push(model as any);
+    showPathStack.push(ref(undefined));
+    showPathsStack.push(ref(false));
 
     selectOptions.value = [options[0]];
 
     onCleanup(() => {
       smodel.leaveTransform();
       smodel.leaveAlignment();
+      showPathsStack.pop();
+      showPathStack.pop();
       pop();
     });
   } else if (isCurrent.value) {

+ 16 - 9
src/views/sign-model/index.vue

@@ -5,12 +5,7 @@ import { computed, ref } from "vue";
 import { loadModel, fuseModel as FModel } from "@/model";
 import { fetchScene, fetchScenesAll, getSceneUrl, Scene, SceneType } from "@/api";
 import { createFuseModels, defTitle, fuseModels, SceneStatus } from "@/store";
-import {
-  custom,
-  params,
-  showRightPanoStack,
-  viewModeStack,
-} from "@/env";
+import { custom, params, showRightPanoStack, viewModeStack } from "@/env";
 import { Dialog } from "bill/index";
 import { useViewStack, useActive } from "@/hook";
 import { sdk } from "@/sdk";
@@ -41,7 +36,19 @@ const loadSignModel = async () => {
     });
     const scenes = [...SSscenes, ...YDscenes, ...DDscenes];
     scene = scenes.find((scene) => scene.num === params.m);
-    console.log(scene);
+  } else if ("fileUrl" in params && "type" in params) {
+    const url = unescape(params.fileUrl!);
+
+    scene = {
+      modelId: 0,
+      modelTitle: decodeURIComponent(params.title!),
+      type: SceneType.SWMX,
+      modelDateType: params.type!,
+      model3dgsUrl: url,
+      modelShpUrl: url,
+      modelGlbUrl: url,
+      modelObjUrl: url,
+    } as Scene;
   }
 
   if (!scene) {
@@ -49,7 +56,7 @@ const loadSignModel = async () => {
   }
   if (active.value) {
     defTitle.value = scene.title || scene.modelTitle;
-
+    console.error(getSceneUrl(scene));
     const fuseModel = createFuseModels({
       modelId: scene.modelId,
       show: true,
@@ -75,7 +82,7 @@ useViewStack(() => {
   loadSignModel();
   return () => {
     fuseModels.value = bcModels;
-    pop && pop();
+    pop! && pop();
   };
 });
 </script>