diff --git a/web/src/pinia/modules/router.js b/web/src/pinia/modules/router.js index 36af5132..22e59d86 100644 --- a/web/src/pinia/modules/router.js +++ b/web/src/pinia/modules/router.js @@ -52,14 +52,32 @@ export const useRouterStore = defineStore('router', () => { const asyncRouterFlag = ref(0) const setKeepAliveRouters = (history) => { const keepArrTemp = [] + + // 1. 首先添加原有的keepAlive配置 + keepArrTemp.push(...keepAliveRoutersArr) + history.forEach((item) => { + // 2. 为所有history中的路由强制启用keep-alive + // 通过routeMap获取路由信息,然后通过pathInfo获取组件名 + const routeInfo = routeMap[item.name] + if (routeInfo && routeInfo.meta && routeInfo.meta.path) { + const componentName = pathInfo[routeInfo.meta.path] + if (componentName) { + keepArrTemp.push(componentName) + } + } + + // 3. 如果子路由在tabs中打开,父路由也需要keepAlive if (nameMap[item.name]) { keepArrTemp.push(nameMap[item.name]) } }) + keepAliveRouters.value = Array.from(new Set(keepArrTemp)) + console.log(keepAliveRouters.value) } + const route = useRoute() emitter.on('setKeepAlive', setKeepAliveRouters) diff --git a/web/src/view/systemTools/autoCode/mcp.vue b/web/src/view/systemTools/autoCode/mcp.vue index 16f8bc0b..0113a7b5 100644 --- a/web/src/view/systemTools/autoCode/mcp.vue +++ b/web/src/view/systemTools/autoCode/mcp.vue @@ -83,6 +83,10 @@ import { ref, reactive } from 'vue' import { ElMessage } from 'element-plus' import { mcp } from '@/api/autoCode' +defineOptions({ + name: 'MCP' +}) + const formRef = ref(null) const form = reactive({ name: '', diff --git a/web/src/view/systemTools/autoCode/mcpTest.vue b/web/src/view/systemTools/autoCode/mcpTest.vue index 1a15c188..c20704e8 100644 --- a/web/src/view/systemTools/autoCode/mcpTest.vue +++ b/web/src/view/systemTools/autoCode/mcpTest.vue @@ -139,6 +139,11 @@ import { ElMessage } from 'element-plus' import { VideoPlay, DocumentCopy } from '@element-plus/icons-vue' // Added DocumentCopy import { mcpList, mcpTest } from '@/api/autoCode' +defineOptions({ + name: 'MCPTest' +}) + + const mcpTools = ref([]) const testDialogVisible = ref(false) const currentTestingTool = ref(null)