perf: 优化待办列表

This commit is contained in:
kuaifan 2023-12-19 15:14:03 +08:00
parent 12b3c14299
commit 0579a73c1c
2 changed files with 21 additions and 12 deletions

View File

@ -249,7 +249,7 @@ class DialogController extends AbstractController
* @apiGroup dialog * @apiGroup dialog
* @apiName todo * @apiName todo
* *
* @apiParam {Number} dialog_id 会话ID * @apiParam {Number} [dialog_id] 会话ID
* *
* @apiSuccess {Number} ret 返回状态码1正确、0错误 * @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述) * @apiSuccess {String} msg 返回信息(错误描述)
@ -261,9 +261,13 @@ class DialogController extends AbstractController
// //
$dialog_id = intval(Request::input('dialog_id')); $dialog_id = intval(Request::input('dialog_id'));
// //
$builder = WebSocketDialogMsgTodo::whereUserid($user->userid)->whereDoneAt(null);
if ($dialog_id > 0) {
WebSocketDialog::checkDialog($dialog_id); WebSocketDialog::checkDialog($dialog_id);
$builder->whereDialogId($dialog_id);
}
// //
$list = WebSocketDialogMsgTodo::whereDialogId($dialog_id)->whereUserid($user->userid)->whereDoneAt(null)->orderByDesc('id')->take(50)->get(); $list = $builder->orderByDesc('id')->take(50)->get();
return Base::retSuccess("success", $list); return Base::retSuccess("success", $list);
} }

View File

@ -551,6 +551,7 @@ export default {
// //
dispatch("getProjects").catch(() => {}); dispatch("getProjects").catch(() => {});
dispatch("getDialogs").catch(() => {}); dispatch("getDialogs").catch(() => {});
dispatch("getDialogTodo", 0).catch(() => {});
dispatch("getReportUnread", 1000); dispatch("getReportUnread", 1000);
dispatch("getApproveUnread", 1000); dispatch("getApproveUnread", 1000);
dispatch("getTaskForDashboard"); dispatch("getTaskForDashboard");
@ -2479,18 +2480,22 @@ export default {
}, },
}).then(({data}) => { }).then(({data}) => {
if ($A.arrayLength(data) > 0) { if ($A.arrayLength(data) > 0) {
if (dialog_id > 0) {
dispatch("saveDialog", { dispatch("saveDialog", {
id: dialog_id, id: dialog_id,
todo_num: $A.arrayLength(data) todo_num: $A.arrayLength(data)
}); });
state.dialogTodos = state.dialogTodos.filter(item => item.dialog_id != dialog_id) state.dialogTodos = state.dialogTodos.filter(item => item.dialog_id != dialog_id)
}
dispatch("saveDialogTodo", data) dispatch("saveDialogTodo", data)
} else { } else {
if (dialog_id > 0) {
dispatch("saveDialog", { dispatch("saveDialog", {
id: dialog_id, id: dialog_id,
todo_num: 0 todo_num: 0
}); });
} }
}
}).catch(console.warn); }).catch(console.warn);
}, },