From 62f4d188f993fa40c86643fea246f4a44911df1a Mon Sep 17 00:00:00 2001 From: jianneng-fit2cloud Date: Tue, 15 Apr 2025 09:44:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BB=AA=E8=A1=A8?= =?UTF-8?q?=E7=9B=98=E6=B0=B4=E6=B3=A2=E5=9B=BE=E5=8A=A8=E6=80=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=98=BE=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/numeric/NumericalChartHandler.java | 11 +- .../editor-style/components/MiscSelector.vue | 551 +++++++----------- .../views/components/ChartComponentG2Plot.vue | 7 +- 3 files changed, 220 insertions(+), 349 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java index eebf3e125d..da554b5643 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java @@ -69,17 +69,10 @@ public class NumericalChartHandler extends DefaultChartHandler { String summary = (String) maxField.get("summary"); DatasetTableFieldDTO datasetTableField = datasetTableFieldManage.selectById(id); if (ObjectUtils.isNotEmpty(datasetTableField)) { - boolean isText = datasetTableField.getDeType() == 0 || datasetTableField.getDeType() == 1 || datasetTableField.getDeType() == 5; - if (isText && !StringUtils.containsIgnoreCase(summary, "count")) { - DEException.throwException(Translator.get("i18n_gauge_field_change")); - } ChartViewFieldDTO dto = new ChartViewFieldDTO(); BeanUtils.copyBean(dto, datasetTableField); - // 文本类型的计算字段时,判断originName是否包含表达式,如果包含,这里取消汇总,后续sql中会有默认表达式count,否则将会套一层count导致报错 - if (isText) { - String textSummary = (dto.getExtField() == 2 && StringUtils.isNotEmpty(dto.getOriginName()) && - Pattern.compile("^(.*?)\\(\\[").matcher(dto.getOriginName()).find()) ? "" : "count"; - dto.setSummary(textSummary); + if (StringUtils.isEmpty(dto.getSummary())) { + dto.setSummary(summary); } return dto; } else { diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/MiscSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/MiscSelector.vue index 8f3f25a97a..7682076d4d 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/MiscSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/MiscSelector.vue @@ -5,7 +5,7 @@ import { useI18n } from '@/hooks/web/useI18n' import { DEFAULT_MISC } from '@/views/chart/components/editor/util/chart' import { ElRow } from 'element-plus-secondary' import { fieldType } from '@/utils/attr' -import { cloneDeep, defaultsDeep, isEmpty } from 'lodash-es' +import { cloneDeep, defaultsDeep } from 'lodash-es' import { useEmitt } from '@/hooks/web/useEmitt' import { iconFieldMap } from '@/components/icon-group/field-list' @@ -27,13 +27,42 @@ useEmitt({ callback: args => wordCloudDefaultDataRange(args) }) useEmitt({ - name: 'gauge-default-data', - callback: args => gaugeOrLiquidDefaultRangeData(args) + name: 'gauge-liquid-y-value', + callback: args => gaugeLiquidYaxisValue(args) }) useEmitt({ - name: 'liquid-default-data', - callback: args => gaugeOrLiquidDefaultRangeData(args) + name: 'chart-type-change', + callback: () => { + if (isLiquid.value || isGauge.value) { + init() + initField() + initAxis(props.chart.yAxis[0]?.id) + } + } }) +const addAxis = (form: AxisEditForm) => { + initAxis(form.axis[0]?.id) +} +useEmitt({ name: 'addAxis', callback: addAxis }) +const wordCloudDefaultDataRange = ({ data: { max, min } }) => { + Object.assign(state.miscForm.wordCloudAxisValueRange, { + max, + min, + fieldId: props.chart.yAxis?.[0]?.id + }) +} +const gaugeLiquidYaxisDefaultValue = { gaugeMax: undefined, liquidMax: undefined } +const gaugeLiquidYaxisValue = args => { + const { type, max } = args.data + const key = type === 'gauge' ? 'gaugeMax' : type === 'liquid' ? 'liquidMax' : null + if (key) { + gaugeLiquidYaxisDefaultValue[key] = cloneDeep(max) + if (!state.miscForm[key]) { + state.miscForm[key] = gaugeLiquidYaxisDefaultValue[key] + changeMisc() + } + } +} const emit = defineEmits(['onMiscChange']) watch( @@ -46,24 +75,21 @@ watch( ) const validLiquidMaxField = computed(() => { - return isValidField(state.liquidMaxField) + return isValidField(state.miscForm.liquidMaxField) }) const validMinField = computed(() => { - return isValidField(state.minField) + return isValidField(state.miscForm.gaugeMinField) }) const validMaxField = computed(() => { - return isValidField(state.maxField) + return isValidField(state.miscForm.gaugeMaxField) }) +const isValidField = field => { + return field.id !== '-1' && quotaData.value.findIndex(ele => ele.id === field.id) !== -1 +} const state = reactive({ miscForm: JSON.parse(JSON.stringify(DEFAULT_MISC)), - minField: {}, - maxField: {}, - liquidMaxField: {}, - quotaData: [], - // 是否已处理没有 y 轴字段的情况 - liquidProcessedNoYAxis: false, - gaugeProcessedNoYAxis: false + quotaData: [] }) const liquidShapeOptions = [ @@ -81,12 +107,6 @@ const changeMisc = (prop = '', refresh = false) => { const init = () => { const misc = cloneDeep(props.chart.customAttr.misc) state.miscForm = defaultsDeep(misc, cloneDeep(DEFAULT_MISC)) as ChartMiscAttr - const maxTypeKey = props.chart.type === 'liquid' ? 'liquidMaxType' : 'gaugeMaxType' - const maxValueKey = props.chart.type === 'liquid' ? 'liquidMax' : 'gaugeMax' - if (!props.chart.yAxis.length) { - state.miscForm[maxTypeKey] = 'fix' - state.miscForm[maxValueKey] = undefined - } } const initField = () => { @@ -97,92 +117,55 @@ const initField = () => { } // 过滤掉记录数字段 state.quotaData = props.quotaFields.filter(ele => ele.id !== '-1') - if (!isEmpty(state.miscForm.gaugeMinField.id)) { - state.minField = getQuotaField(state.miscForm.gaugeMinField.id) - setSummaryByDataType(state.miscForm.gaugeMinField) - } - if (!isEmpty(state.miscForm.gaugeMaxField.id)) { - state.maxField = getQuotaField(state.miscForm.gaugeMaxField.id) - setSummaryByDataType(state.miscForm.gaugeMaxField) - } - if (!isEmpty(state.miscForm.liquidMaxField.id)) { - state.liquidMaxField = getQuotaField(state.miscForm.liquidMaxField.id) - setSummaryByDataType(state.miscForm.liquidMaxField) - } } const NUMBER_DE_TYPE = [2, 3] -const getDynamicFieldId = () => { - // 返回yAxis字段ID - const curFieldObj = quotaData.value?.find(item => item.id === props.chart.yAxis?.[0]?.id) - if (curFieldObj) return curFieldObj.id - // 返回第一个字段ID - return quotaData.value?.[0]?.id +const getDynamicField = () => { + return ( + quotaData.value?.find(item => item.id === props.chart.yAxis?.[0]?.id) || quotaData.value?.[0] + ) } - const changeQuotaField = (type: string, resetSummary?: boolean) => { if (isGauge.value) { if (type === 'max') { + const quotaField = getQuotaField(state.miscForm.gaugeMaxField.id || getDynamicField()?.id) + state.miscForm.gaugeMaxField.id = quotaField.id const isDynamic = state.miscForm.gaugeMaxType === 'dynamic' - if (isDynamic) { - if (!state.miscForm.gaugeMaxField.id) { - setDynamicFieldId(state.miscForm.gaugeMaxField) - } - if (!state.miscForm.gaugeMaxField.summary || resetSummary) { - state.miscForm.gaugeMaxField.summary = 'sum' - } - if (state.miscForm.gaugeMaxField.id && state.miscForm.gaugeMaxField.summary) { - state.maxField = getQuotaField(state.miscForm.gaugeMaxField.id) - } - } else { - state.miscForm.gaugeMax = state.miscForm.gaugeMax || cloneDeep(defaultMaxValue.gaugeMax) + if (isDynamic && resetSummary) { + state.miscForm.gaugeMaxField.summary = quotaField.summary + } + if (!isDynamic) { + state.miscForm.gaugeMax = cloneDeep(gaugeLiquidYaxisDefaultValue.gaugeMax) + state.miscForm.gaugeMaxField.id = '' } - setSummaryByDataType(state.miscForm.gaugeMaxField) changeMisc('gaugeMaxField', true) } if (type === 'min') { + const quotaField = getQuotaField(state.miscForm.gaugeMinField.id || getDynamicField()?.id) + state.miscForm.gaugeMinField.id = quotaField.id const isDynamic = state.miscForm.gaugeMinType === 'dynamic' - if (isDynamic) { - if (!state.miscForm.gaugeMinField.id) { - setDynamicFieldId(state.miscForm.gaugeMinField) - } - if (!state.miscForm.gaugeMinField.summary || resetSummary) { - state.miscForm.gaugeMinField.summary = 'sum' - } - if (state.miscForm.gaugeMinField.id && state.miscForm.gaugeMinField.summary) { - state.minField = getQuotaField(state.miscForm.gaugeMinField.id) - } - } else { - state.miscForm.gaugeMin = state.miscForm.gaugeMin ?? 0 + if (isDynamic && resetSummary) { + state.miscForm.gaugeMinField.summary = quotaField.summary + } + if (!isDynamic) { + state.miscForm.gaugeMin = state.miscForm.gaugeMin || 0 + state.miscForm.gaugeMinField.id = '' } - setSummaryByDataType(state.miscForm.gaugeMinField) changeMisc('gaugeMinField', true) } } if (isLiquid.value) { - const field = state.miscForm.liquidMaxField - const maxValueKey = 'liquidMax' + const quotaField = getQuotaField(state.miscForm.liquidMaxField.id || getDynamicField()?.id) + state.miscForm.liquidMaxField.id = quotaField.id const isDynamic = state.miscForm.liquidMaxType === 'dynamic' - if (isDynamic) { - if (!field.id) setDynamicFieldId(field) - if (!field.summary || resetSummary) field.summary = 'count' - if (field.id && field.summary) { - state.liquidMaxField = getQuotaField(field.id) - } - } else { - state.miscForm.liquidMax = state.miscForm.liquidMax || cloneDeep(defaultMaxValue.liquidMax) + if (isDynamic && resetSummary) { + state.miscForm.liquidMaxField.summary = quotaField.summary } - setSummaryByDataType(state.miscForm.liquidMaxField) - changeMisc(`${maxValueKey}Field`, true) - } -} - -const setDynamicFieldId = fieldObj => { - const yAxisField = props.chart.yAxis?.[0] - if (yAxisField?.id === '-1') { - fieldObj.id = getDynamicFieldId() - } else { - fieldObj.id = yAxisField?.id + if (!isDynamic) { + state.miscForm.liquidMax = cloneDeep(gaugeLiquidYaxisDefaultValue.liquidMax) + state.miscForm.liquidMaxField.id = '' + } + changeMisc('liquidMaxField', true) } } @@ -190,51 +173,23 @@ const getQuotaField = id => { return quotaData.value.find(ele => ele.id === id) || {} } -const isValidField = field => { - return field.id !== '-1' && quotaData.value.findIndex(ele => ele.id === field.id) !== -1 -} - const showProperty = prop => props.propertyInner?.includes(prop) -const wordCloudDefaultDataRange = args => { - state.miscForm.wordCloudAxisValueRange.max = args.data.max - state.miscForm.wordCloudAxisValueRange.min = args.data.min - state.miscForm.wordCloudAxisValueRange.fieldId = props.chart.yAxis?.[0]?.id -} -const defaultMaxValue = { - gaugeMax: undefined, - liquidMax: undefined -} -const gaugeOrLiquidDefaultRangeData = args => { - if (args.data.type === 'gauge') { - defaultMaxValue.gaugeMax = cloneDeep(args.data.max) - if (!state.miscForm.gaugeMax) { - state.miscForm.gaugeMax = cloneDeep(defaultMaxValue.gaugeMax) - changeMisc('gaugeMaxField', true) - } - } - if (args.data.type === 'liquid') { - defaultMaxValue.liquidMax = cloneDeep(args.data.max) - if (!state.miscForm.liquidMax) { - state.miscForm.liquidMax = cloneDeep(defaultMaxValue.liquidMax) - changeMisc('liquidMaxField', true) - } - } -} + /** * 校验最大值的输入 */ -const changeMaxValidate = prop => { +const changeFixedValidate = prop => { if (prop === 'gaugeMax' && !state.miscForm.gaugeMax) { - state.miscForm.gaugeMax = cloneDeep(defaultMaxValue.gaugeMax) + state.miscForm.gaugeMax = cloneDeep(gaugeLiquidYaxisDefaultValue.gaugeMax) } if (prop === 'liquidMax' && !state.miscForm.liquidMax) { - state.miscForm.liquidMax = cloneDeep(defaultMaxValue.liquidMax) + state.miscForm.liquidMax = cloneDeep(gaugeLiquidYaxisDefaultValue.liquidMax) + } + if (prop === 'gaugeMin' && !state.miscForm.gaugeMin) { + state.miscForm.gaugeMin = 0 } changeMisc(prop, true) } -const addAxis = (form: AxisEditForm) => { - initAxis(form.axis[0]?.id) -} const initAxis = yAxisId => { state.quotaData = [] if (yAxisId) { @@ -242,192 +197,111 @@ const initAxis = yAxisId => { state.quotaData = [ ...props.quotaFields.filter(ele => ele.id !== '-1' && !uniqueIds.has(ele.id)) ] - const maxTypeKey = isLiquid.value ? 'liquidMaxType' : 'gaugeMaxType' - const maxValueKey = isLiquid.value ? 'liquidMax' : 'gaugeMax' - if (state.quotaData.length && state.quotaData.find(item => item.id === yAxisId)) { + if (state.quotaData.length) { if (isLiquid.value) { - state.miscForm[maxTypeKey] = 'dynamic' - state.miscForm[maxValueKey + 'Field']['id'] = getDynamicFieldId() ?? state.quotaData[0]?.id - state.miscForm[maxValueKey + 'Field']['summary'] = 'sum' - state.liquidMaxField = getQuotaField(state.miscForm[maxValueKey + 'Field']['id']) - setSummaryByDataType(state.miscForm[maxValueKey + 'Field']) - changeMisc(`${maxValueKey}Field`, true) + state.miscForm.liquidMaxType = 'dynamic' + state.miscForm.liquidMaxField.id = getDynamicField()?.id || state.quotaData[0]?.id + const quotaField = getQuotaField(state.miscForm.liquidMaxField.id) + state.miscForm.liquidMaxField.summary = quotaField.summary } if (isGauge.value) { // max - state.miscForm[maxTypeKey] = 'dynamic' - state.miscForm[maxValueKey + 'Field']['id'] = getDynamicFieldId() ?? state.quotaData[0]?.id - state.miscForm[maxValueKey + 'Field']['summary'] = 'sum' - state.maxField = getQuotaField(state.miscForm[maxValueKey + 'Field']['id']) - setSummaryByDataType(state.miscForm[maxValueKey + 'Field']) - changeMisc(`${maxValueKey}Field`, true) + state.miscForm.gaugeMaxType = 'dynamic' + state.miscForm.gaugeMaxField.id = getDynamicField()?.id || state.quotaData[0]?.id + const quotaField = getQuotaField(state.miscForm.gaugeMaxField.id) + state.miscForm.gaugeMaxField.summary = quotaField.summary // min state.miscForm.gaugeMinType = 'fix' state.miscForm.gaugeMin = 0 - changeMisc('gaugeMinField', true) + state.miscForm.gaugeMinField.summary = quotaField.summary } + changeMisc() } else { if (isLiquid.value) { - state.miscForm[maxTypeKey] = 'fix' - state.miscForm[maxValueKey] = cloneDeep(defaultMaxValue[maxValueKey]) ?? 0 - state.miscForm[maxValueKey + 'Field']['id'] = '' - state.miscForm[maxValueKey + 'Field']['summary'] = '' + state.miscForm.liquidMaxType = 'fix' + state.miscForm.liquidMax = cloneDeep(gaugeLiquidYaxisDefaultValue.liquidMax) || 0 + state.miscForm.liquidMaxField.id = '' + state.miscForm.liquidMaxField.summary = '' + changeMisc('liquidMax', true) } if (isGauge.value) { // max - state.miscForm[maxTypeKey] = 'fix' - state.miscForm[maxValueKey] = cloneDeep(defaultMaxValue[maxValueKey]) ?? 0 - state.miscForm[maxValueKey + 'Field']['id'] = '' - state.miscForm[maxValueKey + 'Field']['summary'] = '' + state.miscForm.gaugeMaxType = 'fix' + state.miscForm.gaugeMax = gaugeLiquidYaxisDefaultValue.gaugeMax || 0 + state.miscForm.liquidMaxField.id = '' + state.miscForm.liquidMaxField.summary = '' + changeMisc('gaugeMax', true) // min state.miscForm.gaugeMinType = 'fix' state.miscForm.gaugeMin = 0 state.miscForm.gaugeMinField.id = '' state.miscForm.gaugeMinField.summary = '' - } - changeMisc('', false) - } - } -} -const initStateForm = () => { - state.quotaData = [] - if (props.chart.yAxis?.[0]?.id) { - const uniqueIds = new Set(state.quotaData.map(item => item.id)) - state.quotaData = [ - ...props.quotaFields.filter(ele => ele.id !== '-1' && !uniqueIds.has(ele.id)) - ] - } - const maxTypeKey = isLiquid.value ? 'liquidMaxType' : 'gaugeMaxType' - const maxValueKey = isLiquid.value ? 'liquidMax' : 'gaugeMax' - if (quotaData.value.length) { - if (isLiquid.value) { - const hasDynamicValue = props.quotaFields.find( - ele => ele.id === state.miscForm[maxValueKey + 'Field']['id'] - ) - const hasFixValue = state.miscForm[maxValueKey] - if (state.miscForm[maxTypeKey] === 'dynamic' && !hasDynamicValue) { - state.miscForm[maxValueKey + 'Field']['id'] = state.quotaData[0]?.id ?? '' - state.miscForm[maxValueKey + 'Field']['summary'] = 'sum' - state.liquidMaxField = getQuotaField(state.miscForm[maxValueKey + 'Field']['id']) - setSummaryByDataType(state.miscForm[maxValueKey + 'Field']) - changeMisc(`${maxValueKey}Field`, true) - } else if (state.miscForm[maxTypeKey] === 'fix' && !hasFixValue && hasFixValue !== 0) { - state.miscForm[maxValueKey] = cloneDeep(defaultMaxValue[maxValueKey]) ?? 0 - changeMisc(`${maxValueKey}Field`, true) + changeMisc('gaugeMin', true) } } - if (isGauge.value) { - // max - const hasDynamicValue = props.quotaFields.find( - ele => ele.id === state.miscForm[maxValueKey + 'Field']['id'] - ) - const hasFixValue = state.miscForm[maxValueKey] - if (state.miscForm[maxTypeKey] === 'dynamic' && !hasDynamicValue) { - state.miscForm[maxValueKey + 'Field']['id'] = state.quotaData[0]?.id ?? '' - state.miscForm[maxValueKey + 'Field']['summary'] = 'sum' - state.maxField = getQuotaField(state.miscForm[maxValueKey + 'Field']['id']) - setSummaryByDataType(state.miscForm[maxValueKey + 'Field']) - changeMisc(`${maxValueKey}Field`, true) - } else if (state.miscForm[maxTypeKey] === 'fix' && !hasFixValue && hasFixValue !== 0) { - state.miscForm[maxValueKey] = cloneDeep(defaultMaxValue[maxValueKey]) ?? 0 - changeMisc(`${maxValueKey}Field`, true) - } - // min - const hasDynamicMinValue = props.quotaFields.find( - ele => ele.id === state.miscForm.gaugeMinField.id - ) - if (state.miscForm.gaugeMinType === 'dynamic' && !hasDynamicMinValue) { - state.miscForm.gaugeMin = 0 - state.miscForm.gaugeMinField.id = state.quotaData[0]?.id ?? '' - state.miscForm.gaugeMinField.summary = 'sum' - state.minField = getQuotaField(state.miscForm.gaugeMinField.id) - setSummaryByDataType(state.miscForm.gaugeMinField) - changeMisc('gaugeMinField', true) - } - } - } else { - const hasFixValue = state.miscForm[maxValueKey] - if (isLiquid.value) { - state.miscForm[maxTypeKey] = 'fix' - state.miscForm[maxValueKey] = hasFixValue - ? hasFixValue - : cloneDeep(defaultMaxValue[maxValueKey]) ?? 0 - state.miscForm[maxValueKey + 'Field']['id'] = '' - state.miscForm[maxValueKey + 'Field']['summary'] = '' - } - if (isGauge.value) { - // max - state.miscForm[maxTypeKey] = 'fix' - state.miscForm[maxValueKey] = hasFixValue - ? hasFixValue - : cloneDeep(defaultMaxValue[maxValueKey]) ?? 0 - state.miscForm[maxValueKey + 'Field']['id'] = '' - state.miscForm[maxValueKey + 'Field']['summary'] = '' - // min - state.miscForm.gaugeMinType = 'fix' - state.miscForm.gaugeMin = 0 - state.miscForm.gaugeMinField.id = '' - state.miscForm.gaugeMinField.summary = '' - } - changeMisc('', false) } } -onMounted(() => { - init() - initField() - useEmitt({ name: 'addAxis', callback: addAxis }) - useEmitt({ - name: 'chart-data-change', - callback: () => { - initStateForm() - } - }) - useEmitt({ - name: 'chart-type-change', - callback: () => { - if (isLiquid.value || isGauge.value) { - init() - initField() - initAxis(props.chart.yAxis[0]?.id) - } - } - }) +// 校验聚合函数 +const validLiquidMaxFieldAgg = computed(() => { + return isAggField(state.miscForm.liquidMaxField) +}) +const validMinFieldAgg = computed(() => { + return isAggField(state.miscForm.gaugeMinField) +}) +const validMaxFieldAgg = computed(() => { + return isAggField(state.miscForm.gaugeMaxField) +}) +const isAggField = field => { + return quotaData.value.find(ele => ele.id === field.id)?.agg +} +// 校验计算字段和聚合函数 +const validLiquidMaxFieldCalcAndAgg = computed(() => { + return isCalcFieldAndAgg(state.miscForm.liquidMaxField) +}) +const validMinFieldCalcAndAgg = computed(() => { + return isCalcFieldAndAgg(state.miscForm.gaugeMinField) +}) +const validMaxFieldCalcAndAgg = computed(() => { + return isCalcFieldAndAgg(state.miscForm.gaugeMaxField) +}) +const isCalcFieldAndAgg = field => { + return quotaData.value.find(ele => ele.id === field.id && ele.extField === 2 && ele.agg) +} + +// 校验数值类型 +const validLiquidMaxFieldNum = computed(() => { + return isNumType(state.miscForm.liquidMaxField) +}) +const validMinFieldNum = computed(() => { + return isNumType(state.miscForm.gaugeMinField) +}) +const validMaxFieldNum = computed(() => { + return isNumType(state.miscForm.gaugeMaxField) }) +const isNumType = field => { + return quotaData.value.find(ele => ele.id === field.id && NUMBER_DE_TYPE.includes(ele.deType)) +} + /** - * 不包含记录数字段 + * 计算属性 */ const quotaData = computed(() => { return state.quotaData }) const isLiquid = computed(() => props.chart.type === 'liquid') const isGauge = computed(() => props.chart.type === 'gauge') - -/* - * 根据字段数据类型设置汇总字段 - */ -const setSummaryByDataType = fieldObj => { - const quotaField = quotaData.value?.find(item => item.id === fieldObj.id) - if (!quotaField) return - // 计算字段以及不是数字类型字段,默认count - if (quotaField.extField === 2 || !NUMBER_DE_TYPE.includes(quotaField.deType)) { - fieldObj.summary = 'count' - fieldObj.disabled = true - return +onMounted(() => { + init() + initField() + if ( + (isGauge.value && !state.miscForm.gaugeMaxField.id && !state.miscForm.gaugeMax) || + (isLiquid.value && !state.miscForm.liquidMaxField.id && !state.miscForm.liquidMax) + ) { + initAxis(props.chart.yAxis[0]?.id) } - fieldObj.disabled = false -} -/** - * 禁用汇总选项 - * @param field - */ -const isDisabledSummaryField = field => { - const quotaField = quotaData.value?.find(item => item.id === field.id) - return quotaField - ? quotaField.extField === 2 || !NUMBER_DE_TYPE.includes(quotaField.deType) - : false -} +})