57 lines
1.7 KiB
JavaScript
Vendored
57 lines
1.7 KiB
JavaScript
Vendored
export default {
|
|
/**
|
|
* 会话消息列表
|
|
* @param state
|
|
* @param data
|
|
*/
|
|
dialogMsgListSuccess(state, data) {
|
|
const dialog = data.dialog;
|
|
const list = data.data;
|
|
// 更新当前会话消息
|
|
if (state.dialogId == dialog.id) {
|
|
state.dialogDetail = dialog;
|
|
list.forEach((item) => {
|
|
let index = state.dialogMsgList.findIndex(({id}) => id == item.id);
|
|
if (index === -1) {
|
|
state.dialogMsgList.unshift(item);
|
|
} else {
|
|
state.dialogMsgList.splice(index, 1, item);
|
|
}
|
|
});
|
|
this.commit("dialogMsgListStorageCurrent");
|
|
}
|
|
// 页数数据
|
|
state.dialogMsgCurrentPage = data.current_page;
|
|
state.dialogMsgHasMorePages = data.current_page < data.last_page;
|
|
// 更新会话数据
|
|
this.dispatch("saveDialog", dialog);
|
|
},
|
|
|
|
/**
|
|
* 保存当前会话消息
|
|
* @param state
|
|
*/
|
|
dialogMsgListStorageCurrent(state) {
|
|
if (!state.method.isJson(state.cacheDialogMsg[state.dialogId])) {
|
|
return;
|
|
}
|
|
//
|
|
state.cacheDialogMsg[state.dialogId].data = state.dialogMsgList;
|
|
state.method.setStorage("cacheDialogMsg", state.cacheDialogMsg);
|
|
},
|
|
|
|
/**
|
|
* 将会话移动到首位
|
|
* @param state
|
|
* @param dialog_id
|
|
*/
|
|
dialogMoveToTop(state, dialog_id) {
|
|
const index = state.dialogList.findIndex(({id}) => id == dialog_id);
|
|
if (index > -1) {
|
|
const tmp = state.method.cloneJSON(state.dialogList[index]);
|
|
state.dialogList.splice(index, 1);
|
|
state.dialogList.unshift(tmp);
|
|
}
|
|
}
|
|
}
|