diff --git a/mayfly_go_web/src/common/syssocket.ts b/mayfly_go_web/src/common/syssocket.ts index c925a6bb..936051cf 100644 --- a/mayfly_go_web/src/common/syssocket.ts +++ b/mayfly_go_web/src/common/syssocket.ts @@ -41,7 +41,14 @@ class SysSocket { const sysMsgUrl = `${Config.baseWsUrl}/sysmsg?${joinClientParams()}`; this.socket = SocketBuilder.builder(sysMsgUrl) .message((event: { data: string }) => { - const message = JSON.parse(event.data); + let message; + try { + message = JSON.parse(event.data); + } catch (e) { + console.error('解析ws消息失败', e); + return; + } + // 存在消息类别对应的处理器,则进行处理,否则进行默认通知处理 const handler = this.categoryHandlers.get(message.category); if (handler) { diff --git a/mayfly_go_web/src/common/useRequest.ts b/mayfly_go_web/src/common/useRequest.ts index 08b9e869..aa34b55d 100644 --- a/mayfly_go_web/src/common/useRequest.ts +++ b/mayfly_go_web/src/common/useRequest.ts @@ -1,5 +1,5 @@ import router from '../router'; -import { getClientId, getToken } from './utils/storage'; +import { clearUser, getClientId, getToken } from './utils/storage'; import { templateResolve } from './utils/string'; import { ElMessage } from 'element-plus'; import { createFetch } from '@vueuse/core'; @@ -125,6 +125,7 @@ export function useApiFetch(api: Api, params: any = null, reqOptions: Request // 如果提示没有权限,则跳转至无权限页面 if (result.code === ResultEnum.NO_PERMISSION) { + clearUser(); router.push({ path: '/401', }); diff --git a/mayfly_go_web/src/common/utils/storage.ts b/mayfly_go_web/src/common/utils/storage.ts index e832ecfc..f935d48b 100644 --- a/mayfly_go_web/src/common/utils/storage.ts +++ b/mayfly_go_web/src/common/utils/storage.ts @@ -33,7 +33,9 @@ export function getThemeConfig() { return getLocal('themeConfig'); } -// 清除用户相关的用户信息 +/** + * 清除当前登录用户相关信息 + */ export function clearUser() { removeLocal(TokenKey); removeLocal(UserKey); diff --git a/mayfly_go_web/src/router/index.ts b/mayfly_go_web/src/router/index.ts index f216f6b7..72fd88e0 100644 --- a/mayfly_go_web/src/router/index.ts +++ b/mayfly_go_web/src/router/index.ts @@ -18,7 +18,7 @@ import { useKeepALiveNames } from '@/store/keepAliveNames'; * @method import.meta.glob * @link 参考:https://cn.vitejs.dev/guide/features.html#json */ -const viewsModules: any = import.meta.glob(['../views/**/*.{vue,tsx}']); +const viewsModules: Record = import.meta.glob(['../views/**/*.{vue,tsx}']); const dynamicViewsModules: Record = Object.assign({}, { ...viewsModules }); // 添加静态路由 @@ -104,7 +104,7 @@ export function backEndRouterConverter(routes: any, callbackFunc: RouterConvCall item.component = dynamicImport(dynamicViewsModules, item.meta.component); delete item.meta['component']; } - // route.path == resource.code + let path = item.code; // 如果不是以 / 开头,则路径需要拼接父路径 if (!path.startsWith('/')) { @@ -145,13 +145,18 @@ export function dynamicImport(dynamicViewsModules: Record, com const k = key.replace(/..\/views|../, ''); return k.startsWith(`${component}`) || k.startsWith(`/${component}`); }); + if (matchKeys?.length === 1) { - const matchKey = matchKeys[0]; - return dynamicViewsModules[matchKey]; + return dynamicViewsModules[matchKeys[0]]; } + if (matchKeys?.length > 1) { - return false; + console.error('匹配到多个相似组件路径, 可添加后缀.vue或.tsx进行区分或者重命名组件名, 请调整...', matchKeys); + return null; } + + console.error(`未匹配到[${component}]组件名对应的组件文件`); + return null; } // 删除/重置路由 @@ -218,7 +223,7 @@ router.beforeEach(async (to, from, next) => { } // 不存在路由(避免刷新页面找不到路由)并且未加载过(避免token过期,导致获取权限接口报权限不足,无限获取),则重新初始化路由 - if (useRoutesList().routesList.length == 0 && !loadRouter) { + if (useRoutesList().routesList?.length == 0 && !loadRouter) { await initRouter(); loadRouter = true; next({ path: to.path, query: to.query }); diff --git a/mayfly_go_web/src/theme/app.scss b/mayfly_go_web/src/theme/app.scss index ff03eff4..44e7c646 100644 --- a/mayfly_go_web/src/theme/app.scss +++ b/mayfly_go_web/src/theme/app.scss @@ -82,7 +82,7 @@ body, } .layout-view-bg-white { - background: white; + background: var(--bg-main-color); width: 100%; height: 100%; border-radius: 4px; diff --git a/mayfly_go_web/src/views/ops/machine/MachineList.vue b/mayfly_go_web/src/views/ops/machine/MachineList.vue index 9fb80fc1..cd5d7ea6 100644 --- a/mayfly_go_web/src/views/ops/machine/MachineList.vue +++ b/mayfly_go_web/src/views/ops/machine/MachineList.vue @@ -49,9 +49,9 @@ - + diff --git a/mayfly_go_web/src/views/system/resource/ResourceEdit.vue b/mayfly_go_web/src/views/system/resource/ResourceEdit.vue index 1d82abe8..6920597b 100644 --- a/mayfly_go_web/src/views/system/resource/ResourceEdit.vue +++ b/mayfly_go_web/src/views/system/resource/ResourceEdit.vue @@ -114,7 +114,7 @@ - + @@ -249,13 +249,9 @@ watch(props, (newValue: any) => { state.form.meta.linkType = meta.linkType; }); -// 改变iframe字段,如果为是,则设置默认的组件 -const changeIsIframe = (value: boolean) => { - if (value) { - state.form.meta.component = 'layout/routerView/parent'; - } else { - state.form.meta.component = ''; - } +// 改变外链类型 +const changeLinkType = () => { + state.form.meta.component = ''; }; const btnOk = () => { diff --git a/server/internal/db/dbm/db_type.go b/server/internal/db/dbm/db_type.go index 58c5bf00..e129d4a4 100644 --- a/server/internal/db/dbm/db_type.go +++ b/server/internal/db/dbm/db_type.go @@ -19,7 +19,7 @@ const ( func (dbType DbType) MetaDbName() string { switch dbType { case DbTypeMysql: - return "mysql" + return "" case DbTypePostgres: return "postgres" case DM: