From e0e2318e2fd0ae2ea46083defc61c46217bed6a5 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 19 Jun 2021 11:18:27 +0800 Subject: [PATCH] no message --- .../Controllers/Api/ProjectController.php | 3 +- app/Models/ProjectTask.php | 4 +-- .../pages/manage/components/DialogWrapper.vue | 14 ++++++++- .../assets/js/pages/manage/messenger.vue | 4 +-- resources/assets/js/store/actions.js | 14 ++++----- resources/assets/js/store/mutations.js | 30 ++++++++++++++++++- .../sass/pages/components/task-detail.scss | 3 ++ 7 files changed, 57 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 7e607298..365f2dfd 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -187,8 +187,8 @@ class ProjectController extends AbstractController } // if ($project->name != $name) { - $project->name = $name; $project->addLog("修改项目名称:{$project->name} => {$name}"); + $project->name = $name; } if ($project->desc != $desc) { $project->desc = $desc; @@ -511,6 +511,7 @@ class ProjectController extends AbstractController // $list = $builder ->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_pid') + ->whereNull('project_tasks.archived_at') ->where('project_tasks.parent_id', 0) ->where('project_task_users.userid', $user->userid) ->orderByDesc('project_tasks.id') diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index 74989be6..deeeb421 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -356,8 +356,8 @@ class ProjectTask extends AbstractModel } elseif (mb_strlen($data['name']) > 255) { throw new ApiException('任务描述最多只能设置255个字'); } - $this->name = $data['name']; $this->addLog("修改{任务}标题:{$this->name} => {$data['name']}"); + $this->name = $data['name']; } // 负责人 if (Arr::exists($data, 'owner')) { @@ -420,8 +420,8 @@ class ProjectTask extends AbstractModel } // 背景色 if (Arr::exists($data, 'color') && $this->color != $data['color']) { - $this->color = $data['color']; $this->addLog("修改任务背景色:{$this->color} => {$data['color']}"); + $this->color = $data['color']; } // 内容 if (Arr::exists($data, 'content')) { diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index 173f0dcb..519e0aa8 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -45,7 +45,7 @@ -
+
{{$L('有' + msgNew + '条新消息')}}
-
- +
+
{{$L('选择一个会话开始聊天')}}
diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index b551804b..92957416 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -885,7 +885,7 @@ export default { // 更新缓存 state.cacheDialogMsg[dialog_id] = { dialog: data.dialog, - data: data.data.reverse(), + data: [], }; state.method.setStorage("cacheDialogMsg", state.cacheDialogMsg); // 更新当前会话消息 @@ -958,9 +958,10 @@ export default { /** * 根据消息ID 删除 或 替换 会话数据 * @param state + * @param commit * @param params {id, data} */ - dialogMsgUpdate({state}, params) { + dialogMsgUpdate({state, commit}, params) { let {id, data} = params; if (!id) { return; @@ -978,6 +979,7 @@ export default { if (index > -1) { if (data) { state.dialogMsgList.splice(index, 1, state.method.cloneJSON(data)); + commit("dialogMsgListStorageCurrent"); // 是最后一条消息时更新会话 last_msg if (state.dialogMsgList.length - 1 == index) { const dialog = state.dialogList.find(({id}) => id == data.dialog_id); @@ -1116,6 +1118,7 @@ export default { } else { state.dialogMsgList.splice(index, 1, data); } + commit("dialogMsgListStorageCurrent"); } if (mode === "add2") { return; @@ -1133,12 +1136,7 @@ export default { // 新增未读数 if (data.userid !== state.userId) dialog.unread++; // 移动到首位 - 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); - } + commit("dialogMoveToTop", dialog_id); } // 新增任务消息数量 state.projectDetail.project_column.some(({project_task}) => { diff --git a/resources/assets/js/store/mutations.js b/resources/assets/js/store/mutations.js index 3f717230..967fb44d 100644 --- a/resources/assets/js/store/mutations.js +++ b/resources/assets/js/store/mutations.js @@ -187,7 +187,8 @@ export default { } else { state.dialogMsgList.splice(index, 1, item); } - }) + }); + this.commit("dialogMsgListStorageCurrent"); } // 页数数据 state.dialogMsgCurrentPage = data.current_page; @@ -195,4 +196,31 @@ export default { // 更新会话数据 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); + } + } } diff --git a/resources/assets/sass/pages/components/task-detail.scss b/resources/assets/sass/pages/components/task-detail.scss index a703a048..858c124d 100644 --- a/resources/assets/sass/pages/components/task-detail.scss +++ b/resources/assets/sass/pages/components/task-detail.scss @@ -490,6 +490,9 @@ margin-left: 8px; background-color: #ffffff; overflow: auto; + .logs-activity { + padding: 22px 0 0 10px; + } } } }