Merge branch 'dev' into pr@dev_one_dot_x

This commit is contained in:
dataeaseShu 2023-12-12 11:56:06 +08:00
commit 7e99c4d0ef
16 changed files with 170 additions and 36 deletions

View File

@ -87,7 +87,7 @@
qrtz_triggers.NEXT_FIRE_TIME
FROM dataset_table_task
left join dataset_table on dataset_table.id=dataset_table_task.table_id
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME and qrtz_triggers.TRIGGER_STATE != 'PAUSED'
where 1=1
<if test="rate != null and rate.size() > 0">
and dataset_table_task.rate in
@ -122,7 +122,18 @@
<if test="keyword != null">
and dataset_table_task.name like concat('%', #{keyword}, '%')
</if>
order by dataset_table_task.create_time desc
<choose>
<when test="orders!=null and orders.size > 0">
order by
<foreach collection="orders" item="item" open='' separator=',' close=''>
${item}
</foreach>
</when>
<otherwise>
order by dataset_table_task.create_time desc
</otherwise>
</choose>
</select>
<select id="userTaskList" resultMap="TaskResult" parameterType="io.dataease.controller.dataset.request.DatasetTaskGridRequest">
@ -130,8 +141,7 @@
`privileges`,dataset_table_task.* , qrtz_triggers.NEXT_FIRE_TIME
FROM dataset_table_task
left join dataset_table on dataset_table.id=dataset_table_task.table_id
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME and qrtz_triggers.TRIGGER_STATE != 'PAUSED'
where 1=1
<if test="rate != null and rate.size() > 0">
and dataset_table_task.rate in
@ -166,7 +176,17 @@
<if test="keyword != null">
and dataset_table_task.name like concat('%', #{keyword}, '%')
</if>
order by dataset_table_task.create_time desc
<choose>
<when test="orders!=null and orders.size > 0">
order by
<foreach collection="orders" item="item" open='' separator=',' close=''>
${item}
</foreach>
</when>
<otherwise>
order by dataset_table_task.create_time desc
</otherwise>
</choose>
</select>

View File

@ -425,4 +425,12 @@ public class ScheduleManager {
scheduler.triggerJob(jobKey);
}
public void pauseTrigger(TriggerKey triggerKey) throws SchedulerException {
scheduler.pauseTrigger(triggerKey);
}
public void resumeTrigger(TriggerKey triggerKey) throws SchedulerException {
scheduler.resumeTrigger(triggerKey);
}
}

View File

@ -1,5 +1,6 @@
package io.dataease.listener;
import io.dataease.commons.constants.TaskStatus;
import io.dataease.commons.utils.LogUtil;
import io.dataease.dto.dataset.DataSetTaskDTO;
import io.dataease.plugins.common.base.domain.DatasetTableTask;
@ -42,6 +43,9 @@ public class AppStartListener implements ApplicationListener<ApplicationReadyEve
} else {
scheduleService.addSchedule(task);
}
if(task.getStatus().equalsIgnoreCase(TaskStatus.Pending.name())){
scheduleService.pauseTrigger(task);
}
}
} catch (Exception e) {
e.printStackTrace();

View File

@ -21,17 +21,14 @@ import java.util.List;
public class DorisQueryProvider extends MysqlQueryProvider {
public String getSQLWithPage(boolean isTable, String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, PageInfo pageInfo) {
String limit = ((pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) ? " LIMIT " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize() + "," + pageInfo.getPageSize() : "");
if (isTable) {
return getSQLTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view);
return originalTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, true) + limit;
} else {
return getSQLAsTmpTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view);
return originalTableInfo("(" + sqlFix(sql) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, true) + limit;
}
}
public String getResultCount(boolean isTable, String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return null;
}
@Override
public String createRawQuerySQL(String table, List<DatasetTableField> fields, Datasource ds) {
String[] array = fields.stream().map(f -> {
@ -49,6 +46,6 @@ public class DorisQueryProvider extends MysqlQueryProvider {
}
public String getTotalCount(boolean isTable, String sql, Datasource ds) {
return null;
return null;
}
}

View File

@ -20,6 +20,7 @@ import io.dataease.plugins.common.request.chart.ChartExtFilterRequest;
import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDTO;
import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem;
import io.dataease.plugins.datasource.entity.Dateformat;
import io.dataease.plugins.datasource.entity.PageInfo;
import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.datasource.query.Utils;
import org.apache.commons.collections4.CollectionUtils;
@ -151,7 +152,7 @@ public class ImpalaQueryProvider extends QueryProvider {
if (customWheres != null) wheres.add(customWheres);
if (whereTrees != null) wheres.add(whereTrees);
if (StringUtils.isNotBlank(keyword)) {
String keyWhere = "("+transKeywordFilterList(tableObj, xFields, keyword)+")";
String keyWhere = "(" + transKeywordFilterList(tableObj, xFields, keyword) + ")";
wheres.add(keyWhere);
}
if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres);
@ -412,6 +413,13 @@ public class ImpalaQueryProvider extends QueryProvider {
// 外层再次套sql
List<SQLObj> orders = new ArrayList<>();
orders.addAll(xOrders);
if (CollectionUtils.isEmpty(xOrders)) {
orders.add(SQLObj.builder()
.orderField(String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, 0))
.orderAlias(String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, 0))
.orderDirection("ASC")
.build());
}
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("previewSql");
@ -432,6 +440,16 @@ public class ImpalaQueryProvider extends QueryProvider {
return st.render();
}
@Override
public String getSQLWithPage(boolean isTable, String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, PageInfo pageInfo) {
String limit = ((pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) ? " LIMIT " + pageInfo.getPageSize() + " OFFSET " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize() : "");
if (isTable) {
return originalTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit;
} else {
return originalTableInfo("(" + sqlFix(sql) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit;
}
}
@Override
public String getSQLTableInfo(String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return sqlLimit(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view), view);
@ -1375,8 +1393,4 @@ public class ImpalaQueryProvider extends QueryProvider {
"{\"dateformat\": \"yyyyMMdd HH:mm:ss\"}\n" +
"]", Dateformat.class);
}
public String getResultCount(boolean isTable, String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return null;
}
}

