From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/bpm/model/form/ProcessDesign.vue |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/src/views/bpm/model/form/ProcessDesign.vue b/src/views/bpm/model/form/ProcessDesign.vue
new file mode 100644
index 0000000..172e042
--- /dev/null
+++ b/src/views/bpm/model/form/ProcessDesign.vue
@@ -0,0 +1,72 @@
+<template>
+  <!-- BPMN璁捐鍣� -->
+  <template v-if="modelData.type === BpmModelType.BPMN">
+    <BpmModelEditor
+      v-if="showDesigner"
+      :model-id="modelData.id"
+      :model-key="modelData.key"
+      :model-name="modelData.name"
+      @success="handleDesignSuccess"
+    />
+  </template>
+
+  <!-- Simple璁捐鍣� -->
+  <template v-else>
+    <SimpleModelDesign
+      v-if="showDesigner"
+      :model-name="modelData.name"
+      :model-form-id="modelData.formId"
+      :model-form-type="modelData.formType"
+      :start-user-ids="modelData.startUserIds"
+      :start-dept-ids="modelData.startDeptIds"
+      @success="handleDesignSuccess"
+    />
+  </template>
+</template>
+
+<script lang="ts" setup>
+import { BpmModelType } from '@/utils/constants'
+import BpmModelEditor from './editor/index.vue'
+import SimpleModelDesign from '../../simple/SimpleModelDesign.vue'
+
+// 鍒涘缓鏈湴鏁版嵁鍓湰
+const modelData = defineModel<any>()
+
+const processData = inject('processData') as Ref
+
+/** 琛ㄥ崟鏍¢獙 */
+const validate = async () => {
+  try {
+    // 鑾峰彇鏈�鏂扮殑娴佺▼鏁版嵁
+    if (!processData.value) {
+      throw new Error('璇疯璁℃祦绋�')
+    }
+    return true
+  } catch (error) {
+    throw error
+  }
+}
+/** 澶勭悊璁捐鍣ㄤ繚瀛樻垚鍔� */
+const handleDesignSuccess = async (data?: any) => {
+  if (data) {
+    // 鍒涘缓鏂扮殑瀵硅薄浠ヨЕ鍙戝搷搴斿紡鏇存柊
+    const newModelData = {
+      ...modelData.value,
+      bpmnXml: modelData.value.type === BpmModelType.BPMN ? data : null,
+      simpleModel: modelData.value.type === BpmModelType.BPMN ? null : data
+    }
+    // 浣跨敤emit鏇存柊鐖剁粍浠剁殑鏁版嵁
+    await nextTick()
+    //鏇存柊琛ㄥ崟鐨勬ā鍨嬫暟鎹儴鍒�
+    modelData.value = newModelData
+  }
+}
+
+/** 鏄惁鏄剧ず璁捐鍣� */
+const showDesigner = computed(() => {
+  return Boolean(modelData.value?.key && modelData.value?.name)
+})
+defineExpose({
+  validate
+})
+</script>

--
Gitblit v1.8.0