From f622b1787c3264fe1aefc2c312b312d7f0023430 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Fri, 7 Jul 2023 16:23:06 +0800 Subject: [PATCH] refactor: data list filter components (#4182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /area console /kind improvement /milestone 2.8.x #### What this PR does / why we need it: 重构 Console 端数据列表的筛选项 UI,并提供全局的筛选列表组件和搜索输入框组件。 > 在此 PR 同时重构了插件列表和用户列表用于验证,其他页面后续提 PR 修改。 image 重构之后可以获得: 1. 更好的代码组织。 2. 更好的使用体验。 3. UI 更加容易适配移动端。 #### Which issue(s) this PR fixes: Fixes #4181 #### Special notes for your reviewer: 需要测试: 1. 测试插件管理和用户管理的数据列表筛选和关键词搜索功能是否正常。 #### Does this PR introduce a user-facing change? ```release-note 重构 Console 端数据列表的筛选项 UI,并提供全局的筛选列表组件和搜索输入框组件。 ``` --- .../src/components/filter/FilterDropdown.vue | 67 +++++ console/src/components/input/SearchInput.vue | 55 +++++ console/src/locales/en.yaml | 4 +- console/src/locales/zh-CN.yaml | 4 +- console/src/locales/zh-TW.yaml | 4 +- .../contents/attachments/AttachmentList.vue | 1 - .../modules/contents/comments/CommentList.vue | 1 - .../modules/contents/pages/SinglePageList.vue | 1 - .../src/modules/contents/posts/PostList.vue | 1 - .../src/modules/system/plugins/PluginList.vue | 231 +++++------------- console/src/modules/system/users/UserList.vue | 220 +++++------------ console/src/setup/setupComponents.ts | 8 + 12 files changed, 262 insertions(+), 335 deletions(-) create mode 100644 console/src/components/filter/FilterDropdown.vue create mode 100644 console/src/components/input/SearchInput.vue diff --git a/console/src/components/filter/FilterDropdown.vue b/console/src/components/filter/FilterDropdown.vue new file mode 100644 index 000000000..bc8921297 --- /dev/null +++ b/console/src/components/filter/FilterDropdown.vue @@ -0,0 +1,67 @@ + + + diff --git a/console/src/components/input/SearchInput.vue b/console/src/components/input/SearchInput.vue new file mode 100644 index 000000000..94eff2dd8 --- /dev/null +++ b/console/src/components/input/SearchInput.vue @@ -0,0 +1,55 @@ + + + diff --git a/console/src/locales/en.yaml b/console/src/locales/en.yaml index 3269b8e7f..e7a8eeb76 100644 --- a/console/src/locales/en.yaml +++ b/console/src/locales/en.yaml @@ -748,7 +748,6 @@ core: filters: status: items: - all: All active: Active inactive: Inactive sort: @@ -1190,6 +1189,9 @@ core: labels: sort: Sort status: Status + item_labels: + all: All + default: Default status: deleting: Deleting loading: Loading diff --git a/console/src/locales/zh-CN.yaml b/console/src/locales/zh-CN.yaml index 95d3b9642..5afe68719 100644 --- a/console/src/locales/zh-CN.yaml +++ b/console/src/locales/zh-CN.yaml @@ -748,7 +748,6 @@ core: filters: status: items: - all: 全部 active: 已启用 inactive: 未启用 sort: @@ -1190,6 +1189,9 @@ core: labels: sort: 排序 status: 状态 + item_labels: + all: 全部 + default: 默认 status: deleting: 删除中 loading: 加载中 diff --git a/console/src/locales/zh-TW.yaml b/console/src/locales/zh-TW.yaml index c7d7f3446..3b05e6214 100644 --- a/console/src/locales/zh-TW.yaml +++ b/console/src/locales/zh-TW.yaml @@ -748,7 +748,6 @@ core: filters: status: items: - all: 全部 active: 已啟用 inactive: 未啟用 sort: @@ -1190,6 +1189,9 @@ core: labels: sort: 排序 status: 狀態 + item_labels: + all: 全部 + default: 預設 status: deleting: 刪除中 loading: 加載中 diff --git a/console/src/modules/contents/attachments/AttachmentList.vue b/console/src/modules/contents/attachments/AttachmentList.vue index 6f0e5cec3..ecc7b5ab4 100644 --- a/console/src/modules/contents/attachments/AttachmentList.vue +++ b/console/src/modules/contents/attachments/AttachmentList.vue @@ -44,7 +44,6 @@ import { useRouteQuery } from "@vueuse/router"; import { useFetchAttachmentGroup } from "./composables/use-attachment-group"; import { usePermission } from "@/utils/permission"; import FilterTag from "@/components/filter/FilterTag.vue"; -import FilterCleanButton from "@/components/filter/FilterCleanButton.vue"; import { getNode } from "@formkit/core"; import { useI18n } from "vue-i18n"; diff --git a/console/src/modules/contents/comments/CommentList.vue b/console/src/modules/contents/comments/CommentList.vue index 25fca9c9a..1dec07c30 100644 --- a/console/src/modules/contents/comments/CommentList.vue +++ b/console/src/modules/contents/comments/CommentList.vue @@ -21,7 +21,6 @@ import type { ListedComment, User } from "@halo-dev/api-client"; import { computed, ref, watch } from "vue"; import { apiClient } from "@/utils/api-client"; import FilterTag from "@/components/filter/FilterTag.vue"; -import FilterCleanButton from "@/components/filter/FilterCleanButton.vue"; import { getNode } from "@formkit/core"; import { useQuery } from "@tanstack/vue-query"; import { useI18n } from "vue-i18n"; diff --git a/console/src/modules/contents/pages/SinglePageList.vue b/console/src/modules/contents/pages/SinglePageList.vue index 3416ef6e4..8025e2805 100644 --- a/console/src/modules/contents/pages/SinglePageList.vue +++ b/console/src/modules/contents/pages/SinglePageList.vue @@ -37,7 +37,6 @@ import cloneDeep from "lodash.clonedeep"; import { usePermission } from "@/utils/permission"; import { singlePageLabels } from "@/constants/labels"; import FilterTag from "@/components/filter/FilterTag.vue"; -import FilterCleanButton from "@/components/filter/FilterCleanButton.vue"; import { getNode } from "@formkit/core"; import { useMutation, useQuery } from "@tanstack/vue-query"; import { useI18n } from "vue-i18n"; diff --git a/console/src/modules/contents/posts/PostList.vue b/console/src/modules/contents/posts/PostList.vue index 9d1b8da61..b7a76c781 100644 --- a/console/src/modules/contents/posts/PostList.vue +++ b/console/src/modules/contents/posts/PostList.vue @@ -43,7 +43,6 @@ import { formatDatetime } from "@/utils/date"; import { usePermission } from "@/utils/permission"; import { postLabels } from "@/constants/labels"; import FilterTag from "@/components/filter/FilterTag.vue"; -import FilterCleanButton from "@/components/filter/FilterCleanButton.vue"; import { getNode } from "@formkit/core"; import TagDropdownSelector from "@/components/dropdown-selector/TagDropdownSelector.vue"; import { useMutation, useQuery } from "@tanstack/vue-query"; diff --git a/console/src/modules/system/plugins/PluginList.vue b/console/src/modules/system/plugins/PluginList.vue index 73c9877c2..4ca8a828d 100644 --- a/console/src/modules/system/plugins/PluginList.vue +++ b/console/src/modules/system/plugins/PluginList.vue @@ -1,7 +1,6 @@