@@ -12,36 +12,52 @@ export type TTabRouterType = {
12
12
tabRouterList : Array < TRouterInfo > ;
13
13
} ;
14
14
15
+ const homeRoute : Array < TRouterInfo > = [
16
+ {
17
+ path : '/dashboard/base' ,
18
+ routeIdx : 0 ,
19
+ title : '仪表盘' ,
20
+ name : 'DashboardBase' ,
21
+ isHome : true ,
22
+ } ,
23
+ ] ;
24
+
15
25
const state : TTabRouterType = {
16
- tabRouterList : [ { path : '/dashboard/base' , routeIdx : 0 , name : 'DashboardBase' , title : '仪表盘' , isHome : true } ] ,
26
+ tabRouterList : homeRoute ,
17
27
isRefreshing : false ,
18
28
} ;
19
29
20
30
const mutations = {
31
+ // 处理刷新
21
32
toggleTabRouterAlive ( state : TTabRouterType , routeIdx : number ) {
22
33
state . isRefreshing = ! state . isRefreshing ;
23
34
state . tabRouterList [ routeIdx ] . isAlive = ! state . tabRouterList [ routeIdx ] . isAlive ;
24
35
} ,
36
+ // 处理新增
25
37
appendTabRouterList ( state : TTabRouterType , newRoute : TRouterInfo ) {
26
38
if ( ! state . tabRouterList . find ( ( route : TRouterInfo ) => route . path === newRoute . path ) )
27
39
// eslint-disable-next-line no-param-reassign
28
40
state . tabRouterList = state . tabRouterList . concat ( newRoute ) ;
29
41
} ,
42
+ // 处理关闭当前
30
43
subtractCurrentTabRouter ( state : TTabRouterType , newRoute : TRouterInfo ) {
31
44
const { routeIdx } = newRoute ;
32
45
state . tabRouterList = state . tabRouterList . slice ( 0 , routeIdx ) . concat ( state . tabRouterList . slice ( routeIdx + 1 ) ) ;
33
46
} ,
47
+ // 处理关闭右侧
34
48
subtractTabRouterBehind ( state : TTabRouterType , newRoute : TRouterInfo ) {
35
49
const { routeIdx } = newRoute ;
36
50
state . tabRouterList = state . tabRouterList . slice ( 0 , routeIdx + 1 ) ;
37
51
} ,
52
+ // 处理关闭左侧
38
53
subtractTabRouterAhead ( state : TTabRouterType , newRoute : TRouterInfo ) {
39
54
const { routeIdx } = newRoute ;
40
- state . tabRouterList = state . tabRouterList . slice ( routeIdx ) ;
55
+ state . tabRouterList = homeRoute . concat ( state . tabRouterList . slice ( routeIdx ) ) ;
41
56
} ,
57
+ // 处理关闭其他
42
58
subtractTabRouterOther ( state : TTabRouterType , newRoute : TRouterInfo ) {
43
59
const { routeIdx } = newRoute ;
44
- state . tabRouterList = [ state . tabRouterList ?. [ routeIdx ] ] ;
60
+ state . tabRouterList = homeRoute . concat ( [ state . tabRouterList ?. [ routeIdx ] ] ) ;
45
61
} ,
46
62
removeTabRouterList ( ) {
47
63
state . tabRouterList = [ ] ;
0 commit comments