index.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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) {
  61. return
  62. }
  63. store.commit('setFlying', true)
  64. useApp().then(sdk => {
  65. sdk.Camera[payload]()
  66. .then(() => {
  67. store.commit('setFlying', false)
  68. })
  69. .catch(() => {
  70. store.commit('setFlying', false)
  71. })
  72. })
  73. if (payload == 'dollhouse') {
  74. this.commit('setFloor', 'all')
  75. }
  76. store.commit('mode', payload)
  77. },
  78. setFlying(state, payload) {
  79. state.flying = payload
  80. window.parent.postMessage(
  81. {
  82. source: "qjkankan",
  83. event: "isFlying",
  84. params: {
  85. isFlying: payload,
  86. },
  87. },
  88. "*"
  89. );
  90. },
  91. SetPlayerOptions(state, payload) {
  92. for (let key in payload) {
  93. state.player[key] = payload[key]
  94. if (key == 'showSplit') {
  95. state.player['showWidgets'] = !payload[key]
  96. }
  97. }
  98. if (!state.player.showToolbar || state.player.showVR) {
  99. this.commit('tour/setData', { showTours: false })
  100. }
  101. },
  102. /**
  103. * 跳转楼层
  104. * @param {*} state
  105. * @param {*} id
  106. */
  107. setFloor(state, id) {
  108. state.floorId = id
  109. getApp().Scene.gotoFloor(id)
  110. },
  111. /**
  112. * 这只楼层Id
  113. * @param {*} state
  114. * @param {*} id
  115. */
  116. setFloorId(state, id) {
  117. state.floorId = id
  118. },
  119. showVR(state) {
  120. state.player.showVR = !state.player.showVR
  121. state.player.showWidgets = !state.player.showWidgets
  122. getApp().Camera.vr()
  123. },
  124. setControlsBottom(state, payload) {
  125. state.controlsBottom = payload
  126. },
  127. setPanoId(state, id) {
  128. state.panoId = id
  129. },
  130. },
  131. actions: {},
  132. modules: {
  133. ...modules,
  134. },
  135. })
  136. export default store