refactor: simplify the logic of importing module

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/5164/head
Ryan Wang 2024-01-10 12:42:05 +08:00
parent 0b30c0d98e
commit 2e0e0beb16
5 changed files with 36 additions and 87 deletions

View File

@ -1,48 +1,10 @@
// fixme: add supports for auto import import type { PluginModule } from "packages/shared/dist";
import dashboardModule from "./dashboard/module";
import postModule from "./contents/posts/module";
import pageModule from "./contents/pages/module";
import commentModule from "./contents/comments/module";
import attachmentModule from "./contents/attachments/module";
import themeModule from "./interface/themes/module";
import menuModule from "./interface/menus/module";
import pluginModule from "./system/plugins/module";
import userModule from "./system/users/module";
import roleModule from "./system/roles/module";
import settingModule from "./system/settings/module";
import actuatorModule from "./system/actuator/module";
import authProviderModule from "./system/auth-providers/module";
import backupModule from "./system/backup/module";
// const coreModules = [ const modules = Object.values(
// dashboardModule, import.meta.glob("./**/module.ts", {
// postModule, eager: true,
// pageModule, import: "default",
// commentModule, })
// attachmentModule, ) as PluginModule[];
// themeModule,
// menuModule,
// pluginModule,
// userModule,
// roleModule,
// settingModule,
// ];
const coreModules = [ export default modules;
postModule,
pluginModule,
settingModule,
actuatorModule,
dashboardModule,
menuModule,
commentModule,
attachmentModule,
pageModule,
themeModule,
userModule,
roleModule,
authProviderModule,
backupModule,
];
export { coreModules };

View File

@ -6,11 +6,11 @@ import AuthProviderDetail from "./AuthProviderDetail.vue";
export default definePlugin({ export default definePlugin({
routes: [ routes: [
{ {
path: "/users", path: "/users/auth-providers",
component: BasicLayout, component: BasicLayout,
children: [ children: [
{ {
path: "auth-providers", path: "",
name: "AuthProviders", name: "AuthProviders",
component: AuthProviders, component: AuthProviders,
meta: { meta: {
@ -19,7 +19,7 @@ export default definePlugin({
}, },
}, },
{ {
path: "auth-providers/:name", path: ":name",
name: "AuthProviderDetail", name: "AuthProviderDetail",
component: AuthProviderDetail, component: AuthProviderDetail,
meta: { meta: {

View File

@ -7,11 +7,11 @@ export default definePlugin({
components: {}, components: {},
routes: [ routes: [
{ {
path: "/users", path: "/users/roles",
component: BasicLayout, component: BasicLayout,
children: [ children: [
{ {
path: "roles", path: "",
name: "Roles", name: "Roles",
component: RoleList, component: RoleList,
meta: { meta: {
@ -21,7 +21,7 @@ export default definePlugin({
}, },
}, },
{ {
path: "roles/:name", path: ":name",
name: "RoleDetail", name: "RoleDetail",
component: RoleDetail, component: RoleDetail,
meta: { meta: {

View File

@ -1,6 +1,5 @@
import { definePlugin } from "@halo-dev/console-shared"; import { definePlugin } from "@halo-dev/console-shared";
import BasicLayout from "@console/layouts/BasicLayout.vue"; import BasicLayout from "@console/layouts/BasicLayout.vue";
import BlankLayout from "@console/layouts/BlankLayout.vue";
import UserStatsWidget from "./widgets/UserStatsWidget.vue"; import UserStatsWidget from "./widgets/UserStatsWidget.vue";
import UserList from "./UserList.vue"; import UserList from "./UserList.vue";
import UserDetail from "./UserDetail.vue"; import UserDetail from "./UserDetail.vue";
@ -34,45 +33,32 @@ export default definePlugin({
}, },
{ {
path: "/users", path: "/users",
component: BlankLayout, component: BasicLayout,
children: [ children: [
{ {
path: "", path: "",
component: BasicLayout, name: "Users",
children: [ component: UserList,
{ meta: {
path: "", title: "core.user.title",
name: "Users", searchable: true,
component: UserList, permissions: ["system:users:view"],
meta: { menu: {
title: "core.user.title", name: "core.sidebar.menu.items.users",
searchable: true, group: "system",
permissions: ["system:users:view"], icon: markRaw(IconUserSettings),
menu: { priority: 1,
name: "core.sidebar.menu.items.users", mobile: true,
group: "system",
icon: markRaw(IconUserSettings),
priority: 1,
mobile: true,
},
},
}, },
], },
}, },
{ {
path: ":name", path: ":name",
component: BasicLayout, name: "UserDetail",
name: "User", component: UserDetail,
children: [ meta: {
{ title: "core.user.detail.title",
path: "", },
name: "UserDetail",
component: UserDetail,
meta: {
title: "core.user.detail.title",
},
},
],
}, },
], ],
}, },

View File

@ -1,5 +1,5 @@
import { i18n } from "@/locales"; import { i18n } from "@/locales";
import { coreModules } from "@console/modules"; import modules from "@console/modules";
import router from "@console/router"; import router from "@console/router";
import { usePluginModuleStore } from "@/stores/plugin"; import { usePluginModuleStore } from "@/stores/plugin";
import type { PluginModule, RouteRecordAppend } from "@halo-dev/console-shared"; import type { PluginModule, RouteRecordAppend } from "@halo-dev/console-shared";
@ -10,7 +10,8 @@ import type { RouteRecordRaw } from "vue-router";
import { loadStyle } from "@/utils/load-style"; import { loadStyle } from "@/utils/load-style";
export function setupCoreModules(app: App) { export function setupCoreModules(app: App) {
coreModules.forEach((module) => { console.log(modules);
modules.forEach((module) => {
registerModule(app, module, true); registerModule(app, module, true);
}); });
} }