| 123456789101112131415161718192021222324252627282930313233 |
- import { defineStore } from 'pinia'
- import { getDeviceMode, setDeviceMode } from '@/utils/device'
- /**
- * 全局设备端 store:
- * - pc :PC 端展示
- * - mobile:移动端展示(窄屏自适应)
- */
- export const useDeviceStore = defineStore('device', {
- state: () => ({
- mode: getDeviceMode(),
- isMobile: getDeviceMode() === 'mobile',
- }),
- actions: {
- switchTo(mode) {
- setDeviceMode(mode)
- this.mode = mode
- this.isMobile = mode === 'mobile'
- },
- },
- })
- // 监听 utils/device.js 派发的全局事件,确保 store 与工具层手动覆盖值始终一致
- if (typeof window !== 'undefined') {
- window.addEventListener('mf-device-change', (e) => {
- const store = useDeviceStore()
- const mode = e.detail
- if (mode === 'pc' || mode === 'mobile') {
- store.mode = mode
- store.isMobile = mode === 'mobile'
- }
- })
- }
|