index.ts
4.38 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import Vue from 'vue'
import Vuex from 'vuex'
import { IAppState } from './modules/app'
import { IUserState } from './modules/user'
import { IPermissionState } from './modules/permission'
Vue.use(Vuex)
export interface IRootState {
app: IAppState
user: IUserState
permission: IPermissionState
menuList: Array<string> | undefined // 菜单数组
menubtnList: Array<string> | undefined // 权限(按钮组数)
menuData: Array<string> | undefined // 查询角色拥有的资源id集合
deleteMenuList: Array<string> | undefined // 取消菜单数组
deleteMenubtnList:Array<string> | undefined // 取消权限(按钮组数)
menuCheckboxList:Array<string> | undefined // 角色-全选反选
deletemMnuCheckboxList:Array<string> | undefined // 角色-全选反选
routrsData: Array<string> | undefined // 路由
orgData: Array<string> | undefined // 组织
baseTreeData: Array<string> | undefined // 路由
baseTreeId :string | undefined // 路由
baseMenuTreeId:string | undefined // 菜单
updatedOrgTreeId:string | undefined // 组织
theme:string | undefined // 主题
themeColor:string | undefined // 主题颜色
}
// Declare empty store first, dynamically register all modules later.
export default new Vuex.Store<IRootState>({
state: {
menuList: [],
menubtnList: [],
menuData: [],
routrsData: [],
deleteMenuList: [],
deleteMenubtnList: [],
menuCheckboxList: [],
deletemMnuCheckboxList: [],
orgData: [],
baseTreeData: [],
baseTreeId: '',
baseMenuTreeId: '',
updatedOrgTreeId: '',
theme: '',
themeColor: '#409EFF'
} as any,
mutations: {
// 获取、取消菜单
updatedMenuList(state, data) {
(state.menuList as any).push(data)
state.menuList = [...new Set(state.menuList)].concat([...new Set(state.menuCheckboxList)])
},
// 取消菜单
deleteMenuList(state, data) {
(state.menuList as any).splice((state.menuList as any).findIndex((obj:Object) => (obj === data)), 1);
(state.deleteMenuList as any).push(data)
state.deleteMenuList = [...new Set(state.deleteMenuList)].concat([...new Set(state.deletemMnuCheckboxList)])
},
// 获取菜单按钮
updatedbtnMenuList(state, data) {
data.forEach((obj:any) => {
(state.menubtnList as any).push(obj)
})
// (state.menubtnList as any).push(data)
state.menubtnList = [...new Set(state.menubtnList)]
},
// 获取菜单按钮
updatedAllbtnMenuList(state, data) {
state.menubtnList = data
state.menubtnList = [...new Set(state.menubtnList)]
},
// 取消菜单按钮
deletebtnMenuList(state, data) {
(state.menubtnList as any).splice((state.menubtnList as any).findIndex((obj:Object) => (obj === data)), 1)
},
// 储存角色id集合
updatedMenuData(state, data) {
state.menuData = data
state.menuData = [...new Set(state.menuData)]
},
// 获取角色菜单管理树数据
updatedmenuDataCheckboxList(state, data) {
(state.menuCheckboxList as any) = [...new Set(data)]
},
deleteCheckboxList(state, data) {
data.forEach((val:any) => {
(state.menuCheckboxList as any).splice((state.menuCheckboxList as any).findIndex((obj:Object) => (obj === val)), 1)
})
state.deletemMnuCheckboxList = data
state.deletemMnuCheckboxList = [...new Set(state.deletemMnuCheckboxList)]
},
// 存储路由集合
updatedroutrsData(state, data) {
state.routrsData = data
state.routrsData = [...new Set(state.routrsData)]
},
// 存储菜单管理树,便于修改,删除,修改状态,拖拽更新数据,页面不刷新效果
updatedOrgData(state, data) {
state.orgData = data
state.orgData = [...new Set(state.orgData)]
},
// 存储所有角色
updatedDataTree(state, data) {
(state.baseTreeData as any) = data
},
// 存储角色id
updatedDataTreeId(state, data) {
(state.baseTreeId as any) = data
},
// 存储菜单id
updatedMenuTreeId(state, data) {
(state.baseMenuTreeId as any) = data
},
// 储存组织id
updatedOrgTreeId(state, data) {
(state.updatedOrgTreeId as any) = data
},
// 储存主题
updatedTheme(state, theme) {
(state.theme as any) = theme
},
// 储存主题颜色
updatedThemeColor(state, themeColor) {
(state.themeColor as any) = themeColor
}
}
})