app.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { defineStore, acceptHMRUpdate } from 'pinia'
  2. import logo from '@/assets/logo.png'
  3. import zhCn from 'element-plus/es/locale/lang/zh-cn'
  4. import en from 'element-plus/es/locale/lang/en'
  5. import ko from 'element-plus/es/locale/lang/ko'
  6. import ru from 'element-plus/es/locale/lang/ru'
  7. import fr from 'element-plus/es/locale/lang/fr'
  8. import es from 'element-plus/es/locale/lang/es'
  9. import { admin, app } from '@/api/config'
  10. const langs = {
  11. 'zh-CN': { name: '中文', value: zhCn, sideBarWidth: '210px' },
  12. 'en': { name: 'English', value: en, sideBarWidth: '230px' },
  13. 'fr': { name: 'Français', value: fr, sideBarWidth: '280px' },
  14. 'ko': { name: '한국어', value: ko, sideBarWidth: '230px' },
  15. 'ru': { name: 'русский', value: ru, sideBarWidth: '250px' },
  16. 'es': { name: 'español', value: es, sideBarWidth: '280px' },
  17. }
  18. const defaultLang = localStorage.getItem('lang') || navigator.language || 'zh-CN'
  19. export const useAppStore = defineStore({
  20. id: 'App',
  21. state: () => ({
  22. setting: {
  23. title: 'Rustdesk-Api-Admin',
  24. hello: '',
  25. sideIsCollapse: false,
  26. logo,
  27. langs: langs,
  28. lang: defaultLang,
  29. locale: langs[defaultLang] ? langs[defaultLang] : langs['en'],
  30. appConfig: {
  31. web_client: 1,
  32. },
  33. },
  34. }),
  35. actions: {
  36. sideCollapse () {
  37. this.setting.sideIsCollapse = !this.setting.sideIsCollapse
  38. },
  39. setLang (lang) {
  40. console.log('setLang', lang)
  41. this.setting.lang = lang
  42. this.setting.locale = langs[lang]
  43. localStorage.setItem('lang', lang)
  44. },
  45. changeLang (v) {
  46. this.setLang(v)
  47. },
  48. loadConfig () {
  49. this.getAppConfig()
  50. this.getAdminConfig()
  51. },
  52. getAppConfig () {
  53. console.log('getAppConfig')
  54. app().then(res => {
  55. this.setting.appConfig = res.data
  56. })
  57. },
  58. getAdminConfig () {
  59. console.log('getAdminConfig')
  60. admin().then(res => {
  61. this.setting.title = res.data.title
  62. this.setting.hello = res.data.hello
  63. })
  64. },
  65. },
  66. })
  67. if (import.meta.hot) {
  68. import.meta.hot.accept(acceptHMRUpdate(useAppStore, import.meta.hot))
  69. }