From 25790d4b0f822c22360305a176815ba9c7f3ef19 Mon Sep 17 00:00:00 2001 From: AN <1983933789@qq.com> Date: Mon, 19 May 2025 23:51:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AF=B9=E6=8E=A5=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E5=88=86=E7=B1=BB=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/langs/en-us.ts | 2 + src/locales/langs/zh-cn.ts | 2 + src/router/elegant/imports.ts | 1 + src/router/elegant/routes.ts | 20 ++ src/router/elegant/transform.ts | 4 +- src/service/api/workflow/category.ts | 45 ++++ src/service/api/workflow/index.ts | 1 + src/typings/api/workflow.api.d.ts | 44 ++++ src/typings/elegant-router.d.ts | 4 + src/views/system/dept/index.vue | 2 +- src/views/workflow/category/index.vue | 207 ++++++++++++++++++ .../modules/category-operate-drawer.vue | 139 ++++++++++++ .../category/modules/category-search.vue | 63 ++++++ 13 files changed, 532 insertions(+), 2 deletions(-) create mode 100644 src/service/api/workflow/category.ts create mode 100644 src/service/api/workflow/index.ts create mode 100644 src/typings/api/workflow.api.d.ts create mode 100644 src/views/workflow/category/index.vue create mode 100644 src/views/workflow/category/modules/category-operate-drawer.vue create mode 100644 src/views/workflow/category/modules/category-search.vue diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 13e9c780..f2f2bcf2 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -212,6 +212,8 @@ const local: App.I18n.Schema = { demo: 'Demo', demo_demo: 'Demo Table', demo_tree: 'Demo Tree', + workflow: 'Workflow', + workflow_category: 'Workflow Category', exception: 'Exception', exception_403: '403', exception_404: '404', diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index da4dd3d1..3a3db2e3 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -212,6 +212,8 @@ const local: App.I18n.Schema = { demo: '测试', demo_demo: '测试单表', demo_tree: '测试树表', + workflow: '流程管理', + workflow_category: '流程分类', exception: '异常页', exception_403: '403', exception_404: '404', diff --git a/src/router/elegant/imports.ts b/src/router/elegant/imports.ts index ca1349cb..6ddf682e 100644 --- a/src/router/elegant/imports.ts +++ b/src/router/elegant/imports.ts @@ -43,4 +43,5 @@ export const views: Record Promise import("@/views/system/tenant/index.vue"), system_user: () => import("@/views/system/user/index.vue"), tool_gen: () => import("@/views/tool/gen/index.vue"), + workflow_category: () => import("@/views/workflow/category/index.vue"), }; diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index 4be5424a..556719cf 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -331,5 +331,25 @@ export const generatedRoutes: GeneratedRoute[] = [ icon: 'material-symbols:account-circle-full', hideInMenu: true } + }, + { + name: 'workflow', + path: '/workflow', + component: 'layout.base', + meta: { + title: 'workflow', + i18nKey: 'route.workflow' + }, + children: [ + { + name: 'workflow_category', + path: '/workflow/category', + component: 'view.workflow_category', + meta: { + title: 'workflow_category', + i18nKey: 'route.workflow_category' + } + } + ] } ]; diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts index c794b6e2..13279891 100644 --- a/src/router/elegant/transform.ts +++ b/src/router/elegant/transform.ts @@ -198,7 +198,9 @@ const routeMap: RouteMap = { "system_user": "/system/user", "tool": "/tool", "tool_gen": "/tool/gen", - "user-center": "/user-center" + "user-center": "/user-center", + "workflow": "/workflow", + "workflow_category": "/workflow/category" }; /** diff --git a/src/service/api/workflow/category.ts b/src/service/api/workflow/category.ts new file mode 100644 index 00000000..2e6fc97c --- /dev/null +++ b/src/service/api/workflow/category.ts @@ -0,0 +1,45 @@ +import { request } from '@/service/request'; + +/** 获取测试树列表 */ +export function fetchGetCategoryList(params?: Api.Workflow.WorkflowCategorySearchParams) { + return request({ + url: '/workflow/category/list', + method: 'get', + params + }); +} + +/** 新增测试树 */ +export function fetchCreateCategory(data: Api.Workflow.WorkflowCategoryOperateParams) { + return request({ + url: '/workflow/category', + method: 'post', + data + }); +} + +/** 修改测试树 */ +export function fetchUpdateCategory(data: Api.Workflow.WorkflowCategoryOperateParams) { + return request({ + url: '/workflow/category', + method: 'put', + data + }); +} + +/** 删除分类 */ +export function fetchDeleteCategory(id: CommonType.IdType) { + return request({ + url: `/workflow/category/${id}`, + method: 'delete' + }); +} + +/** 导出工作流分类 */ +export function fetchExportCategory(params?: Api.Workflow.WorkflowCategorySearchParams) { + return request({ + url: '/workflow/category/export', + method: 'post', + params + }); +} diff --git a/src/service/api/workflow/index.ts b/src/service/api/workflow/index.ts new file mode 100644 index 00000000..182b5fe1 --- /dev/null +++ b/src/service/api/workflow/index.ts @@ -0,0 +1 @@ +export * from './category'; diff --git a/src/typings/api/workflow.api.d.ts b/src/typings/api/workflow.api.d.ts new file mode 100644 index 00000000..10587e95 --- /dev/null +++ b/src/typings/api/workflow.api.d.ts @@ -0,0 +1,44 @@ +/** + * Namespace Api + * + * All backend api type + */ +declare namespace Api { + /** + * namespace Workflow + * + * backend api module: "Workflow" + */ + namespace Workflow { + /** 工作流分类 */ + type WorkflowCategory = Common.CommonRecord<{ + /** 主键 */ + categoryId: CommonType.IdType; + /** 租户编号 */ + tenantId: CommonType.IdType; + /** 分类名称 */ + categoryName: string; + /** 父级ID */ + parentId: CommonType.IdType; + /** 祖级列表 */ + ancestors: string; + /** 排序号 */ + orderNum: number; + /** 删除标志 */ + delFlag: number; + }>; + + /** 工作流分类搜索参数 */ + type WorkflowCategorySearchParams = CommonType.RecordNullable< + Pick & Api.Common.CommonSearchParams + >; + + /** 工作流分类操作参数 */ + type WorkflowCategoryOperateParams = CommonType.RecordNullable< + Pick + >; + + /** 工作流分类列表 */ + type WorkflowCategoryList = WorkflowCategory[]; + } +} diff --git a/src/typings/elegant-router.d.ts b/src/typings/elegant-router.d.ts index 6848ab93..b05f3c7a 100644 --- a/src/typings/elegant-router.d.ts +++ b/src/typings/elegant-router.d.ts @@ -53,6 +53,8 @@ declare module "@elegant-router/types" { "tool": "/tool"; "tool_gen": "/tool/gen"; "user-center": "/user-center"; + "workflow": "/workflow"; + "workflow_category": "/workflow/category"; }; /** @@ -100,6 +102,7 @@ declare module "@elegant-router/types" { | "system" | "tool" | "user-center" + | "workflow" >; /** @@ -145,6 +148,7 @@ declare module "@elegant-router/types" { | "system_tenant" | "system_user" | "tool_gen" + | "workflow_category" >; /** diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 46e47842..297bbf20 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -194,10 +194,10 @@ async function addInRow(row: TableDataWithIndex) { :columns="columns" :data="data" size="small" + :indent="32" :flex-height="!appStore.isMobile" :scroll-x="962" :loading="loading" - :indent="28" :row-key="row => row.deptId" class="sm:h-full" /> diff --git a/src/views/workflow/category/index.vue b/src/views/workflow/category/index.vue new file mode 100644 index 00000000..560c12b5 --- /dev/null +++ b/src/views/workflow/category/index.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/src/views/workflow/category/modules/category-operate-drawer.vue b/src/views/workflow/category/modules/category-operate-drawer.vue new file mode 100644 index 00000000..55a55a52 --- /dev/null +++ b/src/views/workflow/category/modules/category-operate-drawer.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/views/workflow/category/modules/category-search.vue b/src/views/workflow/category/modules/category-search.vue new file mode 100644 index 00000000..398dba38 --- /dev/null +++ b/src/views/workflow/category/modules/category-search.vue @@ -0,0 +1,63 @@ + + + + +