View File

@ -411,20 +411,20 @@ public class MysqlQueryProvider extends QueryProvider {
@Override
public String getSQLTableInfo(String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return sqlLimit(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view), view);
return sqlLimit(originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, false), view);
}
@Override
public String getSQLWithPage(boolean isTable, String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, PageInfo pageInfo) {
String limit = ((pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) ? " LIMIT " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize() + "," + pageInfo.getPageSize() : "");
if (isTable) {
return originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit;
return originalTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, false) + limit;
} else {
return originalTableInfo("(" + sqlFix(table) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit;
return originalTableInfo("(" + sqlFix(table) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, false) + limit;
}
}
private String originalTableInfo(String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
public String originalTableInfo(String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, boolean needOrder) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
@ -478,6 +478,13 @@ public class MysqlQueryProvider extends QueryProvider {
// 外层再次套sql
List<SQLObj> orders = new ArrayList<>();
orders.addAll(xOrders);
if (needOrder && CollectionUtils.isEmpty(xOrders)) {
orders.add(SQLObj.builder()
.orderField(String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, 0))
.orderAlias(String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, 0))
.orderDirection("ASC")
.build());
}
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("previewSql");
@ -1210,7 +1217,7 @@ public class MysqlQueryProvider extends QueryProvider {
return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null;
}
private String sqlFix(String sql) {
public String sqlFix(String sql) {
sql = sql.trim();
if (sql.lastIndexOf(";") == (sql.length() - 1)) {
sql = sql.substring(0, sql.length() - 1);

View File

@ -22,6 +22,7 @@ import io.dataease.plugins.common.request.permission.DataSetRowPermissionsTreeDT
import io.dataease.plugins.common.request.permission.DatasetRowPermissionsTreeItem;
import io.dataease.plugins.datasource.entity.Dateformat;
import io.dataease.plugins.datasource.entity.JdbcConfiguration;
import io.dataease.plugins.datasource.entity.PageInfo;
import io.dataease.plugins.datasource.query.QueryProvider;
import io.dataease.plugins.datasource.query.Utils;
import org.apache.commons.collections4.CollectionUtils;
@ -433,6 +434,10 @@ public class SqlserverQueryProvider extends QueryProvider {
@Override
public String getSQLTableInfo(String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return originTableInfo(table, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, true);
}
public String originTableInfo(String table, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, boolean needOrder) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
@ -487,6 +492,13 @@ public class SqlserverQueryProvider extends QueryProvider {
// 外层再次套sql
List<SQLObj> orders = new ArrayList<>();
orders.addAll(xOrders);
if (needOrder && CollectionUtils.isEmpty(xOrders)) {
orders.add(SQLObj.builder()
.orderField(String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, 0))
.orderAlias(String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, 0))
.orderDirection("ASC")
.build());
}
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("previewSql");
@ -511,6 +523,20 @@ public class SqlserverQueryProvider extends QueryProvider {
return st.render();
}
public String originSQLAsTmpTableInfo(String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, boolean needOrder) {
return originTableInfo("(" + sqlFix(sql) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, null, view, needOrder);
}
@Override
public String getSQLWithPage(boolean isTable, String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view, PageInfo pageInfo) {
String limit = ((pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) ? " OFFSET " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize() + " ROW FETCH NEXT " + pageInfo.getPageSize() + " ROW ONLY " : "");
if (isTable) {
return getSQLTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit;
} else {
return getSQLTableInfo("(" + sqlFix(sql) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view) + limit;
}
}
@Override
public String getSQLAsTmpTableInfo(String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return getSQLTableInfo("(" + sqlFix(sql) + ")", xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, null, view);
@ -1515,7 +1541,12 @@ public class SqlserverQueryProvider extends QueryProvider {
"]", Dateformat.class);
}
@Override
public String getResultCount(boolean isTable, String sql, List<ChartViewFieldDTO> xAxis, List<ChartFieldCustomFilterDTO> fieldCustomFilter, List<DataSetRowPermissionsTreeDTO> rowPermissionsTree, List<ChartExtFilterRequest> extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
return null;
if (isTable) {
return "SELECT COUNT(*) AS count from (" + originTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, false) + ") COUNT_TEMP";
} else {
return "SELECT COUNT(*) AS count from (" + originSQLAsTmpTableInfo(sql, xAxis, fieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, false) + ") COUNT_TEMP";
}
}
}

View File

@ -9,6 +9,7 @@ import io.dataease.plugins.common.base.domain.DatasetTableTask;
import io.dataease.plugins.common.entity.GlobalTaskEntity;
import org.apache.commons.lang3.StringUtils;
import org.quartz.JobKey;
import org.quartz.SchedulerException;
import org.quartz.TriggerKey;
import org.springframework.stereotype.Service;
@ -83,5 +84,14 @@ public class ScheduleService {
taskHandler.executeTask(scheduleManager, task);
}
public void pauseTrigger(DatasetTableTask datasetTableTask) throws SchedulerException {
TriggerKey triggerKey = new TriggerKey(datasetTableTask.getId(), datasetTableTask.getTableId());
scheduleManager.pauseTrigger(triggerKey);
}
public void resumeTrigger(DatasetTableTask datasetTableTask) throws SchedulerException {
TriggerKey triggerKey = new TriggerKey(datasetTableTask.getId(), datasetTableTask.getTableId());
scheduleManager.resumeTrigger(triggerKey);
}
}

