group.js
1.54 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
import tim from 'tim'
const groupModules = {
state: {
groupList: [],
currentMemberList: [],
createGroupModelVisible: false
},
getters: {
hasGroupList: state => state.groupList.length > 0
},
mutations: {
updateGroupList(state, groupList) {
state.groupList = groupList
},
updateCreateGroupModelVisible(state, visible) {
state.createGroupModelVisible = visible
},
updateCurrentMemberList(state, memberList) {
state.currentMemberList = [...state.currentMemberList, ...memberList]
},
deleteGroupMemeber(state, userID) {
state.currentMemberList = state.currentMemberList.filter((member) => member.userID !== userID)
},
deleteGroupMemberList(state, userIDList) {
state.currentMemberList = state.currentMemberList.filter((member) => !userIDList.includes(member.userID))
},
resetCurrentMemberList(state) {
state.currentMemberList = []
},
reset(state) {
Object.assign(state, {
groupList: [],
currentMemberList: [],
createGroupModelVisible: false
})
}
},
actions: {
updateGroupList(context, groupList) {
context.commit('updateGroupList', groupList)
},
getGroupMemberList(context, groupID) {
return tim.getGroupMemberList({
groupID: groupID,
offset: context.state.currentMemberList.length,
count: 30
}).then((imResponse) => {
context.commit('updateCurrentMemberList', imResponse.data.memberList)
return imResponse
})
}
}
}
export default groupModules