group.js
2.72 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
import tim from 'tim'
import Helper from '../../utils/helper'
const groupModules = {
state: {
groupList: [],
currentMemberList: [],
currentUnMemberList: [],
currentUnMemberMeta: {page: 1, size: 20, total: 0},
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]
},
updateCurrentUnMemberList(state, memberList) {
state.currentUnMemberList = [...state.currentUnMemberList, ...memberList]
},
updateCurrentUnMemberMeta(state, meta) {
state.currentUnMemberMeta = meta
},
deleteGroupMember(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 = []
state.currentUnMemberList = []
state.currentUnMemberMeta = {page: 1, size: 20, total: 0}
},
reset(state) {
Object.assign(state, {
groupList: [],
currentMemberList: [],
currentUnMemberList: [],
currentUnMemberMeta: {page: 1, size: 20, total: 0},
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
})
},
getGroupUnMemberList(context, groupID) {
const {page, size} = context.state.currentUnMemberMeta
Helper.groupMemberList(groupID, {page, size}).then(res => {
context.commit('updateCurrentUnMemberList', res.data)
context.commit('updateCurrentUnMemberMeta', res.meta)
})
}
}
}
export default groupModules