zhuoyuan.wang
2024-06-19 15ebe96f28cadec6a726c5324593a40bbf56205f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const settingKey = 'sidebar-status';
import cache from '@/utils/cache';
 
const useAppStore = defineStore('app', {
  state: () => ({
    sidebar: {
      opened: cache.local.getJSON(settingKey) ? cache.local.getJSON(settingKey) : true,
      withoutAnimation: false,
      hide: false
    },
    device: 'desktop',
    loading: {}
  }), actions: {
    setLoading(space, bool) {
      this.loading[space] = bool;
    },
    getLoading(...space) {
      return Object.keys(this.loading).map(key => space.find(e => (`${key} `.indexOf(e) > -1 || e === '*')) ? this.loading[key] : false).filter(Boolean).length > 0 || false;
    },
    toggleSideBar(withoutAnimation) {
      if (this.sidebar.hide) {
        return false;
      }
      this.sidebar.opened = !this.sidebar.opened
      this.sidebar.withoutAnimation = withoutAnimation
      if (this.sidebar.opened) {
        cache.local.set(settingKey, 1)
      } else {
        cache.local.set(settingKey, 0)
      }
    },
    closeSideBar({withoutAnimation}) {
      cache.local.get(settingKey, 0)
      this.sidebar.opened = false
      this.sidebar.withoutAnimation = withoutAnimation
    },
    toggleDevice(device) {
      this.device = device
    },
    toggleSideBarHide(status) {
      this.sidebar.hide = status
    }
  }
})
 
export default useAppStore