From f588385c7cb6f655293e10b07d1fc75b4cad0b26 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Thu, 12 May 2022 15:28:21 +0800 Subject: [PATCH] refactor: routes mapping and page views structure Signed-off-by: Ryan Wang --- src/layouts/BasicLayout.vue | 4 +- src/router/menus.config.ts | 14 +- src/router/routes.config.ts | 180 +++++++++--- src/views/AboutView.vue | 15 - src/views/HomeView.vue | 49 ---- src/views/attachments/Attachments.vue | 45 --- .../contents/attachments/AttachmentList.vue | 42 +++ src/views/contents/comments/CommentList.vue | 1 + src/views/contents/posts/PostEditor.vue | 1 + src/views/contents/posts/PostList.vue | 256 +++++++++++++++++ .../posts/categories/CategoryList.vue | 1 + src/views/{ => contents}/posts/posts-mock.ts | 0 src/views/contents/posts/tags/TagList.vue | 1 + src/views/contents/sheets/SheetList.vue | 256 +++++++++++++++++ src/views/dashboard/Dashboard.vue | 46 +++ src/views/interface/Themes.vue | 46 --- src/views/interface/menus/MenuList.vue | 1 + src/views/interface/themes/ThemeList.vue | 43 +++ .../interface/{ => themes}/themes-mock.ts | 0 src/views/interface/visual/Visual.vue | 1 + src/views/posts/PageList.vue | 265 ------------------ src/views/posts/PostList.vue | 265 ------------------ src/views/system/plugins/PluginList.vue | 1 + src/views/system/settings/Settings.vue | 1 + src/views/system/users/Profile.vue | 179 ++++++++++++ src/views/system/users/UserList.vue | 1 + src/views/users/Profile.vue | 182 ------------ 27 files changed, 978 insertions(+), 918 deletions(-) delete mode 100644 src/views/AboutView.vue delete mode 100644 src/views/HomeView.vue delete mode 100644 src/views/attachments/Attachments.vue create mode 100644 src/views/contents/attachments/AttachmentList.vue create mode 100644 src/views/contents/comments/CommentList.vue create mode 100644 src/views/contents/posts/PostEditor.vue create mode 100644 src/views/contents/posts/PostList.vue create mode 100644 src/views/contents/posts/categories/CategoryList.vue rename src/views/{ => contents}/posts/posts-mock.ts (100%) create mode 100644 src/views/contents/posts/tags/TagList.vue create mode 100644 src/views/contents/sheets/SheetList.vue create mode 100644 src/views/dashboard/Dashboard.vue delete mode 100644 src/views/interface/Themes.vue create mode 100644 src/views/interface/menus/MenuList.vue create mode 100644 src/views/interface/themes/ThemeList.vue rename src/views/interface/{ => themes}/themes-mock.ts (100%) create mode 100644 src/views/interface/visual/Visual.vue delete mode 100644 src/views/posts/PageList.vue delete mode 100644 src/views/posts/PostList.vue create mode 100644 src/views/system/plugins/PluginList.vue create mode 100644 src/views/system/settings/Settings.vue create mode 100644 src/views/system/users/Profile.vue create mode 100644 src/views/system/users/UserList.vue delete mode 100644 src/views/users/Profile.vue diff --git a/src/layouts/BasicLayout.vue b/src/layouts/BasicLayout.vue index a29c575f..1f5d4180 100644 --- a/src/layouts/BasicLayout.vue +++ b/src/layouts/BasicLayout.vue @@ -31,7 +31,7 @@
- +
@@ -89,7 +89,7 @@ import { VModal } from "@/components/base/modal"; import { menus, minimenus } from "@/router/menus.config"; import logo from "@/assets/logo.svg"; import { IconMore, IconUserSettings } from "@/core/icons"; -import { useRoute, useRouter } from "vue-router"; +import { useRoute, useRouter, RouterView } from "vue-router"; import { ref } from "vue"; const route = useRoute(); diff --git a/src/router/menus.config.ts b/src/router/menus.config.ts index 78cde49f..09e5a195 100644 --- a/src/router/menus.config.ts +++ b/src/router/menus.config.ts @@ -31,7 +31,7 @@ export const menus: MenuGroupType[] = [ items: [ { name: "仪表盘", - path: "/", + path: "/dashboard", icon: IconDashboard, }, ], @@ -51,12 +51,12 @@ export const menus: MenuGroupType[] = [ }, { name: "评论", - path: "/comment", + path: "/comments", icon: IconMessage, }, { name: "附件", - path: "/attachment", + path: "/attachments", icon: IconFolder, }, ], @@ -91,7 +91,7 @@ export const menus: MenuGroupType[] = [ }, { name: "用户", - path: "/users", + path: "/users/profile", icon: IconUserSettings, }, { @@ -116,17 +116,17 @@ export const minimenus: MenuItemType[] = [ }, { name: "评论", - path: "/comment", + path: "/comments", icon: IconMessage, }, { name: "附件", - path: "/attachment", + path: "/attachments", icon: IconFolder, }, { name: "用户", - path: "/users", + path: "/users/profile", icon: IconUserSettings, }, ]; diff --git a/src/router/routes.config.ts b/src/router/routes.config.ts index f0d5ed3f..548968dc 100644 --- a/src/router/routes.config.ts +++ b/src/router/routes.config.ts @@ -1,84 +1,180 @@ import type { RouteRecordRaw } from "vue-router"; -import HomeView from "../views/HomeView.vue"; -import AboutView from "../views/AboutView.vue"; -import PostList from "../views/posts/PostList.vue"; -import PageList from "../views/posts/PageList.vue"; -import Profile from "../views/users/Profile.vue"; -import Themes from "../views/interface/Themes.vue"; -import Attachments from "../views/attachments/Attachments.vue"; +import { BasicLayout, BlankLayout } from "@/layouts"; + +import Dashboard from "../views/dashboard/Dashboard.vue"; + +import PostList from "../views/contents/posts/PostList.vue"; +import PostEditor from "../views/contents/posts/PostEditor.vue"; +import SheetList from "../views/contents/sheets/SheetList.vue"; +import CategoryList from "../views/contents/posts/categories/CategoryList.vue"; +import TagList from "../views/contents/posts/tags/TagList.vue"; +import CommentList from "../views/contents/comments/CommentList.vue"; +import AttachmentList from "../views/contents/attachments/AttachmentList.vue"; + +import ThemeList from "../views/interface/themes/ThemeList.vue"; +import MenuList from "../views/interface/menus/MenuList.vue"; +import Visual from "../views/interface/visual/Visual.vue"; + +import PluginList from "../views/system/plugins/PluginList.vue"; +import UserList from "../views/system/users/UserList.vue"; +import Profile from "../views/system/users/Profile.vue"; +import Settings from "../views/system/settings/Settings.vue"; export const routes: Array = [ { path: "/", - name: "Dashboard", - component: HomeView, - }, - { - path: "/about", - name: "about", - component: AboutView, + component: BasicLayout, + redirect: "/dashboard", + children: [ + { + path: "dashboard", + name: "Dashboard", + component: Dashboard, + }, + ], }, { path: "/posts", - name: "Posts", - component: PostList, + component: BasicLayout, children: [ { - path: "/posts/categories", - name: "Categories", - component: AboutView, + path: "", + name: "Posts", + component: PostList, }, { - path: "/posts/tags", - name: "Tags", - component: AboutView, + path: "editor", + name: "PostEditor", + component: PostEditor, + }, + { + path: "categories", + component: BlankLayout, + children: [ + { + path: "", + name: "Categories", + component: CategoryList, + }, + ], + }, + { + path: "tags", + component: BlankLayout, + children: [ + { + path: "", + name: "Tags", + component: TagList, + }, + ], }, ], }, { path: "/sheets", - name: "Sheets", - component: PageList, + component: BasicLayout, + children: [ + { + path: "", + name: "Sheets", + component: SheetList, + }, + ], }, { - path: "/comment", - name: "Comment", - component: AboutView, + path: "/comments", + component: BasicLayout, + children: [ + { + path: "", + name: "Comments", + component: CommentList, + }, + ], }, { - path: "/attachment", - name: "Attachment", - component: Attachments, + path: "/attachments", + component: BasicLayout, + children: [ + { + path: "", + name: "Attachments", + component: AttachmentList, + }, + ], }, { path: "/themes", - name: "Themes", - component: Themes, + component: BasicLayout, + children: [ + { + path: "", + name: "Themes", + component: ThemeList, + }, + ], }, { path: "/menus", - name: "Menus", - component: AboutView, + component: BasicLayout, + children: [ + { + path: "", + name: "Menus", + component: MenuList, + }, + ], }, { path: "/visual", - name: "Visual", - component: AboutView, + component: BasicLayout, + children: [ + { + path: "", + name: "Visual", + component: Visual, + }, + ], }, { path: "/plugins", - name: "Plugins", - component: AboutView, + component: BasicLayout, + children: [ + { + path: "", + name: "Plugins", + component: PluginList, + }, + ], }, { path: "/users", - name: "Users", - component: Profile, + component: BasicLayout, + redirect: "/users/profile", + children: [ + { + path: "", + name: "Users", + component: UserList, + }, + { + path: "profile", + name: "Profile", + component: Profile, + }, + ], }, { path: "/settings", - name: "Settings", - component: AboutView, + component: BasicLayout, + children: [ + { + path: "", + name: "Settings", + component: Settings, + }, + ], }, ]; diff --git a/src/views/AboutView.vue b/src/views/AboutView.vue deleted file mode 100644 index 7aa6155f..00000000 --- a/src/views/AboutView.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue deleted file mode 100644 index 82caedb5..00000000 --- a/src/views/HomeView.vue +++ /dev/null @@ -1,49 +0,0 @@ - - diff --git a/src/views/attachments/Attachments.vue b/src/views/attachments/Attachments.vue deleted file mode 100644 index 579bb0a0..00000000 --- a/src/views/attachments/Attachments.vue +++ /dev/null @@ -1,45 +0,0 @@ - - diff --git a/src/views/contents/attachments/AttachmentList.vue b/src/views/contents/attachments/AttachmentList.vue new file mode 100644 index 00000000..8ae4c768 --- /dev/null +++ b/src/views/contents/attachments/AttachmentList.vue @@ -0,0 +1,42 @@ + + diff --git a/src/views/contents/comments/CommentList.vue b/src/views/contents/comments/CommentList.vue new file mode 100644 index 00000000..f3563446 --- /dev/null +++ b/src/views/contents/comments/CommentList.vue @@ -0,0 +1 @@ + diff --git a/src/views/contents/posts/PostEditor.vue b/src/views/contents/posts/PostEditor.vue new file mode 100644 index 00000000..8d666a36 --- /dev/null +++ b/src/views/contents/posts/PostEditor.vue @@ -0,0 +1 @@ + diff --git a/src/views/contents/posts/PostList.vue b/src/views/contents/posts/PostList.vue new file mode 100644 index 00000000..e073a6e9 --- /dev/null +++ b/src/views/contents/posts/PostList.vue @@ -0,0 +1,256 @@ + + + + diff --git a/src/views/contents/posts/categories/CategoryList.vue b/src/views/contents/posts/categories/CategoryList.vue new file mode 100644 index 00000000..5a7a4474 --- /dev/null +++ b/src/views/contents/posts/categories/CategoryList.vue @@ -0,0 +1 @@ + diff --git a/src/views/posts/posts-mock.ts b/src/views/contents/posts/posts-mock.ts similarity index 100% rename from src/views/posts/posts-mock.ts rename to src/views/contents/posts/posts-mock.ts diff --git a/src/views/contents/posts/tags/TagList.vue b/src/views/contents/posts/tags/TagList.vue new file mode 100644 index 00000000..eaafe4d7 --- /dev/null +++ b/src/views/contents/posts/tags/TagList.vue @@ -0,0 +1 @@ + diff --git a/src/views/contents/sheets/SheetList.vue b/src/views/contents/sheets/SheetList.vue new file mode 100644 index 00000000..dd5bd46f --- /dev/null +++ b/src/views/contents/sheets/SheetList.vue @@ -0,0 +1,256 @@ + + + + diff --git a/src/views/dashboard/Dashboard.vue b/src/views/dashboard/Dashboard.vue new file mode 100644 index 00000000..c8b3ca41 --- /dev/null +++ b/src/views/dashboard/Dashboard.vue @@ -0,0 +1,46 @@ + + diff --git a/src/views/interface/Themes.vue b/src/views/interface/Themes.vue deleted file mode 100644 index 12019b6d..00000000 --- a/src/views/interface/Themes.vue +++ /dev/null @@ -1,46 +0,0 @@ - - diff --git a/src/views/interface/menus/MenuList.vue b/src/views/interface/menus/MenuList.vue new file mode 100644 index 00000000..e26b73c4 --- /dev/null +++ b/src/views/interface/menus/MenuList.vue @@ -0,0 +1 @@ + diff --git a/src/views/interface/themes/ThemeList.vue b/src/views/interface/themes/ThemeList.vue new file mode 100644 index 00000000..195ae381 --- /dev/null +++ b/src/views/interface/themes/ThemeList.vue @@ -0,0 +1,43 @@ + + diff --git a/src/views/interface/themes-mock.ts b/src/views/interface/themes/themes-mock.ts similarity index 100% rename from src/views/interface/themes-mock.ts rename to src/views/interface/themes/themes-mock.ts diff --git a/src/views/interface/visual/Visual.vue b/src/views/interface/visual/Visual.vue new file mode 100644 index 00000000..cd2085e4 --- /dev/null +++ b/src/views/interface/visual/Visual.vue @@ -0,0 +1 @@ + diff --git a/src/views/posts/PageList.vue b/src/views/posts/PageList.vue deleted file mode 100644 index 86fc0cd4..00000000 --- a/src/views/posts/PageList.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - - diff --git a/src/views/posts/PostList.vue b/src/views/posts/PostList.vue deleted file mode 100644 index 1ae89d0c..00000000 --- a/src/views/posts/PostList.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - - diff --git a/src/views/system/plugins/PluginList.vue b/src/views/system/plugins/PluginList.vue new file mode 100644 index 00000000..aebb4e4c --- /dev/null +++ b/src/views/system/plugins/PluginList.vue @@ -0,0 +1 @@ + diff --git a/src/views/system/settings/Settings.vue b/src/views/system/settings/Settings.vue new file mode 100644 index 00000000..7cb7c22c --- /dev/null +++ b/src/views/system/settings/Settings.vue @@ -0,0 +1 @@ + diff --git a/src/views/system/users/Profile.vue b/src/views/system/users/Profile.vue new file mode 100644 index 00000000..b5c47bf6 --- /dev/null +++ b/src/views/system/users/Profile.vue @@ -0,0 +1,179 @@ + + diff --git a/src/views/system/users/UserList.vue b/src/views/system/users/UserList.vue new file mode 100644 index 00000000..b3b789cc --- /dev/null +++ b/src/views/system/users/UserList.vue @@ -0,0 +1 @@ + diff --git a/src/views/users/Profile.vue b/src/views/users/Profile.vue deleted file mode 100644 index 88c83521..00000000 --- a/src/views/users/Profile.vue +++ /dev/null @@ -1,182 +0,0 @@ - -