diff --git a/packages/editor/src/fields/CodeSelectCol.vue b/packages/editor/src/fields/CodeSelectCol.vue
index ab8ed253..3281e317 100644
--- a/packages/editor/src/fields/CodeSelectCol.vue
+++ b/packages/editor/src/fields/CodeSelectCol.vue
@@ -107,10 +107,12 @@ const isCompareMode = computed(() => Boolean(props.isCompare && props.lastValues
const notEditable = computed(() => filterFunction(mForm, props.config.notEditable, props));
-const hasCodeBlockSidePanel = computed(() =>
+const codeBlockSidePanel = computed(() =>
(uiService.get('sideBarItems') || []).find((item) => item.$key === SideItemKey.CODE_BLOCK),
);
+const hasCodeBlockSidePanel = computed(() => codeBlockSidePanel.value);
+
/**
* 根据代码块id获取代码块参数配置
* @param codeId 代码块ID
@@ -191,6 +193,10 @@ const onParamsChangeHandler = (value: any, eventData: ContainerChangeEventData)
};
const editCode = (id: string) => {
+ const sideBarItem = codeBlockSidePanel.value;
+ if (sideBarItem) {
+ uiService.set('sideBarActiveTabName', sideBarItem.text || sideBarItem.$key || SideItemKey.CODE_BLOCK);
+ }
eventBus?.emit('edit-code', id);
};
diff --git a/packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue b/packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue
index 08b4fdbf..342db0a8 100644
--- a/packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue
+++ b/packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue
@@ -211,11 +211,25 @@ const onChangeHandler = (v: string[] = []) => {
emit('change', v);
};
-const hasDataSourceSidePanel = computed(() =>
+const dataSourceSidePanel = computed(() =>
uiService.get('sideBarItems').find((item) => item.$key === SideItemKey.DATA_SOURCE),
);
+const hasDataSourceSidePanel = computed(() => dataSourceSidePanel.value);
+
const editHandler = (id: string) => {
- eventBus?.emit('edit-data-source', removeDataSourceFieldPrefix(id));
+ const sideBarItem = dataSourceSidePanel.value;
+ if (sideBarItem) {
+ uiService.set('sideBarActiveTabName', sideBarItem.text || sideBarItem.$key || SideItemKey.DATA_SOURCE);
+ }
+
+ const dataSourceId = removeDataSourceFieldPrefix(id);
+ const fieldPath = selectFieldsId.value;
+
+ if (fieldPath.length) {
+ eventBus?.emit('edit-data-source-field', dataSourceId, [...fieldPath]);
+ } else {
+ eventBus?.emit('edit-data-source', dataSourceId);
+ }
};
diff --git a/packages/editor/src/fields/DataSourceFields.vue b/packages/editor/src/fields/DataSourceFields.vue
index 4a93fb39..4bcf84a6 100644
--- a/packages/editor/src/fields/DataSourceFields.vue
+++ b/packages/editor/src/fields/DataSourceFields.vue
@@ -47,7 +47,7 @@
diff --git a/packages/editor/src/fields/DataSourceMethodSelect.vue b/packages/editor/src/fields/DataSourceMethodSelect.vue
index b83b3f74..aabfe0be 100644
--- a/packages/editor/src/fields/DataSourceMethodSelect.vue
+++ b/packages/editor/src/fields/DataSourceMethodSelect.vue
@@ -13,7 +13,7 @@
>
@@ -75,7 +75,7 @@ const props = withDefaults(defineProps>
disabled: false,
});
-const hasDataSourceSidePanel = computed(() =>
+const dataSourceSidePanel = computed(() =>
(uiService.get('sideBarItems') || []).find((item) => item.$key === SideItemKey.DATA_SOURCE),
);
@@ -208,12 +208,17 @@ const onParamsChangeHandler = (value: any, eventData: ContainerChangeEventData)
};
const editCodeHandler = () => {
- const [id] = props.model[props.name];
+ const [id, methodName] = props.model[props.name];
const dataSource = dataSourceService.getDataSourceById(id);
if (!dataSource) return;
- eventBus?.emit('edit-data-source', id);
+ const sideBarItem = dataSourceSidePanel.value;
+ if (sideBarItem) {
+ uiService.set('sideBarActiveTabName', sideBarItem.text || sideBarItem.$key || SideItemKey.DATA_SOURCE);
+ }
+
+ eventBus?.emit('edit-data-source-method', id, methodName);
};
diff --git a/packages/editor/src/fields/DataSourceMethods.vue b/packages/editor/src/fields/DataSourceMethods.vue
index b01d1e0a..0fe9d6d3 100644
--- a/packages/editor/src/fields/DataSourceMethods.vue
+++ b/packages/editor/src/fields/DataSourceMethods.vue
@@ -21,7 +21,7 @@
diff --git a/packages/editor/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue b/packages/editor/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue
index 91fe02d8..eef207a8 100644
--- a/packages/editor/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue
+++ b/packages/editor/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue
@@ -22,7 +22,7 @@