From f4cd7fe1e2c3fce131160709e4daeb4821a44009 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 13 Jun 2021 01:03:36 +0800 Subject: [PATCH] no message --- .../Controllers/Api/ProjectController.php | 2 +- app/Models/ProjectTask.php | 63 ++-- resources/assets/js/components/TEditor.vue | 7 + resources/assets/js/components/UserAvatar.vue | 16 +- resources/assets/js/components/UserInput.vue | 23 +- resources/assets/js/functions/common.js | 2 +- .../pages/manage/components/ProjectList.vue | 14 +- .../js/pages/manage/components/TaskDetail.vue | 268 +++++++++++++++--- resources/assets/js/store/actions.js | 53 ++-- .../assets/sass/components/user-avatar.scss | 5 +- resources/assets/sass/iconfont.scss | 6 +- .../sass/pages/components/project-list.scss | 1 + .../sass/pages/components/task-detail.scss | 32 ++- 13 files changed, 376 insertions(+), 116 deletions(-) diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 53066358..d4d76fca 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -679,7 +679,7 @@ class ProjectController extends AbstractController return Base::retError('项目不存在或不在成员列表内'); } // - return Base::retSuccess('success', $task->content); + return Base::retSuccess('success', $task->content ?: json_decode('{}')); } /** diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index d8988592..4fee6f20 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -238,7 +238,7 @@ class ProjectTask extends AbstractModel */ public function taskUser(): \Illuminate\Database\Eloquent\Relations\HasMany { - return $this->hasMany(projectTaskUser::class, 'task_id', 'id')->orderByDesc('id'); + return $this->hasMany(projectTaskUser::class, 'task_id', 'id')->orderByDesc('owner')->orderByDesc('id'); } /** @@ -372,30 +372,6 @@ class ProjectTask extends AbstractModel } $this->name = $data['name']; } - // 背景色 - if (Arr::exists($data, 'color')) { - $this->color = $data['color']; - } - // 内容 - if ($content && $this->parent_id === 0) { - ProjectTaskContent::updateInsert([ - 'project_id' => $this->parent_id, - 'task_id' => $this->id, - ], [ - 'content' => $content, - ]); - $this->desc = Base::getHtml($content); - } - // 计划时间 - if ($times) { - list($start, $end) = is_string($times) ? explode(",", $times) : (is_array($times) ? $times : []); - if (Base::isDate($start) && Base::isDate($end)) { - if ($start != $end) { - $this->start_at = Carbon::parse($start); - $this->end_at = Carbon::parse($end); - } - } - } // 负责人 if ($owner) { if (is_array($owner)) { @@ -414,6 +390,43 @@ class ProjectTask extends AbstractModel ]); } } + // 计划时间 + if ($times) { + list($start, $end) = is_string($times) ? explode(",", $times) : (is_array($times) ? $times : []); + if (Base::isDate($start) && Base::isDate($end)) { + if ($start != $end) { + $this->start_at = Carbon::parse($start); + $this->end_at = Carbon::parse($end); + } + } + } + // 以下紧顶级任务可修改 + if ($this->parent_id === 0) { + // 背景色 + if (Arr::exists($data, 'color')) { + $this->color = $data['color']; + } + // 内容 + if ($content && $this->parent_id === 0) { + ProjectTaskContent::updateInsert([ + 'project_id' => $this->parent_id, + 'task_id' => $this->id, + ], [ + 'content' => $content, + ]); + $this->desc = Base::getHtml($content); + } + // 优先级 + if (Arr::exists($data, 'p_level')) { + $this->p_level = intval($data['p_level']); + } + if (Arr::exists($data, 'p_name')) { + $this->p_name = trim($data['p_name']); + } + if (Arr::exists($data, 'p_color')) { + $this->p_color = trim($data['p_color']); + } + } $this->save(); return Base::retSuccess('修改成功'); }); diff --git a/resources/assets/js/components/TEditor.vue b/resources/assets/js/components/TEditor.vue index 2d525544..090fc35b 100755 --- a/resources/assets/js/components/TEditor.vue +++ b/resources/assets/js/components/TEditor.vue @@ -347,6 +347,12 @@ this.$emit('editorChange', e); } }); + editor.on('focus', () => { + this.$emit('on-focus'); + }); + editor.on('blur', () => { + this.$emit('on-blur'); + }); } }, }; @@ -355,6 +361,7 @@ closeFull() { this.content = this.getContent(); this.$emit('input', this.content); + this.$emit('on-blur'); this.transfer = false; if (this.editorT != null) { this.editorT.destroy(); diff --git a/resources/assets/js/components/UserAvatar.vue b/resources/assets/js/components/UserAvatar.vue index 40b2eacc..b25bcc95 100755 --- a/resources/assets/js/components/UserAvatar.vue +++ b/resources/assets/js/components/UserAvatar.vue @@ -13,6 +13,7 @@
+ {{nickname}}
@@ -77,8 +78,21 @@ return style; }, + spotStyle() { + let {borderWitdh, size} = this + if (size === 'default') size = 32; + if (borderWitdh > 0) size-= borderWitdh; + if (size == 32) { + return {} + } + return { + 'transform': 'scale(' + (size / 32) + ')', + } + }, + avatarSize() { - const {borderWitdh, size} = this + let {borderWitdh, size} = this + if (size === 'default') size = 32; if (borderWitdh > 0) { return size - borderWitdh * 2; } else { diff --git a/resources/assets/js/components/UserInput.vue b/resources/assets/js/components/UserInput.vue index 24724d0c..53d8b32d 100755 --- a/resources/assets/js/components/UserInput.vue +++ b/resources/assets/js/components/UserInput.vue @@ -17,7 +17,13 @@ @on-open-change="openChange" @on-set-default-options="setDefaultOptions">
{{$L('最多只能选择' + multipleMax + '个')}}
-