From 6db6528be19a73b9fa9000182cc5e5b422f38e83 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Thu, 24 Jun 2021 15:53:20 +0800 Subject: [PATCH] no message --- .../Controllers/Api/ProjectController.php | 27 +++++++++++++++++++ .../pages/manage/components/DialogWrapper.vue | 16 ----------- .../js/pages/manage/components/TaskDetail.vue | 15 +++++++++++ .../assets/js/pages/manage/messenger.vue | 5 +++- resources/assets/js/store/actions.js | 24 +++++++++++++++-- .../sass/pages/components/task-detail.scss | 16 +++++++++++ 6 files changed, 84 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 7c49b615..30a00835 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -656,6 +656,33 @@ class ProjectController extends AbstractController return Base::retSuccess('success', $task->taskFile); } + /** + * 删除任务文件(限:项目、任务负责人) + * + * @apiParam {Number} file_id 文件ID + */ + public function task__filedelete() + { + User::auth(); + // + $file_id = intval(Request::input('file_id')); + // + $file = ProjectTaskFile::find($file_id); + if (empty($file)) { + return Base::retError('文件不存在或已被删除'); + } + // + $task = ProjectTask::userTask($file->task_id, [], true, $project); + if (!$task->owner && !$project->owner) { + return Base::retError('仅限项目或任务负责人操作'); + } + // + $task->pushMsg('filedelete', $file); + $file->delete(); + // + return Base::retSuccess('success', $file); + } + /** * {post} 添加任务 * diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index 3b38a2f7..04ef712f 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -106,7 +106,6 @@ export default { autoInterval: null, dialogDrag: false, - dialogReady: false, msgText: '', msgNew: 0, @@ -164,20 +163,12 @@ export default { dialogId: { handler() { - this.dialogReady = false; this.autoBottom = true; this.msgNew = 0; this.topId = -1; this.getMsg(); }, immediate: true - }, - - dialogs: { - handler() { - this.getMsg(); - }, - deep: true } }, @@ -186,13 +177,6 @@ export default { if (!this.dialogId) { return; } - if (this.dialogs.findIndex(({id}) => id == this.dialogId) === -1) { - return; - } - if (this.dialogReady) { - return; - } - this.dialogReady = true; this.$store.dispatch("getDialogMsgs", this.dialogId); }, diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index ee3a17fe..cd3dde58 100644 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -285,6 +285,7 @@ {{file.name}}
{{$A.bytesToSize(file.size)}}
+