-
-
-
- {{ index + 1 }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ListenerFieldModal.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ListenerFieldModal.vue
new file mode 100644
index 000000000..4cce76196
--- /dev/null
+++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ListenerFieldModal.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ProcessListenerDialog.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ProcessListenerDialog.vue
deleted file mode 100644
index 1798f67f4..000000000
--- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ProcessListenerDialog.vue
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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 2788ef29c..ba5747d08 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,9 +16,10 @@ 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 ListenerFieldModal from './ListenerFieldModal.vue';
import {
eventType,
fieldType,
@@ -47,11 +48,9 @@ const fieldTypeObject = ref(fieldType);
const fieldsListOfListener = ref
([]);
const editingListenerIndex = ref(-1);
const editingListenerFieldIndex = ref(-1);
-const listenerFieldForm = ref({});
const bpmnElementListeners = ref([]);
const otherExtensionList = ref([]);
const listenerFormRef = ref({});
-const listenerFieldFormRef = ref({});
const bpmnInstances = () => (window as any)?.bpmnInstances;
@@ -157,12 +156,9 @@ async function saveListenerConfig() {
}
const openListenerFieldForm = (field: any, index?: number) => {
- listenerFieldForm.value = field ? cloneDeep(field) : {};
+ const data = field ? cloneDeep(field) : {};
editingListenerFieldIndex.value = field ? index : -1;
- fieldModalApi.open();
- nextTick(() => {
- if (listenerFieldFormRef.value) listenerFieldFormRef.value.clearValidate();
- });
+ fieldModalApi.setData(data).open();
};
const [ListenerGrid, listenerGridApi] = useVbenVxeGrid({
@@ -203,28 +199,13 @@ const [ListenerGrid, listenerGridApi] = useVbenVxeGrid({
},
});
-async function saveListenerField() {
- try {
- await listenerFieldFormRef.value.validate();
- if (editingListenerFieldIndex.value === -1) {
- fieldsListOfListener.value.push(cloneDeep(listenerFieldForm.value));
- listenerForm.value.fields.push(cloneDeep(listenerFieldForm.value));
- } else {
- fieldsListOfListener.value.splice(
- editingListenerFieldIndex.value,
- 1,
- cloneDeep(listenerFieldForm.value),
- );
- listenerForm.value.fields.splice(
- editingListenerFieldIndex.value,
- 1,
- cloneDeep(listenerFieldForm.value),
- );
- }
- fieldModalApi.close();
- listenerFieldForm.value = {};
- } catch (error) {
- console.error(error);
+async function saveListenerField(data: any) {
+ if (editingListenerFieldIndex.value === -1) {
+ fieldsListOfListener.value.push(data);
+ listenerForm.value.fields.push(data);
+ } else {
+ fieldsListOfListener.value.splice(editingListenerFieldIndex.value, 1, data);
+ listenerForm.value.fields.splice(editingListenerFieldIndex.value, 1, data);
}
}
@@ -238,9 +219,8 @@ 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 instances = bpmnInstances();
@@ -248,6 +228,7 @@ const selectProcessListener = (listener: any) => {
const bpmnElement = instances.bpmnElement;
const listenerForm = initListenerForm2(listener);
+ listenerForm.id = listener.id;
const listenerObject = createListenerObject(listenerForm, true, prefix);
bpmnElementListeners.value.push(listenerObject);
elementListenersList.value.push(listenerForm);
@@ -269,10 +250,15 @@ const [ListenerDrawer, listenerDrawerApi] = useVbenDrawer({
});
const [FieldModal, fieldModalApi] = useVbenModal({
- title: '字段配置',
- onConfirm: saveListenerField,
+ connectedComponent: ListenerFieldModal,
});
+const [ProcessListenerSelectModalComp, processListenerSelectModalApi] =
+ useVbenModal({
+ connectedComponent: ProcessListenerSelectModal,
+ destroyOnClose: true,
+ });
+
const [FieldsGrid, fieldsGridApi] = useVbenVxeGrid({
gridOptions: {
columns: [
@@ -568,60 +554,9 @@ watch(
-
-
-
+
-