import type { SystemThemeState, ThemeMode } from '@/composables/types/theme' import { defineStore } from 'pinia' import { themeColorOptions } from '@/composables/types/theme' /** * 简化版系统主题状态管理 * 仅支持跟随系统主题,不提供手动切换功能 * 导航栏颜色通过 theme.json 自动处理 */ export const useThemeStore = defineStore('theme', { state: (): SystemThemeState => ({ theme: 'light', themeVars: { darkBackground: '#0f0f0f', darkBackground2: '#1a1a1a', darkBackground3: '#242424', darkBackground4: '#2f2f2f', darkBackground5: '#3d3d3d', darkBackground6: '#4a4a4a', darkBackground7: '#606060', darkColor: '#ffffff', darkColor2: '#e0e0e0', darkColor3: '#a0a0a0', colorTheme: themeColorOptions[0].primary, }, }), getters: { isDark: state => state.theme === 'dark', }, actions: { /** * 获取系统主题 * @returns 系统主题模式 */ getSystemTheme(): ThemeMode { // #ifdef MP-WEIXIN // 微信小程序使用 getAppBaseInfo const appBaseInfo = uni.getAppBaseInfo() if (appBaseInfo && appBaseInfo.theme) { return appBaseInfo.theme as ThemeMode } // #endif // #ifndef MP-WEIXIN // 其他平台使用 getSystemInfoSync const systemInfo = uni.getSystemInfoSync() if (systemInfo && systemInfo.theme) { return systemInfo.theme as ThemeMode } // #endif return 'light' // 默认返回 light }, /** * 设置主题(仅内部使用) * @param theme 主题模式 */ setTheme(theme: ThemeMode) { this.theme = theme }, /** * 初始化系统主题 */ initSystemTheme() { const systemTheme = this.getSystemTheme() this.theme = systemTheme console.log('初始化系统主题:', this.theme) }, }, })