From 469c401250b1dabab11a732ef50b42034ee3e09e Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 15:39:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/characters/character_3.png | Bin 0 -> 12236 bytes .../src/assets/characters/character_4.png | Bin 0 -> 11957 bytes .../src/assets/characters/character_6.png | Bin 0 -> 12247 bytes .../src/assets/characters/character_8.png | Bin 0 -> 11326 bytes apps/admin/src/assets/icons/403.svg | 2 +- apps/admin/src/assets/icons/404.svg | 2 +- apps/admin/src/assets/icons/500.svg | 2 +- apps/admin/src/assets/icons/homeinfo.svg | 2 +- .../src/components/LazyLoad/src/LazyLoad.tsx | 20 ++--- apps/admin/src/router/routes/compo.tsx | 69 ------------------ apps/admin/src/router/routes/excel.tsx | 38 ---------- apps/admin/src/router/routes/exception.tsx | 51 ------------- apps/admin/src/router/routes/form.tsx | 46 ------------ apps/admin/src/router/routes/graph-editor.tsx | 38 ---------- apps/admin/src/router/routes/images.tsx | 46 ------------ apps/admin/src/router/routes/table.tsx | 38 ---------- apps/admin/src/router/routes/text-editor.tsx | 46 ------------ apps/admin/src/router/routes/tree.tsx | 38 ---------- apps/admin/src/router/routes/user.tsx | 1 + apps/admin/src/router/routes/video.tsx | 38 ---------- apps/admin/vite.config.ts | 2 +- 21 files changed, 16 insertions(+), 463 deletions(-) create mode 100644 apps/admin/src/assets/characters/character_3.png create mode 100644 apps/admin/src/assets/characters/character_4.png create mode 100644 apps/admin/src/assets/characters/character_6.png create mode 100644 apps/admin/src/assets/characters/character_8.png delete mode 100644 apps/admin/src/router/routes/compo.tsx delete mode 100644 apps/admin/src/router/routes/excel.tsx delete mode 100644 apps/admin/src/router/routes/exception.tsx delete mode 100644 apps/admin/src/router/routes/form.tsx delete mode 100644 apps/admin/src/router/routes/graph-editor.tsx delete mode 100644 apps/admin/src/router/routes/images.tsx delete mode 100644 apps/admin/src/router/routes/table.tsx delete mode 100644 apps/admin/src/router/routes/text-editor.tsx delete mode 100644 apps/admin/src/router/routes/tree.tsx delete mode 100644 apps/admin/src/router/routes/video.tsx diff --git a/apps/admin/src/assets/characters/character_3.png b/apps/admin/src/assets/characters/character_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2d639ccde3c165991eebd0c29af084ff569575bb GIT binary patch literal 12236 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/characters/character_4.png b/apps/admin/src/assets/characters/character_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce49ffe4fff5b5e0d68204b34443445597e03c8 GIT binary patch literal 11957 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 Hu0mjf`DqwK literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/characters/character_6.png b/apps/admin/src/assets/characters/character_6.png new file mode 100644 index 0000000000000000000000000000000000000000..f59a84417a1376bfaebb2935836b5ae8d156bb9c GIT binary patch literal 12247 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/characters/character_8.png b/apps/admin/src/assets/characters/character_8.png new file mode 100644 index 0000000000000000000000000000000000000000..44f1708755ff0b9b0d7b81bad9e116066b792084 GIT binary patch literal 11326 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/icons/403.svg b/apps/admin/src/assets/icons/403.svg index e67ecdff..47da8299 100644 --- a/apps/admin/src/assets/icons/403.svg +++ b/apps/admin/src/assets/icons/403.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/404.svg b/apps/admin/src/assets/icons/404.svg index 1676c855..1d127144 100644 --- a/apps/admin/src/assets/icons/404.svg +++ b/apps/admin/src/assets/icons/404.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/500.svg b/apps/admin/src/assets/icons/500.svg index 082c6a39..fbf32ec1 100644 --- a/apps/admin/src/assets/icons/500.svg +++ b/apps/admin/src/assets/icons/500.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/homeinfo.svg b/apps/admin/src/assets/icons/homeinfo.svg index 47b08d42..f1322505 100644 --- a/apps/admin/src/assets/icons/homeinfo.svg +++ b/apps/admin/src/assets/icons/homeinfo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index a48102ba..e37bbd2a 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,20 +1,20 @@ -import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; +import { type ReactNode, Suspense } from 'react'; import Loading from './Loading'; +import type { LoadableComponent } from '@loadable/component'; + /** * @description 路由懒加载 * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { - return ( - <> - }> - - - - ); -}; +const LazyLoad = (Component: LoadableComponent<{}>): ReactNode => ( + <> + }> + + + +); export default LazyLoad; diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx deleted file mode 100644 index 44c60aee..00000000 --- a/apps/admin/src/router/routes/compo.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// component module page -const CompoRoute: RouteObject = { - path: '/compo', - element: , - meta: { - title: '组件', - icon: 'compo', - orderNo: 6, - }, - children: [ - { - path: 'image-upload', - element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), - meta: { - title: '图片上传', - key: 'imageUpload', - }, - }, - { - path: 'drag', - meta: { - title: '拖拽', - }, - children: [ - { - path: 'drag-list', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), - meta: { - title: '列表拖拽', - key: 'dragList', - }, - }, - { - path: 'drag-resize', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), - meta: { - title: '组件拖拽', - key: 'dragResize', - }, - }, - ], - }, - { - path: 'transfer', - element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), - meta: { - title: '穿梭框', - }, - }, - { - path: 'count-up', - element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), - meta: { - title: '数字滚动', - key: 'countUp', - }, - }, - ], -}; - -export default CompoRoute; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx deleted file mode 100644 index 8cdb8725..00000000 --- a/apps/admin/src/router/routes/excel.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// excel module page -const ExcelRoute: RouteObject = { - path: '/excel', - element: , - meta: { - title: 'Excel', - icon: 'excel', - orderNo: 10, - }, - children: [ - { - path: 'export-excel', - element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), - meta: { - title: '导出Excel', - key: 'exportExcel', - }, - }, - { - path: 'import-excel', - element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), - meta: { - title: '导入Excel', - key: 'importExcel', - }, - }, - ], -}; - -export default ExcelRoute; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx deleted file mode 100644 index ddf866aa..00000000 --- a/apps/admin/src/router/routes/exception.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { ExceptionEnum } from '@/enums/exceptionEnum'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// exception module page -const ExceptionRoute: RouteObject = { - path: '/exception', - element: , - meta: { - title: '异常页面', - icon: 'bug', - orderNo: 11, - }, - children: [ - { - path: 'page-403', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '403页面', - key: 'page403', - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }), - }, - { - path: 'page-404', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '404页面', - key: 'page404', - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }), - }, - { - path: 'page-500', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '500页面', - key: 'page500', - }, - loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }), - }, - ], -}; - -export default ExceptionRoute; diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx deleted file mode 100644 index 461e80e9..00000000 --- a/apps/admin/src/router/routes/form.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// form module page -const FormRoute: RouteObject = { - path: '/form', - element: , - meta: { - title: '表单', - icon: 'form', - orderNo: 2, - }, - children: [ - { - path: 'basic-form', - element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), - meta: { - title: '基础表单', - key: 'basicForm', - }, - }, - { - path: 'form-designer', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '表单设计器', - key: 'formDesigner', - }, - }, - { - path: 'gbeata-form', - element: LazyLoad(lazy(() => import('@/views/form/gbeata-form'))), - meta: { - title: 'gbeata表单', - key: 'gbeataForm', - }, - }, - ], -}; - -export default FormRoute; diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx deleted file mode 100644 index 11647db8..00000000 --- a/apps/admin/src/router/routes/graph-editor.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// graph-editor module page -const GraphEditorRoute: RouteObject = { - path: '/graph-editor', - element: , - meta: { - title: '图形编辑器', - icon: 'flow', - orderNo: 8, - }, - children: [ - { - path: 'flow-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '流程图', - key: 'flowChart', - }, - }, - { - path: 'mind-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '思维导图', - key: 'mindChart', - }, - }, - ], -}; - -export default GraphEditorRoute; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx deleted file mode 100644 index 1385640f..00000000 --- a/apps/admin/src/router/routes/images.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// image module page -const ImageRoute: RouteObject = { - path: '/image', - element: , - meta: { - title: '图片处理', - icon: 'image', - orderNo: 4, - }, - children: [ - { - path: 'image-cropper', - element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), - meta: { - title: '图片裁剪', - key: 'imageCropper', - }, - }, - { - path: 'image-compress', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片压缩', - key: 'imageCompress', - }, - }, - { - path: 'image-composition', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片合成', - key: 'imageComposition', - }, - }, - ], -}; - -export default ImageRoute; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx deleted file mode 100644 index 6d89a997..00000000 --- a/apps/admin/src/router/routes/table.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// table module page -const TableRoute: RouteObject = { - path: '/table', - element: , - meta: { - title: '表格', - icon: 'table', - orderNo: 3, - }, - children: [ - { - path: 'table-basic', - element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), - meta: { - title: '基础表格', - key: 'tableBasic', - }, - }, - { - path: 'table-edit-row', - element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), - meta: { - title: '可编辑行表格', - key: 'tableEditRow', - }, - }, - ], -}; - -export default TableRoute; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx deleted file mode 100644 index 753b10da..00000000 --- a/apps/admin/src/router/routes/text-editor.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// text-editor module page -const TextEditorRoute: RouteObject = { - path: '/editor', - element: , - meta: { - title: '文本编辑器', - icon: 'editor', - orderNo: 7, - }, - children: [ - { - path: 'markdown', - element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), - meta: { - title: 'Markdown编辑器', - key: 'markdown', - }, - }, - { - path: 'rich-text', - element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), - meta: { - title: '富文本编辑器', - key: 'richText', - }, - }, - { - path: 'code-editor', - element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), - meta: { - title: '代码编辑器', - key: 'codeEditor', - }, - }, - ], -}; - -export default TextEditorRoute; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx deleted file mode 100644 index c28cb750..00000000 --- a/apps/admin/src/router/routes/tree.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// tree module page -const TreeRoute: RouteObject = { - path: '/tree', - element: , - meta: { - title: '树形结构', - icon: 'tree', - orderNo: 9, - }, - children: [ - { - path: 'org-tree', - element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), - meta: { - title: '组织树', - key: 'orgTree', - }, - }, - { - path: 'antd-tree', - element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), - meta: { - title: '控件树', - key: 'antdTree', - }, - }, - ], -}; - -export default TreeRoute; diff --git a/apps/admin/src/router/routes/user.tsx b/apps/admin/src/router/routes/user.tsx index 94465f06..acc1c267 100644 --- a/apps/admin/src/router/routes/user.tsx +++ b/apps/admin/src/router/routes/user.tsx @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/no-extraneous-dependencies import { lazy } from '@loadable/component'; import LazyLoad from '@/components/LazyLoad'; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx deleted file mode 100644 index 4a34bd1e..00000000 --- a/apps/admin/src/router/routes/video.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// video module page -const VideoRoute: RouteObject = { - path: '/video', - element: , - meta: { - title: '视频处理', - icon: 'video', - orderNo: 5, - }, - children: [ - { - path: 'video-player', - element: LazyLoad(lazy(() => import('@/views/video/video-player'))), - meta: { - title: '视频播放器', - key: 'videoPlayer', - }, - }, - { - path: 'video-mark', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '视频水印', - key: 'videoMark', - }, - }, - ], -}; - -export default VideoRoute; diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 10bcdb68..469cf395 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -24,7 +24,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv; return { - base: isBuild ? '/react-antd-admin-pnpm/' : './', + base: './', server: { // Listening on all local ips host: true,