settings.ts 955 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { defineStore } from "pinia";
  2. import { store } from "/@/store";
  3. import { getConfig } from "/@/config";
  4. interface SettingState {
  5. title: string;
  6. fixedHeader: boolean;
  7. hiddenSideBar: boolean;
  8. }
  9. export const useSettingStore = defineStore({
  10. id: "pure-setting",
  11. state: (): SettingState => ({
  12. title: getConfig().Title,
  13. fixedHeader: getConfig().FixedHeader,
  14. hiddenSideBar: getConfig().HiddenSideBar
  15. }),
  16. getters: {
  17. getTitle() {
  18. return this.title;
  19. },
  20. getFixedHeader() {
  21. return this.fixedHeader;
  22. },
  23. getHiddenSideBar() {
  24. return this.HiddenSideBar;
  25. }
  26. },
  27. actions: {
  28. CHANGE_SETTING({ key, value }) {
  29. // eslint-disable-next-line no-prototype-builtins
  30. if (this.hasOwnProperty(key)) {
  31. this[key] = value;
  32. }
  33. },
  34. changeSetting(data) {
  35. this.CHANGE_SETTING(data);
  36. }
  37. }
  38. });
  39. export function useSettingStoreHook() {
  40. return useSettingStore(store);
  41. }