40 lines
1.0 KiB
TypeScript
Raw Normal View History

import { defineStore } from 'pinia'
import { lang } from '@/settings/designSetting'
import { LangStateType } from './langStore.d'
import { LangEnum } from '@/enums/styleEnum'
import i18n from '@/i18n/index'
import { setLocalStorage, getLocalStorage, reloadRoutePage } from '@/utils'
2022-01-08 14:27:56 +08:00
import { StorageEnum } from '@/enums/storageEnum'
2022-01-15 16:07:46 +08:00
import { useSettingStore } from '@/store/modules/settingStore/settingStore'
2022-01-08 14:27:56 +08:00
const { GO_LANG_STORE } = StorageEnum
const storageLang: LangStateType = getLocalStorage(GO_LANG_STORE)
2022-01-15 14:56:48 +08:00
// 语言
export const useLangStore = defineStore({
id: 'useLangStore',
state: (): LangStateType =>
storageLang || {
lang
},
getters: {
getLang(): LangEnum {
return this.lang
}
},
actions: {
changeLang(lang: LangEnum): void {
const settingStore = useSettingStore()
if (this.lang === lang) return
this.lang = lang
2022-04-07 14:52:48 +08:00
i18n.global.locale = lang
2022-01-08 14:27:56 +08:00
setLocalStorage(GO_LANG_STORE, this.$state)
2022-01-15 16:07:46 +08:00
if (settingStore.getChangeLangReload) {
reloadRoutePage()
}
}
}
})