Browse Source

Merge branch 'xj' of http://192.168.0.115:3000/bill/fuse-code into xj

xzw 1 năm trước cách đây
mục cha
commit
bab770dcd4

+ 3 - 3
src/api/offline.ts

@@ -5,15 +5,15 @@ import Axios from 'axios'
 
 export const setOfflineAxios = (axios: AxiosInstance) => {
   const data: {[key in string]: any} = {}
-  Axios.get('/package/data.json', {headers: { Accept: "application/json"}}).then(res => {
+  Axios.get('./package/data.json', {headers: { Accept: "application/json"}}).then(res => {
     Object.assign(data, res.data)
     ;(window as any).offlineData = data
   })
 
   // 流接口
   const files = {
-    '/fusion-xj/caseExtractDetail/downDocx': '/package/resource/caseExtractDetail.doc',
-    '/fusion-xj/caseInquest/downDocx': '/package/resource/caseInquest.doc',
+    '/fusion-xj/caseExtractDetail/downDocx': './package/resource/caseExtractDetail.doc',
+    '/fusion-xj/caseInquest/downDocx': './package/resource/caseInquest.doc',
   } as any
 
 

+ 30 - 29
src/layout/model-list/sign.vue

@@ -3,51 +3,52 @@
     <div class="model-header">
       <p>{{ model.title }}</p>
       <div class="model-action">
-        <ui-input 
-          type="checkbox" 
-          v-model="show" 
-          @click.stop 
-          :class="{disabled: model.error}"
+        <ui-input
+          type="checkbox"
+          v-model="show"
+          @click.stop
+          :class="{ disabled: model.error }"
         />
-        <ui-icon 
-          v-if="custom.modelsChangeStore" 
-          type="del" 
-          ctrl 
-          @click="$emit('delete')" 
+        <ui-icon
+          v-if="custom.modelsChangeStore"
+          type="del"
+          ctrl
+          @click="$emit('delete')"
         />
       </div>
     </div>
-    <div class="model-desc"  v-if="active">
+    <div class="model-desc" v-if="active">
       <p><span>数据来源:</span>{{ SceneTypeDesc[model.type] }}</p>
-      <p v-if="model.type !== SceneType.SWSS"><span>数据大小:</span>{{ model.size }}</p>
+      <p v-if="model.type !== SceneType.SWSS && model.size">
+        <span>数据大小:</span>{{ model.size }}
+      </p>
       <p><span>拍摄时间:</span>{{ model.time }}</p>
     </div>
   </div>
 </template>
 
 <script lang="ts" setup>
-import { getFuseModelShowVariable, SceneTypeDesc, SceneType } from '@/store'
-import { custom } from '@/env'
+import { getFuseModelShowVariable, SceneTypeDesc, SceneType } from "@/store";
+import { custom } from "@/env";
 
-import type { FuseModel } from '@/store'
-import { computed } from 'vue';
-import { currentModel, fuseModel } from '@/model';
+import type { FuseModel } from "@/store";
+import { computed } from "vue";
+import { currentModel, fuseModel } from "@/model";
 
-type ModelProps = { model: FuseModel, canChange?: boolean }
-const props = defineProps<ModelProps>()
-const active = computed(() => 
-  custom.currentModel === props.model && currentModel.value === fuseModel
-)
+type ModelProps = { model: FuseModel; canChange?: boolean };
+const props = defineProps<ModelProps>();
+const active = computed(
+  () => custom.currentModel === props.model && currentModel.value === fuseModel
+);
 
 type ModelEmits = {
-  (e: 'changeSelect', selected: boolean): void
-  (e: 'delete'): void
-  (e: 'click'): void
-}
+  (e: "changeSelect", selected: boolean): void;
+  (e: "delete"): void;
+  (e: "click"): void;
+};
 defineEmits<ModelEmits>();
 
-const show = getFuseModelShowVariable(props.model)
-
+const show = getFuseModelShowVariable(props.model);
 </script>
 
-<style lang="scss" scoped src="./style.scss"></style>
+<style lang="scss" scoped src="./style.scss"></style>

+ 12 - 3
src/sdk/sdk.ts

@@ -1,9 +1,10 @@
 import cover from './cover'
 import { createLoadPack, loadLib } from '@/utils'
 
-import { FuseModelAttrs, FuseModel, GuidePath, MeasureType, Measure as StoreMeasure, MeasurePosition } from '@/store'
+import { FuseModelAttrs, FuseModel, GuidePath, MeasureType, Measure as StoreMeasure, MeasurePosition, fuseModelsLoaded } from '@/store'
 import type { Emitter } from 'mitt'
 import { SettingResourceType } from '@/api/setting-resource'
+import { watchEffect } from 'vue'
 
 
 type SceneModelAttrs = FuseModelAttrs & { select: boolean }
@@ -146,8 +147,16 @@ export const initialSDK = async (props: InialSDKProps) => {
   await loadLib(`./lib/potree/potree.js`)
 
   const localSdk = cover(props.layout, false) as unknown as SDK
-
-  (window as any).sdk = sdk = localSdk
+  // (window as any).sdk = 
+  sdk = localSdk;
+    watchEffect(() => {
+      if (fuseModelsLoaded.value) {
+        setTimeout(() => {
+        (window as any).sdk = localSdk
+        console.error(fuseModelsLoaded.value)
+      }, 1000)
+      }
+    })
   sdk.layout = props.layout
   sdk.hideGrid();
   sdk.screenshot = createLoadPack(sdk.screenshot)

+ 67 - 13
src/views/setting/index.vue

@@ -74,19 +74,25 @@
               v-else-if="back.backType === 'icon'"
             />
             <span :style="{ background: back.resource }" v-else></span>
-            <p class="back-item-desc">
+            <a
+              class="back-item-desc"
+              :title="
+                (settingResourceTypeDesc[back.backType] &&
+                  settingResourceTypeDesc[back.backType] + '-') + back.name
+              "
+            >
               {{
                 (settingResourceTypeDesc[back.backType] &&
                   settingResourceTypeDesc[back.backType] + "-") + back.name
               }}
-            </p>
-            <ui-button
+            </a>
+
+            <ui-icon
               v-if="!back.sys"
-              type="primary"
+              type="close"
               class="del"
               @click.stop="delBack(back)"
-              >删除</ui-button
-            >
+            />
           </div>
           <ui-input
             class="input"
@@ -181,9 +187,11 @@ import {
   isEdit,
   updataSetting,
   caseProject,
+  createTemploraryID,
+  save,
 } from "@/store";
 import { ref } from "vue";
-import { togetherCallback, getFileUrl, loadPack } from "@/utils";
+import { togetherCallback, getFileUrl, loadPack, asyncTimeout } from "@/utils";
 import { showRightPanoStack, showRightCtrlPanoStack } from "@/env";
 import { sdk, setBackdrop, setMap } from "@/sdk";
 import {
@@ -294,7 +302,27 @@ const changeBack = (
   }
 };
 
-const delBack = (() => {
+const delBack = async (back: SettingResource) => {
+  if (setting.value?.back === back.resource) {
+    changeBack(
+      settingResources.value[0].resource,
+      settingResources.value[0].backType,
+      setting!.value.openCompass,
+      setting!.value.mapOpen,
+      setting!.value.mapType,
+      { scale: setting!.value.scale!, rotate: setting!.value.rotate! }
+    );
+    await asyncTimeout(100);
+    await save();
+  }
+
+  const ndx = settingResources.value.indexOf(back);
+  if (~ndx) {
+    settingResources.value.splice(ndx, 1);
+  }
+  await delSettingResource(back);
+};
+const delBack1 = (() => {
   let isFirst = true;
   let oldResources: SettingResource[];
   let dels: SettingResource[] = [];
@@ -374,7 +402,7 @@ const options = [
     label: settingResourceTypeDesc[SettingResourceType.bottomImage],
   },
 ];
-const addTemp = ref<Omit<SettingResource, "id">>();
+const addTemp = ref<SettingResource>();
 const iconUpload = async (data: any) => {
   addTemp.value = {
     resource: await uploadFile({ blob: data.file as any, url: "" }),
@@ -435,10 +463,27 @@ const iconUpload = async (data: any) => {
 
   .del {
     position: absolute;
-    top: 64px;
-    height: 24px;
-    left: 0;
-    right: 0;
+    background: #ef4347;
+    width: 20px;
+    height: 20px;
+    top: -10px;
+    right: -10px;
+    opacity: 0;
+
+    border-radius: 50%;
+
+    &.iconfont {
+      font-size: 10px;
+      color: #fff;
+      outline-color: none !important;
+    }
+    &:hover {
+      opacity: 1 !important;
+    }
+  }
+
+  &:hover .del {
+    opacity: 0.9;
   }
 
   .iconfont {
@@ -466,7 +511,16 @@ const iconUpload = async (data: any) => {
   font-size: 14px;
   color: #fff;
   margin-top: 10px;
+  display: block;
   text-align: center;
+
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  -o-text-overflow: ellipsis;
+
+  white-space: nowrap; //文本不会换行
+  width: 88px;
 }
 .edit-add-type {
   position: fixed;

+ 4 - 2
src/views/sign-model/index.vue

@@ -68,8 +68,10 @@ const loadSignModel = async () => {
     await new Promise<void>((resolve) => {
       const stop = watchEffect(() => {
         if (fuseModelsLoaded.value) {
-          resolve();
-          setTimeout(() => stop());
+          setTimeout(() => {
+            stop();
+            resolve();
+          }, 300);
         }
       });
     });