From 2b6fcc138c11a58cc48e00ae66f58d87f9dd0852 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Wed, 7 Dec 2022 10:14:29 +0800 Subject: [PATCH] refactor: 将 layout 组件移动到 layout 目录下 --- yudao-ui-admin-vue3/src/components/Breadcrumb/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Breadcrumb/src/Breadcrumb.vue | 127 ------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Breadcrumb/src/helper.ts | 31 ------------------------------- yudao-ui-admin-vue3/src/components/Collapse/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Collapse/src/Collapse.vue | 35 ----------------------------------- yudao-ui-admin-vue3/src/components/ContextMenu/index.ts | 10 ---------- yudao-ui-admin-vue3/src/components/ContextMenu/src/ContextMenu.vue | 73 ------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Footer/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Footer/src/Footer.vue | 22 ---------------------- yudao-ui-admin-vue3/src/components/LocaleDropdown/index.ts | 3 --- yudao-ui-admin-vue3/src/components/LocaleDropdown/src/LocaleDropdown.vue | 52 ---------------------------------------------------- yudao-ui-admin-vue3/src/components/Logo/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Logo/src/Logo.vue | 85 ------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Menu/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Menu/src/Menu.vue | 299 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuItem.tsx | 59 ----------------------------------------------------------- yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuTitle.tsx | 23 ----------------------- yudao-ui-admin-vue3/src/components/Menu/src/helper.ts | 55 ------------------------------------------------------- yudao-ui-admin-vue3/src/components/Screenfull/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Screenfull/src/Screenfull.vue | 30 ------------------------------ yudao-ui-admin-vue3/src/components/Setting/index.ts | 3 --- yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue | 297 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Setting/src/components/ColorRadioPicker.vue | 65 ----------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue | 212 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/Setting/src/components/LayoutRadioPicker.vue | 171 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/SizeDropdown/index.ts | 3 --- yudao-ui-admin-vue3/src/components/SizeDropdown/src/SizeDropdown.vue | 40 ---------------------------------------- yudao-ui-admin-vue3/src/components/TabMenu/index.ts | 3 --- yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue | 253 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/TabMenu/src/helper.ts | 52 ---------------------------------------------------- yudao-ui-admin-vue3/src/components/TagsView/index.ts | 3 --- yudao-ui-admin-vue3/src/components/TagsView/src/TagsView.vue | 579 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- yudao-ui-admin-vue3/src/components/TagsView/src/helper.ts | 21 --------------------- yudao-ui-admin-vue3/src/components/ThemeSwitch/index.ts | 3 --- yudao-ui-admin-vue3/src/components/ThemeSwitch/src/ThemeSwitch.vue | 41 ----------------------------------------- yudao-ui-admin-vue3/src/components/UserInfo/index.ts | 3 --- yudao-ui-admin-vue3/src/components/UserInfo/src/UserInfo.vue | 77 ----------------------------------------------------------------------------- yudao-ui-admin-vue3/src/layout/Layout.vue | 2 +- yudao-ui-admin-vue3/src/layout/components/AppView.vue | 2 +- yudao-ui-admin-vue3/src/layout/components/Breadcrumb/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts | 31 +++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Collapse/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue | 35 +++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/ContextMenu/index.ts | 10 ++++++++++ yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Footer/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue | 22 ++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Logo/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Menu/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx | 23 +++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Screenfull/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue | 30 ++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Setting/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue | 297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue | 40 ++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/TabMenu/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue | 253 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/TagsView/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue | 579 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts | 21 +++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue | 41 +++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/ToolHeader.vue | 12 ++++++------ yudao-ui-admin-vue3/src/layout/components/UserInfo/index.ts | 3 +++ yudao-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/layout/components/useRenderLayout.tsx | 8 ++++---- yudao-ui-admin-vue3/src/views/Login/Login.vue | 4 ++-- 79 files changed, 2762 insertions(+), 2762 deletions(-) delete mode 100644 yudao-ui-admin-vue3/src/components/Breadcrumb/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Breadcrumb/src/Breadcrumb.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Breadcrumb/src/helper.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Collapse/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Collapse/src/Collapse.vue delete mode 100644 yudao-ui-admin-vue3/src/components/ContextMenu/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/ContextMenu/src/ContextMenu.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Footer/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Footer/src/Footer.vue delete mode 100644 yudao-ui-admin-vue3/src/components/LocaleDropdown/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/LocaleDropdown/src/LocaleDropdown.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Logo/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Logo/src/Logo.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Menu/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Menu/src/Menu.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuItem.tsx delete mode 100644 yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuTitle.tsx delete mode 100644 yudao-ui-admin-vue3/src/components/Menu/src/helper.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Screenfull/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Screenfull/src/Screenfull.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Setting/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Setting/src/components/ColorRadioPicker.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue delete mode 100644 yudao-ui-admin-vue3/src/components/Setting/src/components/LayoutRadioPicker.vue delete mode 100644 yudao-ui-admin-vue3/src/components/SizeDropdown/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/SizeDropdown/src/SizeDropdown.vue delete mode 100644 yudao-ui-admin-vue3/src/components/TabMenu/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue delete mode 100644 yudao-ui-admin-vue3/src/components/TabMenu/src/helper.ts delete mode 100644 yudao-ui-admin-vue3/src/components/TagsView/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/TagsView/src/TagsView.vue delete mode 100644 yudao-ui-admin-vue3/src/components/TagsView/src/helper.ts delete mode 100644 yudao-ui-admin-vue3/src/components/ThemeSwitch/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/ThemeSwitch/src/ThemeSwitch.vue delete mode 100644 yudao-ui-admin-vue3/src/components/UserInfo/index.ts delete mode 100644 yudao-ui-admin-vue3/src/components/UserInfo/src/UserInfo.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Breadcrumb/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Collapse/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/ContextMenu/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Footer/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Logo/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Menu/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx create mode 100644 yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx create mode 100644 yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Screenfull/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Setting/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/TabMenu/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/TagsView/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue create mode 100644 yudao-ui-admin-vue3/src/layout/components/UserInfo/index.ts create mode 100644 yudao-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue diff --git a/yudao-ui-admin-vue3/src/components/Breadcrumb/index.ts b/yudao-ui-admin-vue3/src/components/Breadcrumb/index.ts deleted file mode 100644 index 93ffe70..0000000 --- a/yudao-ui-admin-vue3/src/components/Breadcrumb/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Breadcrumb from './src/Breadcrumb.vue' - -export { Breadcrumb } diff --git a/yudao-ui-admin-vue3/src/components/Breadcrumb/src/Breadcrumb.vue b/yudao-ui-admin-vue3/src/components/Breadcrumb/src/Breadcrumb.vue deleted file mode 100644 index 47aa762..0000000 --- a/yudao-ui-admin-vue3/src/components/Breadcrumb/src/Breadcrumb.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/Breadcrumb/src/helper.ts b/yudao-ui-admin-vue3/src/components/Breadcrumb/src/helper.ts deleted file mode 100644 index fb3ec19..0000000 --- a/yudao-ui-admin-vue3/src/components/Breadcrumb/src/helper.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { pathResolve } from '@/utils/routerHelper' -import type { RouteMeta } from 'vue-router' - -export const filterBreadcrumb = ( - routes: AppRouteRecordRaw[], - parentPath = '' -): AppRouteRecordRaw[] => { - const res: AppRouteRecordRaw[] = [] - - for (const route of routes) { - const meta = route?.meta as RouteMeta - if (meta.hidden && !meta.canTo) { - continue - } - - const data: AppRouteRecordRaw = - !meta.alwaysShow && route.children?.length === 1 - ? { ...route.children[0], path: pathResolve(route.path, route.children[0].path) } - : { ...route } - - data.path = pathResolve(parentPath, data.path) - - if (data.children) { - data.children = filterBreadcrumb(data.children, data.path) - } - if (data) { - res.push(data) - } - } - return res -} diff --git a/yudao-ui-admin-vue3/src/components/Collapse/index.ts b/yudao-ui-admin-vue3/src/components/Collapse/index.ts deleted file mode 100644 index 73f65a3..0000000 --- a/yudao-ui-admin-vue3/src/components/Collapse/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Collapse from './src/Collapse.vue' - -export { Collapse } diff --git a/yudao-ui-admin-vue3/src/components/Collapse/src/Collapse.vue b/yudao-ui-admin-vue3/src/components/Collapse/src/Collapse.vue deleted file mode 100644 index 197b86d..0000000 --- a/yudao-ui-admin-vue3/src/components/Collapse/src/Collapse.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/ContextMenu/index.ts b/yudao-ui-admin-vue3/src/components/ContextMenu/index.ts deleted file mode 100644 index 2a7c1f0..0000000 --- a/yudao-ui-admin-vue3/src/components/ContextMenu/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import ContextMenu from './src/ContextMenu.vue' -import { ElDropdown } from 'element-plus' -import type { RouteLocationNormalizedLoaded } from 'vue-router' - -export interface ContextMenuExpose { - elDropdownMenuRef: ComponentRef - tagItem: RouteLocationNormalizedLoaded -} - -export { ContextMenu } diff --git a/yudao-ui-admin-vue3/src/components/ContextMenu/src/ContextMenu.vue b/yudao-ui-admin-vue3/src/components/ContextMenu/src/ContextMenu.vue deleted file mode 100644 index fc86c1d..0000000 --- a/yudao-ui-admin-vue3/src/components/ContextMenu/src/ContextMenu.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/Footer/index.ts b/yudao-ui-admin-vue3/src/components/Footer/index.ts deleted file mode 100644 index bd052e0..0000000 --- a/yudao-ui-admin-vue3/src/components/Footer/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Footer from './src/Footer.vue' - -export { Footer } diff --git a/yudao-ui-admin-vue3/src/components/Footer/src/Footer.vue b/yudao-ui-admin-vue3/src/components/Footer/src/Footer.vue deleted file mode 100644 index 00c83ed..0000000 --- a/yudao-ui-admin-vue3/src/components/Footer/src/Footer.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/LocaleDropdown/index.ts b/yudao-ui-admin-vue3/src/components/LocaleDropdown/index.ts deleted file mode 100644 index d02e640..0000000 --- a/yudao-ui-admin-vue3/src/components/LocaleDropdown/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import LocaleDropdown from './src/LocaleDropdown.vue' - -export { LocaleDropdown } diff --git a/yudao-ui-admin-vue3/src/components/LocaleDropdown/src/LocaleDropdown.vue b/yudao-ui-admin-vue3/src/components/LocaleDropdown/src/LocaleDropdown.vue deleted file mode 100644 index 9040908..0000000 --- a/yudao-ui-admin-vue3/src/components/LocaleDropdown/src/LocaleDropdown.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/Logo/index.ts b/yudao-ui-admin-vue3/src/components/Logo/index.ts deleted file mode 100644 index 1c4224c..0000000 --- a/yudao-ui-admin-vue3/src/components/Logo/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Logo from './src/Logo.vue' - -export { Logo } diff --git a/yudao-ui-admin-vue3/src/components/Logo/src/Logo.vue b/yudao-ui-admin-vue3/src/components/Logo/src/Logo.vue deleted file mode 100644 index c446184..0000000 --- a/yudao-ui-admin-vue3/src/components/Logo/src/Logo.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/Menu/index.ts b/yudao-ui-admin-vue3/src/components/Menu/index.ts deleted file mode 100644 index a6ec696..0000000 --- a/yudao-ui-admin-vue3/src/components/Menu/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Menu from './src/Menu.vue' - -export { Menu } diff --git a/yudao-ui-admin-vue3/src/components/Menu/src/Menu.vue b/yudao-ui-admin-vue3/src/components/Menu/src/Menu.vue deleted file mode 100644 index 40718d0..0000000 --- a/yudao-ui-admin-vue3/src/components/Menu/src/Menu.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - - - diff --git a/yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuItem.tsx b/yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuItem.tsx deleted file mode 100644 index 17a520a..0000000 --- a/yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuItem.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { ElSubMenu, ElMenuItem } from 'element-plus' -import type { RouteMeta } from 'vue-router' -import { hasOneShowingChild } from '../helper' -import { isUrl } from '@/utils/is' -import { useRenderMenuTitle } from './useRenderMenuTitle' -import { useDesign } from '@/hooks/web/useDesign' -import { pathResolve } from '@/utils/routerHelper' - -export const useRenderMenuItem = ( - // allRouters: AppRouteRecordRaw[] = [], - menuMode: 'vertical' | 'horizontal' -) => { - const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => { - return routers.map((v) => { - const meta = (v.meta ?? {}) as RouteMeta - if (!meta.hidden) { - const { oneShowingChild, onlyOneChild } = hasOneShowingChild(v.children, v) - const fullPath = isUrl(v.path) ? v.path : pathResolve(parentPath, v.path) // getAllParentPath(allRouters, v.path).join('/') - - const { renderMenuTitle } = useRenderMenuTitle() - - if ( - oneShowingChild && - (!onlyOneChild?.children || onlyOneChild?.noShowingChildren) && - !meta?.alwaysShow - ) { - return ( - - {{ - default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta) - }} - - ) - } else { - const { getPrefixCls } = useDesign() - - const preFixCls = getPrefixCls('menu-popper') - return ( - - {{ - title: () => renderMenuTitle(meta), - default: () => renderMenuItem(v.children!, fullPath) - }} - - ) - } - } - }) - } - - return { - renderMenuItem - } -} diff --git a/yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuTitle.tsx b/yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuTitle.tsx deleted file mode 100644 index 6f7caff..0000000 --- a/yudao-ui-admin-vue3/src/components/Menu/src/components/useRenderMenuTitle.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import type { RouteMeta } from 'vue-router' -import { Icon } from '@/components/Icon' -import { useI18n } from '@/hooks/web/useI18n' - -export const useRenderMenuTitle = () => { - const renderMenuTitle = (meta: RouteMeta) => { - const { t } = useI18n() - const { title = 'Please set title', icon } = meta - - return icon ? ( - <> - - {t(title as string)} - - ) : ( - {t(title as string)} - ) - } - - return { - renderMenuTitle - } -} diff --git a/yudao-ui-admin-vue3/src/components/Menu/src/helper.ts b/yudao-ui-admin-vue3/src/components/Menu/src/helper.ts deleted file mode 100644 index b483881..0000000 --- a/yudao-ui-admin-vue3/src/components/Menu/src/helper.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { RouteMeta } from 'vue-router' -import { ref, unref } from 'vue' -import { findPath } from '@/utils/tree' - -type OnlyOneChildType = AppRouteRecordRaw & { noShowingChildren?: boolean } - -interface HasOneShowingChild { - oneShowingChild?: boolean - onlyOneChild?: OnlyOneChildType -} - -export const getAllParentPath = (treeData: T[], path: string) => { - const menuList = findPath(treeData, (n) => n.path === path) as AppRouteRecordRaw[] - return (menuList || []).map((item) => item.path) -} - -export const hasOneShowingChild = ( - children: AppRouteRecordRaw[] = [], - parent: AppRouteRecordRaw -): HasOneShowingChild => { - const onlyOneChild = ref() - - const showingChildren = children.filter((v) => { - const meta = (v.meta ?? {}) as RouteMeta - if (meta.hidden) { - return false - } else { - // Temp set(will be used if only has one showing child) - onlyOneChild.value = v - return true - } - }) - - // When there is only one child router, the child router is displayed by default - if (showingChildren.length === 1) { - return { - oneShowingChild: true, - onlyOneChild: unref(onlyOneChild) - } - } - - // Show parent if there are no child router to display - if (!showingChildren.length) { - onlyOneChild.value = { ...parent, path: '', noShowingChildren: true } - return { - oneShowingChild: true, - onlyOneChild: unref(onlyOneChild) - } - } - - return { - oneShowingChild: false, - onlyOneChild: unref(onlyOneChild) - } -} diff --git a/yudao-ui-admin-vue3/src/components/Screenfull/index.ts b/yudao-ui-admin-vue3/src/components/Screenfull/index.ts deleted file mode 100644 index faec2d8..0000000 --- a/yudao-ui-admin-vue3/src/components/Screenfull/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Screenfull from './src/Screenfull.vue' - -export { Screenfull } diff --git a/yudao-ui-admin-vue3/src/components/Screenfull/src/Screenfull.vue b/yudao-ui-admin-vue3/src/components/Screenfull/src/Screenfull.vue deleted file mode 100644 index 32a12e7..0000000 --- a/yudao-ui-admin-vue3/src/components/Screenfull/src/Screenfull.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/Setting/index.ts b/yudao-ui-admin-vue3/src/components/Setting/index.ts deleted file mode 100644 index b64c9ad..0000000 --- a/yudao-ui-admin-vue3/src/components/Setting/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Setting from './src/Setting.vue' - -export { Setting } diff --git a/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue b/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue deleted file mode 100644 index 9cad96d..0000000 --- a/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue +++ /dev/null @@ -1,297 +0,0 @@ - - - - - diff --git a/yudao-ui-admin-vue3/src/components/Setting/src/components/ColorRadioPicker.vue b/yudao-ui-admin-vue3/src/components/Setting/src/components/ColorRadioPicker.vue deleted file mode 100644 index 9787ea7..0000000 --- a/yudao-ui-admin-vue3/src/components/Setting/src/components/ColorRadioPicker.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue b/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue deleted file mode 100644 index 39030a6..0000000 --- a/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue +++ /dev/null @@ -1,212 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/Setting/src/components/LayoutRadioPicker.vue b/yudao-ui-admin-vue3/src/components/Setting/src/components/LayoutRadioPicker.vue deleted file mode 100644 index 0932471..0000000 --- a/yudao-ui-admin-vue3/src/components/Setting/src/components/LayoutRadioPicker.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - diff --git a/yudao-ui-admin-vue3/src/components/SizeDropdown/index.ts b/yudao-ui-admin-vue3/src/components/SizeDropdown/index.ts deleted file mode 100644 index 516488d..0000000 --- a/yudao-ui-admin-vue3/src/components/SizeDropdown/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import SizeDropdown from './src/SizeDropdown.vue' - -export { SizeDropdown } diff --git a/yudao-ui-admin-vue3/src/components/SizeDropdown/src/SizeDropdown.vue b/yudao-ui-admin-vue3/src/components/SizeDropdown/src/SizeDropdown.vue deleted file mode 100644 index cb8d9f8..0000000 --- a/yudao-ui-admin-vue3/src/components/SizeDropdown/src/SizeDropdown.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/TabMenu/index.ts b/yudao-ui-admin-vue3/src/components/TabMenu/index.ts deleted file mode 100644 index b5fd71c..0000000 --- a/yudao-ui-admin-vue3/src/components/TabMenu/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TabMenu from './src/TabMenu.vue' - -export { TabMenu } diff --git a/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue b/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue deleted file mode 100644 index f70ee94..0000000 --- a/yudao-ui-admin-vue3/src/components/TabMenu/src/TabMenu.vue +++ /dev/null @@ -1,253 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/TabMenu/src/helper.ts b/yudao-ui-admin-vue3/src/components/TabMenu/src/helper.ts deleted file mode 100644 index 2213133..0000000 --- a/yudao-ui-admin-vue3/src/components/TabMenu/src/helper.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { getAllParentPath } from '@/components/Menu/src/helper' -import type { RouteMeta } from 'vue-router' -import { isUrl } from '@/utils/is' -import { cloneDeep } from 'lodash-es' -import { reactive } from 'vue' - -export type TabMapTypes = { - [key: string]: string[] -} - -export const tabPathMap = reactive({}) - -export const initTabMap = (routes: AppRouteRecordRaw[]) => { - for (const v of routes) { - const meta = (v.meta ?? {}) as RouteMeta - if (!meta?.hidden) { - tabPathMap[v.path] = [] - } - } -} - -export const filterMenusPath = ( - routes: AppRouteRecordRaw[], - allRoutes: AppRouteRecordRaw[] -): AppRouteRecordRaw[] => { - const res: AppRouteRecordRaw[] = [] - for (const v of routes) { - let data: Nullable = null - const meta = (v.meta ?? {}) as RouteMeta - if (!meta.hidden || meta.canTo) { - const allParentPath = getAllParentPath(allRoutes, v.path) - - const fullPath = isUrl(v.path) ? v.path : allParentPath.join('/') - - data = cloneDeep(v) - data.path = fullPath - if (v.children && data) { - data.children = filterMenusPath(v.children, allRoutes) - } - - if (data) { - res.push(data) - } - - if (allParentPath.length && Reflect.has(tabPathMap, allParentPath[0])) { - tabPathMap[allParentPath[0]].push(fullPath) - } - } - } - - return res -} diff --git a/yudao-ui-admin-vue3/src/components/TagsView/index.ts b/yudao-ui-admin-vue3/src/components/TagsView/index.ts deleted file mode 100644 index 30e604a..0000000 --- a/yudao-ui-admin-vue3/src/components/TagsView/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TagsView from './src/TagsView.vue' - -export { TagsView } diff --git a/yudao-ui-admin-vue3/src/components/TagsView/src/TagsView.vue b/yudao-ui-admin-vue3/src/components/TagsView/src/TagsView.vue deleted file mode 100644 index aa5a52f..0000000 --- a/yudao-ui-admin-vue3/src/components/TagsView/src/TagsView.vue +++ /dev/null @@ -1,579 +0,0 @@ - - - - - diff --git a/yudao-ui-admin-vue3/src/components/TagsView/src/helper.ts b/yudao-ui-admin-vue3/src/components/TagsView/src/helper.ts deleted file mode 100644 index 22f6a50..0000000 --- a/yudao-ui-admin-vue3/src/components/TagsView/src/helper.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { RouteMeta, RouteLocationNormalizedLoaded } from 'vue-router' -import { pathResolve } from '@/utils/routerHelper' - -export const filterAffixTags = (routes: AppRouteRecordRaw[], parentPath = '') => { - let tags: RouteLocationNormalizedLoaded[] = [] - routes.forEach((route) => { - const meta = route.meta as RouteMeta - const tagPath = pathResolve(parentPath, route.path) - if (meta?.affix) { - tags.push({ ...route, path: tagPath, fullPath: tagPath } as RouteLocationNormalizedLoaded) - } - if (route.children) { - const tempTags: RouteLocationNormalizedLoaded[] = filterAffixTags(route.children, tagPath) - if (tempTags.length >= 1) { - tags = [...tags, ...tempTags] - } - } - }) - - return tags -} diff --git a/yudao-ui-admin-vue3/src/components/ThemeSwitch/index.ts b/yudao-ui-admin-vue3/src/components/ThemeSwitch/index.ts deleted file mode 100644 index 823a276..0000000 --- a/yudao-ui-admin-vue3/src/components/ThemeSwitch/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ThemeSwitch from './src/ThemeSwitch.vue' - -export { ThemeSwitch } diff --git a/yudao-ui-admin-vue3/src/components/ThemeSwitch/src/ThemeSwitch.vue b/yudao-ui-admin-vue3/src/components/ThemeSwitch/src/ThemeSwitch.vue deleted file mode 100644 index 25221d1..0000000 --- a/yudao-ui-admin-vue3/src/components/ThemeSwitch/src/ThemeSwitch.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/components/UserInfo/index.ts b/yudao-ui-admin-vue3/src/components/UserInfo/index.ts deleted file mode 100644 index c3a34ab..0000000 --- a/yudao-ui-admin-vue3/src/components/UserInfo/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import UserInfo from './src/UserInfo.vue' - -export { UserInfo } diff --git a/yudao-ui-admin-vue3/src/components/UserInfo/src/UserInfo.vue b/yudao-ui-admin-vue3/src/components/UserInfo/src/UserInfo.vue deleted file mode 100644 index cdce9dd..0000000 --- a/yudao-ui-admin-vue3/src/components/UserInfo/src/UserInfo.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - diff --git a/yudao-ui-admin-vue3/src/layout/Layout.vue b/yudao-ui-admin-vue3/src/layout/Layout.vue index 9d34f2a..5c43e52 100644 --- a/yudao-ui-admin-vue3/src/layout/Layout.vue +++ b/yudao-ui-admin-vue3/src/layout/Layout.vue @@ -2,7 +2,7 @@ import { computed, defineComponent, unref } from 'vue' import { useAppStore } from '@/store/modules/app' import { Backtop } from '@/components/Backtop' -import { Setting } from '@/components/Setting' +import { Setting } from '@/layout/components/Setting' import { useRenderLayout } from './components/useRenderLayout' import { useDesign } from '@/hooks/web/useDesign' diff --git a/yudao-ui-admin-vue3/src/layout/components/AppView.vue b/yudao-ui-admin-vue3/src/layout/components/AppView.vue index 2000ca9..6f33a07 100644 --- a/yudao-ui-admin-vue3/src/layout/components/AppView.vue +++ b/yudao-ui-admin-vue3/src/layout/components/AppView.vue @@ -1,7 +1,7 @@ + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts b/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts new file mode 100644 index 0000000..fb3ec19 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts @@ -0,0 +1,31 @@ +import { pathResolve } from '@/utils/routerHelper' +import type { RouteMeta } from 'vue-router' + +export const filterBreadcrumb = ( + routes: AppRouteRecordRaw[], + parentPath = '' +): AppRouteRecordRaw[] => { + const res: AppRouteRecordRaw[] = [] + + for (const route of routes) { + const meta = route?.meta as RouteMeta + if (meta.hidden && !meta.canTo) { + continue + } + + const data: AppRouteRecordRaw = + !meta.alwaysShow && route.children?.length === 1 + ? { ...route.children[0], path: pathResolve(route.path, route.children[0].path) } + : { ...route } + + data.path = pathResolve(parentPath, data.path) + + if (data.children) { + data.children = filterBreadcrumb(data.children, data.path) + } + if (data) { + res.push(data) + } + } + return res +} diff --git a/yudao-ui-admin-vue3/src/layout/components/Collapse/index.ts b/yudao-ui-admin-vue3/src/layout/components/Collapse/index.ts new file mode 100644 index 0000000..73f65a3 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Collapse/index.ts @@ -0,0 +1,3 @@ +import Collapse from './src/Collapse.vue' + +export { Collapse } diff --git a/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue b/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue new file mode 100644 index 0000000..197b86d --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue @@ -0,0 +1,35 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/ContextMenu/index.ts b/yudao-ui-admin-vue3/src/layout/components/ContextMenu/index.ts new file mode 100644 index 0000000..2a7c1f0 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/ContextMenu/index.ts @@ -0,0 +1,10 @@ +import ContextMenu from './src/ContextMenu.vue' +import { ElDropdown } from 'element-plus' +import type { RouteLocationNormalizedLoaded } from 'vue-router' + +export interface ContextMenuExpose { + elDropdownMenuRef: ComponentRef + tagItem: RouteLocationNormalizedLoaded +} + +export { ContextMenu } diff --git a/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue b/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue new file mode 100644 index 0000000..fc86c1d --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue @@ -0,0 +1,73 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Footer/index.ts b/yudao-ui-admin-vue3/src/layout/components/Footer/index.ts new file mode 100644 index 0000000..bd052e0 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Footer/index.ts @@ -0,0 +1,3 @@ +import Footer from './src/Footer.vue' + +export { Footer } diff --git a/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue b/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue new file mode 100644 index 0000000..00c83ed --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue @@ -0,0 +1,22 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts b/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts new file mode 100644 index 0000000..d02e640 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts @@ -0,0 +1,3 @@ +import LocaleDropdown from './src/LocaleDropdown.vue' + +export { LocaleDropdown } diff --git a/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue b/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue new file mode 100644 index 0000000..9040908 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue @@ -0,0 +1,52 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Logo/index.ts b/yudao-ui-admin-vue3/src/layout/components/Logo/index.ts new file mode 100644 index 0000000..1c4224c --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Logo/index.ts @@ -0,0 +1,3 @@ +import Logo from './src/Logo.vue' + +export { Logo } diff --git a/yudao-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue b/yudao-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue new file mode 100644 index 0000000..c446184 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue @@ -0,0 +1,85 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/index.ts b/yudao-ui-admin-vue3/src/layout/components/Menu/index.ts new file mode 100644 index 0000000..a6ec696 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Menu/index.ts @@ -0,0 +1,3 @@ +import Menu from './src/Menu.vue' + +export { Menu } diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue b/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue new file mode 100644 index 0000000..40718d0 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx b/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx new file mode 100644 index 0000000..17a520a --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx @@ -0,0 +1,59 @@ +import { ElSubMenu, ElMenuItem } from 'element-plus' +import type { RouteMeta } from 'vue-router' +import { hasOneShowingChild } from '../helper' +import { isUrl } from '@/utils/is' +import { useRenderMenuTitle } from './useRenderMenuTitle' +import { useDesign } from '@/hooks/web/useDesign' +import { pathResolve } from '@/utils/routerHelper' + +export const useRenderMenuItem = ( + // allRouters: AppRouteRecordRaw[] = [], + menuMode: 'vertical' | 'horizontal' +) => { + const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => { + return routers.map((v) => { + const meta = (v.meta ?? {}) as RouteMeta + if (!meta.hidden) { + const { oneShowingChild, onlyOneChild } = hasOneShowingChild(v.children, v) + const fullPath = isUrl(v.path) ? v.path : pathResolve(parentPath, v.path) // getAllParentPath(allRouters, v.path).join('/') + + const { renderMenuTitle } = useRenderMenuTitle() + + if ( + oneShowingChild && + (!onlyOneChild?.children || onlyOneChild?.noShowingChildren) && + !meta?.alwaysShow + ) { + return ( + + {{ + default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta) + }} + + ) + } else { + const { getPrefixCls } = useDesign() + + const preFixCls = getPrefixCls('menu-popper') + return ( + + {{ + title: () => renderMenuTitle(meta), + default: () => renderMenuItem(v.children!, fullPath) + }} + + ) + } + } + }) + } + + return { + renderMenuItem + } +} diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx b/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx new file mode 100644 index 0000000..6f7caff --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx @@ -0,0 +1,23 @@ +import type { RouteMeta } from 'vue-router' +import { Icon } from '@/components/Icon' +import { useI18n } from '@/hooks/web/useI18n' + +export const useRenderMenuTitle = () => { + const renderMenuTitle = (meta: RouteMeta) => { + const { t } = useI18n() + const { title = 'Please set title', icon } = meta + + return icon ? ( + <> + + {t(title as string)} + + ) : ( + {t(title as string)} + ) + } + + return { + renderMenuTitle + } +} diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts b/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts new file mode 100644 index 0000000..b483881 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts @@ -0,0 +1,55 @@ +import type { RouteMeta } from 'vue-router' +import { ref, unref } from 'vue' +import { findPath } from '@/utils/tree' + +type OnlyOneChildType = AppRouteRecordRaw & { noShowingChildren?: boolean } + +interface HasOneShowingChild { + oneShowingChild?: boolean + onlyOneChild?: OnlyOneChildType +} + +export const getAllParentPath = (treeData: T[], path: string) => { + const menuList = findPath(treeData, (n) => n.path === path) as AppRouteRecordRaw[] + return (menuList || []).map((item) => item.path) +} + +export const hasOneShowingChild = ( + children: AppRouteRecordRaw[] = [], + parent: AppRouteRecordRaw +): HasOneShowingChild => { + const onlyOneChild = ref() + + const showingChildren = children.filter((v) => { + const meta = (v.meta ?? {}) as RouteMeta + if (meta.hidden) { + return false + } else { + // Temp set(will be used if only has one showing child) + onlyOneChild.value = v + return true + } + }) + + // When there is only one child router, the child router is displayed by default + if (showingChildren.length === 1) { + return { + oneShowingChild: true, + onlyOneChild: unref(onlyOneChild) + } + } + + // Show parent if there are no child router to display + if (!showingChildren.length) { + onlyOneChild.value = { ...parent, path: '', noShowingChildren: true } + return { + oneShowingChild: true, + onlyOneChild: unref(onlyOneChild) + } + } + + return { + oneShowingChild: false, + onlyOneChild: unref(onlyOneChild) + } +} diff --git a/yudao-ui-admin-vue3/src/layout/components/Screenfull/index.ts b/yudao-ui-admin-vue3/src/layout/components/Screenfull/index.ts new file mode 100644 index 0000000..faec2d8 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Screenfull/index.ts @@ -0,0 +1,3 @@ +import Screenfull from './src/Screenfull.vue' + +export { Screenfull } diff --git a/yudao-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue b/yudao-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue new file mode 100644 index 0000000..32a12e7 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue @@ -0,0 +1,30 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/index.ts b/yudao-ui-admin-vue3/src/layout/components/Setting/index.ts new file mode 100644 index 0000000..b64c9ad --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Setting/index.ts @@ -0,0 +1,3 @@ +import Setting from './src/Setting.vue' + +export { Setting } diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue new file mode 100644 index 0000000..ac3f13a --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue @@ -0,0 +1,297 @@ + + + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue new file mode 100644 index 0000000..9787ea7 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue new file mode 100644 index 0000000..39030a6 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue @@ -0,0 +1,212 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue new file mode 100644 index 0000000..0932471 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts b/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts new file mode 100644 index 0000000..516488d --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts @@ -0,0 +1,3 @@ +import SizeDropdown from './src/SizeDropdown.vue' + +export { SizeDropdown } diff --git a/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue b/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue new file mode 100644 index 0000000..cb8d9f8 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue @@ -0,0 +1,40 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/TabMenu/index.ts b/yudao-ui-admin-vue3/src/layout/components/TabMenu/index.ts new file mode 100644 index 0000000..b5fd71c --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/TabMenu/index.ts @@ -0,0 +1,3 @@ +import TabMenu from './src/TabMenu.vue' + +export { TabMenu } diff --git a/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue new file mode 100644 index 0000000..0e5b690 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue @@ -0,0 +1,253 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts new file mode 100644 index 0000000..37a1a68 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts @@ -0,0 +1,52 @@ +import { getAllParentPath } from '@/layout/components/Menu/src/helper' +import type { RouteMeta } from 'vue-router' +import { isUrl } from '@/utils/is' +import { cloneDeep } from 'lodash-es' +import { reactive } from 'vue' + +export type TabMapTypes = { + [key: string]: string[] +} + +export const tabPathMap = reactive({}) + +export const initTabMap = (routes: AppRouteRecordRaw[]) => { + for (const v of routes) { + const meta = (v.meta ?? {}) as RouteMeta + if (!meta?.hidden) { + tabPathMap[v.path] = [] + } + } +} + +export const filterMenusPath = ( + routes: AppRouteRecordRaw[], + allRoutes: AppRouteRecordRaw[] +): AppRouteRecordRaw[] => { + const res: AppRouteRecordRaw[] = [] + for (const v of routes) { + let data: Nullable = null + const meta = (v.meta ?? {}) as RouteMeta + if (!meta.hidden || meta.canTo) { + const allParentPath = getAllParentPath(allRoutes, v.path) + + const fullPath = isUrl(v.path) ? v.path : allParentPath.join('/') + + data = cloneDeep(v) + data.path = fullPath + if (v.children && data) { + data.children = filterMenusPath(v.children, allRoutes) + } + + if (data) { + res.push(data) + } + + if (allParentPath.length && Reflect.has(tabPathMap, allParentPath[0])) { + tabPathMap[allParentPath[0]].push(fullPath) + } + } + } + + return res +} diff --git a/yudao-ui-admin-vue3/src/layout/components/TagsView/index.ts b/yudao-ui-admin-vue3/src/layout/components/TagsView/index.ts new file mode 100644 index 0000000..30e604a --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/TagsView/index.ts @@ -0,0 +1,3 @@ +import TagsView from './src/TagsView.vue' + +export { TagsView } diff --git a/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue b/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue new file mode 100644 index 0000000..dc5570f --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue @@ -0,0 +1,579 @@ + + + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts b/yudao-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts new file mode 100644 index 0000000..22f6a50 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts @@ -0,0 +1,21 @@ +import type { RouteMeta, RouteLocationNormalizedLoaded } from 'vue-router' +import { pathResolve } from '@/utils/routerHelper' + +export const filterAffixTags = (routes: AppRouteRecordRaw[], parentPath = '') => { + let tags: RouteLocationNormalizedLoaded[] = [] + routes.forEach((route) => { + const meta = route.meta as RouteMeta + const tagPath = pathResolve(parentPath, route.path) + if (meta?.affix) { + tags.push({ ...route, path: tagPath, fullPath: tagPath } as RouteLocationNormalizedLoaded) + } + if (route.children) { + const tempTags: RouteLocationNormalizedLoaded[] = filterAffixTags(route.children, tagPath) + if (tempTags.length >= 1) { + tags = [...tags, ...tempTags] + } + } + }) + + return tags +} diff --git a/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts b/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts new file mode 100644 index 0000000..823a276 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts @@ -0,0 +1,3 @@ +import ThemeSwitch from './src/ThemeSwitch.vue' + +export { ThemeSwitch } diff --git a/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue b/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue new file mode 100644 index 0000000..25221d1 --- /dev/null +++ b/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue @@ -0,0 +1,41 @@ + + + diff --git a/yudao-ui-admin-vue3/src/layout/components/ToolHeader.vue b/yudao-ui-admin-vue3/src/layout/components/ToolHeader.vue index 9fde553..674886c 100644 --- a/yudao-ui-admin-vue3/src/layout/components/ToolHeader.vue +++ b/yudao-ui-admin-vue3/src/layout/components/ToolHeader.vue @@ -1,11 +1,11 @@ + + diff --git a/yudao-ui-admin-vue3/src/layout/components/useRenderLayout.tsx b/yudao-ui-admin-vue3/src/layout/components/useRenderLayout.tsx index d388d5f..dfec3ff 100644 --- a/yudao-ui-admin-vue3/src/layout/components/useRenderLayout.tsx +++ b/yudao-ui-admin-vue3/src/layout/components/useRenderLayout.tsx @@ -1,9 +1,9 @@ import { computed } from 'vue' import { useAppStore } from '@/store/modules/app' -import { Menu } from '@/components/Menu' -import { TabMenu } from '@/components/TabMenu' -import { TagsView } from '@/components/TagsView' -import { Logo } from '@/components/Logo' +import { Menu } from '@/layout/components/Menu' +import { TabMenu } from '@/layout/components/TabMenu' +import { TagsView } from '@/layout/components/TagsView' +import { Logo } from '@/layout/components/Logo' import AppView from './AppView.vue' import ToolHeader from './ToolHeader.vue' import { ElScrollbar } from 'element-plus' diff --git a/yudao-ui-admin-vue3/src/views/Login/Login.vue b/yudao-ui-admin-vue3/src/views/Login/Login.vue index 4492d72..d6154ca 100644 --- a/yudao-ui-admin-vue3/src/views/Login/Login.vue +++ b/yudao-ui-admin-vue3/src/views/Login/Login.vue @@ -63,8 +63,8 @@ import { underlineToHump } from '@/utils' import { useI18n } from '@/hooks/web/useI18n' import { useDesign } from '@/hooks/web/useDesign' import { useAppStore } from '@/store/modules/app' -import { ThemeSwitch } from '@/components/ThemeSwitch' -import { LocaleDropdown } from '@/components/LocaleDropdown' +import { ThemeSwitch } from '@/layout/components/ThemeSwitch' +import { LocaleDropdown } from '@/layout/components/LocaleDropdown' import { LoginForm, MobileForm, RegisterForm, QrCodeForm } from './components' const { t } = useI18n() -- libgit2 0.21.4