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 {