scene.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import resource from '@/utils/resource'
  2. import { getApp } from '@/app'
  3. export default {
  4. namespaced: true,
  5. state() {
  6. return {
  7. tags: [],
  8. floors: [],
  9. metadata: {}
  10. }
  11. },
  12. getters: {
  13. tags: state => {
  14. return state.tags
  15. },
  16. floors: state => {
  17. return state.floors
  18. },
  19. metadata: state => {
  20. return state.metadata
  21. },
  22. musicURL: (state, getters, rootState, rootGetters) => {
  23. let metadata = getters.metadata
  24. if (metadata.music) {
  25. if (/^0\d$/.test(metadata.music)) {
  26. return resource.getStaticURL(`static/music/${metadata.music}.mp3`)
  27. } else {
  28. return getApp().resource.getUserResourceURL(metadata.musicFile.replace(/(.+)\.(.+)/, 'music-user.$2'))
  29. }
  30. }
  31. return null
  32. },
  33. loadingLogoFile: (state, getters, rootState, rootGetters) => {
  34. if (state.metadata.loadingLogo == 'user') {
  35. return getApp().resource.getUserResourceURL(state.metadata.loadingLogoFile)
  36. }
  37. return null
  38. },
  39. },
  40. mutations: {
  41. load(state, payload) {
  42. state.metadata = payload
  43. document.title = payload.title
  44. },
  45. loadFloorData(state, floor) {
  46. state.floors = floor.floors.map(item => {
  47. return { id: item.subgroup, name: item.name }
  48. })
  49. },
  50. },
  51. }