diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue index f0b48f642..d9d786250 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue @@ -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(); 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( - + diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/utilSelf.ts b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/utilSelf.ts index 52d33902f..2cfd78dfa 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/utilSelf.ts +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/utilSelf.ts @@ -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 diff --git a/apps/web-antd/src/views/bpm/processListener/components/data.ts b/apps/web-antd/src/views/bpm/processListener/components/data.ts new file mode 100644 index 000000000..37725d839 --- /dev/null +++ b/apps/web-antd/src/views/bpm/processListener/components/data.ts @@ -0,0 +1,36 @@ +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; + +import { DICT_TYPE } from '@vben/constants'; + +/** 选择监听器弹窗的列表字段 */ +export function useGridColumns(): VxeTableGridOptions['columns'] { + return [ + { field: 'name', title: '名字', minWidth: 120 }, + { + field: 'type', + title: '类型', + minWidth: 200, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.BPM_PROCESS_LISTENER_TYPE }, + }, + }, + { field: 'event', title: '事件', minWidth: 200 }, + { + field: 'valueType', + title: '值类型', + minWidth: 200, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.BPM_PROCESS_LISTENER_VALUE_TYPE }, + }, + }, + { field: 'value', title: '值', minWidth: 150 }, + { + title: '操作', + width: 100, + slots: { default: 'action' }, + fixed: 'right', + }, + ]; +} diff --git a/apps/web-antd/src/views/bpm/processListener/components/process-listener-select-modal.vue b/apps/web-antd/src/views/bpm/processListener/components/process-listener-select-modal.vue new file mode 100644 index 000000000..37b1ae49c --- /dev/null +++ b/apps/web-antd/src/views/bpm/processListener/components/process-listener-select-modal.vue @@ -0,0 +1,95 @@ + + +