diff --git a/core/core-frontend/src/custom-component/v-query/Component.vue b/core/core-frontend/src/custom-component/v-query/Component.vue index 2255f333f6..24e88d9b64 100644 --- a/core/core-frontend/src/custom-component/v-query/Component.vue +++ b/core/core-frontend/src/custom-component/v-query/Component.vue @@ -113,7 +113,7 @@ const curComponentView = computed(() => { return (canvasViewInfo.value[element.value.id] || {}).customStyle }) -const { datasetFieldList } = comInfo(element.value.id) +const { datasetFieldList } = comInfo() const setCustomStyle = val => { const { diff --git a/core/core-frontend/src/custom-component/v-query/com-info.ts b/core/core-frontend/src/custom-component/v-query/com-info.ts index 570b27e610..e8d5cd5c82 100644 --- a/core/core-frontend/src/custom-component/v-query/com-info.ts +++ b/core/core-frontend/src/custom-component/v-query/com-info.ts @@ -11,26 +11,44 @@ interface DatasetField { const dvMainStore = dvMainStoreWithOut() const { componentData, canvasViewInfo } = storeToRefs(dvMainStore) -export const comInfo = (queryElementId: string) => { +export const comInfo = () => { const dfsComponentData = () => { - const isMain = componentData.value.some(ele => ele.id === queryElementId) - let arr = componentData.value.filter(com => !['VQuery', 'DeTabs'].includes(com.innerType)) - let tabArr = [] + let arr = componentData.value.filter( + com => !['VQuery', 'DeTabs'].includes(com.innerType) && com.component !== 'Group' + ) componentData.value.forEach(ele => { if (ele.innerType === 'DeTabs') { ele.propValue.forEach(itx => { - if (itx.componentData.some(item => item.id === queryElementId) && !isMain) { - tabArr = itx.componentData.filter(com => !['VQuery', 'DeTabs'].includes(com.innerType)) - } else { - arr = [ - ...arr, - ...itx.componentData.filter(com => !['VQuery', 'DeTabs'].includes(com.innerType)) - ] + arr = [ + ...arr, + ...itx.componentData.filter( + com => !['VQuery', 'DeTabs'].includes(com.innerType) && com.component !== 'Group' + ) + ] + }) + } else if (ele.component === 'Group') { + arr = [ + ...arr, + ele.propValue.filter( + com => !['VQuery', 'DeTabs'].includes(com.innerType) && com.component !== 'Group' + ) + ] + ele.propValue.forEach(element => { + if (element.innerType === 'DeTabs') { + element.propValue.forEach(itx => { + arr = [ + ...arr, + ...itx.componentData.filter( + com => !['VQuery', 'DeTabs'].includes(com.innerType) && com.component !== 'Group' + ) + ] + }) } }) } }) - return isMain ? arr : tabArr + + return arr.flat() } const datasetFieldList = computed(() => {