index.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import { createStore } from 'vuex'
  2. import modules from './modules/'
  3. import { useApp, getApp } from '@/app'
  4. const store = createStore({
  5. state() {
  6. return {
  7. mode: 'panorama',
  8. flying: false,
  9. floorId: null,
  10. sceneUI: true,
  11. player: {
  12. lang: 'zh',
  13. showVR: false,
  14. showMore: false,
  15. showDescription: false,
  16. showToolbar: true,
  17. showMap: true,
  18. showShare: false,
  19. showUserGuide: true,
  20. showWidgets: true,
  21. },
  22. router: {},
  23. controlsBottom: '20px',
  24. }
  25. },
  26. getters: {
  27. sceneUI: state => state.sceneUI,
  28. router: state => state.router,
  29. mode: state => state.mode,
  30. player: state => state.player,
  31. flying: state => state.flying,
  32. floorId: state => state.floorId || 0,
  33. controlsBottom: state => state.controlsBottom,
  34. },
  35. mutations: {
  36. /**
  37. * 设置相机模式状态
  38. * @param {*} state
  39. * @param {*} payload
  40. */
  41. mode(state, payload) {
  42. state.mode = payload
  43. window.parent.postMessage(
  44. {
  45. source: "qjkankan",
  46. event: "setMode",
  47. params: {
  48. mode: payload,
  49. },
  50. },
  51. "*"
  52. );
  53. },
  54. /**
  55. * 设置相机模式
  56. * @param {*} state
  57. * @param {*} payload
  58. */
  59. setMode(state, payload) {
  60. if (payload == state.mode || !payload) {
  61. // debugger
  62. store.commit('setFlying', false)
  63. console.log('设置相机模式相同')
  64. return
  65. }
  66. store.commit('setFlying', true)
  67. useApp().then(sdk => {
  68. if (payload) {
  69. sdk.Camera[payload] && sdk.Camera[payload]()
  70. .then(() => {
  71. store.commit('setFlying', false)
  72. })
  73. .catch(() => {
  74. store.commit('setFlying', false)
  75. })
  76. }
  77. })
  78. if (payload == 'dollhouse') {
  79. this.commit('setFloor', 'all')
  80. }
  81. store.commit('mode', payload)
  82. },
  83. setFlying(state, payload) {
  84. state.flying = payload
  85. window.parent.postMessage(
  86. {
  87. source: "qjkankan",
  88. event: "isFlying",
  89. params: {
  90. isFlying: payload,
  91. },
  92. },
  93. "*"
  94. );
  95. },
  96. SetPlayerOptions(state, payload) {
  97. for (let key in payload) {
  98. state.player[key] = payload[key]
  99. if (key == 'showSplit') {
  100. state.player['showWidgets'] = !payload[key]
  101. }
  102. }
  103. if (!state.player.showToolbar || state.player.showVR) {
  104. this.commit('tour/setData', { showTours: false })
  105. }
  106. },
  107. /**
  108. * 跳转楼层
  109. * @param {*} state
  110. * @param {*} id
  111. */
  112. setFloor(state, id) {
  113. state.floorId = id
  114. getApp().Scene.gotoFloor(id)
  115. },
  116. /**
  117. * 这只楼层Id
  118. * @param {*} state
  119. * @param {*} id
  120. */
  121. setFloorId(state, id) {
  122. state.floorId = id
  123. },
  124. showVR(state) {
  125. state.player.showVR = !state.player.showVR
  126. state.player.showWidgets = !state.player.showWidgets
  127. window.parent.postMessage(
  128. {
  129. source: "qjkankan",
  130. event: "setVR",
  131. params: {
  132. status: state.player.showVR,
  133. },
  134. },
  135. "*"
  136. );
  137. getApp().Camera.vr()
  138. },
  139. setControlsBottom(state, payload) {
  140. state.controlsBottom = payload
  141. },
  142. setPanoId(state, id) {
  143. state.panoId = id
  144. },
  145. },
  146. actions: {},
  147. modules: {
  148. ...modules,
  149. },
  150. })
  151. export default store