mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
refactor(projects): 重构路由页面组件的导入
This commit is contained in:
@ -1,3 +0,0 @@
|
||||
const About = () => import('./index.vue');
|
||||
|
||||
export { About };
|
@ -1,5 +0,0 @@
|
||||
const ComponentButton = () => import('./button/index.vue');
|
||||
const ComponentCard = () => import('./card/index.vue');
|
||||
const ComponentTable = () => import('./table/index.vue');
|
||||
|
||||
export { ComponentButton, ComponentCard, ComponentTable };
|
@ -1,4 +0,0 @@
|
||||
const DashboardAnalysis = () => import('./analysis/index.vue');
|
||||
const DashboardWorkbench = () => import('./workbench/index.vue');
|
||||
|
||||
export { DashboardAnalysis, DashboardWorkbench };
|
@ -1,6 +0,0 @@
|
||||
const DocumentVue = () => import('./vue/index.vue');
|
||||
const DocumentVueNew = () => import('./vue-new/index.vue');
|
||||
const DocumentVite = () => import('./vite/index.vue');
|
||||
const DocumentNaive = () => import('./naive/index.vue');
|
||||
|
||||
export { DocumentVue, DocumentVueNew, DocumentVite, DocumentNaive };
|
8
src/views/exception/403/index.vue
Normal file
8
src/views/exception/403/index.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<exception-base type="403" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ExceptionBase } from '../../system-view/components';
|
||||
</script>
|
||||
<style scoped></style>
|
8
src/views/exception/404/index.vue
Normal file
8
src/views/exception/404/index.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<exception-base type="404" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ExceptionBase } from '../../system-view/components';
|
||||
</script>
|
||||
<style scoped></style>
|
8
src/views/exception/500/index.vue
Normal file
8
src/views/exception/500/index.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<exception-base type="500" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ExceptionBase } from '../../system-view/components';
|
||||
</script>
|
||||
<style scoped></style>
|
@ -1,7 +1,31 @@
|
||||
export * from './system';
|
||||
export * from './dashboard';
|
||||
export * from './document';
|
||||
export * from './component';
|
||||
export * from './plugin';
|
||||
export * from './multi-menu';
|
||||
export * from './about';
|
||||
import type { Component } from 'vue';
|
||||
|
||||
type ViewComponent = Record<string, () => Promise<Component>>;
|
||||
|
||||
const importViews = import.meta.glob('./**/index.vue');
|
||||
|
||||
const COMPONENTS_KEY = 'components';
|
||||
const PREFIX = './';
|
||||
const SUFFIX = '/index.vue';
|
||||
const PATH_SPLIT_MARK = '/';
|
||||
const ROUTE_KEY_SPLIT_MARK = '_';
|
||||
/** 系统的内置路由,该文件夹名称不作为RouteKey */
|
||||
const SYSTEM_VIEW = 'system-view_';
|
||||
|
||||
/** 过滤掉组件文件 */
|
||||
const viewKeys = Object.keys(importViews).filter(key => !key.includes(COMPONENTS_KEY));
|
||||
|
||||
function getViewComponent() {
|
||||
const components: ViewComponent = {};
|
||||
viewKeys.forEach(key => {
|
||||
const routeKey = key
|
||||
.replace(PREFIX, '')
|
||||
.replace(SUFFIX, '')
|
||||
.replaceAll(PATH_SPLIT_MARK, ROUTE_KEY_SPLIT_MARK)
|
||||
.replace(SYSTEM_VIEW, '');
|
||||
components[routeKey] = importViews[key];
|
||||
});
|
||||
return components;
|
||||
}
|
||||
|
||||
export const views = getViewComponent();
|
||||
|
@ -1,4 +0,0 @@
|
||||
const MultiMenuFirstSecond = () => import('./first/second/index.vue');
|
||||
const MultiMenuFirstSecondNewThird = () => import('./first/second-new/third/index.vue');
|
||||
|
||||
export { MultiMenuFirstSecond, MultiMenuFirstSecondNewThird };
|
@ -1,19 +0,0 @@
|
||||
const PluginMap = () => import('./map/index.vue');
|
||||
const PluginVideo = () => import('./video/index.vue');
|
||||
const PluginEditorQuill = () => import('./editor/quill/index.vue');
|
||||
const PluginEditorMarkdown = () => import('./editor/markdown/index.vue');
|
||||
const PluginSwiper = () => import('./swiper/index.vue');
|
||||
const PluginCopy = () => import('./copy/index.vue');
|
||||
const PluginIcon = () => import('./icon/index.vue');
|
||||
const PluginPrint = () => import('./print/index.vue');
|
||||
|
||||
export {
|
||||
PluginMap,
|
||||
PluginVideo,
|
||||
PluginEditorQuill,
|
||||
PluginEditorMarkdown,
|
||||
PluginSwiper,
|
||||
PluginCopy,
|
||||
PluginIcon,
|
||||
PluginPrint
|
||||
};
|
8
src/views/system-view/not-found/index.vue
Normal file
8
src/views/system-view/not-found/index.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<exception-base type="404" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ExceptionBase } from '../components';
|
||||
</script>
|
||||
<style scoped></style>
|
@ -1,6 +0,0 @@
|
||||
const Login = () => import('./login/index.vue');
|
||||
const NoPermission = () => import('./exception/no-permission/index.vue');
|
||||
const NotFound = () => import('./exception/not-found/index.vue');
|
||||
const ServiceError = () => import('./exception/service-error/index.vue');
|
||||
|
||||
export { Login, NoPermission, NotFound, ServiceError };
|
Reference in New Issue
Block a user