123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- import { defineStore } from 'pinia';
- import { useTourStore } from './tour';
- import { getApp, useApp } from '/@/hooks/userApp';
- interface AppState {
- panoId: Nullable<string>;
- isLoaded: boolean;
- mode: string;
- flying: boolean;
- floorId: Nullable<string>;
- player: {
- lang: string;
- showVR: boolean;
- showMore: boolean;
- showDescription: boolean;
- showToolbar: boolean;
- showMap: boolean;
- showShare: boolean;
- showUserGuide: boolean;
- showWidgets: boolean;
- };
- router: any;
- controlsBottom: string;
- isTourMode: boolean; // 自由观看模式
- ttl: number;
- passWordConfirm: boolean;
- showIntroPanel: boolean;
- }
- export const useAppStore = defineStore({
- id: 'app',
- state: (): AppState => ({
- isLoaded: false,
- panoId: null,
- mode: 'panorama',
- flying: false,
- floorId: null,
- player: {
- lang: 'zh',
- showVR: false,
- showMore: false,
- showDescription: false,
- showToolbar: true,
- showMap: true,
- showShare: false,
- showUserGuide: false,
- showWidgets: true,
- },
- router: {},
- controlsBottom: '20px',
- isTourMode: true,
- ttl: -1,
- passWordConfirm: false,
- showIntroPanel: false,
- }),
- getters: {
- isPassWordConfirm(): boolean {
- return this.passWordConfirm;
- },
- isShowIntroPanel(): boolean {
- return this.showIntroPanel;
- },
- },
- actions: {
- setRoomValidTime(ttl: number): void {
- this.ttl = ttl;
- },
- setIsTourMode(payload: boolean): void {
- this.isTourMode = payload;
- const searchParams = new URLSearchParams(location.search);
- if (!searchParams.has('isTour')) {
- const isTour = payload ? '1' : '0';
- searchParams.set('isTour', isTour);
- location.search = searchParams.toString();
- }
- },
- setMode(payload: string): void {
- console.log('setMode', payload);
- if (payload == this.mode) {
- return;
- }
- this.flying = true;
- useApp().then((sdk) => {
- sdk.Camera[payload]()
- .then(() => {
- this.flying = false;
- })
- .catch(() => {
- this.flying = false;
- });
- });
- // if (payload == 'dollhouse') {
- // // setTimeout(() => {
- // // this.setFloor('all');
- // // }, 500);
- // }
- this.mode = payload;
- },
- setFloorId(id: string): void {
- console.log('setFloor-2', id);
- this.floorId = id;
- },
- setFlying(payload: boolean): void {
- this.flying = payload;
- },
- setFloor(id: string): void {
- this.floorId = id;
- console.log('setFloor-1', id);
- getApp().Scene.gotoFloor(id);
- },
- showVR(): void {
- this.player.showVR = !this.player.showVR;
- this.player.showWidgets = !this.player.showWidgets;
- getApp().Camera.vr();
- },
- showUserGuide(payload: boolean): void {
- this.player.showUserGuide = payload;
- },
- setControlsBottom(payload: string): void {
- this.controlsBottom = payload;
- },
- setPanoId(id: string) {
- this.panoId = id;
- },
- setPlayerOptions(payload) {
- for (const key in payload) {
- this.player[key] = payload[key];
- if (key == 'showSplit') {
- this.player.showWidgets = !payload[key];
- }
- }
- if (!this.player.showToolbar || this.player.showVR) {
- const tourStore = useTourStore();
- console.log('tourStore', tourStore);
- // debugger
- // this.commit('tour/setData', { showTours: false })
- // tourStore.setData({ showTours: false })
- }
- },
- isLoad() {
- this.isLoaded = true;
- },
- unLoad() {
- this.isLoaded = false;
- },
- setPasswordConfirm(status: boolean) {
- console.log('设置输入密码状态', status);
- this.passWordConfirm = status;
- },
- setShowIntroPanel(status: boolean) {
- this.showIntroPanel = status;
- },
- },
- });
|