You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.2 KiB

9 months ago
const state = {
socket: null,
badgeNum: 0,
msgInfo: {},
formUserId: ''
};
const mutations = {
SET_BADGE_NUM(state, badgeNum) {
state.badgeNum = badgeNum
},
ADD_BADGE_NUM(state, num) {
state.badgeNum += num
},
REDUCE_BADGE_NUM(state, num) {
let badgeNum = state.badgeNum - num
if (badgeNum < 0) badgeNum = 0
state.badgeNum = badgeNum
},
SET_MSGINFO(state, msgInfo) {
state.msgInfo = msgInfo
},
SET_MSGINFO_NUM(state, num) {
if (num || num === 0) {
state.msgInfo.messageCount = num
state.msgInfo.count = num
state.badgeNum = num
return
}
state.msgInfo.messageCount -= 1
state.msgInfo.count = state.msgInfo.messageCount
let badgeNum = state.badgeNum - 1
if (badgeNum < 0) badgeNum = 0
state.badgeNum = badgeNum
},
SET_FORMUSERID(state, formUserId) {
state.formUserId = formUserId
},
};
const actions = {
sendMessage({
state,
commit
}, data) {
const item = {
account: data.toAccount,
headIcon: data.toHeadIcon,
id: data.toUserId,
latestDate: data.latestDate,
latestMessage: data.toMessage,
messageType: data.messageType,
realName: data.toRealName,
unreadMessage: 0
}
const addItem = {
sendUserId: data.UserId,
contentType: data.messageType,
content: data.toMessage,
sendTime: data.dateTime,
method: data.method
}
uni.$emit('addMsg', addItem)
uni.$emit('updateList', item)
},
receiveMessage({
state,
commit
}, data) {
if (state.formUserId === data.formUserId) {
data.unreadMessage = 0
const item = {
sendUserId: data.formUserId,
contentType: data.messageType,
content: data.formMessage,
sendTime: data.dateTime,
method: data.method
}
uni.$emit('addMsg', item)
} else {
data.unreadMessage = 1
commit('ADD_BADGE_NUM', 1)
}
data.id = data.formUserId
data.latestMessage = data.formMessage
uni.$emit('updateList', data)
},
getMessageList({
state,
commit
}, data) {
uni.$emit('getMessageList', data)
},
messagePush({
state,
commit
}, data) {
state.msgInfo.messageText = data.title;
state.msgInfo.messageCount += data.unreadNoticeCount;
state.msgInfo.messageDate = data.messageDefaultTime
commit('ADD_BADGE_NUM', data.unreadNoticeCount || 1)
}
}
export default {
namespaced: true,
state,
mutations,
actions
}