import { createStore } from 'vuex' import modules from './modules/' import { useApp, getApp } from '@/app' const store = createStore({ state() { return { mode: 'panorama', flying: false, floorId: null, sceneUI: true, player: { lang: 'zh', showVR: false, showMore: false, showDescription: false, showToolbar: true, showMap: true, showShare: false, showUserGuide: true, showWidgets: true, }, router: {}, controlsBottom: '20px', } }, getters: { sceneUI: state => state.sceneUI, router: state => state.router, mode: state => state.mode, player: state => state.player, flying: state => state.flying, floorId: state => state.floorId || 0, controlsBottom: state => state.controlsBottom, }, mutations: { /** * 设置相机模式状态 * @param {*} state * @param {*} payload */ mode(state, payload) { state.mode = payload window.parent.postMessage( { source: "qjkankan", event: "setMode", params: { mode: payload, }, }, "*" ); }, /** * 设置相机模式 * @param {*} state * @param {*} payload */ setMode(state, payload) { if (payload == state.mode) { return } store.commit('setFlying', true) useApp().then(sdk => { sdk.Camera[payload]() .then(() => { store.commit('setFlying', false) }) .catch(() => { store.commit('setFlying', false) }) }) if (payload == 'dollhouse') { this.commit('setFloor', 'all') } store.commit('mode', payload) }, setFlying(state, payload) { state.flying = payload window.parent.postMessage( { source: "qjkankan", event: "isFlying", params: { isFlying: payload, }, }, "*" ); }, SetPlayerOptions(state, payload) { for (let key in payload) { state.player[key] = payload[key] if (key == 'showSplit') { state.player['showWidgets'] = !payload[key] } } if (!state.player.showToolbar || state.player.showVR) { this.commit('tour/setData', { showTours: false }) } }, /** * 跳转楼层 * @param {*} state * @param {*} id */ setFloor(state, id) { state.floorId = id getApp().Scene.gotoFloor(id) }, /** * 这只楼层Id * @param {*} state * @param {*} id */ setFloorId(state, id) { state.floorId = id }, showVR(state) { state.player.showVR = !state.player.showVR state.player.showWidgets = !state.player.showWidgets getApp().Camera.vr() }, setControlsBottom(state, payload) { state.controlsBottom = payload }, setPanoId(state, id) { state.panoId = id }, }, actions: {}, modules: { ...modules, }, }) export default store