From 1b0fe232922d961f53a2f67e3ddd10218adb7486 Mon Sep 17 00:00:00 2001 From: lizhixian <18210040298@163.com> Date: Tue, 11 Feb 2025 17:16:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=91=E5=B8=83=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E6=97=B6=E6=A0=A1=E9=AA=8C=E5=BD=93=E5=89=8D=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E6=AD=A3?= =?UTF-8?q?=E5=9C=A8=E8=BF=9B=E8=A1=8C=E4=B8=AD=E7=9A=84=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/model/index.ts | 10 ++++++++++ .../bpm/model/CategoryDraggableModel.vue | 17 +++++++++++----- src/views/bpm/model/form/index.vue | 20 +++++++++++++++---- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts index 63b6af6a..f77dec46 100644 --- a/src/api/bpm/model/index.ts +++ b/src/api/bpm/model/index.ts @@ -76,3 +76,13 @@ export const deployModel = async (id: number) => { export const cleanModel = async (id: number) => { return await request.delete({ url: '/bpm/model/clean?id=' + id }) } +/** + * 查询当前流程实例下是否存在正在进行中的单据 + * @param processDefinitionId 流程定义id + * @returns true/false + */ +export const getProcessInstance = async (processDefinitionId: string) => { + return await request.get({ + url: '/bpm/task/manager-list?processDefinitionId=' + processDefinitionId + }) +} diff --git a/src/views/bpm/model/CategoryDraggableModel.vue b/src/views/bpm/model/CategoryDraggableModel.vue index bc96a89a..1ca472a6 100644 --- a/src/views/bpm/model/CategoryDraggableModel.vue +++ b/src/views/bpm/model/CategoryDraggableModel.vue @@ -159,7 +159,7 @@ @@ -445,11 +445,17 @@ const handleChangeState = async (row: any) => { /** 发布流程 */ const handleDeploy = async (row: any) => { try { - // 删除的二次确认 - await message.confirm('是否部署该流程!!') + // 发布的二次确认 + await message.confirm('是否发布该流程!!') + //校验当前版本的流程下是否存在正在进行中的单据 + const res = await ModelApi.getProcessInstance(row.processDefinition.id) + if (res) { + message.error('当前版本下存在正在进行中的单据,请先结束单据后再发布') + return + } // 发起部署 await ModelApi.deployModel(row.id) - message.success(t('部署成功')) + message.success(t('发布成功')) // 刷新列表 emit('success') } catch {} @@ -587,7 +593,8 @@ const handleDeleteCategory = async () => { /** 添加流程模型弹窗 */ const tagsView = useTagsView() -const openModelForm = async (type: string, id?: number) => { +const openModelForm = async (type: string, id?: number, processDefinitionId?: string) => { + alert(processDefinitionId) if (type === 'create') { await push({ name: 'BpmModelCreate' }) } else { diff --git a/src/views/bpm/model/form/index.vue b/src/views/bpm/model/form/index.vue index a7b20a5e..5d04636f 100644 --- a/src/views/bpm/model/form/index.vue +++ b/src/views/bpm/model/form/index.vue @@ -162,7 +162,8 @@ const formData: any = ref({ summarySetting: { enable: false, summary: [] - } + }, + processDefinitionId: undefined }) //流程数据 @@ -285,9 +286,8 @@ const handleSave = async () => { } else { // 新增场景 formData.value.id = await ModelApi.createModel(modelData) - message.success('新增成功') try { - await message.confirm('创建流程成功,是否继续编辑?') + await message.confirm('流程创建成功,是否继续编辑?') // 用户点击继续编辑,跳转到编辑页面 await nextTick() // 先删除当前页签 @@ -295,7 +295,7 @@ const handleSave = async () => { // 跳转到编辑页面 await router.push({ name: 'BpmModelUpdate', - params: { id: formData.value.id } + params: { id: formData.value.id, processDefinitionId: formData.value.processDefinitionId } }) } catch { // 先删除当前页签 @@ -318,6 +318,13 @@ const handleDeploy = async () => { await message.confirm('是否确认发布该流程?') } + //校验当前版本的流程下是否存在正在进行中的单据 + const res = await ModelApi.getProcessInstance(row.processDefinition.id) + if (res) { + message.error('当前版本下存在正在进行中的单据,请先结束单据后再发布') + return + } + // 校验所有步骤 await validateAllSteps() @@ -345,6 +352,11 @@ const handleDeploy = async () => { } } +const validateProcessInstance = async (processDefinitionId) => { + const valid = await ModelApi.getProcessInstance(processDefinitionId) + console.log(valid) +} + /** 步骤切换处理 */ const handleStepClick = async (index: number) => { try {