diff --git a/core/core-frontend/src/custom-component/v-query/ConditionDefaultConfiguration.vue b/core/core-frontend/src/custom-component/v-query/ConditionDefaultConfiguration.vue index 810cf0c467..2460beb0e3 100644 --- a/core/core-frontend/src/custom-component/v-query/ConditionDefaultConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/ConditionDefaultConfiguration.vue @@ -320,6 +320,13 @@ defineExpose({ mult, single }) +const handleInputStart = value => { + curComponent.value.defaultNumValueStart = value.replace(/[^\d.]/g, '') +} + +const handleInputEnd = value => { + curComponent.value.defaultNumValueEnd = value.replace(/[^\d.]/g, '') +} @@ -2781,8 +3163,8 @@ defineExpose({ .ed-select-tags-wrapper.has-prefix { margin-left: 25px; } - .ed-tag { - max-width: 65px; + .ed-select__tags-text { + max-width: 38px !important; } } diff --git a/core/core-frontend/src/custom-component/v-query/StyleInject.vue b/core/core-frontend/src/custom-component/v-query/StyleInject.vue index e879532c6a..032a5b275a 100644 --- a/core/core-frontend/src/custom-component/v-query/StyleInject.vue +++ b/core/core-frontend/src/custom-component/v-query/StyleInject.vue @@ -3,6 +3,7 @@ import { provide, PropType } from 'vue' import Select from './Select.vue' import Time from './Time.vue' import TextSearch from './TextSearch.vue' +import NumberInput from './NumberInput.vue' import Tree from './Tree.vue' interface SelectConfig { @@ -56,6 +57,9 @@ const filterTypeCom = (displayType: string) => { if (displayType === '8') { return TextSearch } + if (displayType === '22') { + return NumberInput + } return ['1', '7'].includes(displayType) ? Time : displayType === '9' ? Tree : Select } provide('$custom-style-filter', props.customStyle) diff --git a/core/core-frontend/src/hooks/web/useFilter.ts b/core/core-frontend/src/hooks/web/useFilter.ts index 09f0ab5c1d..4732169df2 100644 --- a/core/core-frontend/src/hooks/web/useFilter.ts +++ b/core/core-frontend/src/hooks/web/useFilter.ts @@ -176,6 +176,18 @@ const getResult = ( return [valueF || '', valueS || ''].filter(ele => ele !== '') } +const getResultNum = ( + defaultNumValueEnd, + numValueEnd, + numValueStart, + defaultNumValueStart, + firstLoad +) => { + const valueS = firstLoad ? defaultNumValueStart : numValueStart + const valueE = firstLoad ? defaultNumValueEnd : numValueEnd + return [valueS || '', valueE || ''].filter(ele => ele !== '') +} + const getOperator = ( displayType, multiple, @@ -193,6 +205,11 @@ const getOperator = ( if (+displayType === 9) { return multiple ? 'in' : 'eq' } + + if (+displayType === 22) { + return 'between' + } + const valueF = firstLoad ? defaultConditionValueF : conditionValueF const valueS = firstLoad ? defaultConditionValueS : conditionValueS const operatorF = firstLoad ? defaultConditionValueOperatorF : conditionValueOperatorF @@ -240,6 +257,10 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa const { selectValue: value, timeGranularityMultiple, + defaultNumValueEnd, + numValueEnd, + numValueStart, + defaultNumValueStart, conditionType = 0, treeFieldList = [], defaultConditionValueOperatorF = 'eq', @@ -325,6 +346,14 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa conditionValueS, firstLoad ) + } else if (displayType === '22') { + selectValue = getResultNum( + defaultNumValueEnd, + numValueEnd, + numValueStart, + defaultNumValueStart, + firstLoad + ) } else { selectValue = getValueByDefaultValueCheckOrFirstLoad( defaultValueCheck, @@ -409,6 +438,38 @@ export const searchQuery = (queryComponentList, filter, curComponentId, firstLoa isTree }) } + + if (item.checkedFieldsMapArrNum?.[curComponentId]?.length) { + const endTimeFieldId = item.checkedFieldsMapArrNum?.[curComponentId].find( + element => element !== fieldId + ) + const resultEnd = Array(2).fill( + endTimeFieldId === item.checkedFieldsMapEndNum[curComponentId] + ? result[1] + : result[0] + ) + result = Array(2).fill( + endTimeFieldId === item.checkedFieldsMapEndNum[curComponentId] + ? result[0] + : result[1] + ) + parametersFilter = duplicateRemoval( + item.parametersArr[curComponentId].filter(e => e.id === fieldId) + ) + + const parametersFilterEnd = duplicateRemoval( + item.parametersArr[curComponentId].filter(e => e.id === endTimeFieldId) + ) + filter.push({ + componentId: ele.id, + fieldId: endTimeFieldId, + operator, + value: resultEnd, + parameters: parametersFilterEnd, + isTree + }) + } + filter.push({ componentId: ele.id, fieldId, diff --git a/core/core-frontend/src/views/visualized/data/datasource/index.vue b/core/core-frontend/src/views/visualized/data/datasource/index.vue index cd18f472f0..9e9085ad50 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/index.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/index.vue @@ -148,7 +148,7 @@ const datasourceEditor = ref() const activeTab = ref('') const menuList = [ { - label: t('data_set.move_to'), + label: t('chart.move_to'), svgName: icon_intoItem_outlined, command: 'move' },