mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-03-15 10:14:44 +08:00
56 lines
1.6 KiB
Go
56 lines
1.6 KiB
Go
import { defineStore } from 'pinia';
|
|
import { GlobalState, ThemeConfigProp } from './interface';
|
|
import { createPinia } from 'pinia';
|
|
import piniaPersistConfig from '@/config/pinia-persist';
|
|
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
|
|
import i18n from '@/lang';
|
|
|
|
export const GlobalStore = defineStore({
|
|
id: 'GlobalState',
|
|
state: (): GlobalState => ({
|
|
isLoading: false,
|
|
loadingText: '',
|
|
isLogin: false,
|
|
csrfToken: '',
|
|
language: '',
|
|
themeConfig: {
|
|
panelName: '',
|
|
primary: '#005EEB',
|
|
theme: 'bright',
|
|
footer: true,
|
|
},
|
|
isFullScreen: false,
|
|
}),
|
|
getters: {},
|
|
actions: {
|
|
setScreenFull() {
|
|
this.isFullScreen = !this.isFullScreen;
|
|
},
|
|
setLogStatus(login: boolean) {
|
|
this.isLogin = login;
|
|
},
|
|
setGlobalLoading(loading: boolean) {
|
|
this.isLoading = loading;
|
|
},
|
|
setLoadingText(text: string) {
|
|
this.loadingText = i18n.global.t('commons.loadingText.' + text);
|
|
},
|
|
setCsrfToken(token: string) {
|
|
this.csrfToken = token;
|
|
},
|
|
updateLanguage(language: any) {
|
|
this.language = language;
|
|
localStorage.setItem('lang', language);
|
|
},
|
|
setThemeConfig(themeConfig: ThemeConfigProp) {
|
|
this.themeConfig = themeConfig;
|
|
},
|
|
},
|
|
persist: piniaPersistConfig('GlobalState'),
|
|
});
|
|
|
|
const pinia = createPinia();
|
|
pinia.use(piniaPluginPersistedstate);
|
|
|
|
export default pinia;
|