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 @@
+
-
-
-
- 新增
-
-
-
-
-
-
-
- 菜单
- 按钮
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- handleUnitChange(val)"
- v-model="form.parentId"
- node-key="id"
- :data="treeData"
- :props="treeProps"
- :default-expanded-keys="[0]"
- check-strictly
- :render-after-expand="false"
- placeholder="请选择上级菜单"
- />
-
-
-
-
-
- 菜单
- 按钮
-
-
-
-
-
-
-
-
-
-
-
-
-
- 资源编码
-
-
-
-
-
-
-
-
-
-
-
- 路由路径
-
-
-
-
-
-
-
-
-
-
- 组件位置
-
-
-
-
-
-
-
-
-
-
- 权限标识
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 是
- 否
-
-
-
-
-
-
-
- 请选择图标
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 这是首页、工作台
-
-
+
+
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 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+ 菜单
+ 按钮
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ handleUnitChange(val)"
+ v-model="form.parentId"
+ node-key="id"
+ :data="treeData"
+ :props="treeProps"
+ :default-expanded-keys="[0]"
+ check-strictly
+ :render-after-expand="false"
+ placeholder="请选择上级菜单"
+ />
+
+
+
+
+
+ 菜单
+ 按钮
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 资源编码
+
+
+
+
+
+
+
+
+
+
+
+ 路由路径
+
+
+
+
+
+
+
+
+
+
+ 组件位置
+
+
+
+
+
+
+
+
+
+
+ 权限标识
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 是
+ 否
+
+
+
+
+
+
+
+ 请选择图标
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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