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 @@