From c930e4dd92b70acef7e076e9a54cbed75ffbf0da Mon Sep 17 00:00:00 2001 From: kuaifan Date: Thu, 6 Jan 2022 16:30:45 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA=E5=AE=8C=E6=88=90=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/ProjectController.php | 12 ++++++++++++ .../js/pages/manage/components/ProjectList.vue | 2 +- .../js/pages/manage/components/TaskArchived.vue | 8 ++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 80a40d4b..b1b21d24 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -866,6 +866,10 @@ class ProjectController extends AbstractController * @apiParam {String} [archived] 归档状态 * - yes:已归档 * - no:未归档(默认) + * @apiParam {Object} sorts 排序方式 + * - sorts.complete_at 完成时间:asc|desc + * - sorts.archived_at 归档时间:asc|desc + * - sorts.end_at 到期时间:asc|desc * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息(错误描述) @@ -884,6 +888,8 @@ class ProjectController extends AbstractController $time_before = Request::input('time_before'); $complete = Request::input('complete', 'all'); $archived = Request::input('archived', 'no'); + $sorts = Request::input('sorts'); + $sorts = is_array($sorts) ? $sorts : []; // if ($parent_id > 0) { ProjectTask::userTask($parent_id); @@ -921,6 +927,12 @@ class ProjectController extends AbstractController $builder->whereNull('project_tasks.archived_at'); } // + foreach ($sorts as $column => $direction) { + if (!in_array($column, ['complete_at', 'archived_at', 'end_at'])) continue; + if (!in_array($direction, ['asc', 'desc'])) continue; + $builder->orderBy('project_tasks.' . $column, $direction); + } + // $list = $builder->orderByDesc('project_tasks.id')->paginate(Base::getPaginate(200, 100)); // return Base::retSuccess('success', $list); diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 5867ffd2..dda43fb8 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -444,7 +444,7 @@ + :size="900"> diff --git a/resources/assets/js/pages/manage/components/TaskArchived.vue b/resources/assets/js/pages/manage/components/TaskArchived.vue index c52de3d1..d95f0d6a 100644 --- a/resources/assets/js/pages/manage/components/TaskArchived.vue +++ b/resources/assets/js/pages/manage/components/TaskArchived.vue @@ -64,6 +64,11 @@ export default { return h('AutoTip', row.name); } }, + { + title: this.$L('完成时间'), + key: 'complete_at', + width: 168, + }, { title: this.$L('归档时间'), key: 'archived_at', @@ -130,6 +135,9 @@ export default { data: { project_id: this.projectId, archived: 'yes', + sorts: { + archived_at: 'desc' + }, page: Math.max(this.page, 1), pagesize: Math.max($A.runNum(this.pageSize), 20), },