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'
|
2025-08-10 15:39:25 +08:00
|
|
|
import { admin, app, server } 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' },
|
2025-06-19 10:09:02 +03:00
|
|
|
'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,
|
|
|
|
|
},
|
2025-08-10 15:39:25 +08:00
|
|
|
rustdeskConfig: {
|
|
|
|
|
'id_server': '',
|
|
|
|
|
'key': '',
|
|
|
|
|
'relay_server': '',
|
|
|
|
|
'api_server': '',
|
|
|
|
|
},
|
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()
|
2025-08-10 15:39:25 +08:00
|
|
|
this.loadRustdeskConfig()
|
2024-11-11 22:26:55 +08:00
|
|
|
},
|
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-08-10 15:39:25 +08:00
|
|
|
replaceAdminTitle (newTitle) {
|
2025-02-12 21:08:33 +08:00
|
|
|
document.title = document.title.replace(`- ${this.setting.title}`, `- ${newTitle}`)
|
|
|
|
|
this.setting.title = newTitle
|
|
|
|
|
},
|
2025-08-10 15:39:25 +08:00
|
|
|
async loadRustdeskConfig () {
|
|
|
|
|
console.log('loadRustdeskConfig')
|
|
|
|
|
const res = await server().catch(_ => false)
|
|
|
|
|
if (res) {
|
|
|
|
|
this.setting.rustdeskConfig = res.data
|
|
|
|
|
const prefix = 'wc-'
|
|
|
|
|
localStorage.setItem(`${prefix}custom-rendezvous-server`, res.data.id_server)
|
|
|
|
|
localStorage.setItem(`${prefix}key`, res.data.key)
|
|
|
|
|
localStorage.setItem(`${prefix}api-server`, res.data.api_server)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
2024-09-13 16:34:15 +08:00
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if (import.meta.hot) {
|
|
|
|
|
import.meta.hot.accept(acceptHMRUpdate(useAppStore, import.meta.hot))
|
|
|
|
|
}
|