mirror of
https://github.com/dataease/dataease.git
synced 2026-05-14 12:22:10 +08:00
fix(图表): 修复透视表条件样式日期字段动态值无效
This commit is contained in:
@@ -245,21 +245,25 @@ public class DefaultChartHandler extends AbstractChartPlugin {
|
||||
return list;
|
||||
}
|
||||
|
||||
protected List<ChartViewFieldDTO> getAssistFields(List<ChartSeniorAssistDTO> list, List<ChartViewFieldDTO> yAxis) {
|
||||
protected List<ChartViewFieldDTO> getAssistFields(List<ChartSeniorAssistDTO> list, List<ChartViewFieldDTO> axis) {
|
||||
return getAssistFields(list, axis, SQLConstants.FIELD_ALIAS_Y_PREFIX);
|
||||
}
|
||||
|
||||
protected List<ChartViewFieldDTO> getAssistFields(List<ChartSeniorAssistDTO> list, List<ChartViewFieldDTO> axis, String prefix) {
|
||||
List<ChartViewFieldDTO> res = new ArrayList<>();
|
||||
for (ChartSeniorAssistDTO dto : list) {
|
||||
DatasetTableFieldDTO curField = dto.getCurField();
|
||||
ChartViewFieldDTO yField = null;
|
||||
ChartViewFieldDTO targetField = null;
|
||||
String alias = "";
|
||||
for (int i = 0; i < yAxis.size(); i++) {
|
||||
ChartViewFieldDTO field = yAxis.get(i);
|
||||
for (int i = 0; i < axis.size(); i++) {
|
||||
ChartViewFieldDTO field = axis.get(i);
|
||||
if (Objects.equals(field.getId(), curField.getId())) {
|
||||
yField = field;
|
||||
alias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
|
||||
targetField = field;
|
||||
alias = String.format(prefix, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ObjectUtils.isEmpty(yField)) {
|
||||
if (ObjectUtils.isEmpty(targetField)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package io.dataease.chart.charts.impl.table;
|
||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
||||
import io.dataease.chart.charts.impl.GroupChartHandler;
|
||||
import io.dataease.constant.DeTypeConstants;
|
||||
import io.dataease.constant.SQLConstants;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.sql.SQLProvider;
|
||||
import io.dataease.engine.trans.Dimension2SQLObj;
|
||||
@@ -44,7 +45,16 @@ public class TablePivotHandler extends GroupChartHandler {
|
||||
var originSql = result.getQuerySql();
|
||||
var dynamicAssistFields = getDynamicThresholdFields(view);
|
||||
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
|
||||
var assistFields = getAssistFields(dynamicAssistFields, yAxis);
|
||||
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
|
||||
var dimAxis = new ArrayList<>(xAxis);
|
||||
var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt);
|
||||
if (xAxisExt != null) {
|
||||
dimAxis.addAll(xAxisExt);
|
||||
}
|
||||
var yAssistFields = getAssistFields(dynamicAssistFields, yAxis);
|
||||
var assistFields = new ArrayList<>(yAssistFields);
|
||||
var xAssistFields = getAssistFields(dynamicAssistFields, dimAxis, SQLConstants.FIELD_ALIAS_X_PREFIX);
|
||||
assistFields.addAll(xAssistFields);
|
||||
if (CollectionUtils.isNotEmpty(assistFields)) {
|
||||
var req = new DatasourceRequest();
|
||||
req.setIsCross(crossDs);
|
||||
|
||||
@@ -425,7 +425,7 @@ onMounted(() => {
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="12" style="display: flex; align-items: center">
|
||||
<el-col :offset="1" :span="11" style="display: flex; align-items: center">
|
||||
<el-radio-group
|
||||
class="icon-radio-group"
|
||||
v-model="alignConfig.align"
|
||||
|
||||
@@ -726,7 +726,7 @@ export function getConditions(chart: Chart) {
|
||||
for (let i = 0; i < conditions.length; i++) {
|
||||
const fieldItem = conditions[i]
|
||||
if (!fieldItem.conditions) continue;
|
||||
|
||||
|
||||
for (let j = 0; j < fieldItem.conditions.length; j++) {
|
||||
const rule = fieldItem.conditions[j]
|
||||
let targets = []
|
||||
@@ -775,7 +775,7 @@ export function getConditions(chart: Chart) {
|
||||
if (rowData?.id && rowData?.field === rowData.id) {
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
fill: mappingColor(value, defaultValueColor, rules, 'color', filedValueMap, rowData)
|
||||
}
|
||||
@@ -811,7 +811,7 @@ export function getConditions(chart: Chart) {
|
||||
|
||||
export function mappingColor(value, defaultColor, rules, type, filedValueMap?, rowData?) {
|
||||
let color = null
|
||||
|
||||
|
||||
// If called from old code (rules is a single field object), adapt it
|
||||
if (rules && !Array.isArray(rules) && rules.conditions) {
|
||||
const field = rules;
|
||||
@@ -823,12 +823,12 @@ export function mappingColor(value, defaultColor, rules, type, filedValueMap?, r
|
||||
let flag = false
|
||||
const t = rule
|
||||
let tv, max, min
|
||||
|
||||
|
||||
let checkValue = value;
|
||||
if (sourceField.dataeaseName && rowData) {
|
||||
checkValue = rowData[sourceField.dataeaseName];
|
||||
if (sourceField.dataeaseName && rowData?.[sourceField.dataeaseName]) {
|
||||
checkValue = rowData[sourceField.dataeaseName]
|
||||
}
|
||||
|
||||
|
||||
if (t.type === 'dynamic') {
|
||||
if (t.term === 'between') {
|
||||
max = parseFloat(getValue(t.dynamicMaxField, filedValueMap, rowData))
|
||||
@@ -844,7 +844,7 @@ export function mappingColor(value, defaultColor, rules, type, filedValueMap?, r
|
||||
tv = t.value
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const val = checkValue;
|
||||
|
||||
if (sourceField.deType === 2 || sourceField.deType === 3 || sourceField.deType === 4) {
|
||||
@@ -1012,7 +1012,7 @@ export function mappingColor(value, defaultColor, rules, type, filedValueMap?, r
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!color) {
|
||||
color = defaultColor;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user