From 470b0de70dcc6f2002cd9506a3eb251f3abde7b3 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Tue, 26 Sep 2023 23:34:16 +0800 Subject: [PATCH] refactor: user detail page structure (#4664) 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.10.x #### What this PR does / why we need it: 重构 Console 端用户详情页面的结构。 1. 提高代码可读性。 2. 使用问号参数来区分不同的选项卡。 3. 封装头像修改相关的代码为组件。 #### Special notes for your reviewer: 测试用户详情页面的所有功能是否正常。 #### Does this PR introduce a user-facing change? ```release-note 重构 Console 端用户详情页面的代码结构。 ``` --- .../src/modules/system/users/UserDetail.vue | 329 ++++++++-------- .../system/users/components/UserAvatar.vue | 186 +++++++++ .../users/layouts/UserProfileLayout.vue | 355 ------------------ console/src/modules/system/users/module.ts | 14 +- .../src/modules/system/users/tabs/Detail.vue | 168 +++++++++ .../users/{ => tabs}/PersonalAccessTokens.vue | 4 +- 6 files changed, 538 insertions(+), 518 deletions(-) create mode 100644 console/src/modules/system/users/components/UserAvatar.vue delete mode 100644 console/src/modules/system/users/layouts/UserProfileLayout.vue create mode 100644 console/src/modules/system/users/tabs/Detail.vue rename console/src/modules/system/users/{ => tabs}/PersonalAccessTokens.vue (93%) diff --git a/console/src/modules/system/users/UserDetail.vue b/console/src/modules/system/users/UserDetail.vue index 73b4b62b4..33915d7df 100644 --- a/console/src/modules/system/users/UserDetail.vue +++ b/console/src/modules/system/users/UserDetail.vue @@ -1,168 +1,199 @@ diff --git a/console/src/modules/system/users/components/UserAvatar.vue b/console/src/modules/system/users/components/UserAvatar.vue new file mode 100644 index 000000000..137e737a2 --- /dev/null +++ b/console/src/modules/system/users/components/UserAvatar.vue @@ -0,0 +1,186 @@ + + + diff --git a/console/src/modules/system/users/layouts/UserProfileLayout.vue b/console/src/modules/system/users/layouts/UserProfileLayout.vue deleted file mode 100644 index eaeaf367c..000000000 --- a/console/src/modules/system/users/layouts/UserProfileLayout.vue +++ /dev/null @@ -1,355 +0,0 @@ - - diff --git a/console/src/modules/system/users/module.ts b/console/src/modules/system/users/module.ts index f7f60e94d..d437af010 100644 --- a/console/src/modules/system/users/module.ts +++ b/console/src/modules/system/users/module.ts @@ -1,11 +1,9 @@ import { definePlugin } from "@halo-dev/console-shared"; import BasicLayout from "@/layouts/BasicLayout.vue"; import BlankLayout from "@/layouts/BlankLayout.vue"; -import UserProfileLayout from "./layouts/UserProfileLayout.vue"; import UserStatsWidget from "./widgets/UserStatsWidget.vue"; import UserList from "./UserList.vue"; import UserDetail from "./UserDetail.vue"; -import PersonalAccessTokens from "./PersonalAccessTokens.vue"; import Login from "./Login.vue"; import { IconUserSettings } from "@halo-dev/components"; import { markRaw } from "vue"; @@ -61,25 +59,17 @@ export default definePlugin({ }, { path: ":name", - component: UserProfileLayout, + component: BasicLayout, name: "User", children: [ { - path: "detail", + path: "", name: "UserDetail", component: UserDetail, meta: { title: "core.user.detail.title", }, }, - { - path: "tokens", - name: "PersonalAccessTokens", - component: PersonalAccessTokens, - meta: { - title: "个人令牌", - }, - }, ], }, ], diff --git a/console/src/modules/system/users/tabs/Detail.vue b/console/src/modules/system/users/tabs/Detail.vue new file mode 100644 index 000000000..73b4b62b4 --- /dev/null +++ b/console/src/modules/system/users/tabs/Detail.vue @@ -0,0 +1,168 @@ + + diff --git a/console/src/modules/system/users/PersonalAccessTokens.vue b/console/src/modules/system/users/tabs/PersonalAccessTokens.vue similarity index 93% rename from console/src/modules/system/users/PersonalAccessTokens.vue rename to console/src/modules/system/users/tabs/PersonalAccessTokens.vue index 55a327547..9b9f24624 100644 --- a/console/src/modules/system/users/PersonalAccessTokens.vue +++ b/console/src/modules/system/users/tabs/PersonalAccessTokens.vue @@ -10,9 +10,9 @@ import { ref } from "vue"; import { apiClient } from "@/utils/api-client"; import type { PersonalAccessToken } from "@halo-dev/api-client"; import { useQuery } from "@tanstack/vue-query"; -import PersonalAccessTokenCreationModal from "./components/PersonalAccessTokenCreationModal.vue"; +import PersonalAccessTokenCreationModal from "../components/PersonalAccessTokenCreationModal.vue"; import { nextTick } from "vue"; -import PersonalAccessTokenListItem from "./components/PersonalAccessTokenListItem.vue"; +import PersonalAccessTokenListItem from "../components/PersonalAccessTokenListItem.vue"; const { data: pats,