Browse Source

feat: 有节目进屏保,没节目进水牌,返回屏保时间设为0停在首页

ShangHai_LongXiang
jiannibang 3 years ago
parent
commit
8295050df5
  1. 23
      src/composables/useHandleScreen.js
  2. 1
      src/composables/useInitMap.js
  3. 3
      src/store/root/actions.js
  4. 11
      src/store/root/getters.js
  5. 3
      src/store/root/state.js

23
src/composables/useHandleScreen.js

@ -1,11 +1,13 @@
import { reactive, onMounted, toRefs, computed } from 'vue'
import { reactive, onMounted, toRefs, computed, watch } from 'vue'
import { getBackTime } from '@/http/api' import { getBackTime } from '@/http/api'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { useStatistics } from '@/composables/useStatistics' import { useStatistics } from '@/composables/useStatistics'
import { useStore } from '@/store/root'
export const useHandleScreen = (callback, screenSaveCallback) => { export const useHandleScreen = (callback, screenSaveCallback) => {
const router = useRouter() const router = useRouter()
const store = useStore()
const { nativeMethods, mapStatus } = toRefs(store)
const state = reactive({ const state = reactive({
isWall: false, //当前是回到首页还是回到屏保 isWall: false, //当前是回到首页还是回到屏保
messageWS: null, messageWS: null,
@ -80,7 +82,11 @@ export const useHandleScreen = (callback, screenSaveCallback) => {
state.countDownGif = false state.countDownGif = false
state.isWall = false state.isWall = false
state.countDownToWall = state.times[1] state.countDownToWall = state.times[1]
screenSaveCallback && screenSaveCallback()
if (!nativeMethods.value?.hasProgram()) {
screenSaveCallback && screenSaveCallback()
} else {
nativeMethods.value?.goScreenSave()
}
resolve() resolve()
} }
}, 1000) }, 1000)
@ -116,12 +122,21 @@ export const useHandleScreen = (callback, screenSaveCallback) => {
} }
}, 400) }, 400)
} }
window.leaveScreenSave = () => {
checkHandleScreen()
}
//初始化相关数据 //初始化相关数据
function initMessage() { function initMessage() {
_getBackTime() _getBackTime()
} }
watch(mapStatus, newVal => {
//当地图加载成功之后自动触发一次屏保弹框以便能进入屏保
if (newVal) {
checkHandleScreen()
}
})
onMounted(initMessage) onMounted(initMessage)
return { ...toRefs(state), checkHandleScreen } return { ...toRefs(state), checkHandleScreen }

1
src/composables/useInitMap.js

@ -12,6 +12,7 @@ export const useInitMap = function () {
store.SET_MAP_DATA(JSON.parse(data.mapData)) store.SET_MAP_DATA(JSON.parse(data.mapData))
//初始化地图 //初始化地图
onReady(store.currentFloor, data, store.shopList, () => { onReady(store.currentFloor, data, store.shopList, () => {
store.SET_MAP_STATUS(true)
const facilityList = window.Map_QM.getAllIcon().flat(Infinity) const facilityList = window.Map_QM.getAllIcon().flat(Infinity)
const list = facilityList.map(item => { const list = facilityList.map(item => {

3
src/store/root/actions.js

@ -53,5 +53,8 @@ export const actions = {
}, },
SET_FOOD_INDUSTRY_MAP(data) { SET_FOOD_INDUSTRY_MAP(data) {
this.foodIndustryMap = data this.foodIndustryMap = data
},
SET_MAP_STATUS(flag) {
this.mapStatus = flag
} }
} }

11
src/store/root/getters.js

@ -1,5 +1,8 @@
import arrows from '../arrows/arrows' import arrows from '../arrows/arrows'
const DEVICE = {
WINDOWS: 'windows',
ANDROID: 'android'
}
export const currentBuildingFloorsList = state => { export const currentBuildingFloorsList = state => {
const currentBuilding = state.buildingList.find(building => building.buildingCode === state.currentFloor.buildingCode) const currentBuilding = state.buildingList.find(building => building.buildingCode === state.currentFloor.buildingCode)
return currentBuilding?.floorList ?? [] return currentBuilding?.floorList ?? []
@ -50,3 +53,9 @@ export const currentFloorShopMap = ({ currentFloor: device, shopList, mapData })
return { ...acc, [shop.shopCode]: result } return { ...acc, [shop.shopCode]: result }
}, {}) }, {})
} }
export const nativeMethods = state => {
if (state.currentFloor.label === DEVICE.ANDROID) {
return window.android
}
return window.chrome?.webview?.hostObjects?.sync?.csobj
}

3
src/store/root/state.js

@ -16,7 +16,8 @@ export const state = () => ({
mapData: null, mapData: null,
theme: null, theme: null,
facility: null, facility: null,
foodIndustryMap: {}
foodIndustryMap: {},
mapStatus: false
}) })
export const is4k = () => { export const is4k = () => {

Loading…
Cancel
Save