Quellcode durchsuchen

vuex persistent

Unknown vor 7 Jahren
Ursprung
Commit
0d3d9c4883
2 geänderte Dateien mit 32 neuen und 5 gelöschten Zeilen
  1. 2 1
      src/store/getters.js
  2. 30 4
      src/store/modules/breadcrumb.js

+ 2 - 1
src/store/getters.js

@@ -4,6 +4,7 @@ const getters = {
4 4
   avatar: state => state.user.avatar,
5 5
   username: state => state.user.username,
6 6
   roles: state => state.user.roles,
7
-  visible: state => state.breadcrumb.visible
7
+  visible: state => state.breadcrumb.visible,
8
+  data: state => state.breadcrumb.data
8 9
 }
9 10
 export default getters

+ 30 - 4
src/store/modules/breadcrumb.js

@@ -1,4 +1,5 @@
1 1
 // TODO refactor better state mangement
2
+const { localStorage } = window
2 3
 const breadcrumb = {
3 4
   state: {
4 5
     visible: {
@@ -6,11 +7,17 @@ const breadcrumb = {
6 7
       secondLayer: false,
7 8
       thirdLayer: false,
8 9
       fourLayer: false
10
+    },
11
+    data: {
12
+      firstLayer: JSON.parse(localStorage.getItem('firstLayer')),
13
+      secondLayer: JSON.parse(localStorage.getItem('secondLayer')),
14
+      thirdLayer: JSON.parse(localStorage.getItem('thirdLayer')),
15
+      fourLayer: JSON.parse(localStorage.getItem('fourLayer'))
9 16
     }
10 17
   },
11 18
   mutations: {
12
-    SET_VISIBLE: (state, visible) => {
13
-      switch (visible) {
19
+    SET_VISIBLE: (state, layer) => {
20
+      switch (layer) {
14 21
         case 1:
15 22
           state.visible = {
16 23
             firstLayer: true,
@@ -44,11 +51,30 @@ const breadcrumb = {
44 51
           }
45 52
           break
46 53
       }
54
+    },
55
+    SET_DATA: (state, option) => {
56
+      switch (option.layer) {
57
+        case 1:
58
+          localStorage.setItem('firstLayer', JSON.stringify(option.data))
59
+          break
60
+        case 2:
61
+          localStorage.setItem('secondLayer', JSON.stringify(option.data))
62
+          break
63
+        case 3:
64
+          localStorage.setItem('thirdLayer', JSON.stringify(option.data))
65
+          break
66
+        case 4:
67
+          localStorage.setItem('fourLayer', JSON.stringify(option.data))
68
+          break
69
+      }
47 70
     }
48 71
   },
49 72
   actions: {
50
-    SetVisible({ commit }, visible) {
51
-      commit('SET_VISIBLE', visible)
73
+    SetVisible({ commit }, layer) {
74
+      commit('SET_VISIBLE', layer)
75
+    },
76
+    SetData({ commit }, option) {
77
+      commit('SET_DATA', option)
52 78
     }
53 79
   }
54 80
 }