Files
rustdesk-api-web/src/store/app.js
T

79 lines
2.4 KiB
JavaScript
Raw Normal View History

2024-09-13 16:34:15 +08:00
import { defineStore, acceptHMRUpdate } from 'pinia'
import logo from '@/assets/logo.png'
2024-09-25 22:24:16 +08:00
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import en from 'element-plus/es/locale/lang/en'
2024-10-22 12:20:05 +08:00
import ko from 'element-plus/es/locale/lang/ko'
2024-10-22 19:46:05 +08:00
import ru from 'element-plus/es/locale/lang/ru'
2024-12-21 15:12:52 +01:00
import fr from 'element-plus/es/locale/lang/fr'
2024-11-26 10:42:21 +08:00
import es from 'element-plus/es/locale/lang/es'
2025-01-19 21:19:57 +08:00
import zhTw from 'element-plus/es/locale/lang/zh-tw'
2024-11-11 22:26:55 +08:00
import { admin, app } from '@/api/config'
2024-09-13 16:34:15 +08:00
2024-10-22 19:46:05 +08:00
const langs = {
2024-11-26 10:42:21 +08:00
'zh-CN': { name: '中文', value: zhCn, sideBarWidth: '210px' },
'en': { name: 'English', value: en, sideBarWidth: '230px' },
2024-12-21 15:12:52 +01:00
'fr': { name: 'Français', value: fr, sideBarWidth: '280px' },
2024-11-26 10:42:21 +08:00
'ko': { name: '한국어', value: ko, sideBarWidth: '230px' },
'ru': { name: 'Русский', value: ru, sideBarWidth: '250px' },
'es': { name: 'Español', value: es, sideBarWidth: '280px' },
2025-01-19 21:19:57 +08:00
'zh-TW': { name: '中文繁体', value: zhTw, sideBarWidth: '210px' },
2024-10-22 19:46:05 +08:00
}
2024-11-26 10:42:21 +08:00
const defaultLang = localStorage.getItem('lang') || navigator.language || 'zh-CN'
2024-09-13 16:34:15 +08:00
export const useAppStore = defineStore({
id: 'App',
state: () => ({
setting: {
2025-02-12 21:08:33 +08:00
title: 'Rustdesk API Admin',
2024-11-11 22:26:55 +08:00
hello: '',
2024-09-13 16:34:15 +08:00
sideIsCollapse: false,
logo,
2024-10-22 12:20:05 +08:00
langs: langs,
2024-11-26 10:42:21 +08:00
lang: defaultLang,
locale: langs[defaultLang] ? langs[defaultLang] : langs['en'],
2024-10-14 10:34:40 +08:00
appConfig: {
web_client: 1,
},
2024-09-13 16:34:15 +08:00
},
}),
actions: {
sideCollapse () {
this.setting.sideIsCollapse = !this.setting.sideIsCollapse
},
2024-09-25 22:24:16 +08:00
setLang (lang) {
2024-10-22 12:20:05 +08:00
console.log('setLang', lang)
2024-09-25 22:24:16 +08:00
this.setting.lang = lang
2024-11-26 10:42:21 +08:00
this.setting.locale = langs[lang]
2024-09-25 22:24:16 +08:00
localStorage.setItem('lang', lang)
},
2024-10-22 12:20:05 +08:00
changeLang (v) {
this.setLang(v)
2024-09-25 22:24:16 +08:00
},
2024-11-26 10:42:21 +08:00
loadConfig () {
2024-11-11 22:26:55 +08:00
this.getAppConfig()
this.getAdminConfig()
},
2024-10-14 10:34:40 +08:00
getAppConfig () {
console.log('getAppConfig')
2025-02-12 21:08:33 +08:00
return app().then(res => {
2024-10-14 10:34:40 +08:00
this.setting.appConfig = res.data
})
},
2024-11-26 10:42:21 +08:00
getAdminConfig () {
2024-11-11 22:26:55 +08:00
console.log('getAdminConfig')
2025-02-12 21:08:33 +08:00
return admin().then(res => {
this.replaceAdminTitle(res.data.title)
2024-11-11 22:26:55 +08:00
this.setting.hello = res.data.hello
})
2024-11-26 10:42:21 +08:00
},
2025-02-12 21:08:33 +08:00
replaceAdminTitle(newTitle){
document.title = document.title.replace(`- ${this.setting.title}`, `- ${newTitle}`)
this.setting.title = newTitle
},
2024-09-13 16:34:15 +08:00
},
})
if (import.meta.hot) {
import.meta.hot.accept(acceptHMRUpdate(useAppStore, import.meta.hot))
}