app.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { defineStore } from 'pinia';
  2. import { useTourStore } from './tour';
  3. import { getApp, useApp } from '/@/hooks/userApp';
  4. interface AppState {
  5. panoId: Nullable<string>;
  6. isLoaded: boolean;
  7. mode: string;
  8. flying: boolean;
  9. floorId: Nullable<string>;
  10. player: {
  11. lang: string;
  12. showVR: boolean;
  13. showMore: boolean;
  14. showDescription: boolean;
  15. showToolbar: boolean;
  16. showMap: boolean;
  17. showShare: boolean;
  18. showUserGuide: boolean;
  19. showWidgets: boolean;
  20. };
  21. router: any;
  22. controlsBottom: string;
  23. isTourMode: boolean; // 自由观看模式
  24. }
  25. export const useAppStore = defineStore({
  26. id: 'app',
  27. state: (): AppState => ({
  28. isLoaded: false,
  29. panoId: null,
  30. mode: 'panorama',
  31. flying: false,
  32. floorId: null,
  33. player: {
  34. lang: 'zh',
  35. showVR: false,
  36. showMore: false,
  37. showDescription: false,
  38. showToolbar: true,
  39. showMap: true,
  40. showShare: false,
  41. showUserGuide: false,
  42. showWidgets: true,
  43. },
  44. router: {},
  45. controlsBottom: '20px',
  46. isTourMode: true,
  47. }),
  48. getters: {},
  49. actions: {
  50. setIsTourMode(payload: boolean): void {
  51. this.isTourMode = payload;
  52. },
  53. setMode(payload: string): void {
  54. console.log('setMode', payload);
  55. if (payload == this.mode) {
  56. return;
  57. }
  58. this.flying = true;
  59. useApp().then((sdk) => {
  60. sdk.Camera[payload]()
  61. .then(() => {
  62. this.flying = false;
  63. })
  64. .catch(() => {
  65. this.flying = false;
  66. });
  67. });
  68. if (payload == 'dollhouse') {
  69. this.setFloor('all');
  70. }
  71. this.mode = payload;
  72. },
  73. setFloorId(id: string): void {
  74. this.floorId = id;
  75. },
  76. setFlying(payload: boolean): void {
  77. this.flying = payload;
  78. },
  79. setFloor(id: string): void {
  80. this.floorId = id;
  81. getApp().Scene.gotoFloor(id);
  82. },
  83. showVR(): void {
  84. this.player.showVR = !this.player.showVR;
  85. this.player.showWidgets = !this.player.showWidgets;
  86. getApp().Camera.vr();
  87. },
  88. showUserGuide(payload: boolean): void {
  89. this.player.showUserGuide = payload;
  90. },
  91. setControlsBottom(payload: string): void {
  92. this.controlsBottom = payload;
  93. },
  94. setPanoId(id: string) {
  95. this.panoId = id;
  96. },
  97. setPlayerOptions(payload) {
  98. for (const key in payload) {
  99. this.player[key] = payload[key];
  100. if (key == 'showSplit') {
  101. this.player.showWidgets = !payload[key];
  102. }
  103. }
  104. if (!this.player.showToolbar || this.player.showVR) {
  105. const tourStore = useTourStore();
  106. // debugger
  107. // this.commit('tour/setData', { showTours: false })
  108. // tourStore.setData({ showTours: false })
  109. }
  110. },
  111. isLoad() {
  112. this.isLoaded = true;
  113. },
  114. unLoad() {
  115. this.isLoaded = true;
  116. },
  117. },
  118. });