Merge pull request #11088 from dataease/pr@dev-v2@chart-map-add-other-quota

feat(图表): 地图、气泡地图的提示支持显示其他指标字段
This commit is contained in:
jianneng-fit2cloud 2024-07-22 18:07:16 +08:00 committed by GitHub
commit dbd0bf0bc4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 49 additions and 10 deletions

View File

@ -0,0 +1,20 @@
package io.dataease.chart.charts.impl.map;
import io.dataease.chart.charts.impl.ExtQuotaChartHandler;
import io.dataease.extensions.view.dto.AxisFormatResult;
import io.dataease.extensions.view.dto.ChartViewDTO;
import lombok.Getter;
import org.springframework.stereotype.Component;
@Component
public class BubbleMapHandler extends ExtQuotaChartHandler {
@Getter
private String type = "bubble-map";
@Override
public AxisFormatResult formatAxis(ChartViewDTO view) {
return super.formatAxis(view);
}
}

View File

@ -34,7 +34,7 @@ export const MAP_EDITOR_PROPERTY_INNER: EditorPropertyInner = {
'showDimension',
'showQuota'
],
'tooltip-selector': ['color', 'fontSize', 'backgroundColor', 'tooltipFormatter', 'show'],
'tooltip-selector': ['color', 'fontSize', 'backgroundColor', 'seriesTooltipFormatter', 'show'],
'function-cfg': ['emptyDataStrategy'],
'map-mapping': ['']
}

View File

@ -856,20 +856,39 @@ export function configL7Style(chart: Chart): AreaOptions['style'] {
export function configL7Tooltip(chart: Chart): TooltipOptions {
const customAttr = parseJson(chart.customAttr)
const tooltip = customAttr.tooltip
const { yAxis } = chart
const formatterMap = tooltip.seriesTooltipFormatter
?.filter(i => i.show)
.reduce((pre, next) => {
pre[next.id] = next
return pre
}, {}) as Record<string, SeriesFormatter>
return {
customTitle(data) {
return data.name
},
items: [
{
field: 'value',
alias: yAxis?.[0]?.chartShowName ?? yAxis?.[0]?.name,
customValue: value => {
return valueFormatter(value, tooltip.tooltipFormatter)
}
customItems(originalItem) {
const result = []
if (isEmpty(formatterMap)) {
return result
}
],
const head = originalItem.properties
const formatter = formatterMap[head.quotaList?.[0]?.id]
if (!isEmpty(formatter)) {
const originValue = parseFloat(head.value as string)
const value = valueFormatter(originValue, formatter.formatterCfg)
const name = isEmpty(formatter.chartShowName) ? formatter.name : formatter.chartShowName
result.push({ ...head, name, value: `${value ?? ''}` })
}
head.dynamicTooltipValue?.forEach(item => {
const formatter = formatterMap[item.fieldId]
if (formatter) {
const value = valueFormatter(parseFloat(item.value), formatter.formatterCfg)
const name = isEmpty(formatter.chartShowName) ? formatter.name : formatter.chartShowName
result.push({ color: 'grey', name, value: `${value ?? ''}` })
}
})
return result
},
showComponent: tooltip.show,
domStyles: {
'l7plot-tooltip': {