From c401a3092f4ee36fc1be48d0bb435aeac572cc1c Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 8 Aug 2025 10:07:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E6=96=B9=E5=BC=8F=E6=9B=BF=E6=8D=A2iframe=E6=9D=A5?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=B5=81=E7=A8=8B=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web-antd/src/api/workflow/task/model.d.ts | 2 +- apps/web-antd/src/router/routes/index.ts | 6 +- .../src/router/routes/workflow-iframe.ts | 18 ----- .../workflow/components/approval-details.vue | 25 +++---- .../src/views/workflow/leave/data.tsx | 5 +- .../workflow/leave/leave-description.vue | 49 ++++++++------ .../src/views/workflow/leave/leave-form.vue | 65 ++----------------- apps/web-antd/src/views/workflow/register.ts | 21 ++++++ 8 files changed, 73 insertions(+), 118 deletions(-) delete mode 100644 apps/web-antd/src/router/routes/workflow-iframe.ts create mode 100644 apps/web-antd/src/views/workflow/register.ts diff --git a/apps/web-antd/src/api/workflow/task/model.d.ts b/apps/web-antd/src/api/workflow/task/model.d.ts index 5f638a8f..b79e0a22 100644 --- a/apps/web-antd/src/api/workflow/task/model.d.ts +++ b/apps/web-antd/src/api/workflow/task/model.d.ts @@ -21,7 +21,7 @@ export interface TaskInfo { permissionList?: any; userList?: any; formCustom: string; - formPath?: any; + formPath: string; flowCode: string; version: string; flowStatus: string; diff --git a/apps/web-antd/src/router/routes/index.ts b/apps/web-antd/src/router/routes/index.ts index 1a92413f..4ae6745d 100644 --- a/apps/web-antd/src/router/routes/index.ts +++ b/apps/web-antd/src/router/routes/index.ts @@ -3,7 +3,6 @@ import type { RouteRecordRaw } from 'vue-router'; import { mergeRouteModules, traverseTreeValues } from '@vben/utils'; import { coreRoutes, fallbackNotFoundRoute } from './core'; -import { workflowIframeRoutes } from './workflow-iframe'; const dynamicRouteFiles = import.meta.glob('./modules/**/*.ts', { eager: true, @@ -27,12 +26,11 @@ const externalRoutes: RouteRecordRaw[] = []; const routes: RouteRecordRaw[] = [ ...coreRoutes, ...externalRoutes, - ...workflowIframeRoutes, fallbackNotFoundRoute, ]; -/** 基本路由(登录, 第三方登录, 注册等) + workflowIframe路由不需要拦截 */ -const basicRoutes = [...coreRoutes, ...workflowIframeRoutes]; +/** 基本路由(登录, 第三方登录, 注册等) */ +const basicRoutes = [...coreRoutes]; /** 基本路由列表,这些路由不需要进入权限拦截 */ const coreRouteNames = traverseTreeValues(basicRoutes, (route) => route.name); diff --git a/apps/web-antd/src/router/routes/workflow-iframe.ts b/apps/web-antd/src/router/routes/workflow-iframe.ts deleted file mode 100644 index 137088f6..00000000 --- a/apps/web-antd/src/router/routes/workflow-iframe.ts +++ /dev/null @@ -1,18 +0,0 @@ -import type { RouteRecordRaw } from '@vben/types'; - -/** - * 该文件存放workflow表单的iframe内嵌路由 - * 不需要权限认证 少走两个接口😅 - */ -export const workflowIframeRoutes: RouteRecordRaw[] = [ - // 这里是iframe使用的 去掉外层的BasicLayout - { - name: 'WorkflowLeaveInner', - path: '/workflow/leaveEdit/index/iframe', - component: () => import('#/views/workflow/leave/leave-form.vue'), - meta: { - hideInTab: true, - title: '请假申请', - }, - }, -]; diff --git a/apps/web-antd/src/views/workflow/components/approval-details.vue b/apps/web-antd/src/views/workflow/components/approval-details.vue index 09adcff9..1634f236 100644 --- a/apps/web-antd/src/views/workflow/components/approval-details.vue +++ b/apps/web-antd/src/views/workflow/components/approval-details.vue @@ -1,16 +1,17 @@ - diff --git a/apps/web-antd/src/views/workflow/leave/leave-form.vue b/apps/web-antd/src/views/workflow/leave/leave-form.vue index 0e4d7751..da26a5a7 100644 --- a/apps/web-antd/src/views/workflow/leave/leave-form.vue +++ b/apps/web-antd/src/views/workflow/leave/leave-form.vue @@ -1,9 +1,7 @@ - - diff --git a/apps/web-antd/src/views/workflow/register.ts b/apps/web-antd/src/views/workflow/register.ts new file mode 100644 index 00000000..62ebfae4 --- /dev/null +++ b/apps/web-antd/src/views/workflow/register.ts @@ -0,0 +1,21 @@ +import { defineAsyncComponent, markRaw } from 'vue'; + +/** + * 这里定义流程描述组件 + */ + +const LeaveDescription = defineAsyncComponent( + () => import('#/views/workflow/leave/leave-description.vue'), +); + +/** + * key为流程的路径(task.formPath) value为要显示的组件 + */ +export const flowDescripionsMap = { + /** + * 请假申请 详情 + */ + '/workflow/leaveEdit/index': markRaw(LeaveDescription), +}; + +export type DescripionsMapKey = keyof typeof flowDescripionsMap;