settings.ts 969 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import defaultSettings from "../../settings"
  2. import { defineStore } from "pinia"
  3. import { store } from "/@/store"
  4. interface SettingState {
  5. title: string
  6. fixedHeader: boolean
  7. cachedPageList: string[]
  8. }
  9. export const useSettingStore = defineStore({
  10. id: "pure-setting",
  11. state: (): SettingState => ({
  12. title: defaultSettings.title,
  13. fixedHeader: defaultSettings.fixedHeader,
  14. // 需要开启keepalive的页面数组,里面放页面的name即可
  15. cachedPageList: ["welcome", "reEditor"]
  16. }),
  17. getters: {
  18. getTitle() {
  19. return this.title
  20. },
  21. getFixedHeader() {
  22. return this.fixedHeader
  23. }
  24. },
  25. actions: {
  26. CHANGE_SETTING({ key, value }) {
  27. // eslint-disable-next-line no-prototype-builtins
  28. if (this.hasOwnProperty(key)) {
  29. this[key] = value
  30. }
  31. },
  32. changeSetting(data) {
  33. this.CHANGE_SETTING(data)
  34. }
  35. }
  36. })
  37. export function useSettingStoreHook() {
  38. return useSettingStore(store)
  39. }