mirror of
https://github.com/dataease/dataease.git
synced 2025-02-25 20:42:55 +08:00
feat: 文本卡
This commit is contained in:
parent
65aaff16a1
commit
63c4f5f2ac
@ -28,6 +28,7 @@ import io.dataease.listener.util.CacheUtils;
|
|||||||
import io.dataease.provider.ProviderFactory;
|
import io.dataease.provider.ProviderFactory;
|
||||||
import io.dataease.provider.datasource.DatasourceProvider;
|
import io.dataease.provider.datasource.DatasourceProvider;
|
||||||
import io.dataease.provider.QueryProvider;
|
import io.dataease.provider.QueryProvider;
|
||||||
|
import io.dataease.service.chart.util.ChartDataBuild;
|
||||||
import io.dataease.service.dataset.DataSetTableFieldsService;
|
import io.dataease.service.dataset.DataSetTableFieldsService;
|
||||||
import io.dataease.service.dataset.DataSetTableService;
|
import io.dataease.service.dataset.DataSetTableService;
|
||||||
import io.dataease.service.dataset.DataSetTableUnionService;
|
import io.dataease.service.dataset.DataSetTableUnionService;
|
||||||
@ -88,7 +89,7 @@ public class ChartViewService {
|
|||||||
Optional.ofNullable(chartView.getId()).ifPresent(id -> {
|
Optional.ofNullable(chartView.getId()).ifPresent(id -> {
|
||||||
CacheUtils.remove(JdbcConstants.VIEW_CACHE_KEY, id);
|
CacheUtils.remove(JdbcConstants.VIEW_CACHE_KEY, id);
|
||||||
});
|
});
|
||||||
return getOne(chartView.getId(),"panel_edit");
|
return getOne(chartView.getId(), "panel_edit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -223,16 +224,16 @@ public class ChartViewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public ChartViewDTO getOne(String id,String queryFrom){
|
public ChartViewDTO getOne(String id, String queryFrom) {
|
||||||
ChartViewDTO result;
|
ChartViewDTO result;
|
||||||
//仪表板编辑页面 从缓存表中取数据 缓存表中没有数据则进行插入
|
//仪表板编辑页面 从缓存表中取数据 缓存表中没有数据则进行插入
|
||||||
if(CommonConstants.VIEW_QUERY_FROM.PANEL_EDIT.equals(queryFrom)){
|
if (CommonConstants.VIEW_QUERY_FROM.PANEL_EDIT.equals(queryFrom)) {
|
||||||
result= extChartViewMapper.searchOneFromCache(id);
|
result = extChartViewMapper.searchOneFromCache(id);
|
||||||
if(result == null){
|
if (result == null) {
|
||||||
extChartViewMapper.copyToCache(id);
|
extChartViewMapper.copyToCache(id);
|
||||||
result = extChartViewMapper.searchOneFromCache(id);
|
result = extChartViewMapper.searchOneFromCache(id);
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
result = extChartViewMapper.searchOne(id);
|
result = extChartViewMapper.searchOne(id);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -249,7 +250,7 @@ public class ChartViewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ChartViewDTO getData(String id, ChartExtRequest request) throws Exception {
|
public ChartViewDTO getData(String id, ChartExtRequest request) throws Exception {
|
||||||
ChartViewDTO view = this.getOne(id,request.getQueryFrom());
|
ChartViewDTO view = this.getOne(id, request.getQueryFrom());
|
||||||
// 如果是从仪表板获取视图数据,则仪表板的查询模式,查询结果的数量,覆盖视图对应的属性
|
// 如果是从仪表板获取视图数据,则仪表板的查询模式,查询结果的数量,覆盖视图对应的属性
|
||||||
if (CommonConstants.VIEW_QUERY_FROM.PANEL.equals(request.getQueryFrom()) && CommonConstants.VIEW_RESULT_MODE.CUSTOM.equals(request.getResultMode())) {
|
if (CommonConstants.VIEW_QUERY_FROM.PANEL.equals(request.getQueryFrom()) && CommonConstants.VIEW_RESULT_MODE.CUSTOM.equals(request.getResultMode())) {
|
||||||
view.setResultMode(request.getResultMode());
|
view.setResultMode(request.getResultMode());
|
||||||
@ -336,6 +337,13 @@ public class ChartViewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (view.getType()) {
|
switch (view.getType()) {
|
||||||
|
case "label":
|
||||||
|
xAxis = xAxis.stream().filter(item -> !desensitizationList.contains(item.getDataeaseName()) && dataeaseNames.contains(item.getDataeaseName())).collect(Collectors.toList());
|
||||||
|
yAxis = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isEmpty(xAxis)) {
|
||||||
|
return emptyChartViewDTO(view);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "text":
|
case "text":
|
||||||
case "gauge":
|
case "gauge":
|
||||||
case "liquid":
|
case "liquid":
|
||||||
@ -654,42 +662,46 @@ public class ChartViewService {
|
|||||||
Map<String, Object> mapChart = new HashMap<>();
|
Map<String, Object> mapChart = new HashMap<>();
|
||||||
if (StringUtils.equalsIgnoreCase(view.getRender(), "echarts")) {
|
if (StringUtils.equalsIgnoreCase(view.getRender(), "echarts")) {
|
||||||
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
|
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
|
||||||
mapChart = transStackChartData(xAxis, yAxis, view, data, extStack, isDrill);
|
mapChart = ChartDataBuild.transStackChartData(xAxis, yAxis, view, data, extStack, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) {
|
||||||
mapChart = transScatterData(xAxis, yAxis, view, data, extBubble, isDrill);
|
mapChart = ChartDataBuild.transScatterData(xAxis, yAxis, view, data, extBubble, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "radar")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "radar")) {
|
||||||
mapChart = transRadarChartData(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transRadarChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "text")
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "text")
|
||||||
|| StringUtils.containsIgnoreCase(view.getType(), "gauge")
|
|| StringUtils.containsIgnoreCase(view.getType(), "gauge")
|
||||||
|| StringUtils.equalsIgnoreCase("liquid", view.getType())) {
|
|| StringUtils.equalsIgnoreCase("liquid", view.getType())) {
|
||||||
mapChart = transNormalChartData(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transNormalChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "chart-mix")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "chart-mix")) {
|
||||||
mapChart = transMixChartData(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transMixChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "label")) {
|
||||||
|
mapChart = ChartDataBuild.transLabelChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
} else {
|
} else {
|
||||||
mapChart = transChartData(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
}
|
}
|
||||||
} else if (StringUtils.equalsIgnoreCase(view.getRender(), "antv")) {
|
} else if (StringUtils.equalsIgnoreCase(view.getRender(), "antv")) {
|
||||||
if (StringUtils.containsIgnoreCase(view.getType(), "bar-stack")) {
|
if (StringUtils.containsIgnoreCase(view.getType(), "bar-stack")) {
|
||||||
mapChart = transStackChartDataAntV(xAxis, yAxis, view, data, extStack, isDrill);
|
mapChart = ChartDataBuild.transStackChartDataAntV(xAxis, yAxis, view, data, extStack, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "line-stack")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "line-stack")) {
|
||||||
mapChart = transStackChartDataAntV(xAxis, yAxis, view, data, extStack, isDrill);
|
mapChart = ChartDataBuild.transStackChartDataAntV(xAxis, yAxis, view, data, extStack, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) {
|
||||||
mapChart = transScatterDataAntV(xAxis, yAxis, view, data, extBubble, isDrill);
|
mapChart = ChartDataBuild.transScatterDataAntV(xAxis, yAxis, view, data, extBubble, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "radar")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "radar")) {
|
||||||
mapChart = transRadarChartDataAntV(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transRadarChartDataAntV(xAxis, yAxis, view, data, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "text")
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "text")
|
||||||
|| StringUtils.containsIgnoreCase(view.getType(), "gauge")
|
|| StringUtils.containsIgnoreCase(view.getType(), "gauge")
|
||||||
|| StringUtils.equalsIgnoreCase("liquid", view.getType())) {
|
|| StringUtils.equalsIgnoreCase("liquid", view.getType())) {
|
||||||
mapChart = transNormalChartData(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transNormalChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
} else if (StringUtils.containsIgnoreCase(view.getType(), "chart-mix")) {
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "chart-mix")) {
|
||||||
mapChart = transMixChartDataAntV(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transMixChartDataAntV(xAxis, yAxis, view, data, isDrill);
|
||||||
|
} else if (StringUtils.containsIgnoreCase(view.getType(), "label")) {
|
||||||
|
mapChart = ChartDataBuild.transLabelChartData(xAxis, yAxis, view, data, isDrill);
|
||||||
} else {
|
} else {
|
||||||
mapChart = transChartDataAntV(xAxis, yAxis, view, data, isDrill);
|
mapChart = ChartDataBuild.transChartDataAntV(xAxis, yAxis, view, data, isDrill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// table组件,明细表,也用于导出数据
|
// table组件,明细表,也用于导出数据
|
||||||
Map<String, Object> mapTableNormal = transTableNormal(xAxis, yAxis, view, data, extStack, desensitizationList);
|
Map<String, Object> mapTableNormal = ChartDataBuild.transTableNormal(xAxis, yAxis, view, data, extStack, desensitizationList);
|
||||||
|
|
||||||
map.putAll(mapChart);
|
map.putAll(mapChart);
|
||||||
map.putAll(mapTableNormal);
|
map.putAll(mapTableNormal);
|
||||||
@ -859,852 +871,6 @@ public class ChartViewService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// AntV
|
|
||||||
private Map<String, Object> transChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] row = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(row[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(row[i]);
|
|
||||||
} else {
|
|
||||||
a.append(row[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.containsIgnoreCase(view.getType(), "table")) {
|
|
||||||
for (int i = 0; i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
axisChartDataDTO.setName(a.toString());
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(row[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
if (j > -1) {
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
|
||||||
}
|
|
||||||
datas.add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
axisChartDataDTO.setName(a.toString());
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(row[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
|
||||||
datas.add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
map.put("datas", datas);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// AntV柱状堆叠图
|
|
||||||
private Map<String, Object> transStackChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(extStack)) {
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] row = data.get(i1);
|
|
||||||
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(row[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(row[i]);
|
|
||||||
} else {
|
|
||||||
a.append(row[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
axisChartDataDTO.setCategory(row[xAxis.size()]);
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int k = 0; k < xAxis.size(); k++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(k).getId());
|
|
||||||
chartDimensionDTO.setValue(row[k]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(yAxis)) {
|
|
||||||
int valueIndex = xAxis.size() + extStack.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(0).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[valueIndex]) ? null : new BigDecimal(row[valueIndex]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
datas.add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] row = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(row[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(row[i]);
|
|
||||||
} else {
|
|
||||||
a.append(row[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(row[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
|
||||||
datas.add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
map.put("datas", datas);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
//AntV scatter
|
|
||||||
private Map<String, Object> transScatterDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extBubble, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] row = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(row[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(row[i]);
|
|
||||||
} else {
|
|
||||||
a.append(row[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(row[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
|
||||||
// pop
|
|
||||||
if (CollectionUtils.isNotEmpty(extBubble)) {
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setPopSize(StringUtils.isEmpty(row[xAxis.size() + yAxis.size()]) ? null : new BigDecimal(row[xAxis.size() + yAxis.size()]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setPopSize(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
datas.add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
map.put("datas", datas);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// antv radar
|
|
||||||
private Map<String, Object> transRadarChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] row = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(row[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(row[i]);
|
|
||||||
} else {
|
|
||||||
a.append(row[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
axisChartDataDTO.setName(a.toString());
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(row[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
|
||||||
datas.add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
map.put("datas", datas);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// antV组合图形
|
|
||||||
private Map<String, Object> transMixChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(y.getChartType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] d = data.get(i1);
|
|
||||||
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int ii = 0; ii < xAxis.size(); ii++) {
|
|
||||||
if (ii == xAxis.size() - 1) {
|
|
||||||
a.append(d[ii]);
|
|
||||||
} else {
|
|
||||||
a.append(d[ii]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setName(a.toString());
|
|
||||||
axisChartDataDTO.setField(a.toString());
|
|
||||||
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(d[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
series.get(j).getData().add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("datas", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 基础图形
|
|
||||||
private Map<String, Object> transChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<String> x = new ArrayList<>();
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(view.getType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] d = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(d[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
series.get(j).getData().add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("x", x);
|
|
||||||
map.put("series", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 组合图形
|
|
||||||
private Map<String, Object> transMixChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<String> x = new ArrayList<>();
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(y.getChartType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] d = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(d[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
series.get(j).getData().add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("x", x);
|
|
||||||
map.put("series", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 常规图形
|
|
||||||
private Map<String, Object> transNormalChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<String> x = new ArrayList<>();
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(view.getType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (String[] d : data) {
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
try {
|
|
||||||
series.get(j).getData().add(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
series.get(j).getData().add(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("x", x);
|
|
||||||
map.put("series", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// radar图
|
|
||||||
private Map<String, Object> transRadarChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<String> x = new ArrayList<>();
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(view.getType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (String[] d : data) {
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
try {
|
|
||||||
series.get(j).getData().add(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
series.get(j).getData().add(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("x", x);
|
|
||||||
map.put("series", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 堆叠图
|
|
||||||
private Map<String, Object> transStackChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<String> x = new ArrayList<>();
|
|
||||||
List<String> stack = new ArrayList<>();
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(extStack)) {
|
|
||||||
AxisChartDataDTO defaultAxisChartDataDTO = new AxisChartDataDTO();
|
|
||||||
BigDecimal defaultValue = StringUtils.containsIgnoreCase(view.getType(), "line") ? new BigDecimal(0) : null;
|
|
||||||
defaultAxisChartDataDTO.setValue(defaultValue);
|
|
||||||
// 构建横轴
|
|
||||||
for (String[] d : data) {
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
}
|
|
||||||
x = x.stream().distinct().collect(Collectors.toList());
|
|
||||||
// 构建堆叠
|
|
||||||
for (String[] d : data) {
|
|
||||||
stack.add(d[xAxis.size()]);
|
|
||||||
}
|
|
||||||
stack = stack.stream().distinct().collect(Collectors.toList());
|
|
||||||
for (String s : stack) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(s);
|
|
||||||
series1.setType(view.getType());
|
|
||||||
List<Object> list = new ArrayList<>();
|
|
||||||
for (int i = 0; i < x.size(); i++) {
|
|
||||||
list.add(defaultAxisChartDataDTO);
|
|
||||||
}
|
|
||||||
series1.setData(list);
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (Series ss : series) {
|
|
||||||
for (int i = 0; i < x.size(); i++) {
|
|
||||||
for (String[] row : data) {
|
|
||||||
String stackColumn = row[xAxis.size()];
|
|
||||||
if (StringUtils.equals(ss.getName(), stackColumn)) {
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(row[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
if (j == xAxis.size() - 1) {
|
|
||||||
a.append(row[j]);
|
|
||||||
} else {
|
|
||||||
a.append(row[j]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.equals(a.toString(), x.get(i))) {
|
|
||||||
if (row.length > xAxis.size() + extStack.size()) {
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
|
||||||
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(0).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
|
|
||||||
for (int k = 0; k < xAxis.size(); k++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(k).getId());
|
|
||||||
chartDimensionDTO.setValue(row[k]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(extStack.get(0).getId());
|
|
||||||
chartDimensionDTO.setValue(row[xAxis.size()]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
String s = row[xAxis.size() + extStack.size()];
|
|
||||||
if (StringUtils.isNotEmpty(s)) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(s));
|
|
||||||
ss.getData().set(i, axisChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(view.getType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] d = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(d[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
axisChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
axisChartDataDTO.setQuotaList(quotaList);
|
|
||||||
try {
|
|
||||||
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
|
||||||
} catch (Exception e) {
|
|
||||||
axisChartDataDTO.setValue(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
series.get(j).getData().add(axisChartDataDTO);
|
|
||||||
}
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("x", x);
|
|
||||||
map.put("series", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 散点图
|
|
||||||
private Map<String, Object> transScatterData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extBubble, boolean isDrill) {
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
|
|
||||||
List<String> x = new ArrayList<>();
|
|
||||||
List<Series> series = new ArrayList<>();
|
|
||||||
for (ChartViewFieldDTO y : yAxis) {
|
|
||||||
Series series1 = new Series();
|
|
||||||
series1.setName(y.getName());
|
|
||||||
series1.setType(view.getType());
|
|
||||||
series1.setData(new ArrayList<>());
|
|
||||||
series.add(series1);
|
|
||||||
}
|
|
||||||
for (int i1 = 0; i1 < data.size(); i1++) {
|
|
||||||
String[] d = data.get(i1);
|
|
||||||
|
|
||||||
StringBuilder a = new StringBuilder();
|
|
||||||
if (isDrill) {
|
|
||||||
a.append(d[xAxis.size() - 1]);
|
|
||||||
} else {
|
|
||||||
for (int i = 0; i < xAxis.size(); i++) {
|
|
||||||
if (i == xAxis.size() - 1) {
|
|
||||||
a.append(d[i]);
|
|
||||||
} else {
|
|
||||||
a.append(d[i]).append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
x.add(a.toString());
|
|
||||||
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
|
||||||
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
|
||||||
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
|
||||||
ScatterChartDataDTO scatterChartDataDTO = new ScatterChartDataDTO();
|
|
||||||
|
|
||||||
for (int j = 0; j < xAxis.size(); j++) {
|
|
||||||
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
|
||||||
chartDimensionDTO.setId(xAxis.get(j).getId());
|
|
||||||
chartDimensionDTO.setValue(d[j]);
|
|
||||||
dimensionList.add(chartDimensionDTO);
|
|
||||||
}
|
|
||||||
scatterChartDataDTO.setDimensionList(dimensionList);
|
|
||||||
|
|
||||||
int j = i - xAxis.size();
|
|
||||||
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
|
||||||
chartQuotaDTO.setId(yAxis.get(j).getId());
|
|
||||||
quotaList.add(chartQuotaDTO);
|
|
||||||
scatterChartDataDTO.setQuotaList(quotaList);
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(extBubble) && extBubble.size() > 0) {
|
|
||||||
try {
|
|
||||||
scatterChartDataDTO.setValue(new Object[]{
|
|
||||||
a.toString(),
|
|
||||||
StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]),
|
|
||||||
StringUtils.isEmpty(d[xAxis.size() + yAxis.size()]) ? null : new BigDecimal(d[xAxis.size() + yAxis.size()])
|
|
||||||
});
|
|
||||||
} catch (Exception e) {
|
|
||||||
scatterChartDataDTO.setValue(new Object[]{a.toString(), new BigDecimal(0), new BigDecimal(0)});
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
scatterChartDataDTO.setValue(new Object[]{
|
|
||||||
a.toString(),
|
|
||||||
StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i])
|
|
||||||
});
|
|
||||||
} catch (Exception e) {
|
|
||||||
scatterChartDataDTO.setValue(new Object[]{a.toString(), new BigDecimal(0)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
series.get(j).getData().add(scatterChartDataDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map.put("x", x);
|
|
||||||
map.put("series", series);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 表格
|
|
||||||
private Map<String, Object> transTableNormal(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, List<String> desensitizationList) {
|
|
||||||
Map<String, Object> map = new TreeMap<>();
|
|
||||||
List<ChartViewFieldDTO> fields = new ArrayList<>();
|
|
||||||
List<Map<String, Object>> tableRow = new ArrayList<>();
|
|
||||||
if (ObjectUtils.isNotEmpty(xAxis)) {
|
|
||||||
fields.addAll(xAxis);
|
|
||||||
}
|
|
||||||
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
|
|
||||||
if (ObjectUtils.isNotEmpty(extStack)) {
|
|
||||||
fields.addAll(extStack);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fields.addAll(yAxis);
|
|
||||||
data.forEach(ele -> {
|
|
||||||
Map<String, Object> d = new HashMap<>();
|
|
||||||
for (int i = 0; i < fields.size(); i++) {
|
|
||||||
if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(fields.get(i).getDataeaseName())) {
|
|
||||||
d.put(fields.get(i).getDataeaseName(), ColumnPermissionConstants.Desensitization_desc);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
ChartViewFieldDTO chartViewFieldDTO = fields.get(i);
|
|
||||||
if (chartViewFieldDTO.getDeType() == 0 || chartViewFieldDTO.getDeType() == 1) {
|
|
||||||
d.put(fields.get(i).getDataeaseName(), StringUtils.isEmpty(ele[i]) ? "" : ele[i]);
|
|
||||||
} else if (chartViewFieldDTO.getDeType() == 2 || chartViewFieldDTO.getDeType() == 3) {
|
|
||||||
d.put(fields.get(i).getDataeaseName(), StringUtils.isEmpty(ele[i]) ? null : new BigDecimal(ele[i]).setScale(2, RoundingMode.HALF_UP));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tableRow.add(d);
|
|
||||||
});
|
|
||||||
map.put("fields", fields);
|
|
||||||
map.put("tableRow", tableRow);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkName(ChartViewWithBLOBs chartView) {
|
private void checkName(ChartViewWithBLOBs chartView) {
|
||||||
ChartViewExample chartViewExample = new ChartViewExample();
|
ChartViewExample chartViewExample = new ChartViewExample();
|
||||||
ChartViewExample.Criteria criteria = chartViewExample.createCriteria();
|
ChartViewExample.Criteria criteria = chartViewExample.createCriteria();
|
||||||
@ -1761,7 +927,7 @@ public class ChartViewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check permission
|
// check permission
|
||||||
private void checkPermission(String needPermission, DataSetTableDTO table, Long userId) {
|
private void checkPermission(String needPermission, DataSetTableDTO table, Long userId) {
|
||||||
if (ObjectUtils.isEmpty(table)) {
|
if (ObjectUtils.isEmpty(table)) {
|
||||||
throw new RuntimeException(Translator.get("i18n_dataset_delete"));
|
throw new RuntimeException(Translator.get("i18n_dataset_delete"));
|
||||||
}
|
}
|
||||||
@ -1774,11 +940,11 @@ public class ChartViewService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initViewCache(String panelId){
|
public void initViewCache(String panelId) {
|
||||||
extChartViewMapper.deleteCacheWithPanel(panelId);
|
extChartViewMapper.deleteCacheWithPanel(panelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetViewCache (String viewId){
|
public void resetViewCache(String viewId) {
|
||||||
extChartViewMapper.deleteViewCache(viewId);
|
extChartViewMapper.deleteViewCache(viewId);
|
||||||
|
|
||||||
extChartViewMapper.copyToCache(viewId);
|
extChartViewMapper.copyToCache(viewId);
|
||||||
|
@ -0,0 +1,894 @@
|
|||||||
|
package io.dataease.service.chart.util;
|
||||||
|
|
||||||
|
import io.dataease.base.domain.ChartViewWithBLOBs;
|
||||||
|
import io.dataease.commons.constants.ColumnPermissionConstants;
|
||||||
|
import io.dataease.dto.chart.*;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class ChartDataBuild {
|
||||||
|
// AntV
|
||||||
|
public static Map<String, Object> transChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] row = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(row[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(row[i]);
|
||||||
|
} else {
|
||||||
|
a.append(row[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.containsIgnoreCase(view.getType(), "table")) {
|
||||||
|
for (int i = 0; i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
axisChartDataDTO.setName(a.toString());
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(row[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
if (j > -1) {
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
||||||
|
}
|
||||||
|
datas.add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
axisChartDataDTO.setName(a.toString());
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(row[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
||||||
|
datas.add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put("datas", datas);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AntV柱状堆叠图
|
||||||
|
public static Map<String, Object> transStackChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(extStack)) {
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] row = data.get(i1);
|
||||||
|
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(row[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(row[i]);
|
||||||
|
} else {
|
||||||
|
a.append(row[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
axisChartDataDTO.setCategory(row[xAxis.size()]);
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int k = 0; k < xAxis.size(); k++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(k).getId());
|
||||||
|
chartDimensionDTO.setValue(row[k]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(yAxis)) {
|
||||||
|
int valueIndex = xAxis.size() + extStack.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(0).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(row[valueIndex]) ? null : new BigDecimal(row[valueIndex]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
datas.add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] row = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(row[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(row[i]);
|
||||||
|
} else {
|
||||||
|
a.append(row[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(row[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
||||||
|
datas.add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put("datas", datas);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
//AntV scatter
|
||||||
|
public static Map<String, Object> transScatterDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extBubble, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] row = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(row[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(row[i]);
|
||||||
|
} else {
|
||||||
|
a.append(row[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(row[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
||||||
|
// pop
|
||||||
|
if (CollectionUtils.isNotEmpty(extBubble)) {
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setPopSize(StringUtils.isEmpty(row[xAxis.size() + yAxis.size()]) ? null : new BigDecimal(row[xAxis.size() + yAxis.size()]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setPopSize(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
datas.add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put("datas", datas);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// antv radar
|
||||||
|
public static Map<String, Object> transRadarChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<AxisChartDataAntVDTO> datas = new ArrayList<>();
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] row = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(row[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(row[i]);
|
||||||
|
} else {
|
||||||
|
a.append(row[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
axisChartDataDTO.setName(a.toString());
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(row[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(row[i]) ? null : new BigDecimal(row[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setCategory(yAxis.get(j).getName());
|
||||||
|
datas.add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put("datas", datas);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// antV组合图形
|
||||||
|
public static Map<String, Object> transMixChartDataAntV(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(y.getChartType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] d = data.get(i1);
|
||||||
|
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
AxisChartDataAntVDTO axisChartDataDTO = new AxisChartDataAntVDTO();
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int ii = 0; ii < xAxis.size(); ii++) {
|
||||||
|
if (ii == xAxis.size() - 1) {
|
||||||
|
a.append(d[ii]);
|
||||||
|
} else {
|
||||||
|
a.append(d[ii]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setName(a.toString());
|
||||||
|
axisChartDataDTO.setField(a.toString());
|
||||||
|
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(d[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
series.get(j).getData().add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("datas", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 基础图形
|
||||||
|
public static Map<String, Object> transChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(view.getType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] d = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(d[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
series.get(j).getData().add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组合图形
|
||||||
|
public static Map<String, Object> transMixChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(y.getChartType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] d = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(d[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
series.get(j).getData().add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文本卡图形
|
||||||
|
public static Map<String, Object> transLabelChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(xAxis.get(0).getName());
|
||||||
|
series1.setType(view.getType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
for (String[] d : data) {
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
series.get(0).getData().add(a.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 常规图形
|
||||||
|
public static Map<String, Object> transNormalChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(view.getType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (String[] d : data) {
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
try {
|
||||||
|
series.get(j).getData().add(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
series.get(j).getData().add(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// radar图
|
||||||
|
public static Map<String, Object> transRadarChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(view.getType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (String[] d : data) {
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
try {
|
||||||
|
series.get(j).getData().add(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
series.get(j).getData().add(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 堆叠图
|
||||||
|
public static Map<String, Object> transStackChartData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<String> stack = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(extStack)) {
|
||||||
|
AxisChartDataDTO defaultAxisChartDataDTO = new AxisChartDataDTO();
|
||||||
|
BigDecimal defaultValue = StringUtils.containsIgnoreCase(view.getType(), "line") ? new BigDecimal(0) : null;
|
||||||
|
defaultAxisChartDataDTO.setValue(defaultValue);
|
||||||
|
// 构建横轴
|
||||||
|
for (String[] d : data) {
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
}
|
||||||
|
x = x.stream().distinct().collect(Collectors.toList());
|
||||||
|
// 构建堆叠
|
||||||
|
for (String[] d : data) {
|
||||||
|
stack.add(d[xAxis.size()]);
|
||||||
|
}
|
||||||
|
stack = stack.stream().distinct().collect(Collectors.toList());
|
||||||
|
for (String s : stack) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(s);
|
||||||
|
series1.setType(view.getType());
|
||||||
|
List<Object> list = new ArrayList<>();
|
||||||
|
for (int i = 0; i < x.size(); i++) {
|
||||||
|
list.add(defaultAxisChartDataDTO);
|
||||||
|
}
|
||||||
|
series1.setData(list);
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (Series ss : series) {
|
||||||
|
for (int i = 0; i < x.size(); i++) {
|
||||||
|
for (String[] row : data) {
|
||||||
|
String stackColumn = row[xAxis.size()];
|
||||||
|
if (StringUtils.equals(ss.getName(), stackColumn)) {
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(row[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
if (j == xAxis.size() - 1) {
|
||||||
|
a.append(row[j]);
|
||||||
|
} else {
|
||||||
|
a.append(row[j]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.equals(a.toString(), x.get(i))) {
|
||||||
|
if (row.length > xAxis.size() + extStack.size()) {
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
||||||
|
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(0).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
|
||||||
|
for (int k = 0; k < xAxis.size(); k++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(k).getId());
|
||||||
|
chartDimensionDTO.setValue(row[k]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(extStack.get(0).getId());
|
||||||
|
chartDimensionDTO.setValue(row[xAxis.size()]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
String s = row[xAxis.size() + extStack.size()];
|
||||||
|
if (StringUtils.isNotEmpty(s)) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(s));
|
||||||
|
ss.getData().set(i, axisChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(view.getType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] d = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
AxisChartDataDTO axisChartDataDTO = new AxisChartDataDTO();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(d[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
axisChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
axisChartDataDTO.setQuotaList(quotaList);
|
||||||
|
try {
|
||||||
|
axisChartDataDTO.setValue(StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]));
|
||||||
|
} catch (Exception e) {
|
||||||
|
axisChartDataDTO.setValue(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
series.get(j).getData().add(axisChartDataDTO);
|
||||||
|
}
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 散点图
|
||||||
|
public static Map<String, Object> transScatterData(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extBubble, boolean isDrill) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
|
||||||
|
List<String> x = new ArrayList<>();
|
||||||
|
List<Series> series = new ArrayList<>();
|
||||||
|
for (ChartViewFieldDTO y : yAxis) {
|
||||||
|
Series series1 = new Series();
|
||||||
|
series1.setName(y.getName());
|
||||||
|
series1.setType(view.getType());
|
||||||
|
series1.setData(new ArrayList<>());
|
||||||
|
series.add(series1);
|
||||||
|
}
|
||||||
|
for (int i1 = 0; i1 < data.size(); i1++) {
|
||||||
|
String[] d = data.get(i1);
|
||||||
|
|
||||||
|
StringBuilder a = new StringBuilder();
|
||||||
|
if (isDrill) {
|
||||||
|
a.append(d[xAxis.size() - 1]);
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < xAxis.size(); i++) {
|
||||||
|
if (i == xAxis.size() - 1) {
|
||||||
|
a.append(d[i]);
|
||||||
|
} else {
|
||||||
|
a.append(d[i]).append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x.add(a.toString());
|
||||||
|
for (int i = xAxis.size(); i < xAxis.size() + yAxis.size(); i++) {
|
||||||
|
List<ChartDimensionDTO> dimensionList = new ArrayList<>();
|
||||||
|
List<ChartQuotaDTO> quotaList = new ArrayList<>();
|
||||||
|
ScatterChartDataDTO scatterChartDataDTO = new ScatterChartDataDTO();
|
||||||
|
|
||||||
|
for (int j = 0; j < xAxis.size(); j++) {
|
||||||
|
ChartDimensionDTO chartDimensionDTO = new ChartDimensionDTO();
|
||||||
|
chartDimensionDTO.setId(xAxis.get(j).getId());
|
||||||
|
chartDimensionDTO.setValue(d[j]);
|
||||||
|
dimensionList.add(chartDimensionDTO);
|
||||||
|
}
|
||||||
|
scatterChartDataDTO.setDimensionList(dimensionList);
|
||||||
|
|
||||||
|
int j = i - xAxis.size();
|
||||||
|
ChartQuotaDTO chartQuotaDTO = new ChartQuotaDTO();
|
||||||
|
chartQuotaDTO.setId(yAxis.get(j).getId());
|
||||||
|
quotaList.add(chartQuotaDTO);
|
||||||
|
scatterChartDataDTO.setQuotaList(quotaList);
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(extBubble) && extBubble.size() > 0) {
|
||||||
|
try {
|
||||||
|
scatterChartDataDTO.setValue(new Object[]{
|
||||||
|
a.toString(),
|
||||||
|
StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i]),
|
||||||
|
StringUtils.isEmpty(d[xAxis.size() + yAxis.size()]) ? null : new BigDecimal(d[xAxis.size() + yAxis.size()])
|
||||||
|
});
|
||||||
|
} catch (Exception e) {
|
||||||
|
scatterChartDataDTO.setValue(new Object[]{a.toString(), new BigDecimal(0), new BigDecimal(0)});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
scatterChartDataDTO.setValue(new Object[]{
|
||||||
|
a.toString(),
|
||||||
|
StringUtils.isEmpty(d[i]) ? null : new BigDecimal(d[i])
|
||||||
|
});
|
||||||
|
} catch (Exception e) {
|
||||||
|
scatterChartDataDTO.setValue(new Object[]{a.toString(), new BigDecimal(0)});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
series.get(j).getData().add(scatterChartDataDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("x", x);
|
||||||
|
map.put("series", series);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表格
|
||||||
|
public static Map<String, Object> transTableNormal(List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, ChartViewWithBLOBs view, List<String[]> data, List<ChartViewFieldDTO> extStack, List<String> desensitizationList) {
|
||||||
|
Map<String, Object> map = new TreeMap<>();
|
||||||
|
List<ChartViewFieldDTO> fields = new ArrayList<>();
|
||||||
|
List<Map<String, Object>> tableRow = new ArrayList<>();
|
||||||
|
if (ObjectUtils.isNotEmpty(xAxis)) {
|
||||||
|
fields.addAll(xAxis);
|
||||||
|
}
|
||||||
|
if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
|
||||||
|
if (ObjectUtils.isNotEmpty(extStack)) {
|
||||||
|
fields.addAll(extStack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fields.addAll(yAxis);
|
||||||
|
data.forEach(ele -> {
|
||||||
|
Map<String, Object> d = new HashMap<>();
|
||||||
|
for (int i = 0; i < fields.size(); i++) {
|
||||||
|
if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(fields.get(i).getDataeaseName())) {
|
||||||
|
d.put(fields.get(i).getDataeaseName(), ColumnPermissionConstants.Desensitization_desc);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChartViewFieldDTO chartViewFieldDTO = fields.get(i);
|
||||||
|
if (chartViewFieldDTO.getDeType() == 0 || chartViewFieldDTO.getDeType() == 1) {
|
||||||
|
d.put(fields.get(i).getDataeaseName(), StringUtils.isEmpty(ele[i]) ? "" : ele[i]);
|
||||||
|
} else if (chartViewFieldDTO.getDeType() == 2 || chartViewFieldDTO.getDeType() == 3) {
|
||||||
|
d.put(fields.get(i).getDataeaseName(), StringUtils.isEmpty(ele[i]) ? null : new BigDecimal(ele[i]).setScale(2, RoundingMode.HALF_UP));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tableRow.add(d);
|
||||||
|
});
|
||||||
|
map.put("fields", fields);
|
||||||
|
map.put("tableRow", tableRow);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
@ -2,13 +2,13 @@
|
|||||||
<div ref="tableContainer" :style="bg_class" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;">
|
<div ref="tableContainer" :style="bg_class" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;">
|
||||||
<p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p>
|
<p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p>
|
||||||
<div
|
<div
|
||||||
v-if="chart.data && chart.data.datas && chart.data.datas.length > 0"
|
v-if="chart.data && chart.data.series && chart.data.series.length > 0"
|
||||||
id="label-content"
|
id="label-content"
|
||||||
:style="content_class"
|
:style="content_class"
|
||||||
>
|
>
|
||||||
<span :style="label_class">
|
<span :style="label_class">
|
||||||
<p :style="label_content_class">
|
<p v-if="chart.data.series[0].data && chart.data.series[0].data.length > 0" :style="label_content_class">
|
||||||
{{ chart.data.datas[0].name }}
|
{{ chart.data.series[0].data[0] }}
|
||||||
</p>
|
</p>
|
||||||
</span>
|
</span>
|
||||||
<!-- 字段名暂时隐藏-->
|
<!-- 字段名暂时隐藏-->
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-row v-loading="loading" style="height: 100%;overflow-y: hidden;width: 100%;border-left: 1px solid #E6E6E6">
|
<el-row v-loading="loading" style="height: 100%;overflow-y: hidden;width: 100%;border-left: 1px solid #E6E6E6">
|
||||||
<el-tooltip :content="$t('chart.draw_back')">
|
<el-tooltip :content="$t('chart.draw_back')">
|
||||||
<el-button class="el-icon-d-arrow-right" style="position:absolute;left: 4px;top: 5px;z-index: 1000" size="mini" circle @click="closePanelEdit" />
|
<el-button
|
||||||
|
class="el-icon-d-arrow-right"
|
||||||
|
style="position:absolute;left: 4px;top: 5px;z-index: 1000"
|
||||||
|
size="mini"
|
||||||
|
circle
|
||||||
|
@click="closePanelEdit"
|
||||||
|
/>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<!-- <i class="el-icon-d-arrow-right" style="position:absolute;left: 4px;top: 11px"></i>-->
|
<!-- <i class="el-icon-d-arrow-right" style="position:absolute;left: 4px;top: 11px"></i>-->
|
||||||
<el-row style="height: 40px;" class="padding-lr">
|
<el-row style="height: 40px;" class="padding-lr">
|
||||||
@ -299,18 +305,28 @@
|
|||||||
class="padding-lr"
|
class="padding-lr"
|
||||||
>
|
>
|
||||||
<span style="width: 80px;text-align: right;">
|
<span style="width: 80px;text-align: right;">
|
||||||
<span v-if="view.type && view.type.includes('table')">{{ $t('chart.drag_block_table_data_column') }}</span>
|
<span v-if="view.type && view.type.includes('table')">{{
|
||||||
|
$t('chart.drag_block_table_data_column')
|
||||||
|
}}</span>
|
||||||
<span
|
<span
|
||||||
v-else-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('scatter') || view.type === 'chart-mix' || view.type === 'waterfall')"
|
v-else-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('scatter') || view.type === 'chart-mix' || view.type === 'waterfall')"
|
||||||
>{{ $t('chart.drag_block_type_axis') }}</span>
|
>{{ $t('chart.drag_block_type_axis') }}</span>
|
||||||
<span
|
<span
|
||||||
v-else-if="view.type && view.type.includes('pie')"
|
v-else-if="view.type && view.type.includes('pie')"
|
||||||
>{{ $t('chart.drag_block_pie_label') }}</span>
|
>{{ $t('chart.drag_block_pie_label') }}</span>
|
||||||
<span v-else-if="view.type && view.type.includes('funnel')">{{ $t('chart.drag_block_funnel_split') }}</span>
|
<span v-else-if="view.type && view.type.includes('funnel')">{{
|
||||||
<span v-else-if="view.type && view.type.includes('radar')">{{ $t('chart.drag_block_radar_label') }}</span>
|
$t('chart.drag_block_funnel_split')
|
||||||
|
}}</span>
|
||||||
|
<span v-else-if="view.type && view.type.includes('radar')">{{
|
||||||
|
$t('chart.drag_block_radar_label')
|
||||||
|
}}</span>
|
||||||
<span v-else-if="view.type && view.type === 'map'">{{ $t('chart.area') }}</span>
|
<span v-else-if="view.type && view.type === 'map'">{{ $t('chart.area') }}</span>
|
||||||
<span v-else-if="view.type && view.type.includes('treemap')">{{ $t('chart.drag_block_treemap_label') }}</span>
|
<span v-else-if="view.type && view.type.includes('treemap')">{{
|
||||||
<span v-else-if="view.type && view.type === 'word-cloud'">{{ $t('chart.drag_block_word_cloud_label') }}</span>
|
$t('chart.drag_block_treemap_label')
|
||||||
|
}}</span>
|
||||||
|
<span v-else-if="view.type && view.type === 'word-cloud'">{{
|
||||||
|
$t('chart.drag_block_word_cloud_label')
|
||||||
|
}}</span>
|
||||||
<span v-else-if="view.type && view.type === 'label'">{{ $t('chart.drag_block_label') }}</span>
|
<span v-else-if="view.type && view.type === 'label'">{{ $t('chart.drag_block_label') }}</span>
|
||||||
/
|
/
|
||||||
<span v-if="view.type && view.type !== 'table-info'">{{ $t('chart.dimension') }}</span>
|
<span v-if="view.type && view.type !== 'table-info'">{{ $t('chart.dimension') }}</span>
|
||||||
@ -348,28 +364,46 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!--yaxis-->
|
<!--yaxis-->
|
||||||
<el-row v-if="view.type !=='table-info' && view.type !=='label'" class="padding-lr" style="margin-top: 6px;">
|
<el-row
|
||||||
|
v-if="view.type !=='table-info' && view.type !=='label'"
|
||||||
|
class="padding-lr"
|
||||||
|
style="margin-top: 6px;"
|
||||||
|
>
|
||||||
<span style="width: 80px;text-align: right;">
|
<span style="width: 80px;text-align: right;">
|
||||||
<span v-if="view.type && view.type.includes('table')">{{ $t('chart.drag_block_table_data_column') }}</span>
|
<span v-if="view.type && view.type.includes('table')">{{
|
||||||
|
$t('chart.drag_block_table_data_column')
|
||||||
|
}}</span>
|
||||||
<span
|
<span
|
||||||
v-else-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('scatter') || view.type === 'waterfall')"
|
v-else-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('scatter') || view.type === 'waterfall')"
|
||||||
>{{ $t('chart.drag_block_value_axis') }}</span>
|
>{{ $t('chart.drag_block_value_axis') }}</span>
|
||||||
<span
|
<span
|
||||||
v-else-if="view.type && view.type.includes('pie')"
|
v-else-if="view.type && view.type.includes('pie')"
|
||||||
>{{ $t('chart.drag_block_pie_angel') }}</span>
|
>{{ $t('chart.drag_block_pie_angel') }}</span>
|
||||||
<span v-else-if="view.type && view.type.includes('funnel')">{{ $t('chart.drag_block_funnel_width') }}</span>
|
<span v-else-if="view.type && view.type.includes('funnel')">{{
|
||||||
<span v-else-if="view.type && view.type.includes('radar')">{{ $t('chart.drag_block_radar_length') }}</span>
|
$t('chart.drag_block_funnel_width')
|
||||||
<span v-else-if="view.type && view.type.includes('gauge')">{{ $t('chart.drag_block_gauge_angel') }}</span>
|
}}</span>
|
||||||
|
<span v-else-if="view.type && view.type.includes('radar')">{{
|
||||||
|
$t('chart.drag_block_radar_length')
|
||||||
|
}}</span>
|
||||||
|
<span v-else-if="view.type && view.type.includes('gauge')">{{
|
||||||
|
$t('chart.drag_block_gauge_angel')
|
||||||
|
}}</span>
|
||||||
<span
|
<span
|
||||||
v-else-if="view.type && view.type.includes('text')"
|
v-else-if="view.type && view.type.includes('text')"
|
||||||
>{{ $t('chart.drag_block_label_value') }}</span>
|
>{{ $t('chart.drag_block_label_value') }}</span>
|
||||||
<span v-else-if="view.type && view.type === 'map'">{{ $t('chart.chart_data') }}</span>
|
<span v-else-if="view.type && view.type === 'map'">{{ $t('chart.chart_data') }}</span>
|
||||||
<span v-else-if="view.type && view.type.includes('tree')">{{ $t('chart.drag_block_treemap_size') }}</span>
|
<span v-else-if="view.type && view.type.includes('tree')">{{
|
||||||
<span v-else-if="view.type && view.type === 'chart-mix'">{{ $t('chart.drag_block_value_axis_main') }}</span>
|
$t('chart.drag_block_treemap_size')
|
||||||
|
}}</span>
|
||||||
|
<span v-else-if="view.type && view.type === 'chart-mix'">{{
|
||||||
|
$t('chart.drag_block_value_axis_main')
|
||||||
|
}}</span>
|
||||||
<span
|
<span
|
||||||
v-else-if="view.type && view.type === 'liquid'"
|
v-else-if="view.type && view.type === 'liquid'"
|
||||||
>{{ $t('chart.drag_block_progress') }}</span>
|
>{{ $t('chart.drag_block_progress') }}</span>
|
||||||
<span v-else-if="view.type && view.type === 'word-cloud'">{{ $t('chart.drag_block_word_cloud_size') }}</span>
|
<span v-else-if="view.type && view.type === 'word-cloud'">{{
|
||||||
|
$t('chart.drag_block_word_cloud_size')
|
||||||
|
}}</span>
|
||||||
/
|
/
|
||||||
<span>{{ $t('chart.quota') }}</span>
|
<span>{{ $t('chart.quota') }}</span>
|
||||||
</span>
|
</span>
|
||||||
@ -849,22 +883,49 @@
|
|||||||
style="overflow:auto;border-right: 1px solid #e6e6e6;height: 100%;width: 100%;"
|
style="overflow:auto;border-right: 1px solid #e6e6e6;height: 100%;width: 100%;"
|
||||||
class="attr-style theme-border-class"
|
class="attr-style theme-border-class"
|
||||||
>
|
>
|
||||||
<el-row v-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('mix'))">
|
<el-row
|
||||||
|
v-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('mix'))"
|
||||||
|
>
|
||||||
<span class="padding-lr">{{ $t('chart.senior_cfg') }}</span>
|
<span class="padding-lr">{{ $t('chart.senior_cfg') }}</span>
|
||||||
<el-collapse v-model="attrActiveNames" class="style-collapse">
|
<el-collapse v-model="attrActiveNames" class="style-collapse">
|
||||||
<el-collapse-item name="function" :title="$t('chart.function_cfg')">
|
<el-collapse-item name="function" :title="$t('chart.function_cfg')">
|
||||||
<function-cfg :param="param" class="attr-selector" :chart="chart" @onFunctionCfgChange="onFunctionCfgChange" />
|
<function-cfg
|
||||||
|
:param="param"
|
||||||
|
class="attr-selector"
|
||||||
|
:chart="chart"
|
||||||
|
@onFunctionCfgChange="onFunctionCfgChange"
|
||||||
|
/>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row v-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('mix') || view.type.includes('gauge'))">
|
<el-row
|
||||||
|
v-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('mix') || view.type.includes('gauge'))"
|
||||||
|
>
|
||||||
<span class="padding-lr">{{ $t('chart.analyse_cfg') }}</span>
|
<span class="padding-lr">{{ $t('chart.analyse_cfg') }}</span>
|
||||||
<el-collapse v-model="styleActiveNames" class="style-collapse">
|
<el-collapse v-model="styleActiveNames" class="style-collapse">
|
||||||
<el-collapse-item v-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('mix'))" name="analyse" :title="$t('chart.assist_line')">
|
<el-collapse-item
|
||||||
<assist-line :param="param" class="attr-selector" :chart="chart" @onAssistLineChange="onAssistLineChange" />
|
v-if="view.type && (view.type.includes('bar') || view.type.includes('line') || view.type.includes('mix'))"
|
||||||
|
name="analyse"
|
||||||
|
:title="$t('chart.assist_line')"
|
||||||
|
>
|
||||||
|
<assist-line
|
||||||
|
:param="param"
|
||||||
|
class="attr-selector"
|
||||||
|
:chart="chart"
|
||||||
|
@onAssistLineChange="onAssistLineChange"
|
||||||
|
/>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item v-if="view.type && (view.type.includes('gauge'))" name="threshold" :title="$t('chart.threshold')">
|
<el-collapse-item
|
||||||
<threshold :param="param" class="attr-selector" :chart="chart" @onThresholdChange="onThresholdChange" />
|
v-if="view.type && (view.type.includes('gauge'))"
|
||||||
|
name="threshold"
|
||||||
|
:title="$t('chart.threshold')"
|
||||||
|
>
|
||||||
|
<threshold
|
||||||
|
:param="param"
|
||||||
|
class="attr-selector"
|
||||||
|
:chart="chart"
|
||||||
|
@onThresholdChange="onThresholdChange"
|
||||||
|
/>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -1065,7 +1126,6 @@ import {
|
|||||||
post,
|
post,
|
||||||
getChartDetails,
|
getChartDetails,
|
||||||
save2Cache,
|
save2Cache,
|
||||||
resetViewCache,
|
|
||||||
resetViewCacheCallBack
|
resetViewCacheCallBack
|
||||||
} from '@/api/chart/chart'
|
} from '@/api/chart/chart'
|
||||||
import DimensionItem from '../components/drag-item/DimensionItem'
|
import DimensionItem from '../components/drag-item/DimensionItem'
|
||||||
@ -1138,6 +1198,7 @@ import AssistLine from '@/views/chart/components/senior/AssistLine'
|
|||||||
import Threshold from '@/views/chart/components/senior/Threshold'
|
import Threshold from '@/views/chart/components/senior/Threshold'
|
||||||
import TotalCfg from '@/views/chart/components/shape-attr/TotalCfg'
|
import TotalCfg from '@/views/chart/components/shape-attr/TotalCfg'
|
||||||
import LabelNormalText from '@/views/chart/components/normal/LabelNormalText'
|
import LabelNormalText from '@/views/chart/components/normal/LabelNormalText'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ChartEdit',
|
name: 'ChartEdit',
|
||||||
components: {
|
components: {
|
||||||
@ -1393,10 +1454,10 @@ export default {
|
|||||||
},
|
},
|
||||||
buildParam(getData, trigger, needRefreshGroup = false, switchType = false) {
|
buildParam(getData, trigger, needRefreshGroup = false, switchType = false) {
|
||||||
if (!this.view.resultCount ||
|
if (!this.view.resultCount ||
|
||||||
this.view.resultCount === '' ||
|
this.view.resultCount === '' ||
|
||||||
isNaN(Number(this.view.resultCount)) ||
|
isNaN(Number(this.view.resultCount)) ||
|
||||||
String(this.view.resultCount).includes('.') ||
|
String(this.view.resultCount).includes('.') ||
|
||||||
parseInt(this.view.resultCount) < 1) {
|
parseInt(this.view.resultCount) < 1) {
|
||||||
this.view.resultCount = '1000'
|
this.view.resultCount = '1000'
|
||||||
}
|
}
|
||||||
if (switchType && (this.view.type === 'table-info' || this.chart.type === 'table-info') && this.view.xaxis.length > 0) {
|
if (switchType && (this.view.type === 'table-info' || this.chart.type === 'table-info') && this.view.xaxis.length > 0) {
|
||||||
@ -1520,13 +1581,13 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (view.type.startsWith('pie') ||
|
if (view.type.startsWith('pie') ||
|
||||||
view.type.startsWith('funnel') ||
|
view.type.startsWith('funnel') ||
|
||||||
view.type.startsWith('text') ||
|
view.type.startsWith('text') ||
|
||||||
view.type.startsWith('gauge') ||
|
view.type.startsWith('gauge') ||
|
||||||
view.type === 'treemap' ||
|
view.type === 'treemap' ||
|
||||||
view.type === 'liquid' ||
|
view.type === 'liquid' ||
|
||||||
view.type === 'word-cloud' ||
|
view.type === 'word-cloud' ||
|
||||||
view.type === 'waterfall') {
|
view.type === 'waterfall') {
|
||||||
if (view.yaxis.length > 1) {
|
if (view.yaxis.length > 1) {
|
||||||
view.yaxis.splice(1, view.yaxis.length)
|
view.yaxis.splice(1, view.yaxis.length)
|
||||||
}
|
}
|
||||||
@ -1541,10 +1602,10 @@ export default {
|
|||||||
view.customAttr.label.show = true
|
view.customAttr.label.show = true
|
||||||
}
|
}
|
||||||
if (view.type === 'liquid' ||
|
if (view.type === 'liquid' ||
|
||||||
(view.type.includes('table') && view.render === 'echarts') ||
|
(view.type.includes('table') && view.render === 'echarts') ||
|
||||||
view.type.includes('text') ||
|
view.type.includes('text') ||
|
||||||
view.type.includes('gauge') ||
|
view.type.includes('gauge') ||
|
||||||
view.type === 'table-pivot') {
|
view.type === 'table-pivot') {
|
||||||
view.drillFields = []
|
view.drillFields = []
|
||||||
}
|
}
|
||||||
view.customFilter.forEach(function(ele) {
|
view.customFilter.forEach(function(ele) {
|
||||||
@ -1950,9 +2011,9 @@ export default {
|
|||||||
},
|
},
|
||||||
saveResultFilter() {
|
saveResultFilter() {
|
||||||
if (((this.filterItem.deType === 0 || this.filterItem.deType === 5) && this.filterItem.filterType !== 'enum') ||
|
if (((this.filterItem.deType === 0 || this.filterItem.deType === 5) && this.filterItem.filterType !== 'enum') ||
|
||||||
this.filterItem.deType === 1 ||
|
this.filterItem.deType === 1 ||
|
||||||
this.filterItem.deType === 2 ||
|
this.filterItem.deType === 2 ||
|
||||||
this.filterItem.deType === 3) {
|
this.filterItem.deType === 3) {
|
||||||
for (let i = 0; i < this.filterItem.filter.length; i++) {
|
for (let i = 0; i < this.filterItem.filter.length; i++) {
|
||||||
const f = this.filterItem.filter[i]
|
const f = this.filterItem.filter[i]
|
||||||
if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
|
if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
|
||||||
@ -2141,7 +2202,7 @@ export default {
|
|||||||
this.dragCheckType(this.view.xaxis, 'd')
|
this.dragCheckType(this.view.xaxis, 'd')
|
||||||
}
|
}
|
||||||
this.dragMoveDuplicate(this.view.xaxis, e)
|
this.dragMoveDuplicate(this.view.xaxis, e)
|
||||||
if ((this.view.type === 'map' || this.view.type === 'word-cloud') && this.view.xaxis.length > 1) {
|
if ((this.view.type === 'map' || this.view.type === 'word-cloud' || this.view.type === 'label') && this.view.xaxis.length > 1) {
|
||||||
this.view.xaxis = [this.view.xaxis[0]]
|
this.view.xaxis = [this.view.xaxis[0]]
|
||||||
}
|
}
|
||||||
this.calcData(true)
|
this.calcData(true)
|
||||||
@ -2425,370 +2486,371 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
.padding-lr {
|
.padding-lr {
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.itxst {
|
.itxst {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.col {
|
.col {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: solid 1px #eee;
|
border: solid 1px #eee;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.col + .col {
|
.col + .col {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.view-panel-row {
|
.view-panel-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
background-color: #f7f8fa;
|
background-color: #f7f8fa;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
height: calc(100vh - 75px);
|
height: calc(100vh - 75px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.view-panel {
|
.view-panel {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: calc(100% - 80px);
|
height: calc(100% - 80px);
|
||||||
background-color: #f7f8fa;
|
background-color: #f7f8fa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .view-panel {
|
.blackTheme .view-panel {
|
||||||
background-color: var(--MainBG);
|
background-color: var(--MainBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-list {
|
.drag-list {
|
||||||
height: calc(100% - 26px);
|
height: calc(100% - 26px);
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-dimension {
|
.item-dimension {
|
||||||
padding: 2px 10px;
|
padding: 2px 10px;
|
||||||
margin: 2px 2px 0 2px;
|
margin: 2px 2px 0 2px;
|
||||||
border: solid 1px #eee;
|
border: solid 1px #eee;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
/*background-color: rgba(35,46,64,.05);*/
|
/*background-color: rgba(35,46,64,.05);*/
|
||||||
background-color: white;
|
background-color: white;
|
||||||
display: block;
|
display: block;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .item-dimension {
|
.blackTheme .item-dimension {
|
||||||
border: solid 1px;
|
border: solid 1px;
|
||||||
border-color: var(--TableBorderColor);
|
border-color: var(--TableBorderColor);
|
||||||
color: var(--TextPrimary);
|
color: var(--TextPrimary);
|
||||||
background-color: var(--MainBG);
|
background-color: var(--MainBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-dimension + .item-dimension {
|
.item-dimension + .item-dimension {
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-dimension:hover {
|
.item-dimension:hover {
|
||||||
color: #1890ff;
|
color: #1890ff;
|
||||||
background: #e8f4ff;
|
background: #e8f4ff;
|
||||||
border-color: #a3d3ff;
|
border-color: #a3d3ff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .item-dimension:hover {
|
.blackTheme .item-dimension:hover {
|
||||||
color: var(--Main);
|
color: var(--Main);
|
||||||
background: var(--ContentBG);
|
background: var(--ContentBG);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-quota {
|
.item-quota {
|
||||||
padding: 2px 10px;
|
padding: 2px 10px;
|
||||||
margin: 2px 2px 0 2px;
|
margin: 2px 2px 0 2px;
|
||||||
border: solid 1px #eee;
|
border: solid 1px #eee;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
display: block;
|
display: block;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .item-quota {
|
.blackTheme .item-quota {
|
||||||
border: solid 1px;
|
border: solid 1px;
|
||||||
border-color: var(--TableBorderColor);
|
border-color: var(--TableBorderColor);
|
||||||
color: var(--TextPrimary);
|
color: var(--TextPrimary);
|
||||||
background-color: var(--MainBG);
|
background-color: var(--MainBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-quota + .item-quota {
|
.item-quota + .item-quota {
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-quota:hover {
|
.item-quota:hover {
|
||||||
color: #67c23a;
|
color: #67c23a;
|
||||||
background: #f0f9eb;
|
background: #f0f9eb;
|
||||||
border-color: #b2d3a3;
|
border-color: #b2d3a3;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .item-quota:hover {
|
.blackTheme .item-quota:hover {
|
||||||
background: var(--ContentBG);
|
background: var(--ContentBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-header > > > .el-tabs__header {
|
.tab-header > > > .el-tabs__header {
|
||||||
border-top: solid 1px #eee;
|
border-top: solid 1px #eee;
|
||||||
border-right: solid 1px #eee;
|
border-right: solid 1px #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-header > > > .el-tabs__item {
|
.tab-header > > > .el-tabs__item {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
padding: 0 20px !important;
|
padding: 0 20px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .tab-header > > > .el-tabs__item {
|
.blackTheme .tab-header > > > .el-tabs__item {
|
||||||
background-color: var(--MainBG);
|
background-color: var(--MainBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-header > > > .el-tabs__nav-scroll {
|
.tab-header > > > .el-tabs__nav-scroll {
|
||||||
padding-left: 0 !important;
|
padding-left: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-header > > > .el-tabs__header {
|
.tab-header > > > .el-tabs__header {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-header > > > .el-tabs__content {
|
.tab-header > > > .el-tabs__content {
|
||||||
}
|
}
|
||||||
|
|
||||||
.draggable-group {
|
.draggable-group {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 6px);
|
height: calc(100% - 6px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-icon {
|
.chart-icon {
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-radio {
|
.el-radio {
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-radio > > > .el-radio__label {
|
.el-radio > > > .el-radio__label {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.attr-style {
|
.attr-style {
|
||||||
height: calc(100vh - 56px - 60px - 40px - 40px);
|
height: calc(100vh - 56px - 60px - 40px - 40px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .attr-style {
|
.blackTheme .attr-style {
|
||||||
color: var(--TextPrimary);
|
color: var(--TextPrimary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.attr-selector {
|
.attr-selector {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin: 6px 0;
|
margin: 6px 0;
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: white
|
background-color: white
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .attr-selector {
|
.blackTheme .attr-selector {
|
||||||
|
|
||||||
background-color: var(--MainBG)
|
background-color: var(--MainBG)
|
||||||
}
|
}
|
||||||
|
|
||||||
.disabled-none-cursor {
|
.disabled-none-cursor {
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-class {
|
.chart-class {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-class {
|
.table-class {
|
||||||
height: calc(100% - 20px);
|
height: calc(100% - 20px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-css > > > .el-dialog__title {
|
.dialog-css > > > .el-dialog__title {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-css > > > .el-dialog__header {
|
.dialog-css > > > .el-dialog__header {
|
||||||
padding: 20px 20px 0;
|
padding: 20px 20px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-css > > > .el-dialog__body {
|
.dialog-css > > > .el-dialog__body {
|
||||||
padding: 10px 20px 20px;
|
padding: 10px 20px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-btn-class {
|
.filter-btn-class {
|
||||||
padding: 6px;
|
padding: 6px;
|
||||||
border: none;
|
border: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-error-class {
|
.chart-error-class {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
background-color: #ece7e7;
|
background-color: #ece7e7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .chart-error-class {
|
.blackTheme .chart-error-class {
|
||||||
|
|
||||||
background-color: var(--MainBG)
|
background-color: var(--MainBG)
|
||||||
}
|
}
|
||||||
|
|
||||||
.field-height {
|
.field-height {
|
||||||
height: calc(50% - 20px);
|
height: calc(50% - 20px);
|
||||||
border-top: 1px solid #E6E6E6;
|
border-top: 1px solid #E6E6E6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .field-height {
|
.blackTheme .field-height {
|
||||||
|
|
||||||
border-top: 1px solid;
|
border-top: 1px solid;
|
||||||
border-color: var(--TableBorderColor) !important;
|
border-color: var(--TableBorderColor) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.padding-tab {
|
.padding-tab {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tree-select-span {
|
.tree-select-span {
|
||||||
> > > div.vue-treeselect__control {
|
> > > div.vue-treeselect__control {
|
||||||
height: 32px !important;
|
height: 32px !important;
|
||||||
font-weight: normal !important;
|
font-weight: normal !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-block-style {
|
.drag-block-style {
|
||||||
padding: 2px 0 0 0;
|
padding: 2px 0 0 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 1px solid #DCDFE6;
|
border: 1px solid #DCDFE6;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .drag-block-style {
|
.blackTheme .drag-block-style {
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
border-color: var(--TableBorderColor);
|
border-color: var(--TableBorderColor);
|
||||||
background-color: var(--ContentBG);
|
background-color: var(--ContentBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-placeholder-style {
|
.drag-placeholder-style {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: calc(50% - 2px);
|
top: calc(50% - 2px);
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
color: #CCCCCC;
|
color: #CCCCCC;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .drag-placeholder-style {
|
.blackTheme .drag-placeholder-style {
|
||||||
color: var(--TextPrimary);
|
color: var(--TextPrimary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-placeholder-style-span {
|
.drag-placeholder-style-span {
|
||||||
padding-left: 16px;
|
padding-left: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .theme-border-class {
|
.blackTheme .theme-border-class {
|
||||||
color: var(--TextPrimary) !important;
|
color: var(--TextPrimary) !important;
|
||||||
background-color: var(--ContentBG);
|
background-color: var(--ContentBG);
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .padding-lr {
|
.blackTheme .padding-lr {
|
||||||
border-color: var(--TableBorderColor) !important;
|
border-color: var(--TableBorderColor) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .theme-item-class {
|
.blackTheme .theme-item-class {
|
||||||
background-color: var(--MainBG) !important;
|
background-color: var(--MainBG) !important;
|
||||||
border-color: var(--TableBorderColor) !important;
|
border-color: var(--TableBorderColor) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-class {
|
.icon-class {
|
||||||
color: #6c6c6c;
|
color: #6c6c6c;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blackTheme .icon-class {
|
.blackTheme .icon-class {
|
||||||
color: #cccccc;
|
color: #cccccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.result-count {
|
.result-count {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
}
|
}
|
||||||
.result-count >>> input {
|
|
||||||
padding:0 4px;
|
.result-count > > > input {
|
||||||
}
|
padding: 0 4px;
|
||||||
|
}
|
||||||
.radio-span > > > .el-radio__label {
|
|
||||||
margin-left: 4px;
|
.radio-span > > > .el-radio__label {
|
||||||
}
|
margin-left: 4px;
|
||||||
|
}
|
||||||
.view-title-name {
|
|
||||||
display: -moz-inline-box;
|
.view-title-name {
|
||||||
display: inline-block;
|
display: -moz-inline-box;
|
||||||
width: 130px;
|
display: inline-block;
|
||||||
white-space: nowrap;
|
width: 130px;
|
||||||
text-overflow: ellipsis;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
text-overflow: ellipsis;
|
||||||
margin-left: 45px;
|
overflow: hidden;
|
||||||
}
|
margin-left: 45px;
|
||||||
|
}
|
||||||
::v-deep .item-axis {
|
|
||||||
width: 128px !important;
|
::v-deep .item-axis {
|
||||||
}
|
width: 128px !important;
|
||||||
|
}
|
||||||
::v-deep .el-slider__input {
|
|
||||||
width: 80px !important;
|
::v-deep .el-slider__input {
|
||||||
}
|
width: 80px !important;
|
||||||
|
}
|
||||||
::v-deep .el-input-number--mini {
|
|
||||||
width: 80px !important;
|
::v-deep .el-input-number--mini {
|
||||||
}
|
width: 80px !important;
|
||||||
|
}
|
||||||
.no-senior {
|
|
||||||
width: 100%;
|
.no-senior {
|
||||||
text-align: center;
|
width: 100%;
|
||||||
font-size: 12px;
|
text-align: center;
|
||||||
padding-top: 40px;
|
font-size: 12px;
|
||||||
overflow:auto;
|
padding-top: 40px;
|
||||||
border-right: 1px solid #e6e6e6;
|
overflow: auto;
|
||||||
height: 100%;
|
border-right: 1px solid #e6e6e6;
|
||||||
}
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user