diff --git a/src/components/PublicComponent/PublicComponent.vue b/src/components/PublicComponent/PublicComponent.vue index 5140288..5f35a96 100644 --- a/src/components/PublicComponent/PublicComponent.vue +++ b/src/components/PublicComponent/PublicComponent.vue @@ -3,9 +3,6 @@ - - - @@ -27,7 +24,6 @@ import { useHandleScreen } from '@/composables/useHandleScreen' import { useLogout } from '@/composables/useLogout' import { useInitMap } from '@/composables/useInitMap' import Map from '@/components/Map/Map.vue' -const Logout = defineAsyncComponent(() => import('@/base/Logout/Logout.vue')) const AutoBackNotification = defineAsyncComponent(() => import('@/base/AutoBackNotification/AutoBackNotification.vue')) const Search = defineAsyncComponent(() => import('@/components/Search/Search.vue')) const Temperature = defineAsyncComponent(() => import('@/base/Temperature/Temperature.vue')) @@ -40,7 +36,7 @@ const route = useRoute() const store = useStore() const { shop, showSearch, sidebarList, language } = storeToRefs(store) -const { logoutRef, resetClickNumber, setLogoutRef, addTotalClick } = useLogout() +const { resetClickNumber, setLogoutRef, addTotalClick } = useLogout() const screenSaveCallback = () => { window.Map_QM.changeMapIPState(shop.value?.houseNum, shop.value?.formatColor) @@ -52,7 +48,7 @@ const screenSaveCallback = () => { router.push('/billboard') } -const { title, countDownGif, isWall, countDownToWall, countDownNum, send, checkHandleScreen } = useHandleScreen(handleScreen, screenSaveCallback) +const { title, countDownGif, isWall, countDownToWall, countDownNum, checkHandleScreen } = useHandleScreen(handleScreen, screenSaveCallback) function handleGO() { router.push('/nav') @@ -75,9 +71,6 @@ async function handleScreen() { const timer = ref(null) onMounted(() => { !window.Map_QM && useInitMap() - timer.value = setInterval(() => { - send(`type:online`) - }, 30000) window.addEventListener('touchend', checkHandleScreen) }) diff --git a/src/composables/useHandleScreen.js b/src/composables/useHandleScreen.js index 6c17e12..6cdda9a 100644 --- a/src/composables/useHandleScreen.js +++ b/src/composables/useHandleScreen.js @@ -1,14 +1,10 @@ import { reactive, onMounted, toRefs, computed } from 'vue' import { getBackTime } from '@/http/api' -import { useStore } from '@/store/root' import { useRouter } from 'vue-router' import { useStatistics } from '@/composables/useStatistics' export const useHandleScreen = (callback, screenSaveCallback) => { const router = useRouter() - const store = useStore() - const backSocket = computed(() => store.config?.backSocket) - const version = computed(() => store.config?.version) const state = reactive({ isWall: false, //当前是回到首页还是回到屏保 @@ -23,15 +19,6 @@ export const useHandleScreen = (callback, screenSaveCallback) => { title: computed(() => (!state.isWall ? '即将进入首页' : '即将进入屏幕保护')) }) - //socket发送消息 - function send(msg) { - try { - state?.messageWS?.send(msg) - } catch (error) { - console.log(error) - } - } - //获取返回时长 async function _getBackTime() { try { @@ -94,41 +81,12 @@ export const useHandleScreen = (callback, screenSaveCallback) => { state.isWall = false state.countDownToWall = state.times[1] screenSaveCallback && screenSaveCallback() - send('pcscreensavers') resolve() } }, 1000) }) } - //初始化与容器通信的websocket - function initWebSocket() { - try { - state.messageWS = new WebSocket(backSocket.value) - - //连接成功 - state.messageWS.onopen = setOnopenMessage - - //收到消息的回调 - state.messageWS.onmessage = setOnmessageMessage - } catch (error) { - console.log(error) - } - } - - //websocket连接成功 - function setOnopenMessage() { - console.log('message to container success') - send(`version:${version.value}`) - } - - //接收数据 - async function setOnmessageMessage() { - if (state.times[1] !== 0) { - await wallpaperPromise() - } - } - //超过一分钟未操作回到首页 const checkHandleScreen = () => { useStatistics('device') @@ -162,10 +120,9 @@ export const useHandleScreen = (callback, screenSaveCallback) => { //初始化相关数据 function initMessage() { _getBackTime() - initWebSocket() } onMounted(initMessage) - return { ...toRefs(state), checkHandleScreen, send } + return { ...toRefs(state), checkHandleScreen } } diff --git a/src/composables/useInitConfigAndMallInfo.js b/src/composables/useInitConfigAndMallInfo.js index e192e55..04245b7 100644 --- a/src/composables/useInitConfigAndMallInfo.js +++ b/src/composables/useInitConfigAndMallInfo.js @@ -1,4 +1,4 @@ -import { getConfig, getCurrentFloor, getGuideList, getTheme } from '@/http/api' +import { getConfig, getCurrentFloor, getGuideList, getTheme, getIndexList, getQMGoShopData } from '@/http/api' import { useStore } from '@/store/root' import VConsole from 'vconsole' @@ -27,4 +27,10 @@ export const useInitConfigAndMallInfo = async () => { const { buildingList, shopList } = _guideList.data store.SET_SHOP_LIST(shopList.filter(({ yaxis }) => !!yaxis)) store.SET_BUILDING_LIST(buildingList) + const res = await getIndexList() + const { data } = res + const { + data: { searchList, recommendList } + } = await getQMGoShopData() + store.SET_INDEX_LIST({ ...data, recommendList, hotSearch: searchList }) } diff --git a/src/composables/useInitMap.js b/src/composables/useInitMap.js index 7a74cd4..aed95e8 100644 --- a/src/composables/useInitMap.js +++ b/src/composables/useInitMap.js @@ -6,6 +6,7 @@ import Message from '@/base/Message/Message' export const useInitMap = function () { const store = useStore() + getMap() .then(({ data }) => { store.SET_MAP_DATA(JSON.parse(data.mapData)) diff --git a/src/router/index.js b/src/router/index.js index 31cc244..15c70db 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,54 +1,11 @@ import { createRouter, createWebHashHistory } from 'vue-router' import { staticRoutes } from './routes' -import { useStore } from '@/store/root' -import { getIndexList, getQMGoShopData } from '@/http/api' -import { ERR_OK } from '@/http/config' const router = createRouter({ history: createWebHashHistory(process.env.BASE_URL), routes: staticRoutes }) -function dynamicRoutes(list) { - return { - path: '/index', - name: 'home', - component: list.length ? () => import(/* webpackChunkName: "Home" */ '@/views/Index/Index') : () => import(/* webpackChunkName: "Home" */ '@/views/Guide/Guide'), - - meta: { - showMenu: true, - showMap: list.length ? false : true - } - } -} - -router.beforeEach(async to => { - try { - const store = useStore() - - const res = await getIndexList() - const { data, code } = res - if (code === ERR_OK) { - if (!router.hasRoute('home')) { - const { - data: { searchList, recommendList } - } = await getQMGoShopData() - store.SET_INDEX_LIST({ ...data, recommendList, hotSearch: searchList }) - - router.addRoute({ - path: '/index', - name: 'home', - component: import(/* webpackChunkName: "Home" */ '@/views/Index/Index') - }) - - return to.fullPath - } - } - } catch (error) { - return to.fullPath - } -}) - export function initRouter(app) { app.use(router) } diff --git a/src/router/routes.js b/src/router/routes.js index 008439b..46072ef 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -3,6 +3,11 @@ export const staticRoutes = [ path: '/', redirect: '/index' }, + { + path: '/index', + name: 'home', + component: () => import(/* webpackChunkName: "Home" */ '@/views/Index/Index') + }, { path: '/billboard', name: 'Billboard', diff --git a/src/store/root/getters.js b/src/store/root/getters.js index 8e41bbd..79d8870 100644 --- a/src/store/root/getters.js +++ b/src/store/root/getters.js @@ -32,7 +32,7 @@ export const currentFloorShopMap = ({ currentFloor: device, shopList, mapData }) const deviceX = nodes[device.location].x const deviceY = nodes[device.location].y return shopList - .filter(shop => shop.floor === device.floor) + .filter(shop => shop.floor === device.floor && shop.yaxis) .reduce((acc, shop) => { const result = {} try { diff --git a/src/views/Index/Index.vue b/src/views/Index/Index.vue index 7e10b9c..a6065fd 100644 --- a/src/views/Index/Index.vue +++ b/src/views/Index/Index.vue @@ -167,9 +167,9 @@ const foodList = computed(() => { } return splitBy(arr) }) -const hotRecommend = computed(() => indexList.value.hotSearch.slice(0, 5) ?? []) +const hotRecommend = computed(() => indexList?.value?.hotSearch?.slice(0, 5) ?? []) const recommendShops = computed(() => { - const arr = indexList.value.recommendList + const arr = indexList?.value?.recommendList if (arr.length > 12) { while (arr.length % 4 !== 0) { arr.push(arr[Math.floor(Math.random() * arr.length)])