forked from ccsens_fe/tall-mui-3
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.
85 lines
2.3 KiB
85 lines
2.3 KiB
import storage from '@/utils/storage';
|
|
const { setStorageSync, getStorageSync, removeStorageSync } = storage;
|
|
|
|
const mutations = {
|
|
/**
|
|
* 初始化消息栈
|
|
* @param {object} state
|
|
* @param {string} type
|
|
* type:
|
|
* syncMessages 同步消息栈
|
|
* faultMessages 故障消息 未处理消息栈
|
|
* faults 所有的故障消息栈
|
|
*/
|
|
messagesInit(state, type) {
|
|
const messages = getStorageSync(type) ? JSON.parse(getStorageSync(type)) : [];
|
|
state[type] = messages;
|
|
},
|
|
|
|
/**
|
|
* 将新 消息添加到 消息栈 最前边
|
|
* @param { object } state
|
|
* @param { object } data
|
|
* data: message, type
|
|
* message 消息对象
|
|
* type:
|
|
* syncMessages 同步消息栈
|
|
* faultMessages 故障消息 未处理消息栈
|
|
* faults 所有的故障消息栈
|
|
* game 游戏的消息
|
|
*
|
|
* cache: boolean true 本地存储 false 不存储
|
|
*/
|
|
messagesAdd(state, data) {
|
|
const messages = state[data.type];
|
|
if (messages.length > 0) {
|
|
const result = messages.find(msg => msg.id === data.message.id);
|
|
if (result) return;
|
|
}
|
|
messages.unshift(data.message);
|
|
// eslint-disable-next-line no-param-reassign
|
|
state[data.type] = messages;
|
|
if (data.cache) {
|
|
setStorageSync(data.type, JSON.stringify(messages));
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 通过消息id移除指定 同步 消息
|
|
* @param { object } state
|
|
* @param { object } data
|
|
* data: messageId, type
|
|
* messageId: 要移除的消息的messageId
|
|
* type:
|
|
* syncMessages 同步消息栈
|
|
* faultMessages 故障消息 未处理消息栈
|
|
* faults 所有的故障消息栈
|
|
* cache: boolean true 本地存储 false 不存储
|
|
*/
|
|
messagesRemoveById(state, data) {
|
|
const messages = state[data.type];
|
|
const index = messages.findIndex(msg => msg.id === data.messageId);
|
|
if (index < 0) return;
|
|
messages.splice(index, 1);
|
|
// eslint-disable-next-line no-param-reassign
|
|
state[data.type] = messages;
|
|
if (data.cache) {
|
|
setStorageSync(data.type, JSON.stringify(messages));
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 清除指定type的消息
|
|
* @param {any} state
|
|
* @param {object} data
|
|
* data: type, cache
|
|
*/
|
|
messagesClear(state, data) {
|
|
state[data.type] = [];
|
|
if (data.cache) {
|
|
removeStorageSync(data.type);
|
|
}
|
|
},
|
|
};
|
|
|
|
export default mutations;
|
|
|