feat: [bpm][antd] BPM 设计器选择监听器

This commit is contained in:
jason
2025-12-05 21:24:32 +08:00
parent 75a2b331b7
commit d3cfc67bd7
4 changed files with 144 additions and 7 deletions

View File

@@ -16,7 +16,7 @@ import {
} from 'ant-design-vue';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import ProcessListenerDialog from '#/views/bpm/components/bpmn-process-designer/package/penal/listeners/ProcessListenerDialog.vue';
import ProcessListenerSelectModal from '#/views/bpm/processListener/components/process-listener-select-modal.vue';
import { createListenerObject, updateElementExtensions } from '../../utils';
import {
@@ -224,12 +224,12 @@ const removeListenerField = (_: any, index: number) => {
});
};
const processListenerDialogRef = ref<any>();
const openProcessListenerDialog = async () => {
processListenerDialogRef.value.open('task');
processListenerSelectModalApi.setData({ type: 'task' }).open();
};
const selectProcessListener = (listener: any) => {
const listenerForm = initListenerForm2(listener);
listenerForm.id = listener.id;
const listenerObject = createListenerObject(listenerForm, true, prefix);
bpmnElementListeners.value.push(listenerObject);
elementListenersList.value.push(listenerForm);
@@ -255,6 +255,12 @@ const [FieldModal, fieldModalApi] = useVbenModal({
onConfirm: saveListenerField,
});
const [ProcessListenerSelectModalComp, processListenerSelectModalApi] =
useVbenModal({
connectedComponent: ProcessListenerSelectModal,
destroyOnClose: true,
});
const [FieldsGrid, fieldsGridApi] = useVbenVxeGrid({
gridOptions: {
columns: [
@@ -602,8 +608,5 @@ watch(
</div>
<!-- 选择弹窗 -->
<ProcessListenerDialog
ref="processListenerDialogRef"
@select="selectProcessListener"
/>
<ProcessListenerSelectModalComp @select="selectProcessListener" />
</template>

View File

@@ -53,6 +53,7 @@ export function initListenerForm2(processListener: any) {
class: processListener.value,
event: processListener.event,
fields: [],
id: undefined,
};
}
case 'delegateExpression': {
@@ -61,6 +62,7 @@ export function initListenerForm2(processListener: any) {
delegateExpression: processListener.value,
event: processListener.event,
fields: [],
id: undefined,
};
}
case 'expression': {
@@ -69,6 +71,7 @@ export function initListenerForm2(processListener: any) {
expression: processListener.value,
event: processListener.event,
fields: [],
id: undefined,
};
}
// No default