fix(数据集): 数据集查询优化

This commit is contained in:
dataeaseShu 2024-04-18 11:25:27 +08:00
parent 959d7f5e5f
commit 3c5262d14b
5 changed files with 67 additions and 6 deletions

View File

@ -0,0 +1,12 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1052_111876)">
<path d="M8.00033 15.3332C12.0504 15.3332 15.3337 12.0499 15.3337 7.99984C15.3337 3.94975 12.0504 0.666504 8.00033 0.666504C3.95024 0.666504 0.666992 3.94975 0.666992 7.99984C0.666992 12.0499 3.95024 15.3332 8.00033 15.3332Z" fill="#FF8800"/>
<path d="M7.66634 4.6665C7.48225 4.6665 7.33301 4.81574 7.33301 4.99984V8.99984C7.33301 9.18393 7.48225 9.33317 7.66634 9.33317H8.33301C8.5171 9.33317 8.66634 9.18393 8.66634 8.99984V4.99984C8.66634 4.81574 8.5171 4.6665 8.33301 4.6665H7.66634Z" fill="white"/>
<path d="M7.66634 9.99984C7.48225 9.99984 7.33301 10.1491 7.33301 10.3332V10.9998C7.33301 11.1839 7.48225 11.3332 7.66634 11.3332H8.33301C8.5171 11.3332 8.66634 11.1839 8.66634 10.9998V10.3332C8.66634 10.1491 8.5171 9.99984 8.33301 9.99984H7.66634Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1052_111876">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1022 B

View File

@ -1656,7 +1656,10 @@ defineExpose({
>
</div>
</div>
<div class="list-item" v-if="+curComponent.displayType === 0">
<div
class="list-item"
v-if="+curComponent.displayType === 0 && curComponent.optionValueSource !== 1"
>
<div class="label">
<el-tooltip
effect="dark"

View File

@ -192,7 +192,6 @@ const handleFieldIdChange = (val: EnumValue) => {
? [...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_$') {

View File

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

View File

@ -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 => {
</div>
</div>
<div class="drag-right" :style="{ width: `calc(100vw - ${showLeft ? LeftWidth : 0}px)` }">
<div v-if="crossDatasources" class="different-datasource">
<el-icon>
<Icon name="icon_warning_colorful"></Icon>
</el-icon>
您正在进行跨数据源的表关联,请确保使用calcite的标准语法和函数,否则会导致数据集报错
</div>
<dataset-union
@join-editor="joinEditor"
@changeUpdate="changeUpdate"
@ -1343,7 +1353,9 @@ const getDsIconName = data => {
<div
class="sql-result"
:style="{
height: sqlResultHeight ? `${sqlResultHeight}px` : `calc(100% - ${dragHeight}px)`
height: sqlResultHeight
? `${crossDatasources ? sqlResultHeight - 40 : sqlResultHeight}px`
: `calc(100% - ${crossDatasources ? dragHeight + 40 : dragHeight}px)`
}"
>
<div class="sql-title">
@ -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;