From cc394ac4050af24c8343a84181e8973a0ccdb6b4 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Fri, 11 Oct 2024 18:27:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6):=20?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E7=BB=84=E4=BB=B6=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E7=BB=91=E5=AE=9A=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=92=8C=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v-query/QueryConditionConfiguration.vue | 282 +++++++++++++++++- 1 file changed, 277 insertions(+), 5 deletions(-) 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 3985751c8e..ca9e7543d0 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -301,6 +301,110 @@ const handleCheckedFieldsChangeTree = (value: string[]) => { setType() } +const isParametersDisable = (arr, item, componentId) => { + const timeId = + curComponent.value.checkedFieldsMapStart[componentId] || + curComponent.value.checkedFieldsMapEnd[componentId] + let isDisabled = false + if (timeId) { + const obj = arr.find(ele => ele.id === timeId) + for (let index = 0; index < obj?.type.length; index++) { + if (obj?.type[index] !== item.type?.[index]) { + isDisabled = true + } + } + } + return isDisabled +} + +const setParametersArr = (val, componentId) => { + const timeStartId = curComponent.value.checkedFieldsMapStart[componentId] + const timeEndId = curComponent.value.checkedFieldsMapEnd[componentId] + if (timeStartId) { + curComponent.value.checkedFieldsMapEnd[componentId] = val.find(ele => ele.id !== timeStartId) + } + + if (timeEndId) { + curComponent.value.checkedFieldsMapStart[componentId] = val.find(ele => ele.id !== timeEndId) + } + + if (!val.length) { + curComponent.value.checkedFieldsMap[componentId] = '' + curComponent.value.checkedFieldsMapEnd[componentId] = '' + curComponent.value.checkedFieldsMapStart[componentId] = '' + } +} + +let currentComponentId = '' +let currentParameterId = '' +const timeDialogShow = ref(false) +const timeParameterType = ref(0) +const timeName = ref('') + +const timeTypeChange = () => { + if (!curComponent.value.checkedFieldsMapArr[currentComponentId]) { + curComponent.value.checkedFieldsMapArr[currentComponentId] = [] + } + + if (timeParameterType.value === 0) { + curComponent.value.checkedFieldsMap[currentComponentId] = currentParameterId + curComponent.value.checkedFieldsMapArr[currentComponentId] = [] + curComponent.value.checkedFieldsMapStart[currentComponentId] = '' + curComponent.value.checkedFieldsMapEnd[currentComponentId] = '' + } + + if (timeParameterType.value === 1) { + curComponent.value.checkedFieldsMapStart[currentComponentId] = currentParameterId + curComponent.value.checkedFieldsMapArr[currentComponentId] = [ + ...new Set([ + ...curComponent.value.checkedFieldsMapArr[currentComponentId], + currentParameterId + ]) + ] + + if (curComponent.value.checkedFieldsMapArr[currentComponentId].length === 1) { + curComponent.value.checkedFieldsMapEnd[currentComponentId] = '' + } else { + curComponent.value.checkedFieldsMapEnd[currentComponentId] = + curComponent.value.checkedFieldsMapArr[currentComponentId].length === 2 + ? curComponent.value.checkedFieldsMapArr[currentComponentId].find( + ele => ele !== currentParameterId + ) + : currentParameterId + } + } + + if (timeParameterType.value === 2) { + curComponent.value.checkedFieldsMapArr[currentComponentId] = [ + ...new Set([ + ...curComponent.value.checkedFieldsMapArr[currentComponentId], + currentParameterId + ]) + ] + + curComponent.value.checkedFieldsMapEnd[currentComponentId] = currentParameterId + + if (curComponent.value.checkedFieldsMapArr[currentComponentId].length === 1) { + curComponent.value.checkedFieldsMapStart[currentComponentId] = '' + } else { + curComponent.value.checkedFieldsMapStart[currentComponentId] = + curComponent.value.checkedFieldsMapArr[currentComponentId].length === 2 + ? curComponent.value.checkedFieldsMapArr[currentComponentId].find( + ele => ele !== currentParameterId + ) + : currentParameterId + } + } + timeDialogShow.value = false +} + +const timeClick = (componentId, timeVal) => { + currentComponentId = componentId + currentParameterId = timeVal.id + timeName.value = timeVal.variableName + timeDialogShow.value = true +} + const setParameters = () => { const fieldArr = Object.values(curComponent.value.checkedFieldsMap).filter(ele => !!ele) curComponent.value.parameters = fields.value @@ -309,7 +413,11 @@ const setParameters = () => { .filter(ele => fieldArr.includes(ele.id) && !!ele.variableName) nextTick(() => { if (isTimeParameter.value) { - curComponent.value.timeGranularity = typeTimeMap[curComponent.value.parameters[0].type[1]] + curComponent.value.timeGranularity = + typeTimeMap[ + curComponent.value.parameters[0].type[1] || curComponent.value.parameters[0].type[0] + ] + curComponent.value.displayType = '1' } if (!!curComponent.value.parameters.length) { @@ -320,6 +428,7 @@ const setParameters = () => { } }) setType() + if (curComponent.value.displayType === '9') { setTreeDefault() } @@ -1079,7 +1188,13 @@ const handleCondition = item => { handleDialogClick() if (activeConditionForRename.id) return activeCondition.value = item.id - curComponent.value = conditions.value.find(ele => ele.id === item.id) + const obj = conditions.value.find(ele => ele.id === item.id) + if (!obj.checkedFieldsMapArr) { + obj.checkedFieldsMapArr = {} + obj.checkedFieldsMapStart = {} + obj.checkedFieldsMapEnd = {} + } + curComponent.value = obj curComponent.value.dataset.fields = [] nextTick(() => { defaultConfigurationRef.value.changeMultiple(curComponent.value.multiple) @@ -1092,6 +1207,9 @@ const handleCondition = item => { datasetFieldList.value.forEach(ele => { if (!curComponent.value.checkedFieldsMap[ele.id]) { curComponent.value.checkedFieldsMap[ele.id] = '' + curComponent.value.checkedFieldsMapStart[ele.id] = '' + curComponent.value.checkedFieldsMapEnd[ele.id] = '' + curComponent.value.checkedFieldsMapArr[ele.id] = [] } }) @@ -1582,11 +1700,108 @@ defineExpose({ > {{ field.name }} + + + +
+ + + + + {{ ele.name || ele.variableName }} + + + {{ + curComponent.checkedFieldsMapStart[field.componentId] === ele.id + ? '开始时间' + : curComponent.checkedFieldsMapEnd[field.componentId] === ele.id + ? '结束时间' + : '' + }} + + + + + + +
+
+
+ @@ -1657,6 +1872,20 @@ defineExpose({ {{ ele.name || ele.variableName }} + + 时间 + + + + + + @@ -1718,12 +1947,21 @@ defineExpose({ value="5" /> @@ -2166,10 +2404,44 @@ defineExpose({ + + + + + 时间 + 开始时间 + 结束时间 + + + + +