Files
xiaozhi-esp32-server/main/manager-mobile/src/store/config.ts
T

67 lines
1.4 KiB
TypeScript

import type { PublicConfig } from '@/api/auth'
import { getPublicConfig } from '@/api/auth'
import { defineStore } from 'pinia'
import { ref } from 'vue'
// 初始化状态
const initialConfigState: PublicConfig = {
enableMobileRegister: false,
version: '',
year: '',
allowUserRegister: false,
mobileAreaList: [],
beianIcpNum: '',
beianGaNum: '',
sm2PublicKey: '',
name: import.meta.env.VITE_APP_TITLE,
}
export const useConfigStore = defineStore(
'config',
() => {
// 定义全局配置
const config = ref<PublicConfig>({ ...initialConfigState })
// 设置配置信息
const setConfig = (val: PublicConfig) => {
config.value = val
}
// 获取公共配置
const fetchPublicConfig = async () => {
try {
const configData = await getPublicConfig()
console.log(configData)
setConfig(configData)
return configData
}
catch (error) {
console.error('获取公共配置失败:', error)
throw error
}
}
// 重置配置
const resetConfig = () => {
config.value = { ...initialConfigState }
}
return {
config,
setConfig,
fetchPublicConfig,
resetConfig,
}
},
{
persist: {
key: 'config',
serializer: {
serialize: state => JSON.stringify(state.config),
deserialize: value => ({ config: JSON.parse(value) }),
},
},
},
)