feat: baselayoutStore

This commit is contained in:
2026-06-18 10:37:13 +08:00
parent 3bc3cce62a
commit c1e292ea18
4 changed files with 98 additions and 4 deletions

View File

@@ -0,0 +1,50 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useBaseLayoutStore = defineStore(
'baseLayout',
() => {
/** 顶部导航栏标题 */
const topbarTitle = ref<string>('')
/** 当前选中的游戏 ID */
const activeGameId = ref<string>('basketball')
/** 当前选中的游戏图标 */
const activeGameIcon = ref<string>('🏀')
/** 当前选中的游戏名称 */
const activeGameName = ref<string>('篮球对决')
/**
* 设置顶部导航栏标题
* @param title - 标题文本
*/
const setTopbarTitle = (title: string): void => {
topbarTitle.value = title
}
/**
* 更新当前选中的游戏信息
* @param id - 游戏 ID
* @param icon - 游戏图标
* @param name - 游戏名称
*/
const setActiveGame = (id: string, icon: string, name: string): void => {
activeGameId.value = id
activeGameIcon.value = icon
activeGameName.value = name
}
return {
topbarTitle,
activeGameId,
activeGameIcon,
activeGameName,
setTopbarTitle,
setActiveGame
}
},
{
persist: {
pick: ['activeGameId', 'activeGameIcon', 'activeGameName']
}
}
)