From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue | 610 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 610 insertions(+), 0 deletions(-)
diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue
new file mode 100644
index 0000000..7ec382f
--- /dev/null
+++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue
@@ -0,0 +1,610 @@
+<template>
+ <el-drawer
+ :append-to-body="true"
+ v-model="settingVisible"
+ :show-close="false"
+ :size="550"
+ :before-close="saveConfig"
+ >
+ <template #header>
+ <div class="config-header">
+ <input
+ v-if="showInput"
+ type="text"
+ class="config-editable-input"
+ @blur="blurEvent()"
+ v-mountedFocus
+ v-model="nodeName"
+ :placeholder="nodeName"
+ />
+ <div v-else class="node-name">
+ {{ nodeName }} <Icon class="ml-1" icon="ep:edit-pen" :size="16" @click="clickIcon()" />
+ </div>
+ <div class="divide-line"></div>
+ </div>
+ </template>
+ <el-tabs type="border-card" v-model="activeTabName">
+ <el-tab-pane label="瀛愭祦绋�" name="child">
+ <div>
+ <el-form ref="formRef" :model="configForm" label-position="top" :rules="formRules">
+ <el-form-item label="鏄惁寮傛" prop="async">
+ <el-switch v-model="configForm.async" active-text="寮傛" inactive-text="涓嶅紓姝�" />
+ </el-form-item>
+ <el-form-item label="閫夋嫨瀛愭祦绋�" prop="calledProcessDefinitionKey">
+ <el-select
+ v-model="configForm.calledProcessDefinitionKey"
+ clearable
+ @change="handleCalledElementChange"
+ >
+ <el-option
+ v-for="(item, index) in childProcessOptions"
+ :key="index"
+ :label="item.name"
+ :value="item.key"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏄惁鑷姩璺宠繃瀛愭祦绋嬪彂璧疯妭鐐�" prop="skipStartUserNode">
+ <el-switch
+ v-model="configForm.skipStartUserNode"
+ active-text="璺宠繃"
+ inactive-text="涓嶈烦杩�"
+ />
+ </el-form-item>
+ <el-form-item label="涓烩啋瀛愬彉閲忎紶閫�" prop="inVariables">
+ <div class="flex pt-2" v-for="(item, index) in configForm.inVariables" :key="index">
+ <div class="mr-2">
+ <el-form-item
+ :prop="`inVariables.${index}.source`"
+ :rules="{
+ required: true,
+ message: '鍙橀噺涓嶈兘涓虹┖',
+ trigger: 'blur'
+ }"
+ >
+ <el-select class="w-200px!" v-model="item.source">
+ <el-option
+ v-for="(field, fIdx) in formFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-2">
+ <el-form-item
+ :prop="`inVariables.${index}.target`"
+ :rules="{
+ required: true,
+ message: '鍙橀噺涓嶈兘涓虹┖',
+ trigger: 'blur'
+ }"
+ >
+ <el-select class="w-200px!" v-model="item.target">
+ <el-option
+ v-for="(field, fIdx) in childFormFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-1 flex items-center">
+ <Icon
+ icon="ep:delete"
+ :size="18"
+ @click="deleteVariable(index, configForm.inVariables)"
+ />
+ </div>
+ </div>
+ <el-button type="primary" text @click="addVariable(configForm.inVariables)">
+ <Icon icon="ep:plus" class="mr-5px" />娣诲姞涓�琛�
+ </el-button>
+ </el-form-item>
+ <el-form-item
+ v-if="configForm.async === false"
+ label="瀛愨啋涓诲彉閲忎紶閫�"
+ prop="outVariables"
+ >
+ <div class="flex pt-2" v-for="(item, index) in configForm.outVariables" :key="index">
+ <div class="mr-2">
+ <el-form-item
+ :prop="`outVariables.${index}.source`"
+ :rules="{
+ required: true,
+ message: '鍙橀噺涓嶈兘涓虹┖',
+ trigger: 'blur'
+ }"
+ >
+ <el-select class="w-200px!" v-model="item.source">
+ <el-option
+ v-for="(field, fIdx) in childFormFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-2">
+ <el-form-item
+ :prop="`outVariables.${index}.target`"
+ :rules="{
+ required: true,
+ message: '鍙橀噺涓嶈兘涓虹┖',
+ trigger: 'blur'
+ }"
+ >
+ <el-select class="w-200px!" v-model="item.target">
+ <el-option
+ v-for="(field, fIdx) in formFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="mr-1 flex items-center">
+ <Icon
+ icon="ep:delete"
+ :size="18"
+ @click="deleteVariable(index, configForm.outVariables)"
+ />
+ </div>
+ </div>
+ <el-button type="primary" text @click="addVariable(configForm.outVariables)">
+ <Icon icon="ep:plus" class="mr-5px" />娣诲姞涓�琛�
+ </el-button>
+ </el-form-item>
+ <el-form-item label="瀛愭祦绋嬪彂璧蜂汉" prop="startUserType">
+ <el-radio-group v-model="configForm.startUserType">
+ <el-radio
+ v-for="item in CHILD_PROCESS_START_USER_TYPE"
+ :key="item.value"
+ :value="item.value"
+ >
+ {{ item.label }}
+ </el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item
+ v-if="configForm.startUserType === ChildProcessStartUserTypeEnum.FROM_FORM"
+ label="褰撳瓙娴佺▼鍙戣捣浜轰负绌烘椂"
+ prop="startUserType"
+ >
+ <el-radio-group v-model="configForm.startUserEmptyType">
+ <el-radio
+ v-for="item in CHILD_PROCESS_START_USER_EMPTY_TYPE"
+ :key="item.value"
+ :value="item.value"
+ >
+ {{ item.label }}
+ </el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item
+ v-if="configForm.startUserType === 2"
+ label="鍙戣捣浜鸿〃鍗�"
+ prop="startUserFormField"
+ >
+ <el-select class="w-200px!" v-model="configForm.startUserFormField">
+ <el-option
+ v-for="(field, fIdx) in formFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-divider content-position="left">瓒呮椂璁剧疆</el-divider>
+ <el-form-item label="鍚敤寮�鍏�" prop="timeoutEnable">
+ <el-switch
+ v-model="configForm.timeoutEnable"
+ active-text="寮�鍚�"
+ inactive-text="鍏抽棴"
+ />
+ </el-form-item>
+ <div v-if="configForm.timeoutEnable">
+ <el-form-item prop="timeoutType">
+ <el-radio-group v-model="configForm.timeoutType">
+ <el-radio-button
+ v-for="item in DELAY_TYPE"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item v-if="configForm.timeoutType === DelayTypeEnum.FIXED_TIME_DURATION">
+ <el-form-item prop="timeDuration">
+ <el-input-number
+ class="mr-2"
+ :style="{ width: '100px' }"
+ v-model="configForm.timeDuration"
+ :min="1"
+ controls-position="right"
+ />
+ </el-form-item>
+ <el-select v-model="configForm.timeUnit" class="mr-2" :style="{ width: '100px' }">
+ <el-option
+ v-for="item in TIME_UNIT_TYPES"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ <el-text>鍚庤繘鍏ヤ笅涓�鑺傜偣</el-text>
+ </el-form-item>
+ <el-form-item
+ v-if="configForm.timeoutType === DelayTypeEnum.FIXED_DATE_TIME"
+ prop="dateTime"
+ >
+ <el-date-picker
+ class="mr-2"
+ v-model="configForm.dateTime"
+ type="datetime"
+ placeholder="璇烽�夋嫨鏃ユ湡鍜屾椂闂�"
+ value-format="YYYY-MM-DDTHH:mm:ss"
+ />
+ <el-text>鍚庤繘鍏ヤ笅涓�鑺傜偣</el-text>
+ </el-form-item>
+ </div>
+
+ <el-divider content-position="left">澶氬疄渚嬭缃�</el-divider>
+ <el-form-item label="鍚敤寮�鍏�" prop="multiInstanceEnable">
+ <el-switch
+ v-model="configForm.multiInstanceEnable"
+ active-text="寮�鍚�"
+ inactive-text="鍏抽棴"
+ />
+ </el-form-item>
+ <div v-if="configForm.multiInstanceEnable">
+ <el-form-item prop="sequential">
+ <el-switch
+ v-model="configForm.sequential"
+ active-text="涓茶"
+ inactive-text="骞惰"
+ />
+ </el-form-item>
+ <el-form-item prop="approveRatio">
+ <el-text>瀹屾垚姣斾緥(%)</el-text>
+ <el-input-number
+ class="ml-10px"
+ v-model="configForm.approveRatio"
+ :min="10"
+ :max="100"
+ :step="10"
+ />
+ </el-form-item>
+ <el-form-item prop="multiInstanceSourceType">
+ <el-text>澶氬疄渚嬫潵婧�</el-text>
+ <el-select
+ class="ml-10px w-200px!"
+ v-model="configForm.multiInstanceSourceType"
+ @change="handleMultiInstanceSourceTypeChange"
+ >
+ <el-option
+ v-for="item in CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="configForm.multiInstanceSourceType === ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY">
+ <el-input-number v-model="configForm.multiInstanceSource" :min="1" />
+ </el-form-item>
+ <el-form-item v-if="configForm.multiInstanceSourceType === ChildProcessMultiInstanceSourceTypeEnum.NUMBER_FORM">
+ <el-select class="w-200px!" v-model="configForm.multiInstanceSource">
+ <el-option
+ v-for="(field, fIdx) in digitalFormFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="configForm.multiInstanceSourceType === ChildProcessMultiInstanceSourceTypeEnum.MULTIPLE_FORM">
+ <el-select class="w-200px!" v-model="configForm.multiInstanceSource">
+ <el-option
+ v-for="(field, fIdx) in multiFormFieldOptions"
+ :key="fIdx"
+ :label="field.title"
+ :value="field.field"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ </el-form>
+ </div>
+ </el-tab-pane>
+ </el-tabs>
+ <template #footer>
+ <el-divider />
+ <div>
+ <el-button type="primary" @click="saveConfig">纭� 瀹�</el-button>
+ <el-button @click="closeDrawer">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-drawer>
+</template>
+<script setup lang="ts">
+import { getModelList } from '@/api/bpm/model'
+import { getForm } from '@/api/bpm/form'
+import {
+ SimpleFlowNode,
+ NodeType,
+ TIME_UNIT_TYPES,
+ TimeUnitType,
+ DelayTypeEnum,
+ DELAY_TYPE,
+ IOParameter,
+ ChildProcessStartUserTypeEnum,
+ CHILD_PROCESS_START_USER_TYPE,
+ ChildProcessStartUserEmptyTypeEnum,
+ CHILD_PROCESS_START_USER_EMPTY_TYPE,
+ CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE,
+ ChildProcessMultiInstanceSourceTypeEnum
+} from '../consts'
+import { useWatchNode, useDrawer, useNodeName, useFormFieldsAndStartUser } from '../node'
+import { parseFormFields } from '@/components/FormCreate/src/utils'
+import { convertTimeUnit } from '../utils'
+defineOptions({
+ name: 'ChildProcessNodeConfig'
+})
+const props = defineProps({
+ flowNode: {
+ type: Object as () => SimpleFlowNode,
+ required: true
+ }
+})
+// 鎶藉眽閰嶇疆
+const { settingVisible, closeDrawer, openDrawer } = useDrawer()
+// 褰撳墠鑺傜偣
+const currentNode = useWatchNode(props)
+// 鑺傜偣鍚嶇О
+const { nodeName, showInput, clickIcon, blurEvent } = useNodeName(NodeType.CHILD_PROCESS_NODE)
+// 婵�娲荤殑 Tab 鏍囩椤�
+const activeTabName = ref('child')
+// 瀛愭祦绋嬭〃鍗曢厤缃�
+const formRef = ref() // 琛ㄥ崟 Ref
+// 琛ㄥ崟鏍¢獙瑙勫垯
+const formRules = reactive({
+ async: [{ required: true, message: '鏄惁寮傛涓嶈兘涓虹┖', trigger: 'change' }],
+ calledProcessDefinitionKey: [{ required: true, message: '瀛愭祦绋嬩笉鑳戒负绌�', trigger: 'change' }],
+ skipStartUserNode: [
+ { required: true, message: '鏄惁鑷姩璺宠繃瀛愭祦绋嬪彂璧疯妭鐐逛笉鑳戒负绌�', trigger: 'change' }
+ ],
+ startUserType: [{ required: true, message: '瀛愭祦绋嬪彂璧蜂汉涓嶈兘涓虹┖', trigger: 'change' }],
+ startUserEmptyType: [
+ { required: true, message: '褰撳瓙娴佺▼鍙戣捣浜轰负绌烘椂涓嶈兘涓虹┖', trigger: 'change' }
+ ],
+ startUserFormField: [{ required: true, message: '鍙戣捣浜鸿〃鍗曚笉鑳戒负绌�', trigger: 'change' }],
+ timeoutEnable: [{ required: true, message: '瓒呮椂璁剧疆鏄惁寮�鍚笉鑳戒负绌�', trigger: 'change' }],
+ timeoutType: [{ required: true, message: '瓒呮椂璁剧疆鏃堕棿涓嶈兘涓虹┖', trigger: 'change' }],
+ timeDuration: [{ required: true, message: '瓒呮椂璁剧疆鏃堕棿涓嶈兘涓虹┖', trigger: 'change' }],
+ dateTime: [{ required: true, message: '瓒呮椂璁剧疆鏃堕棿涓嶈兘涓虹┖', trigger: 'change' }],
+ multiInstanceEnable: [{ required: true, message: '澶氬疄渚嬭缃笉鑳戒负绌�', trigger: 'change' }]
+})
+type ChildProcessFormType = {
+ async: boolean
+ calledProcessDefinitionKey: string
+ skipStartUserNode: boolean
+ inVariables?: IOParameter[]
+ outVariables?: IOParameter[]
+ startUserType: ChildProcessStartUserTypeEnum
+ startUserEmptyType: ChildProcessStartUserEmptyTypeEnum
+ startUserFormField: string
+ timeoutEnable: boolean
+ timeoutType: DelayTypeEnum
+ timeDuration: number
+ timeUnit: TimeUnitType
+ dateTime: string
+ multiInstanceEnable: boolean
+ sequential: boolean
+ approveRatio: number
+ multiInstanceSourceType: ChildProcessMultiInstanceSourceTypeEnum
+ multiInstanceSource: string
+}
+const configForm = ref<ChildProcessFormType>({
+ async: false,
+ calledProcessDefinitionKey: '',
+ skipStartUserNode: false,
+ inVariables: [],
+ outVariables: [],
+ startUserType: ChildProcessStartUserTypeEnum.MAIN_PROCESS_START_USER,
+ startUserEmptyType: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER,
+ startUserFormField: '',
+ timeoutEnable: false,
+ timeoutType: DelayTypeEnum.FIXED_TIME_DURATION,
+ timeDuration: 1,
+ timeUnit: TimeUnitType.HOUR,
+ dateTime: '',
+ multiInstanceEnable: false,
+ sequential: false,
+ approveRatio: 100,
+ multiInstanceSourceType: ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY,
+ multiInstanceSource: ''
+})
+const childProcessOptions = ref()
+const formFieldOptions = useFormFieldsAndStartUser()
+const digitalFormFieldOptions = computed(() => {
+ return formFieldOptions.filter((item) => item.type === 'inputNumber')
+})
+const multiFormFieldOptions = computed(() => {
+ return formFieldOptions.filter((item) => item.type === 'select' || item.type === 'checkbox')
+})
+const childFormFieldOptions = ref()
+
+// 淇濆瓨閰嶇疆
+const saveConfig = async () => {
+ activeTabName.value = 'child'
+ if (!formRef) return false
+ const valid = await formRef.value.validate()
+ if (!valid) return false
+ const childInfo = childProcessOptions.value.find(
+ (option: any) => option.key === configForm.value.calledProcessDefinitionKey
+ )
+ currentNode.value.name = nodeName.value!
+ if (currentNode.value.childProcessSetting) {
+ // 1. 鏄惁寮傛
+ currentNode.value.childProcessSetting.async = configForm.value.async
+ // 2. 璋冪敤娴佺▼
+ currentNode.value.childProcessSetting.calledProcessDefinitionKey = childInfo.key
+ currentNode.value.childProcessSetting.calledProcessDefinitionName = childInfo.name
+ // 3. 鏄惁璺宠繃鍙戣捣浜�
+ currentNode.value.childProcessSetting.skipStartUserNode = configForm.value.skipStartUserNode
+ // 4. 涓�->瀛愬彉閲�
+ currentNode.value.childProcessSetting.inVariables = configForm.value.inVariables
+ // 5. 瀛�->涓诲彉閲�
+ currentNode.value.childProcessSetting.outVariables = configForm.value.outVariables
+ // 6. 鍙戣捣浜鸿缃�
+ currentNode.value.childProcessSetting.startUserSetting.type = configForm.value.startUserType
+ currentNode.value.childProcessSetting.startUserSetting.emptyType =
+ configForm.value.startUserEmptyType
+ currentNode.value.childProcessSetting.startUserSetting.formField =
+ configForm.value.startUserFormField
+ // 7. 瓒呮椂璁剧疆
+ currentNode.value.childProcessSetting.timeoutSetting = {
+ enable: configForm.value.timeoutEnable
+ }
+ if (configForm.value.timeoutEnable) {
+ currentNode.value.childProcessSetting.timeoutSetting.type = configForm.value.timeoutType
+ if (configForm.value.timeoutType === DelayTypeEnum.FIXED_TIME_DURATION) {
+ currentNode.value.childProcessSetting.timeoutSetting.timeExpression = getIsoTimeDuration()
+ }
+ if (configForm.value.timeoutType === DelayTypeEnum.FIXED_DATE_TIME) {
+ currentNode.value.childProcessSetting.timeoutSetting.timeExpression =
+ configForm.value.dateTime
+ }
+ }
+ // 8. 澶氬疄渚嬭缃�
+ currentNode.value.childProcessSetting.multiInstanceSetting = {
+ enable: configForm.value.multiInstanceEnable
+ }
+ if (configForm.value.multiInstanceEnable) {
+ currentNode.value.childProcessSetting.multiInstanceSetting.sequential =
+ configForm.value.sequential
+ currentNode.value.childProcessSetting.multiInstanceSetting.approveRatio =
+ configForm.value.approveRatio
+ currentNode.value.childProcessSetting.multiInstanceSetting.sourceType =
+ configForm.value.multiInstanceSourceType
+ currentNode.value.childProcessSetting.multiInstanceSetting.source =
+ configForm.value.multiInstanceSource
+ }
+ }
+
+ currentNode.value.showText = `璋冪敤瀛愭祦绋嬶細${childInfo.name}`
+ settingVisible.value = false
+ return true
+}
+// 鏄剧ず瀛愭祦绋嬭妭鐐归厤缃紝 鐢辩埗缁勪欢浼犺繃鏉�
+const showChildProcessNodeConfig = (node: SimpleFlowNode) => {
+ nodeName.value = node.name
+ if (node.childProcessSetting) {
+ // 1. 鏄惁寮傛
+ configForm.value.async = node.childProcessSetting.async
+ // 2. 璋冪敤娴佺▼
+ configForm.value.calledProcessDefinitionKey =
+ node.childProcessSetting?.calledProcessDefinitionKey
+ // 3. 鏄惁璺宠繃鍙戣捣浜�
+ configForm.value.skipStartUserNode = node.childProcessSetting.skipStartUserNode
+ // 4. 涓�->瀛愬彉閲�
+ configForm.value.inVariables = node.childProcessSetting.inVariables
+ // 5. 瀛�->涓诲彉閲�
+ configForm.value.outVariables = node.childProcessSetting.outVariables
+ // 6. 鍙戣捣浜鸿缃�
+ configForm.value.startUserType = node.childProcessSetting.startUserSetting.type
+ configForm.value.startUserEmptyType = node.childProcessSetting.startUserSetting.emptyType ?? ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER
+ configForm.value.startUserFormField = node.childProcessSetting.startUserSetting.formField ?? ''
+ // 7. 瓒呮椂璁剧疆
+ configForm.value.timeoutEnable = node.childProcessSetting.timeoutSetting.enable ?? false
+ if (configForm.value.timeoutEnable) {
+ configForm.value.timeoutType =
+ node.childProcessSetting.timeoutSetting.type ?? DelayTypeEnum.FIXED_TIME_DURATION
+ // 鍥哄畾鏃堕暱
+ if (configForm.value.timeoutType === DelayTypeEnum.FIXED_TIME_DURATION) {
+ const strTimeDuration = node.childProcessSetting.timeoutSetting.timeExpression ?? ''
+ let parseTime = strTimeDuration.slice(2, strTimeDuration.length - 1)
+ let parseTimeUnit = strTimeDuration.slice(strTimeDuration.length - 1)
+ configForm.value.timeDuration = parseInt(parseTime)
+ configForm.value.timeUnit = convertTimeUnit(parseTimeUnit)
+ }
+ // 鍥哄畾鏃ユ湡鏃堕棿
+ if (configForm.value.timeoutType === DelayTypeEnum.FIXED_DATE_TIME) {
+ configForm.value.dateTime = node.childProcessSetting.timeoutSetting.timeExpression ?? ''
+ }
+ }
+ // 8. 澶氬疄渚嬭缃�
+ configForm.value.multiInstanceEnable =
+ node.childProcessSetting.multiInstanceSetting.enable ?? false
+ if (configForm.value.multiInstanceEnable) {
+ configForm.value.sequential =
+ node.childProcessSetting.multiInstanceSetting.sequential ?? false
+ configForm.value.approveRatio =
+ node.childProcessSetting.multiInstanceSetting.approveRatio ?? 100
+ configForm.value.multiInstanceSourceType =
+ node.childProcessSetting.multiInstanceSetting.sourceType ??
+ ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY
+ configForm.value.multiInstanceSource =
+ node.childProcessSetting.multiInstanceSetting.source ?? ''
+ }
+ }
+ loadFormInfo()
+}
+
+defineExpose({ openDrawer, showChildProcessNodeConfig }) // 鏆撮湶鏂规硶缁欑埗缁勪欢
+
+const addVariable = (arr?: IOParameter[]) => {
+ arr?.push({
+ source: '',
+ target: ''
+ })
+}
+const deleteVariable = (index: number, arr?: IOParameter[]) => {
+ arr?.splice(index, 1)
+}
+const handleCalledElementChange = () => {
+ configForm.value.inVariables = []
+ configForm.value.outVariables = []
+ loadFormInfo()
+}
+const loadFormInfo = async () => {
+ const childInfo = childProcessOptions.value.find(
+ (option) => option.key === configForm.value.calledProcessDefinitionKey
+ )
+ const formInfo = await getForm(childInfo.formId)
+ childFormFieldOptions.value = []
+ if (formInfo.fields) {
+ formInfo.fields.forEach((fieldStr: string) => {
+ parseFormFields(JSON.parse(fieldStr), childFormFieldOptions.value)
+ })
+ }
+}
+const getIsoTimeDuration = () => {
+ let strTimeDuration = 'PT'
+ if (configForm.value.timeUnit === TimeUnitType.MINUTE) {
+ strTimeDuration += configForm.value.timeDuration + 'M'
+ }
+ if (configForm.value.timeUnit === TimeUnitType.HOUR) {
+ strTimeDuration += configForm.value.timeDuration + 'H'
+ }
+ if (configForm.value.timeUnit === TimeUnitType.DAY) {
+ strTimeDuration += configForm.value.timeDuration + 'D'
+ }
+ return strTimeDuration
+}
+const handleMultiInstanceSourceTypeChange = () => {
+ configForm.value.multiInstanceSource = ''
+}
+
+onMounted(async () => {
+ childProcessOptions.value = await getModelList(undefined)
+})
+</script>
+
+<style lang="scss" scoped></style>
--
Gitblit v1.8.0