mirror of https://github.com/halo-dev/halo
refactor: simplify the logic of importing module
Signed-off-by: Ryan Wang <i@ryanc.cc>pull/5164/head
parent
0b30c0d98e
commit
2e0e0beb16
|
@ -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 };
|
|
||||||
|
|
|
@ -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: {
|
||||||
|
|
|
@ -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: {
|
||||||
|
|
|
@ -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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue