diff --git a/core/core-frontend/src/assets/svg/icon_warning_colorful.svg b/core/core-frontend/src/assets/svg/icon_warning_colorful.svg new file mode 100644 index 0000000000..dae340c0f2 --- /dev/null +++ b/core/core-frontend/src/assets/svg/icon_warning_colorful.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue index 77c5c9853e..736c5b67ab 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -1656,7 +1656,10 @@ defineExpose({ > -
+
{ ? [...selectValue.value] : selectValue.value } - setEmptyData() }) } @@ -211,8 +210,8 @@ watch( ) const setEmptyData = () => { - const { showEmpty, displayType } = config.value - if (+displayType !== 0) return + const { showEmpty, displayType, optionValueSource } = config.value + if (+displayType !== 0 || optionValueSource === 1) return const [s] = options.value if (showEmpty) { if (s?.value !== '_empty_$') { diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue b/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue index df2e47a85d..640471c702 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/DatasetUnion.vue @@ -108,6 +108,23 @@ const dfsNodeNameList = (list, arr) => { }) } +const dfsForDsId = (arr, datasourceId) => { + return arr.every(ele => { + if (arr.children?.length) { + return dfsForDsId(arr.children, datasourceId) + } + return ele.datasourceId === datasourceId + }) +} + +const crossDatasources = computed(() => { + const { datasourceId, children = [] } = state.nodeList[0] || {} + if (datasourceId && !!children.length) { + return dfsForDsId(children, datasourceId) + } + return false +}) + let isUpdate = false watch( @@ -838,7 +855,8 @@ defineExpose({ notConfirm, dfsNodeFieldBack, initState, - setChangeStatus + setChangeStatus, + crossDatasources }) const handleActiveNode = ele => { diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue index 632c036771..8896efcf36 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue @@ -815,6 +815,10 @@ const mouseupDrag = () => { dom.removeEventListener('mousemove', calculateWidth) dom.removeEventListener('mousemove', calculateHeight) } + +const crossDatasources = computed(() => { + return datasetDrag.value?.crossDatasources +}) const calculateWidth = (e: MouseEvent) => { if (e.pageX < 240) { LeftWidth.value = 240 @@ -1328,6 +1332,12 @@ const getDsIconName = data => {
+
+ + + + 您正在进行跨数据源的表关联,请确保使用calcite的标准语法和函数,否则会导致数据集报错 +
{
@@ -2101,6 +2113,23 @@ const getDsIconName = data => { display: flex; .drag-right { height: calc(100vh - 56px); + .different-datasource { + height: 40px; + width: 100%; + background: #ffe7cc; + color: #1f2329; + font-size: 14px; + font-weight: 400; + line-height: 22px; + display: flex; + align-items: center; + padding: 0 16px; + + .ed-icon { + font-size: 16px; + margin-right: 8px; + } + } .sql-result { font-family: '阿里巴巴普惠体 3.0 55 Regular L3'; font-size: 14px;