Merge pull request #13106 from dataease/pr@dev-v2@chart-quota-fix

fix(图表): 修复水波图、仪表盘添加非数值字段导致图表异常
This commit is contained in:
jianneng-fit2cloud 2024-11-04 20:01:04 +08:00 committed by GitHub
commit 8f93e8f726
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -110,7 +110,10 @@ const initField = () => {
}
initDynamicDefaultField()
}
const COUNT_DE_TYPE = [0, 1, 5]
const getFieldSummaryByDeType = (deType: number) => {
return COUNT_DE_TYPE.includes(deType) || !deType ? 'count' : 'sum'
}
const initDynamicDefaultField = () => {
const yAxisId = props.chart.yAxis?.[0]?.id
if (yAxisId !== '-1' && state.quotaData.length) {
@ -146,9 +149,11 @@ const initDynamicDefaultField = () => {
state.liquidProcessedNoYAxis = false
// liquidMaxField.id
state.miscForm.liquidMaxField.id = yAxisExists ? yAxisId : state.quotaData[0]?.id
state.liquidMaxField = getQuotaField(state.miscForm.liquidMaxField.id)
// summary maxField
state.miscForm.liquidMaxField.summary = 'sum'
state.maxField = getQuotaField(state.miscForm.liquidMaxField.id)
state.miscForm.liquidMaxField.summary = getFieldSummaryByDeType(
state.liquidMaxField?.deType
)
// changeMisc
if (yAxisExists) {
changeMisc('liquidMaxField', true)
@ -172,9 +177,9 @@ const initDynamicDefaultField = () => {
state.gaugeProcessedNoYAxis = false
// gaugeMaxField.id
state.miscForm.gaugeMaxField.id = yAxisExists ? yAxisId : state.quotaData[0]?.id
// summary maxField
state.miscForm.gaugeMaxField.summary = 'sum'
state.maxField = getQuotaField(state.miscForm.gaugeMaxField.id)
// summary maxField
state.miscForm.gaugeMaxField.summary = getFieldSummaryByDeType(state.maxField?.deType)
if (yAxisExists) {
// changeMisc
changeMisc('gaugeMaxField', true)
@ -233,13 +238,13 @@ const changeQuotaField = (type: string, resetSummary?: boolean) => {
state.miscForm.liquidMaxField.id = props.chart.yAxis?.[0]?.id
}
if (!state.miscForm.liquidMaxField.summary) {
state.miscForm.liquidMaxField.summary = 'sum'
state.miscForm.liquidMaxField.summary = 'count'
}
if (resetSummary) {
state.miscForm.liquidMaxField.summary = 'sum'
state.miscForm.liquidMaxField.summary = 'count'
}
if (state.miscForm.liquidMaxField.id && state.miscForm.liquidMaxField.summary) {
state.maxField = getQuotaField(state.miscForm.liquidMaxField.id)
state.liquidMaxField = getQuotaField(state.miscForm.liquidMaxField.id)
changeMisc('liquidMaxField', true)
}
} else {
@ -252,10 +257,10 @@ const changeQuotaField = (type: string, resetSummary?: boolean) => {
state.miscForm.gaugeMaxField.id = props.chart.yAxis?.[0]?.id
}
if (!state.miscForm.gaugeMaxField.summary) {
state.miscForm.gaugeMaxField.summary = 'sum'
state.miscForm.gaugeMaxField.summary = 'count'
}
if (resetSummary) {
state.miscForm.gaugeMaxField.summary = 'sum'
state.miscForm.gaugeMaxField.summary = 'count'
}
if (state.miscForm.gaugeMaxField.id && state.miscForm.gaugeMaxField.summary) {
state.maxField = getQuotaField(state.miscForm.gaugeMaxField.id)
@ -344,6 +349,12 @@ const addAxis = (form: AxisEditForm) => {
} else {
state.miscForm[maxTypeKey] = 'dynamic'
}
if (props.chart.type === 'gauge') {
state.miscForm.gaugeMinType = 'fix'
state.miscForm.gaugeMin = 0
state.miscForm.gaugeMinField.id = ''
state.miscForm.gaugeMinField.summary = ''
}
}
onMounted(() => {
initField()