View File

@ -11,6 +11,7 @@ import io.dataease.dto.dataset.DataSetTaskDTO;
import io.dataease.exception.DataEaseException;
import io.dataease.ext.ExtDataSetTaskMapper;
import io.dataease.i18n.Translator;
import io.dataease.job.sechedule.ScheduleManager;
import io.dataease.plugins.common.base.domain.*;
import io.dataease.plugins.common.base.mapper.DatasetTableMapper;
import io.dataease.plugins.common.base.mapper.DatasetTableTaskMapper;
@ -265,6 +266,8 @@ public class DataSetTableTaskService {
public List<DataSetTaskDTO> taskList4User(DatasetTaskGridRequest request) {
request.setUserId(null);
request.getOrders().add(0, "dataset_table_task.status desc");
request.getOrders().replaceAll(t -> t.replace("next_exec_time", "NEXT_FIRE_TIME"));
if (AuthUtils.getUser().getIsAdmin()) {
return extDataSetTaskMapper.taskList(request);
} else {
@ -309,6 +312,13 @@ public class DataSetTableTaskService {
DatasetTableTask record = new DatasetTableTask();
record.setStatus(datasetTableTask.getStatus());
datasetTableTaskMapper.updateByExampleSelective(record, datasetTableTaskExample);
if(datasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Pending.name())){
scheduleService.pauseTrigger(datasetTableTask);
}
if(datasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Underway.name())){
scheduleService.resumeTrigger(datasetTableTask);
}
}
public void execTask(DatasetTableTask datasetTableTask) throws Exception {

View File

@ -0,0 +1 @@
UPDATE `sys_user` set `enabled` = 0 where `user_id` = 2;

View File

@ -240,6 +240,9 @@ export default {
}
},
methods: {
styleChange() {
this.$store.commit('canvasChange')
},
openCustomSort() {
this.showCustomSort = true
},
@ -251,6 +254,7 @@ export default {
this.$nextTick(() => {
this.showCustomSort = false
})
this.styleChange()
},
positionAdjust() {
bus.$emit('change_panel_right_draw', true)

View File

@ -14,7 +14,7 @@
label="选项卡标题"
prop="titleShow"
>
<el-checkbox v-model="styleInfo.titleHide">隐藏</el-checkbox>
<el-checkbox v-model="styleInfo.titleHide" @change="styleChange">隐藏</el-checkbox>
</el-form-item>
<template v-if="!styleInfo.titleHide">
<el-form-item

View File

@ -199,7 +199,7 @@ export default {
if (this.$store.getters.uiInfo && this.$store.getters.uiInfo['ui.helpLink'] && this.$store.getters.uiInfo['ui.helpLink'].paramValue) {
return this.$store.getters.uiInfo['ui.helpLink'].paramValue
}
return 'https://dataease.io/docs/'
return 'https://dataease.io/docs/v1/'
},
/* topMenuColor() {
return this.$store.getters.uiInfo.topMenuColor

View File

@ -1210,7 +1210,7 @@ export const CHART_FONT_LETTER_SPACE = [
{ name: '10px', value: '10' }
]
export const NOT_SUPPORT_PAGE_DATASET = ['kylin', 'sqlServer', 'es', 'presto', 'ds_doris', 'StarRocks', 'impala']
export const NOT_SUPPORT_PAGE_DATASET = ['kylin', 'es', 'presto', 'StarRocks']
export const SUPPORT_Y_M = ['y', 'y_M', 'y_M_d']

View File

@ -129,6 +129,7 @@
@selection-change="handleSelectionChange"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
@sort-change="sortChange"
>
<el-table-column
type="selection"
@ -214,6 +215,7 @@
<el-table-column
key="nextExecTime"
prop="nextExecTime"
sortable="custom"
min-width="178"
:label="$t('dataset.task.next_exec_time')"
>
@ -342,7 +344,7 @@
<script>
import { columnOptions } from './options'
import { formatOrders } from '@/utils/index'
import {addOrder, formatOrders} from '@/utils/index'
import { datasetTaskList, post } from '@/api/dataset/dataset'
import { hasDataPermission } from '@/utils/permission'
import GridTable from '@/components/gridTable/index.vue'
@ -493,9 +495,18 @@ export default {
this.paginationConfig.pageSize = pageSize
this.search()
},
sortChange({ column, prop, order }) {
this.orderConditions = [];
if (!order) {
this.search(true);
return;
}
addOrder({ field: prop, value: order }, this.orderConditions);
this.search(true);
},
handleCurrentChange(currentPage) {
this.paginationConfig.currentPage = currentPage
this.search()
this.search(true)
},
initSearch() {
this.handleCurrentChange(1)

View File

@ -390,13 +390,23 @@ export default {
item.value = valueFormatter(item.data.value, yaxisExtList[item.data.i].formatterCfg)
}
})
return filter(originalItems, (item) => {
const v = item.data.key;
if (item.title === v && item.title === item.value && item.name === "key" || !names.includes(item.name)) {
return false;
// scatterscatterscatter
let hasScatter = false;
const list = filter(originalItems, (item) => {
if (item.data.chartType === 'scatter') {
if (!hasScatter) {
hasScatter = true;
item.name = item.data.name;
} else {
return false;
}
}
return true;
})
return list;
}
} : false;
@ -721,12 +731,15 @@ export default {
const setting = {
type: _chartType,
options: {
data: data,
data: map(data, (d) => {
d.chartType = _chartType
return d
}),
xField: 'key',
yField: 'value',
seriesField: 'name',
colorField: 'name',
isGroup: true,
isGroup: _chartType === "column" ? true : undefined,
meta: {
key: {
sync: true,
@ -776,11 +789,15 @@ export default {
const setting = {
type: _chartType,
options: {
data: data,
data: map(data, (d) => {
d.chartType = _chartType
return d
}),
xField: 'key',
yField: 'value',
seriesField: 'name',
isGroup: true,
colorField: 'name',
isGroup: _chartType === "column" ? true : undefined,
meta: {
key: {
sync: true,