diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java index 73b5430084..6ddf42dc57 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewManege.java @@ -26,6 +26,7 @@ import io.dataease.extensions.datasource.dto.FieldGroupDTO; import io.dataease.extensions.datasource.model.SQLObj; import io.dataease.extensions.view.dto.*; import io.dataease.extensions.view.filter.FilterTreeObj; +import io.dataease.i18n.Lang; import io.dataease.i18n.Translator; import io.dataease.license.config.XpackInteract; import io.dataease.utils.BeanUtils; @@ -133,10 +134,10 @@ public class ChartViewManege { /** * sceneId 为仪表板或者数据大屏id */ - public List listBySceneId(Long sceneId,String resourceTable) { + public List listBySceneId(Long sceneId, String resourceTable) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("scene_id", sceneId); - List chartViewDTOS = transChart(extChartViewMapper.selectListCustom(sceneId,resourceTable)); + List chartViewDTOS = transChart(extChartViewMapper.selectListCustom(sceneId, resourceTable)); if (!CollectionUtils.isEmpty(chartViewDTOS)) { List tableIds = chartViewDTOS.stream() .map(ChartViewDTO::getTableId) @@ -373,7 +374,7 @@ public class ChartViewManege { chartFieldCompareDTO.setType("none"); dto.setCompareCalc(chartFieldCompareDTO); - dto.setFormatterCfg(new FormatterCfgDTO()); + dto.setFormatterCfg(new FormatterCfgDTO().setUnitLanguage(Lang.isChinese() ? "ch" : "en")); dto.setSort("none"); dto.setFilter(Collections.emptyList()); diff --git a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java index 002fde41e5..3cd0e59853 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java +++ b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java @@ -18,6 +18,7 @@ import io.dataease.exportCenter.manage.ExportCenterManage; import io.dataease.exportCenter.util.ExportCenterUtils; import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO; import io.dataease.extensions.view.dto.*; +import io.dataease.i18n.Lang; import io.dataease.license.manage.F2CLicLimitedManage; import io.dataease.result.ResultCode; import io.dataease.utils.JsonUtil; @@ -459,7 +460,7 @@ public class ChartDataServer implements ChartDataApi { try { if ((viewInfo.getType().equalsIgnoreCase("table-normal") || viewInfo.getType().equalsIgnoreCase("table-info")) && (xAxis.get(j).getDeType().equals(DeTypeConstants.DE_INT) || xAxis.get(j).getDeType().equals(DeTypeConstants.DE_FLOAT))) { try { - FormatterCfgDTO formatterCfgDTO = xAxis.get(j).getFormatterCfg() == null ? new FormatterCfgDTO() : xAxis.get(j).getFormatterCfg(); + FormatterCfgDTO formatterCfgDTO = xAxis.get(j).getFormatterCfg() == null ? new FormatterCfgDTO().setUnitLanguage(Lang.isChinese() ? "ch" : "en") : xAxis.get(j).getFormatterCfg(); row.getCell(j).setCellStyle(styles.get(j)); row.getCell(j).setCellValue(Double.valueOf(cellValue(formatterCfgDTO, new BigDecimal(cellValObj.toString())))); } catch (Exception e) { diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/LabelSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/LabelSelector.vue index 886fea8921..51c51be610 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/LabelSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/LabelSelector.vue @@ -277,6 +277,8 @@ const init = () => { initFormatCfgUnit(state.labelForm.quotaLabelFormatter) initFormatCfgUnit(state.labelForm.totalFormatter) + console.log(state.labelForm) + if (chartType.value === 'liquid' && state.labelForm.fontSize < fontSizeList.value[0].value) { state.labelForm.fontSize = fontSizeList.value[0].value } diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue index 6603997fba..29b2e8a0ec 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/TooltipSelector.vue @@ -250,6 +250,9 @@ const init = () => { const customAttr = JSON.parse(JSON.stringify(chart.customAttr)) if (customAttr.tooltip) { state.tooltipForm = defaultsDeep(customAttr.tooltip, cloneDeep(DEFAULT_TOOLTIP)) + + initFormatCfgUnit(state.tooltipForm.tooltipFormatter) + formatterSelector.value?.blur() // 新增图表 const formatter = state.tooltipForm.seriesTooltipFormatter diff --git a/core/core-frontend/src/views/chart/components/editor/util/chart.ts b/core/core-frontend/src/views/chart/components/editor/util/chart.ts index 81e4f5410d..2483d38d53 100644 --- a/core/core-frontend/src/views/chart/components/editor/util/chart.ts +++ b/core/core-frontend/src/views/chart/components/editor/util/chart.ts @@ -1,6 +1,6 @@ import { useI18n } from '@/hooks/web/useI18n' import { deepCopy } from '@/utils/utils' -import { formatterItem } from '@/views/chart/components/js/formatter' +import { formatterItem, isEnLocal } from '@/views/chart/components/js/formatter' const { t } = useI18n() export const DEFAULT_COLOR_CASE: DeepPartial = { @@ -666,7 +666,7 @@ export const DEFAULT_XAXIS_STYLE: ChartAxisStyle = { }, axisLabelFormatter: { type: 'auto', - unitLanguage: 'ch', + unitLanguage: isEnLocal ? 'en' : 'ch', unit: 1, suffix: '', decimalCount: 2, @@ -713,7 +713,7 @@ export const DEFAULT_YAXIS_STYLE: ChartAxisStyle = { }, axisLabelFormatter: { type: 'auto', - unitLanguage: 'ch', + unitLanguage: isEnLocal ? 'en' : 'ch', unit: 1, suffix: '', decimalCount: 2, @@ -758,7 +758,7 @@ export const DEFAULT_YAXIS_EXT_STYLE: ChartAxisStyle = { }, axisLabelFormatter: { type: 'auto', - unitLanguage: 'ch', + unitLanguage: isEnLocal ? 'en' : 'ch', unit: 1, suffix: '', decimalCount: 2, diff --git a/core/core-frontend/src/views/chart/components/js/formatter.ts b/core/core-frontend/src/views/chart/components/js/formatter.ts index 41ee47b71b..1fef635612 100644 --- a/core/core-frontend/src/views/chart/components/js/formatter.ts +++ b/core/core-frontend/src/views/chart/components/js/formatter.ts @@ -7,7 +7,7 @@ export const isEnLocal = !['zh', 'zh-cn', 'zh-CN', 'tw'].includes(getLocale()) export const formatterItem = { type: 'auto', // auto,value,percent - unitLanguage: 'ch', + unitLanguage: isEnLocal ? 'en' : 'ch', unit: 1, // 换算单位 suffix: '', // 单位后缀 decimalCount: 2, // 小数位数 @@ -49,10 +49,10 @@ export function getUnitTypeValue(lang, value) { } export function initFormatCfgUnit(cfg) { - if (cfg.unitLanguage === undefined) { + if (cfg && cfg.unitLanguage === undefined) { cfg.unitLanguage = 'ch' } - if (cfg && isEnLocal && cfg.unitLanguage === 'ch') { + if (cfg && isEnLocal) { cfg.unitLanguage = 'en' } onChangeFormatCfgUnitLanguage(cfg, cfg.unitLanguage) diff --git a/sdk/common/src/main/java/io/dataease/i18n/Lang.java b/sdk/common/src/main/java/io/dataease/i18n/Lang.java index adeb160cf1..94500690e7 100644 --- a/sdk/common/src/main/java/io/dataease/i18n/Lang.java +++ b/sdk/common/src/main/java/io/dataease/i18n/Lang.java @@ -1,8 +1,12 @@ package io.dataease.i18n; +import io.dataease.utils.CacheUtils; import lombok.Getter; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import static io.dataease.constant.CacheConstant.UserCacheConstant.USER_COMMUNITY_LANGUAGE; + @Getter public enum Lang { @@ -43,4 +47,20 @@ public enum Lang { return null; } + public static boolean isChinese() { + String lang = null; + Object langObj = CacheUtils.get(USER_COMMUNITY_LANGUAGE, "de"); + if (ObjectUtils.isNotEmpty(langObj) && StringUtils.isNotBlank(langObj.toString())) { + lang = langObj.toString(); + } + + if (StringUtils.isBlank(lang)) { + return true; + } + if (StringUtils.startsWithIgnoreCase(lang, "zh")) { + return true; + } + return false; + } + } diff --git a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/FormatterCfgDTO.java b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/FormatterCfgDTO.java index 281ef7bcaf..f008457567 100644 --- a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/FormatterCfgDTO.java +++ b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/FormatterCfgDTO.java @@ -1,11 +1,13 @@ package io.dataease.extensions.view.dto; import lombok.Data; +import lombok.experimental.Accessors; /** * @Author Junjun */ @Data +@Accessors(chain = true) public class FormatterCfgDTO { private String type = "auto"; // auto,value,percent private String unitLanguage = "ch";