From d86785c233197820c0d7b1c5b267786a834927b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=A2=E6=B5=A9=E4=B8=9C?= <975115611@qq.com> Date: Wed, 8 Jan 2025 16:36:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor(menu):=20=E5=B0=86=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E7=A7=BB=E8=87=B3?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE=E6=A8=A1=E5=9D=97=20-=20?= =?UTF-8?q?=E4=BB=8E=E9=A6=96=E9=A1=B5=E7=A7=BB=E9=99=A4=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=20-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8F=9C=E5=8D=95=E8=B5=84=E6=BA=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/index.vue | 355 +---------------------- src/pages/systemSetting/menuResource.vue | 354 ++++++++++++++++++++++ src/router/index.js | 2 +- 3 files changed, 359 insertions(+), 352 deletions(-) create mode 100644 src/pages/systemSetting/menuResource.vue diff --git a/src/pages/index.vue b/src/pages/index.vue index e6f1535..a7abf7e 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -1,354 +1,7 @@ + - - + + diff --git a/src/pages/systemSetting/menuResource.vue b/src/pages/systemSetting/menuResource.vue new file mode 100644 index 0000000..e6f1535 --- /dev/null +++ b/src/pages/systemSetting/menuResource.vue @@ -0,0 +1,354 @@ + + + + diff --git a/src/router/index.js b/src/router/index.js index d79a672..981eb90 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -66,7 +66,7 @@ function transformRoute(route, parentPath = '') { if (components[componentPath]) { transformed.component = components[componentPath]; } else { - console.error(`组件不存在: ${componentPath}`); + // console.error(`组件不存在: ${componentPath}`); // router.addRoute({ path: '/:catchAll(.*)', redirect: '/404' }); return null; // 跳过无效路由 } -- Gitee From 30670a33f75b0b7cb96ddf47a4a2e62365ac55d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=A2=E6=B5=A9=E4=B8=9C?= <975115611@qq.com> Date: Wed, 8 Jan 2025 18:04:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(router):=20=E4=BC=98=E5=8C=96=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E8=B7=AF=E7=94=B1=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 filterMenuTree 函数,递归过滤掉 menutype 为 "2" 的菜单项 - 修改 setupDynamicRoutes 函数,使用 filterMenuTree 过滤后端返回的路由数据 --- src/pages/systemSetting/internalusers.vue | 12 ------------ src/router/index.js | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/pages/systemSetting/internalusers.vue b/src/pages/systemSetting/internalusers.vue index 188958c..10b8dcf 100644 --- a/src/pages/systemSetting/internalusers.vue +++ b/src/pages/systemSetting/internalusers.vue @@ -172,19 +172,8 @@ const rules = { const resetForm = () => { ruleForm = reactive({ ...formTemplate }); if (ruleFormRef.value) ruleFormRef.value.resetFields(); - // if (formRef.value) { - // formRef.value.resetFields(); - // } }; const dialogVisible = ref(false); -// const requestajax = async () => { -// // try catch包下 -// const formData = new FormData(); -// formData.append('file', ruleForm.file); -// console.log(ruleForm.file, 'ruleForm.file'); -// const res = await proxy.$api.post('/api/upload/uploadFile', formData); -// console.log(res, '4554'); -// }; const handleSizeChange = val => { pageSize.value = val; getInternalUsers(); @@ -201,7 +190,6 @@ onMounted(() => { }); // 组织列表 proxy.$api.getOrganizationList().then(res => { - console.log(res.data, 'res.data'); zztree.value = res.data; // ruleForm.organizationId = res.data[0].id; }); diff --git a/src/router/index.js b/src/router/index.js index 981eb90..a11d129 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -74,12 +74,27 @@ function transformRoute(route, parentPath = '') { return transformed; } +function filterMenuTree(menuTree) { + return menuTree + .filter(menu => menu.menutype !== '2') // 过滤掉 menutype 为 "2" 的节点 + .map(menu => { + if (menu.children && menu.children.length > 0) { + // 递归处理子菜单 + menu.children = filterMenuTree(menu.children); + } + return menu; + }); +} + // 异步加载路由并添加到路由器 const setupDynamicRoutes = async () => { console.log('开始加载动态路由...'); try { - const res = await api.menus(); - const backendRoutes = res.data; + const res = await api.menus({ type: 1 }); + let backendRoutes = res.data; + // 递归过滤掉 menutype == 2 的数据 + backendRoutes = filterMenuTree(backendRoutes); + console.log('后端返回的路由:', backendRoutes); const useMenuStores = useMenuStore(); useMenuStores.getAllMenu(backendRoutes); // 转换路由 @@ -95,7 +110,7 @@ const setupDynamicRoutes = async () => { }); return res; } catch (error) { - console.error('Failed to setup dynamic routes:', error); + console.error(error); } }; -- Gitee