From 9459a7296ff5afad38b9a68ee4b7a586c3bc44ca Mon Sep 17 00:00:00 2001 From: GoldenZqqqq <1361001127@qq.com> Date: Mon, 9 Dec 2024 23:05:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B5=81=E7=A8=8B=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=96=B0=E5=A2=9E/=E4=BF=AE=E6=94=B9/=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=90=88=E4=B8=BA=E4=B8=80=E4=B8=AA=E9=A1=B5=E9=9D=A2=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E5=88=87=E6=8D=A2tab=E9=80=BB=E8=BE=91=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E4=B8=8E=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/SimpleProcessDesigner.vue | 69 +++++++++----- .../bpm/model/CategoryDraggableModel.vue | 2 +- src/views/bpm/model/CreateUpdate.vue | 86 +++++++++++------ src/views/bpm/model/editor/index.vue | 92 ++++++++++++------- src/views/bpm/simple/SimpleModelDesign.vue | 15 ++- 5 files changed, 179 insertions(+), 85 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue index 6b5ff997..3cefd343 100644 --- a/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue +++ b/src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue @@ -38,12 +38,21 @@ import * as UserGroupApi from '@/api/bpm/userGroup' defineOptions({ name: 'SimpleProcessDesigner' }) + const emits = defineEmits(['success']) // 保存成功事件 const props = defineProps({ modelId: { type: String, - required: true + required: false + }, + modelKey: { + type: String, + required: false + }, + modelName: { + type: String, + required: false } }) @@ -69,6 +78,7 @@ const message = useMessage() // 国际化 const processNodeTree = ref() const errorDialogVisible = ref(false) let errorNodes: SimpleFlowNode[] = [] + const saveSimpleFlowModel = async (simpleModelNode: SimpleFlowNode) => { if (!simpleModelNode) { message.error('模型数据为空') @@ -76,21 +86,28 @@ const saveSimpleFlowModel = async (simpleModelNode: SimpleFlowNode) => { } try { loading.value = true - const data = { - id: props.modelId, - simpleModel: simpleModelNode - } - const result = await updateBpmSimpleModel(data) - if (result) { - message.success('修改成功') - emits('success') + if (props.modelId) { + // 编辑模式 + const data = { + id: props.modelId, + simpleModel: simpleModelNode + } + const result = await updateBpmSimpleModel(data) + if (result) { + message.success('修改成功') + emits('success') + } else { + message.alert('修改失败') + } } else { - message.alert('修改失败') + // 新建模式,直接返回数据 + emits('success', simpleModelNode) } } finally { loading.value = false } } + // 校验节点设置。 暂时以 showText 为空 未节点错误配置 const validateNode = (node: SimpleFlowNode | undefined, errorNodes: SimpleFlowNode[]) => { if (node) { @@ -134,12 +151,14 @@ onMounted(async () => { try { loading.value = true // 获取表单字段 - const bpmnModel = await getModel(props.modelId) - if (bpmnModel) { - formType.value = bpmnModel.formType - if (formType.value === 10) { - const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO - formFields.value = bpmnForm?.fields + if (props.modelId) { + const bpmnModel = await getModel(props.modelId) + if (bpmnModel) { + formType.value = bpmnModel.formType + if (formType.value === 10) { + const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO + formFields.value = bpmnForm?.fields + } } } // 获得角色列表 @@ -155,14 +174,18 @@ onMounted(async () => { // 获取用户组列表 userGroupOptions.value = await UserGroupApi.getUserGroupSimpleList() - //获取 SIMPLE 设计器模型 - const result = await getBpmSimpleModel(props.modelId) - if (result) { - processNodeTree.value = result - } else { - // 初始值 + if (props.modelId) { + //获取 SIMPLE 设计器模型 + const result = await getBpmSimpleModel(props.modelId) + if (result) { + processNodeTree.value = result + } + } + + // 如果没有现有模型,创建初始模型 + if (!processNodeTree.value) { processNodeTree.value = { - name: '发起人', + name: props.modelName || '发起人', type: NodeType.START_USER_NODE, id: NodeId.START_USER_NODE_ID, childNode: { diff --git a/src/views/bpm/model/CategoryDraggableModel.vue b/src/views/bpm/model/CategoryDraggableModel.vue index f01c7d18..e5765864 100644 --- a/src/views/bpm/model/CategoryDraggableModel.vue +++ b/src/views/bpm/model/CategoryDraggableModel.vue @@ -249,7 +249,7 @@ import { formatDate } from '@/utils/formatTime' import * as ModelApi from '@/api/bpm/model' import * as FormApi from '@/api/bpm/form' import { setConfAndFields2 } from '@/utils/formCreate' -import { BpmModelFormType, BpmModelType } from '@/utils/constants' +import { BpmModelFormType } from '@/utils/constants' import { checkPermi } from '@/utils/permission' import { useUserStoreWithOut } from '@/store/modules/user' import { useAppStore } from '@/store/modules/app' diff --git a/src/views/bpm/model/CreateUpdate.vue b/src/views/bpm/model/CreateUpdate.vue index c412d9d0..2a03f75d 100644 --- a/src/views/bpm/model/CreateUpdate.vue +++ b/src/views/bpm/model/CreateUpdate.vue @@ -1,42 +1,47 @@