import { defineStore } from 'pinia' import storage from '@/utils/storage' // 缓存的主题 const THEME_KEY = 'app-theme' const useAppStore = defineStore('app', { state: () => ({ systemInfo: {}, // 原本 TS: {} as UniApp.GetSystemInfoResult theme: storage.get(THEME_KEY) || 'light' }), getters: { getSystemInfo (state) { return state.systemInfo }, getTheme (state) { return state.theme } }, actions: { setSystemInfo (info) { this.systemInfo = info }, initSystemInfo () { uni.getSystemInfo({ success: (res) => { this.setSystemInfo(res) }, fail: (err) => { console.error(err) } }) }, /** * 设置主题 */ setTheme (theme) { this.theme = theme // 保存到本地存储 storage.set(THEME_KEY, this.theme) }, checkUpdate () { const updateManager = uni.getUpdateManager() updateManager.onCheckForUpdate((res) => { // 请求完新版本信息的回调 console.log(res.hasUpdate) }) updateManager.onUpdateReady(() => { uni.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success (res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate() } } }) }) updateManager.onUpdateFailed((res) => { console.error(res) // 新的版本下载失败 uni.showToast({ title: '更新失败', icon: 'error' }) }) } } }) export default useAppStore