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