@@ -28,17 +28,50 @@ export default {
28
28
return {
29
29
minimize: false ,
30
30
nav: [],
31
- show: true
31
+ show: true ,
32
+ buffor: [],
32
33
}
33
34
},
34
35
methods: {
36
+ dropdown (data ){
37
+ let result = [
38
+ ' CSidebarNavDropdown' ,
39
+ {
40
+ props: {
41
+ name: data[' name' ],
42
+ route: data[' href' ],
43
+ icon: data[' icon' ]
44
+ }
45
+ },
46
+ []
47
+ ];
48
+ for (let i= 0 ; i< data[' elements' ].length ; i++ ){
49
+ if (data[' elements' ][i][' slug' ] == ' dropdown' ){
50
+ result[2 ].push ( this .dropdown (data[' elements' ][i]) );
51
+ }else {
52
+ result[2 ].push (
53
+ [
54
+ ' CSidebarNavLink' ,
55
+ {
56
+ props: {
57
+ name: data[' elements' ][i][' name' ],
58
+ to: data[' elements' ][i][' href' ],
59
+ icon: data[' elements' ][i][' icon' ]
60
+ }
61
+ }
62
+ ]
63
+ );
64
+ }
65
+ }
66
+ return result;
67
+ },
35
68
rebuildData (data ){
36
- let result = [' CSidebarNav' ,[]]
69
+ this . buffor = [' CSidebarNav' ,[]]
37
70
for (let k= 0 ; k< data .length ; k++ ){
38
71
switch (data[k][' slug' ]){
39
72
case ' link' :
40
73
if (data[k][' href' ].indexOf (' http' ) !== - 1 ){
41
- result [1 ].push (
74
+ this . buffor [1 ].push (
42
75
[
43
76
' CSidebarNavLink' ,
44
77
{
@@ -52,7 +85,7 @@ export default {
52
85
]
53
86
);
54
87
}else {
55
- result [1 ].push (
88
+ this . buffor [1 ].push (
56
89
[
57
90
' CSidebarNavLink' ,
58
91
{
@@ -67,45 +100,19 @@ export default {
67
100
}
68
101
break ;
69
102
case ' title' :
70
- result [1 ].push (
103
+ this . buffor [1 ].push (
71
104
[
72
105
' CSidebarNavTitle' ,
73
106
[data[k][' name' ]]
74
107
]
75
108
);
76
109
break ;
77
110
case ' dropdown' :
78
- result[1 ].push (
79
- [
80
- ' CSidebarNavDropdown' ,
81
- {
82
- props: {
83
- name: data[k][' name' ],
84
- route: data[k][' href' ],
85
- icon: data[k][' icon' ]
86
- }
87
- },
88
- []
89
- ]
90
- );
91
- for (let i= 0 ; i< data[k][' elements' ].length ; i++ ){
92
- result[1 ][k][2 ].push (
93
- [
94
- ' CSidebarNavLink' ,
95
- {
96
- props: {
97
- name: data[k][' elements' ][i][' name' ],
98
- to: data[k][' elements' ][i][' href' ],
99
- icon: data[k][' elements' ][i][' icon' ]
100
- }
101
- }
102
- ]
103
- );
104
- }
111
+ this .buffor [1 ].push ( this .dropdown (data[k]) );
105
112
break ;
106
113
}
107
114
}
108
- return result ;
115
+ return this . buffor ;
109
116
}
110
117
},
111
118
mounted () {
@@ -114,7 +121,6 @@ export default {
114
121
axios .get (' /api/menu?token=' + localStorage .getItem (" api_token" ) )
115
122
.then (function (response ) {
116
123
self .nav = self .rebuildData (response .data );
117
- console .log (self .rebuildData (response .data ));
118
124
}).catch (function (error ) {
119
125
console .log (error);
120
126
self .$router .push ({ path: ' /login' });
0 commit comments