Преглед на файлове

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

xzw преди 1 година
родител
ревизия
3fabdd6f0c
променени са 4 файла, в които са добавени 44 реда и са изтрити 1 реда
  1. 2 0
      src/api/setting.ts
  2. 3 1
      src/sdk/association.ts
  3. 1 0
      src/sdk/sdk.ts
  4. 38 0
      src/views/setting/index.vue

+ 2 - 0
src/api/setting.ts

@@ -9,6 +9,7 @@ type ServeSetting = {
   pose?: string;
   cover?: string;
   back?: string;
+  fov: number
   backType?: SettingResourceType;
   mapOpen?: boolean;
   scale?: number
@@ -23,6 +24,7 @@ export type Setting = {
     target: SceneLocalPos;
   };
   cover: string;
+  fov: number
   scale?: number
   back: string;
   openCompass: boolean

+ 3 - 1
src/sdk/association.ts

@@ -424,8 +424,10 @@ export const setupAssociation = (mountEl: HTMLDivElement) => {
       associationMessaures(sdk)
       setting.value?.pose && sdk.comeTo(setting.value.pose)
 
-      setBackdrop(setting.value!.back, setting.value!.backType);
+      setBackdrop(setting.value!.back, setting.value!.backType, setting.value!.scale);
       setMap(setting.value!.mapOpen, setting.value!.mapType)
+
+      sdk.setCameraFov && sdk.setCameraFov(setting.value.fov)
       
 
       ;(document.querySelector('#direction') as HTMLDivElement)!.style.display = setting.value!.openCompass ? 'block' : 'none';

+ 1 - 0
src/sdk/sdk.ts

@@ -108,6 +108,7 @@ export interface SDK {
   setBackdrop: (drop: string, type: SettingResourceType, scale: number) => void
   compassVisibility: (visibility: boolean) => void
   addModel: (props: AddModelProps) => SceneModel
+  setCameraFov: (fov: number) => void
   enableMap(dom: HTMLDivElement, latlng: number[]): void
   switchMapType: (type: string) => void
   showGrid: () => void

+ 38 - 0
src/views/setting/index.vue

@@ -41,6 +41,18 @@
       </ui-group-option>
     </ui-group>
 
+    <ui-group title="视角范围">
+      <ui-group-option class="ant-modal-root">
+        <Slider
+          :value="setting!.fov || 70"
+          :min="40"
+          :step="1"
+          :max="100"
+          @update:value="(val: any) => changeFov(val)"
+        />
+      </ui-group-option>
+    </ui-group>
+
     <ui-group title="设置背景">
       <ui-group-option>
         <div class="back-layout">
@@ -304,6 +316,32 @@ const delBack = (() => {
   };
 })();
 
+const changeFov = (() => {
+  let isFirst = true;
+  let initFov: number;
+  return (fov: number) => {
+    if (isFirst) {
+      initFov = setting.value!.fov;
+    }
+    setting.value!.fov = fov;
+
+    if (isFirst) {
+      let isSave = false;
+      isFirst = false;
+      enterEdit(() => {
+        if (!isSave) {
+          setting.value!.fov = initFov;
+        }
+        isFirst = true;
+      });
+      enterOld(async () => {
+        isSave = true;
+        await loadPack(updataSetting());
+      });
+    }
+  };
+})();
+
 const options = [
   {
     value: SettingResourceType.envImage,