From 6910bd28cc05eb5fda0df4f043a12479c1373705 Mon Sep 17 00:00:00 2001 From: Kven <2955163637@qq.com> Date: Thu, 19 Jun 2025 16:39:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(@vben/web-antd):=20=E5=85=B3=E8=81=94?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改工作流数据,将'update'操作改为'edit'操作 - 实现关联部门功能,添加linkWorkflow API - 调整工作流列表展示顺序 --- apps/web-antd/src/api/core/workflow.ts | 8 ++++++++ apps/web-antd/src/views/ppt/index.vue | 4 +++- apps/web-antd/src/views/workflow/data.ts | 4 ++-- .../src/views/workflow/modules/form.vue | 19 ++++++++++++------- apps/web-antd/vite.config.mts | 4 ++-- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/apps/web-antd/src/api/core/workflow.ts b/apps/web-antd/src/api/core/workflow.ts index c0c719e..5e6f750 100644 --- a/apps/web-antd/src/api/core/workflow.ts +++ b/apps/web-antd/src/api/core/workflow.ts @@ -26,6 +26,10 @@ export namespace WorkflowApi { keyword?: string; workflowRunId?: string; } + export interface WorkflowLinkParams { + workflowId: string; + deptIds: string[]; + } } // 工作流 @@ -49,3 +53,7 @@ export function getWorkflowList(params: WorkflowApi.WorkflowLogParams) { params, }); } + +export function linkWorkflow(data: WorkflowApi.WorkflowLinkParams) { + return requestClient.post(`/v1/server/link`, data); +} diff --git a/apps/web-antd/src/views/ppt/index.vue b/apps/web-antd/src/views/ppt/index.vue index b34d0c6..6ddae18 100644 --- a/apps/web-antd/src/views/ppt/index.vue +++ b/apps/web-antd/src/views/ppt/index.vue @@ -22,10 +22,12 @@ const itemMessage = ref([]); const getLogs = async (appid: string, limit: number) => { loading.value = true; - hitsory.value = await getWorkflowList({ + const res = await getWorkflowList({ appid, limit, }); + // 将结果倒序后再赋值给 hitsory + hitsory.value = res.reverse(); loading.value = false; }; diff --git a/apps/web-antd/src/views/workflow/data.ts b/apps/web-antd/src/views/workflow/data.ts index 11835c7..d95b732 100644 --- a/apps/web-antd/src/views/workflow/data.ts +++ b/apps/web-antd/src/views/workflow/data.ts @@ -68,9 +68,9 @@ export function useColumns( }, options: [ { - code: 'update', + code: 'edit', text: '关联部门', - permission: 'workflow:update', + // permission: 'workflow:update', }, ], }, diff --git a/apps/web-antd/src/views/workflow/modules/form.vue b/apps/web-antd/src/views/workflow/modules/form.vue index 8386039..163f6d9 100644 --- a/apps/web-antd/src/views/workflow/modules/form.vue +++ b/apps/web-antd/src/views/workflow/modules/form.vue @@ -8,12 +8,12 @@ import { ref } from 'vue'; import { useVbenModal, VbenTree } from '@vben/common-ui'; import { useVbenForm } from '#/adapter/form'; -import { getAllDeptTree } from '#/api'; +import { getAllDeptTree, linkWorkflow } from '#/api'; import { useFormSchema } from '../data'; const emits = defineEmits(['success']); -const formData = ref([]); +const workflowId = ref(); const deptData = ref([]); function convertToTreeNode(item: any): DataNode { @@ -30,18 +30,22 @@ async function getDeptList() { deptData.value = res.map((item) => convertToTreeNode(item)); } -const [Form] = useVbenForm({ +const [Form, formApi] = useVbenForm({ schema: useFormSchema(), showDefaultActions: false, }); const [Modal, modalApi] = useVbenModal({ async onConfirm() { - // const values = await formApi.getValues(); - if (!formData.value) return; - + // const values = await formApi; + if (!formApi.form.values.deptIds) return; + const deptIds = formApi.form.values.deptIds; modalApi.lock(); try { + await linkWorkflow({ + workflowId: workflowId.value, + deptIds, + }); emits('success'); modalApi.close(); } finally { @@ -50,6 +54,7 @@ const [Modal, modalApi] = useVbenModal({ }, async onOpenChange(isOpen) { if (isOpen) { + workflowId.value = modalApi.getData().id; await getDeptList(); } }, @@ -69,7 +74,7 @@ function getNodeClass(node: Recordable) {