From a38f2de982f2b982e5034f0c32f7a04cadde79c5 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 23 May 2025 14:30:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=89=80=E6=9C=89=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E8=B7=AF=E7=94=B1(=E9=99=A4=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=AD=E5=BF=83/workflow-iframe)=E6=94=B9=E4=B8=BA=E4=BB=8E?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E8=BF=94=E5=9B=9E=20=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/router/access.ts | 43 +++++++++++++ apps/web-antd/src/router/routes/local.ts | 64 +------------------ apps/web-antd/src/views/system/oss/config.vue | 11 ++++ apps/web-antd/src/views/system/oss/index.vue | 2 +- .../src/views/system/role/authUser.vue | 11 ++++ apps/web-antd/src/views/system/role/index.vue | 2 +- .../web-antd/src/views/tool/gen/editTable.vue | 10 +++ apps/web-antd/src/views/tool/gen/index.vue | 2 +- .../src/views/workflow/leave/leaveEdit.vue | 11 ++++ .../workflow/processDefinition/design.vue | 11 ++++ .../workflow/processDefinition/index.vue | 2 +- 11 files changed, 102 insertions(+), 67 deletions(-) create mode 100644 apps/web-antd/src/views/system/oss/config.vue create mode 100644 apps/web-antd/src/views/system/role/authUser.vue create mode 100644 apps/web-antd/src/views/tool/gen/editTable.vue create mode 100644 apps/web-antd/src/views/workflow/leave/leaveEdit.vue create mode 100644 apps/web-antd/src/views/workflow/processDefinition/design.vue diff --git a/apps/web-antd/src/router/access.ts b/apps/web-antd/src/router/access.ts index 5283f2ab..fdfa836b 100644 --- a/apps/web-antd/src/router/access.ts +++ b/apps/web-antd/src/router/access.ts @@ -1,6 +1,7 @@ import type { ComponentRecordType, GenerateMenuAndRoutesOptions, + RouteMeta, RouteRecordStringComponent, } from '@vben/types'; @@ -21,6 +22,37 @@ import { localMenuList } from './routes/local'; const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue'); const NotFoundComponent = () => import('#/views/_core/fallback/not-found.vue'); +/** + * 后端返回的meta有时候不包括需要的信息 比如activePath等 + * 在这里定义映射 + */ +const routeMetaMapping: Record> = { + '/system/role-auth/user/:roleId(\\d+)': { + activePath: '/system/role', + requireHomeRedirect: true, + }, + + '/system/oss-config/index': { + activePath: '/system/oss', + requireHomeRedirect: true, + }, + + '/tool/gen-edit/index/:tableId(\\d+)': { + activePath: '/tool/gen', + requireHomeRedirect: true, + }, + + '/workflow/design/index': { + activePath: '/workflow/processDefinition', + requireHomeRedirect: true, + }, + + '/workflow/leaveEdit/index': { + activePath: '/demo/leave', + requireHomeRedirect: true, + }, +}; + /** * 后台路由转vben路由 * @param menuList 后台菜单 @@ -98,6 +130,17 @@ function backMenuToVbenMenu( path: menu.path, }; + // 处理meta映射 + if (Object.keys(routeMetaMapping).includes(vbenRoute.path)) { + const routeMeta = routeMetaMapping[vbenRoute.path]; + if (routeMeta) { + vbenRoute.meta = { + ...vbenRoute.meta, + ...(routeMeta as RouteMeta), + }; + } + } + // 添加路由参数信息 if (menu.query) { try { diff --git a/apps/web-antd/src/router/routes/local.ts b/apps/web-antd/src/router/routes/local.ts index fcde9398..0b4f0cac 100644 --- a/apps/web-antd/src/router/routes/local.ts +++ b/apps/web-antd/src/router/routes/local.ts @@ -9,6 +9,7 @@ const { /** * 该文件放非后台返回的路由 比如个人中心 等需要跳转显示的页面 + * 也可以直接在菜单管理配置 */ const localRoutes: RouteRecordStringComponent[] = [ { @@ -22,69 +23,6 @@ const localRoutes: RouteRecordStringComponent[] = [ name: 'Profile', path: '/profile', }, - { - component: '/system/oss-config/index', - meta: { - activePath: '/system/oss', - icon: 'ant-design:setting-outlined', - title: 'oss配置', - hideInMenu: true, - requireHomeRedirect: true, - }, - name: 'OssConfig', - path: '/system/oss-config', - }, - { - component: '/tool/gen/edit-gen', - meta: { - activePath: '/tool/gen', - icon: 'tabler:code', - title: '生成配置', - hideInMenu: true, - requireHomeRedirect: true, - }, - name: 'GenConfig', - path: '/code-gen/edit/:tableId', - }, - { - component: '/system/role-assign/index', - meta: { - activePath: '/system/role', - icon: 'eos-icons:role-binding-outlined', - title: '分配角色', - hideInMenu: true, - requireHomeRedirect: true, - }, - name: 'RoleAssign', - path: '/system/role-assign/:roleId', - }, - { - component: '/workflow/components/flow-designer', - meta: { - activePath: '/workflow/processDefinition', - icon: 'fluent-mdl2:flow', - title: '流程设计', - hideInMenu: true, - requireHomeRedirect: true, - }, - name: 'WorkflowDesigner', - path: '/workflow/designer', - }, - /** - * 需要添加iframe路由 同目录的./workflow-iframe.ts - */ - { - component: 'workflow/leave/leave-form', - meta: { - icon: 'flat-color-icons:leave', - title: '请假申请', - activePath: '/demo/leave', - hideInMenu: true, - requireHomeRedirect: true, - }, - name: 'WorkflowLeaveIndex', - path: '/workflow/leaveEdit/index', - }, ]; /** diff --git a/apps/web-antd/src/views/system/oss/config.vue b/apps/web-antd/src/views/system/oss/config.vue new file mode 100644 index 00000000..8b4eadbe --- /dev/null +++ b/apps/web-antd/src/views/system/oss/config.vue @@ -0,0 +1,11 @@ + + + + diff --git a/apps/web-antd/src/views/system/oss/index.vue b/apps/web-antd/src/views/system/oss/index.vue index 18cc20db..89bf5bf9 100644 --- a/apps/web-antd/src/views/system/oss/index.vue +++ b/apps/web-antd/src/views/system/oss/index.vue @@ -156,7 +156,7 @@ function handleMultiDelete() { const router = useRouter(); function handleToSettings() { - router.push('/system/oss-config'); + router.push('/system/oss-config/index'); } const preview = ref(false); diff --git a/apps/web-antd/src/views/system/role/authUser.vue b/apps/web-antd/src/views/system/role/authUser.vue new file mode 100644 index 00000000..4f11038f --- /dev/null +++ b/apps/web-antd/src/views/system/role/authUser.vue @@ -0,0 +1,11 @@ + + + + diff --git a/apps/web-antd/src/views/system/role/index.vue b/apps/web-antd/src/views/system/role/index.vue index e3a9198c..1df682c2 100644 --- a/apps/web-antd/src/views/system/role/index.vue +++ b/apps/web-antd/src/views/system/role/index.vue @@ -142,7 +142,7 @@ function handleAuthEdit(record: Role) { const router = useRouter(); function handleAssignRole(record: Role) { - router.push(`/system/role-assign/${record.roleId}`); + router.push(`/system/role-auth/user/${record.roleId}`); } diff --git a/apps/web-antd/src/views/tool/gen/editTable.vue b/apps/web-antd/src/views/tool/gen/editTable.vue new file mode 100644 index 00000000..b1d3f7c2 --- /dev/null +++ b/apps/web-antd/src/views/tool/gen/editTable.vue @@ -0,0 +1,10 @@ + + + + diff --git a/apps/web-antd/src/views/tool/gen/index.vue b/apps/web-antd/src/views/tool/gen/index.vue index 6b246831..a6dec36d 100644 --- a/apps/web-antd/src/views/tool/gen/index.vue +++ b/apps/web-antd/src/views/tool/gen/index.vue @@ -110,7 +110,7 @@ function handlePreview(record: Recordable) { const router = useRouter(); function handleEdit(record: Recordable) { - router.push(`/code-gen/edit/${record.tableId}`); + router.push(`/tool/gen-edit/index/${record.tableId}`); } async function handleSync(record: Recordable) { diff --git a/apps/web-antd/src/views/workflow/leave/leaveEdit.vue b/apps/web-antd/src/views/workflow/leave/leaveEdit.vue new file mode 100644 index 00000000..f7b08309 --- /dev/null +++ b/apps/web-antd/src/views/workflow/leave/leaveEdit.vue @@ -0,0 +1,11 @@ + + + + diff --git a/apps/web-antd/src/views/workflow/processDefinition/design.vue b/apps/web-antd/src/views/workflow/processDefinition/design.vue new file mode 100644 index 00000000..232fdba2 --- /dev/null +++ b/apps/web-antd/src/views/workflow/processDefinition/design.vue @@ -0,0 +1,11 @@ + + + + diff --git a/apps/web-antd/src/views/workflow/processDefinition/index.vue b/apps/web-antd/src/views/workflow/processDefinition/index.vue index 5a6968e9..d924f148 100644 --- a/apps/web-antd/src/views/workflow/processDefinition/index.vue +++ b/apps/web-antd/src/views/workflow/processDefinition/index.vue @@ -154,7 +154,7 @@ const router = useRouter(); */ function handleDesign(row: any, disabled: boolean) { router.push({ - path: '/workflow/designer', + path: '/workflow/design/index', query: { definitionId: row.id, disabled: String(disabled) }, }); }