diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index a6535a0c..ab3aff5d 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -38,7 +38,7 @@ class ProjectController extends AbstractController Carbon::today()->startOfDay(), Carbon::today()->endOfDay() ]; - $data['today'] = ProjectTask::authData()->whereParentId(0) + $data['today'] = ProjectTask::authData(null, true)->whereParentId(0) ->whereNull('archived_at') ->whereNull('complete_at') ->where(function ($query) use ($between) { @@ -47,7 +47,7 @@ class ProjectController extends AbstractController ->count(); // 超期未完成 - $data['overdue'] = ProjectTask::authData()->whereParentId(0) + $data['overdue'] = ProjectTask::authData(null, true)->whereParentId(0) ->whereNull('archived_at') ->whereNull('complete_at') ->whereNotNull('end_at') diff --git a/app/Models/Project.php b/app/Models/Project.php index bf84e92b..246b5b96 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -85,7 +85,7 @@ class Project extends AbstractModel $this->appendattrs['task_complete'] = $builder->whereNotNull('complete_at')->count(); $this->appendattrs['task_percent'] = $this->appendattrs['task_num'] ? intval($this->appendattrs['task_complete'] / $this->appendattrs['task_num'] * 100) : 0; // - $builder = ProjectTask::whereProjectId($this->id)->whereParentId(0)->authData(User::userid())->whereNull('archived_at'); + $builder = ProjectTask::whereProjectId($this->id)->whereParentId(0)->authData(User::userid(), true)->whereNull('archived_at'); $this->appendattrs['task_my_num'] = $builder->count(); $this->appendattrs['task_my_complete'] = $builder->whereNotNull('complete_at')->count(); $this->appendattrs['task_my_percent'] = $this->appendattrs['task_my_num'] ? intval($this->appendattrs['task_my_complete'] / $this->appendattrs['task_my_num'] * 100) : 0; diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index efbdd6bb..0269b6a7 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -53,7 +53,7 @@ use Request; * @property-read int|null $task_tag_count * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectTaskUser[] $taskUser * @property-read int|null $task_user_count - * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($userid = null) + * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($userid = null, $owner = false) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newQuery() * @method static \Illuminate\Database\Query\Builder|ProjectTask onlyTrashed() @@ -268,13 +268,17 @@ class ProjectTask extends AbstractModel * 查询自己的任务 * @param self $query * @param null $userid + * @param bool $owner * @return self */ - public function scopeAuthData($query, $userid = null) + public function scopeAuthData($query, $userid = null, $owner = false) { $userid = $userid ?: User::userid(); - $query->whereIn('id', function ($qy) use ($userid) { + $query->whereIn('id', function ($qy) use ($owner, $userid) { $qy->select('task_pid')->from('project_task_users')->where('userid', $userid); + if ($owner) { + $qy->where('owner', 1); + } }); return $query; } diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 9cd75557..cf7d4969 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -511,7 +511,7 @@ export default { return false; } } - return task.task_user && task.task_user.find(({userid}) => userid == userId); + return task.task_user && task.task_user.find(({userid, owner}) => userid == userId && owner == 1); }); return array.sort((a, b) => { if (a.p_level != b.p_level) {