From c5120463d93c2e4a7c7ddd2ffcaa91b83487141b Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Tue, 5 Dec 2023 00:01:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E4=BD=9C=E7=A9=BA=E9=97=B4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/layout/host-workspace-layout.vue | 41 +++++++++++++++++++ orion-ops-ui/src/router/routes/base.ts | 21 +++------- orion-ops-ui/src/router/routes/index.ts | 9 ++-- .../router/routes/modules/host-workspcae.ts | 16 ++++++++ .../views/host-workspace/terminal/index.vue | 21 ++++++++++ .../system/menu/components/menu-table.vue | 17 +++++--- 6 files changed, 99 insertions(+), 26 deletions(-) create mode 100644 orion-ops-ui/src/layout/host-workspace-layout.vue create mode 100644 orion-ops-ui/src/router/routes/modules/host-workspcae.ts create mode 100644 orion-ops-ui/src/views/host-workspace/terminal/index.vue diff --git a/orion-ops-ui/src/layout/host-workspace-layout.vue b/orion-ops-ui/src/layout/host-workspace-layout.vue new file mode 100644 index 00000000..55ea0c0f --- /dev/null +++ b/orion-ops-ui/src/layout/host-workspace-layout.vue @@ -0,0 +1,41 @@ + + + + + + + diff --git a/orion-ops-ui/src/router/routes/base.ts b/orion-ops-ui/src/router/routes/base.ts index e811a4e5..7617aae3 100644 --- a/orion-ops-ui/src/router/routes/base.ts +++ b/orion-ops-ui/src/router/routes/base.ts @@ -7,28 +7,23 @@ import { NOT_FOUND_ROUTER_NAME, } from '@/router/constants'; +// 默认布局 export const DEFAULT_LAYOUT = () => import('@/layout/default-layout.vue'); -/** - * 根页面 - */ +// 根页面 export const ROOT_ROUTER: RouteRecordRaw = { path: '/', redirect: DEFAULT_ROUTE_FULL_PATH, }; -/** - * 登录页面 - */ +// 登录页面 export const LOGIN_ROUTER: RouteRecordRaw = { path: '/login', name: LOGIN_ROUTE_NAME, component: () => import('@/views/authentication/login/index.vue'), }; -/** - * 重定向页面 - */ +// 重定向页面 export const REDIRECT_ROUTER: RouteRecordRaw = { path: '/redirect', name: 'redirectWrapper', @@ -49,18 +44,14 @@ export const REDIRECT_ROUTER: RouteRecordRaw = { ], }; -/** - * 403 页面 - */ +// 403 页面 export const FORBIDDEN_ROUTE: RouteRecordRaw = { path: '/403', name: FORBIDDEN_ROUTER_NAME, component: () => import('@/views/base/status/forbidden/index.vue'), }; -/** - * 404 页面 - */ +// 404 页面 export const NOT_FOUND_ROUTE: RouteRecordRaw = { // path: '/:pathMatch(.*)*', path: '/404', diff --git a/orion-ops-ui/src/router/routes/index.ts b/orion-ops-ui/src/router/routes/index.ts index 994cd517..3bc298fc 100644 --- a/orion-ops-ui/src/router/routes/index.ts +++ b/orion-ops-ui/src/router/routes/index.ts @@ -3,6 +3,10 @@ import type { RouteRecordNormalized } from 'vue-router'; // 应用模块 const modules = import.meta.glob('./modules/*.ts', { eager: true }); +// 应用路由 +export const appRoutes: RouteRecordNormalized[] = formatModules(modules, []); + +// 格式化模块 function formatModules(_modules: any, result: RouteRecordNormalized[]) { Object.keys(_modules).forEach((key) => { const defaultModule = _modules[key].default; @@ -14,8 +18,3 @@ function formatModules(_modules: any, result: RouteRecordNormalized[]) { }); return result; } - -/** - * 应用路由 - */ -export const appRoutes: RouteRecordNormalized[] = formatModules(modules, []); diff --git a/orion-ops-ui/src/router/routes/modules/host-workspcae.ts b/orion-ops-ui/src/router/routes/modules/host-workspcae.ts new file mode 100644 index 00000000..d223da51 --- /dev/null +++ b/orion-ops-ui/src/router/routes/modules/host-workspcae.ts @@ -0,0 +1,16 @@ +import type { AppRouteRecordRaw } from '../types'; + +const DASHBOARD: AppRouteRecordRaw = { + name: 'hostWorkspace', + path: '/host-workspace', + component: () => import('@/layout/host-workspace-layout.vue'), + children: [ + { + name: 'hostTerminal', + path: '/host-workspace/terminal', + component: () => import('@/views/host-workspace/terminal/index.vue'), + }, + ], +}; + +export default DASHBOARD; diff --git a/orion-ops-ui/src/views/host-workspace/terminal/index.vue b/orion-ops-ui/src/views/host-workspace/terminal/index.vue new file mode 100644 index 00000000..98d28858 --- /dev/null +++ b/orion-ops-ui/src/views/host-workspace/terminal/index.vue @@ -0,0 +1,21 @@ + + + + + + + diff --git a/orion-ops-ui/src/views/system/menu/components/menu-table.vue b/orion-ops-ui/src/views/system/menu/components/menu-table.vue index bb20b7f7..0c64459e 100644 --- a/orion-ops-ui/src/views/system/menu/components/menu-table.vue +++ b/orion-ops-ui/src/views/system/menu/components/menu-table.vue @@ -236,6 +236,7 @@ } } } + cacheStore.reset('menus'); Message.success('删除成功'); } catch (e) { } finally { @@ -245,12 +246,12 @@ // 添加后回调 const addedCallback = () => { - loadMenuData(); + loadMenuData(true); }; // 更新后回调 const updatedCallback = () => { - loadMenuData(); + loadMenuData(true); }; defineExpose({ @@ -258,11 +259,15 @@ }); // 加载菜单 - const loadMenuData = async () => { + const loadMenuData = async (all: any = undefined) => { try { setFetchLoading(true); - const { data } = await getMenuList(formModel); + const { data } = await getMenuList(all === true ? {} : formModel); tableRenderData.value = data as MenuQueryResponse[]; + // 重设缓存 + if (all) { + cacheStore.set('menus', data); + } } catch (e) { } finally { setFetchLoading(false); @@ -270,13 +275,13 @@ }; onMounted(() => { - loadMenuData(); + loadMenuData(true); }); // 重置菜单 const resetForm = () => { formRef.value.resetFields(); - loadMenuData(); + loadMenuData(true); }; // 切换展开/折叠