no message

This commit is contained in:
kuaifan 2025-03-14 09:25:33 +08:00
parent 173631f115
commit 13c4fa4f1f
2 changed files with 56 additions and 49 deletions

View File

@ -706,18 +706,19 @@ export default {
/** /**
* 更新会员信息 * 更新会员信息
* @param commit
* @param state * @param state
* @param dispatch * @param dispatch
* @param info * @param info
* @returns {Promise<unknown>} * @returns {Promise<unknown>}
*/ */
saveUserInfo({state, dispatch}, info) { saveUserInfo({commit, state, dispatch}, info) {
return new Promise(async resolve => { return new Promise(async resolve => {
await dispatch("saveUserInfoBase", info); await dispatch("saveUserInfoBase", info);
// //
dispatch("getBasicData", null); dispatch("getBasicData", null);
if (state.userId > 0) { if (state.userId > 0) {
state.cacheUserBasic = state.cacheUserBasic.filter(({userid}) => userid !== state.userId) commit("user/save", state.cacheUserBasic.filter(({userid}) => userid !== state.userId))
dispatch("saveUserBasic", state.userInfo); dispatch("saveUserBasic", state.userInfo);
} }
resolve() resolve()
@ -788,23 +789,22 @@ export default {
/** /**
* 保存用户基础信息 * 保存用户基础信息
* @param commit
* @param state * @param state
* @param data * @param data
*/ */
saveUserBasic({state}, data) { saveUserBasic({commit, state}, data) {
$A.execMainDispatch("saveUserBasic", data) $A.execMainDispatch("saveUserBasic", data)
// //
const index = state.cacheUserBasic.findIndex(({userid}) => userid == data.userid); const index = state.cacheUserBasic.findIndex(({userid}) => userid == data.userid);
if (index > -1) { if (index > -1) {
data = Object.assign({}, state.cacheUserBasic[index], data) data = Object.assign({}, state.cacheUserBasic[index], data)
state.cacheUserBasic.splice(index, 1, data); commit("user/splice", {index, data})
} else { } else {
state.cacheUserBasic.push(data) commit("user/push", data)
} }
state.cacheUserActive = Object.assign(data, {__:Math.random()}); state.cacheUserActive = Object.assign(data, {__:Math.random()});
emitter.emit('userActive', {type: 'cache', data}); emitter.emit('userActive', {type: 'cache', data});
//
$A.IDBSave("cacheUserBasic", state.cacheUserBasic)
}, },
/** /**
@ -1690,9 +1690,9 @@ export default {
// //
const index = state.cacheTasks.findIndex(({id}) => id == data.id); const index = state.cacheTasks.findIndex(({id}) => id == data.id);
if (index > -1) { if (index > -1) {
commit("CACHE_TASKS_SPLICE", {index, data: Object.assign({}, state.cacheTasks[index], data)}); commit("task/splice", {index, data: Object.assign({}, state.cacheTasks[index], data)});
} else { } else {
commit("CACHE_TASKS_PUSH", data); commit("task/push", data);
} }
// //
if (updateMarking.is_update_maintask === true || (data.parent_id > 0 && state.cacheTasks.findIndex(({id}) => id == data.parent_id) === -1)) { if (updateMarking.is_update_maintask === true || (data.parent_id > 0 && state.cacheTasks.findIndex(({id}) => id == data.parent_id) === -1)) {
@ -1745,13 +1745,13 @@ export default {
parent_ids.push(state.cacheTasks[index].parent_id) parent_ids.push(state.cacheTasks[index].parent_id)
} }
project_ids.push(state.cacheTasks[index].project_id) project_ids.push(state.cacheTasks[index].project_id)
commit("CACHE_TASKS_SPLICE", {index}) commit("task/splice", {index})
} }
state.cacheTasks.filter(task => task.parent_id == id).some(childTask => { state.cacheTasks.filter(task => task.parent_id == id).some(childTask => {
let cIndex = state.cacheTasks.findIndex(task => task.id == childTask.id); let cIndex = state.cacheTasks.findIndex(task => task.id == childTask.id);
if (cIndex > -1) { if (cIndex > -1) {
project_ids.push(childTask.project_id) project_ids.push(childTask.project_id)
commit("CACHE_TASKS_SPLICE", {index: cIndex}) commit("task/splice", {index: cIndex})
} }
}) })
}) })
@ -2676,9 +2676,9 @@ export default {
delete data.last_at delete data.last_at
delete data.last_msg delete data.last_msg
} }
commit("CACHE_DIALOGS_SPLICE", {index, data: Object.assign({}, original, data)}) commit("dialog/splice", {index, data: Object.assign({}, original, data)})
} else { } else {
commit("CACHE_DIALOGS_PUSH", data) commit("dialog/push", data)
} }
} }
}, },
@ -3011,7 +3011,7 @@ export default {
const index = state.cacheDialogs.findIndex(dialog => dialog.id == id); const index = state.cacheDialogs.findIndex(dialog => dialog.id == id);
if (index > -1) { if (index > -1) {
dispatch("forgetDialogMsg", state.dialogMsgs.filter(item => item.dialog_id == dialog_id).map(item => item.id)) dispatch("forgetDialogMsg", state.dialogMsgs.filter(item => item.dialog_id == dialog_id).map(item => item.id))
commit("CACHE_DIALOGS_SPLICE", {index}) commit("dialog/splice", {index})
} }
}) })
if (ids.includes(state.dialogId)) { if (ids.includes(state.dialogId)) {
@ -3052,7 +3052,7 @@ export default {
} }
}) })
if (delIds.length > 0) { if (delIds.length > 0) {
commit("DIALOG_MSGS_SAVE", state.dialogMsgs.filter(item => !delIds.includes(item.dialog_id))) commit("message/save", state.dialogMsgs.filter(item => !delIds.includes(item.dialog_id)))
} }
state.dialogHistory = newIds state.dialogHistory = newIds
} }
@ -3087,13 +3087,13 @@ export default {
$A.execMainDispatch("closeDialog", dialog_id) $A.execMainDispatch("closeDialog", dialog_id)
// 更新草稿标签 // 更新草稿标签
commit('TAG_DIALOG_DRAFT', dialog_id) commit('draft/tag', dialog_id)
// 关闭会话后删除会话超限消息 // 关闭会话后删除会话超限消息
const msgs = state.dialogMsgs.filter(item => item.dialog_id == dialog_id) const msgs = state.dialogMsgs.filter(item => item.dialog_id == dialog_id)
if (msgs.length > state.dialogMsgKeep) { if (msgs.length > state.dialogMsgKeep) {
const delIds = msgs.sort((a, b) => b.id - a.id).splice(state.dialogMsgKeep).map(item => item.id) const delIds = msgs.sort((a, b) => b.id - a.id).splice(state.dialogMsgKeep).map(item => item.id)
commit("DIALOG_MSGS_SAVE", state.dialogMsgs.filter(item => !delIds.includes(item.id))) commit("message/save", state.dialogMsgs.filter(item => !delIds.includes(item.id)))
} }
}, },
@ -3195,7 +3195,7 @@ export default {
// 创建新的计时器 // 创建新的计时器
dialogDraftState.timer[id] = setTimeout(() => { dialogDraftState.timer[id] = setTimeout(() => {
commit('SET_DIALOG_DRAFT', {id, content}) commit('draft/set', {id, content})
delete dialogDraftState.timer[id] delete dialogDraftState.timer[id]
}, (immediate || !content) ? 0 : 600) }, (immediate || !content) ? 0 : 600)
}, },
@ -3229,9 +3229,9 @@ export default {
delete data.read_at delete data.read_at
} }
data = Object.assign({}, original, data) data = Object.assign({}, original, data)
commit("DIALOG_MSGS_SPLICE", {index, data}) commit("message/splice", {index, data})
} else { } else {
commit("DIALOG_MSGS_PUSH", data) commit("message/push", data)
} }
// //
const dialog = state.cacheDialogs.find(({id}) => id == data.dialog_id); const dialog = state.cacheDialogs.find(({id}) => id == data.dialog_id);
@ -3275,7 +3275,7 @@ export default {
const msgData = state.dialogMsgs[index] const msgData = state.dialogMsgs[index]
dispatch("decrementMsgReplyNum", msgData); dispatch("decrementMsgReplyNum", msgData);
dispatch("audioStop", $A.getObject(msgData, 'msg.path')); dispatch("audioStop", $A.getObject(msgData, 'msg.path'));
commit("DIALOG_MSGS_SPLICE", {index}) commit("message/splice", {index})
} }
}) })
dispatch("forgetDialogTodoForMsgId", msg_id) dispatch("forgetDialogTodoForMsgId", msg_id)
@ -3322,7 +3322,7 @@ export default {
dispatch("setLoad", loadKey) dispatch("setLoad", loadKey)
// //
if (clearBefore) { if (clearBefore) {
commit("DIALOG_MSGS_SAVE", state.dialogMsgs.filter(({dialog_id}) => dialog_id !== data.dialog_id)) commit("message/save", state.dialogMsgs.filter(({dialog_id}) => dialog_id !== data.dialog_id))
} }
// //
data.pagesize = 25; data.pagesize = 25;
@ -3337,7 +3337,7 @@ export default {
const resData = result.data; const resData = result.data;
if ($A.isJson(resData.dialog)) { if ($A.isJson(resData.dialog)) {
const ids = resData.list.map(({id}) => id) const ids = resData.list.map(({id}) => id)
commit("DIALOG_MSGS_SAVE", state.dialogMsgs.filter(item => { commit("message/save", state.dialogMsgs.filter(item => {
return item.dialog_id != data.dialog_id || ids.includes(item.id) || $A.dayjs(item.created_at).unix() >= resData.time return item.dialog_id != data.dialog_id || ids.includes(item.id) || $A.dayjs(item.created_at).unix() >= resData.time
})) }))
dispatch("saveDialog", resData.dialog) dispatch("saveDialog", resData.dialog)

View File

@ -1,12 +1,31 @@
export default { export default {
// 添加消息 // 会员管理
DIALOG_MSGS_PUSH(state, data) { 'user/push': function(state, data) {
state.cacheUserBasic.push(data)
$A.IDBSave("cacheUserBasic", state.cacheUserBasic, 600)
},
'user/splice': function(state, {index, data, count = 1}) {
if (typeof data === "undefined") {
state.cacheUserBasic.splice(index, count)
} else {
state.cacheUserBasic.splice(index, count, data)
}
$A.IDBSave("cacheUserBasic", state.cacheUserBasic, 600)
},
'user/save': function(state, data) {
state.cacheUserBasic = data
$A.IDBSave("cacheUserBasic", state.cacheUserBasic, 600)
},
// 消息管理
'message/push': function(state, data) {
state.dialogMsgs.push(data) state.dialogMsgs.push(data)
$A.IDBSave("dialogMsgs", state.dialogMsgs, 600) $A.IDBSave("dialogMsgs", state.dialogMsgs, 600)
}, },
// 修改、删除消息 'message/splice': function(state, {index, data, count = 1}) {
DIALOG_MSGS_SPLICE(state, {index, data, count = 1}) {
if (typeof data === "undefined") { if (typeof data === "undefined") {
state.dialogMsgs.splice(index, count) state.dialogMsgs.splice(index, count)
} else { } else {
@ -15,23 +34,18 @@ export default {
$A.IDBSave("dialogMsgs", state.dialogMsgs, 600) $A.IDBSave("dialogMsgs", state.dialogMsgs, 600)
}, },
// 保存消息 'message/save': function(state, data) {
DIALOG_MSGS_SAVE(state, data) {
state.dialogMsgs = data state.dialogMsgs = data
$A.IDBSave("dialogMsgs", state.dialogMsgs, 600) $A.IDBSave("dialogMsgs", state.dialogMsgs, 600)
}, },
// 任务管理
'task/push': function(state, data) {
// 添加任务
CACHE_TASKS_PUSH(state, data) {
state.cacheTasks.push(data) state.cacheTasks.push(data)
$A.IDBSave("cacheTasks", state.cacheTasks, 600) $A.IDBSave("cacheTasks", state.cacheTasks, 600)
}, },
// 修改、删除任务 'task/splice': function(state, {index, data, count = 1}) {
CACHE_TASKS_SPLICE(state, {index, data, count = 1}) {
if (typeof data === "undefined") { if (typeof data === "undefined") {
state.cacheTasks.splice(index, count) state.cacheTasks.splice(index, count)
} else { } else {
@ -40,17 +54,13 @@ export default {
$A.IDBSave("cacheTasks", state.cacheTasks, 600) $A.IDBSave("cacheTasks", state.cacheTasks, 600)
}, },
// 对话管理
'dialog/push': function(state, data) {
// 添加对话
CACHE_DIALOGS_PUSH(state, data) {
state.cacheDialogs.push(data) state.cacheDialogs.push(data)
$A.IDBSave("cacheDialogs", state.cacheDialogs, 600) $A.IDBSave("cacheDialogs", state.cacheDialogs, 600)
}, },
// 修改、删除对话 'dialog/splice': function(state, {index, data, count = 1}) {
CACHE_DIALOGS_SPLICE(state, {index, data, count = 1}) {
if (typeof data === "undefined") { if (typeof data === "undefined") {
state.cacheDialogs.splice(index, count) state.cacheDialogs.splice(index, count)
} else { } else {
@ -59,10 +69,8 @@ export default {
$A.IDBSave("cacheDialogs", state.cacheDialogs, 600) $A.IDBSave("cacheDialogs", state.cacheDialogs, 600)
}, },
// 草稿管理
'draft/set': function(state, {id, content}) {
// 设置草稿
SET_DIALOG_DRAFT(state, {id, content}) {
const index = state.dialogDrafts.findIndex(item => item.id === id) const index = state.dialogDrafts.findIndex(item => item.id === id)
const item = { const item = {
id, id,
@ -92,8 +100,7 @@ export default {
$A.IDBSave("dialogDrafts", state.dialogDrafts) $A.IDBSave("dialogDrafts", state.dialogDrafts)
}, },
// 草稿标签 'draft/tag': function(state, id) {
TAG_DIALOG_DRAFT(state, id) {
if (state.dialogId == id) { if (state.dialogId == id) {
return return
} }