responsive.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // 响应式storage
  2. import { App } from "vue";
  3. import Storage from "responsive-storage";
  4. import { routerArrays } from "@/layout/types";
  5. import { responsiveStorageNameSpace } from "@/config";
  6. export const injectResponsiveStorage = (app: App, config: PlatformConfigs) => {
  7. const nameSpace = responsiveStorageNameSpace();
  8. const configObj = Object.assign(
  9. {
  10. // 国际化 默认中文zh
  11. locale: Storage.getData("locale", nameSpace) ?? {
  12. locale: config.Locale ?? "zh"
  13. },
  14. // layout模式以及主题
  15. layout: Storage.getData("layout", nameSpace) ?? {
  16. layout: config.Layout ?? "vertical",
  17. theme: config.Theme ?? "default",
  18. darkMode: config.DarkMode ?? false,
  19. sidebarStatus: config.SidebarStatus ?? true,
  20. epThemeColor: config.EpThemeColor ?? "#409EFF"
  21. },
  22. configure: Storage.getData("configure", nameSpace) ?? {
  23. grey: config.Grey ?? false,
  24. weak: config.Weak ?? false,
  25. hideTabs: config.HideTabs ?? false,
  26. showLogo: config.ShowLogo ?? true,
  27. showModel: config.ShowModel ?? "smart",
  28. multiTagsCache: config.MultiTagsCache ?? false
  29. }
  30. },
  31. config.MultiTagsCache
  32. ? {
  33. // 默认显示顶级菜单tag
  34. tags: Storage.getData("tags", nameSpace) ?? routerArrays
  35. }
  36. : {}
  37. );
  38. app.use(Storage, { nameSpace, memory: configObj });
  39. };