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 @@