fix(图表): 修复部分组件不能导出明细问题

This commit is contained in:
wangjiahao 2024-04-26 16:45:45 +08:00
parent 0cf7b6e214
commit 39aa75f4f8
3 changed files with 29 additions and 36 deletions

View File

@ -664,15 +664,17 @@ public class PanelGroupService {
CacheUtils.removeAll(AuthConstants.DEPT_PANEL_NAME);
}
public DataSetExportRequest composeDatasetExportRequest(PanelViewDetailsRequest request){
public DataSetExportRequest composeDatasetExportRequest(PanelViewDetailsRequest request) {
ChartExtRequest extRequest = request.getComponentFilterInfo();
List<ChartExtFilterRequest> filter = new ArrayList();
if(extRequest != null){
if(CollectionUtils.isNotEmpty(extRequest.getFilter())){
if (extRequest != null) {
if (CollectionUtils.isNotEmpty(extRequest.getFilter())) {
filter.addAll(extRequest.getFilter());
}if(CollectionUtils.isNotEmpty(extRequest.getLinkageFilters())){
}
if (CollectionUtils.isNotEmpty(extRequest.getLinkageFilters())) {
filter.addAll(extRequest.getLinkageFilters());
}if(CollectionUtils.isNotEmpty(extRequest.getOuterParamsFilters())){
}
if (CollectionUtils.isNotEmpty(extRequest.getOuterParamsFilters())) {
filter.addAll(extRequest.getOuterParamsFilters());
}
}
@ -681,23 +683,23 @@ public class PanelGroupService {
permissionsTreeObjFilter.setLogic("and");
List<DatasetRowPermissionsTreeItem> composePermission = new ArrayList<>();
permissionsTreeObjFilter.setItems(composePermission);
if(CollectionUtils.isNotEmpty(filter)){
filter.forEach(filterInfo ->{
if (CollectionUtils.isNotEmpty(filter)) {
filter.forEach(filterInfo -> {
DatasetRowPermissionsTreeItem filterPermission = new DatasetRowPermissionsTreeItem();
List<String> values = filterInfo.getValue();
String operator = filterInfo.getOperator();
String dataSetFilterType = "logic";
String term = operator;
if("eq".equals(operator) && values.size()>1){
if ("eq".equals(operator) && values.size() > 1) {
dataSetFilterType = "enum";
}
String fieldId = filterInfo.getFieldId();
filterPermission.setFieldId(fieldId);
filterPermission.setFilterType(dataSetFilterType);
filterPermission.setType("item");
if(dataSetFilterType.equals("enum")){
if (dataSetFilterType.equals("enum")) {
filterPermission.setEnumValue(values);
}else{
} else {
filterPermission.setTerm(term);
filterPermission.setValue(values.get(0));
}
@ -708,17 +710,19 @@ public class PanelGroupService {
ChartViewWithBLOBs chartInfo = chartViewMapper.selectByPrimaryKey(request.getViewId());
String customFilter = chartInfo.getCustomFilter();
DatasetTable datasetTable = datasetTableMapper.selectByPrimaryKey(chartInfo.getTableId());
DatasetTable datasetTable = datasetTableMapper.selectByPrimaryKey(chartInfo.getTableId());
DataSetExportRequest dataSetExportRequest = new DataSetExportRequest();
BeanUtils.copyBean(dataSetExportRequest,datasetTable);
if(CollectionUtils.isNotEmpty(composePermission)){
DatasetRowPermissionsTreeObj permissionsTreeObjCustomsFilter = gson.fromJson(customFilter,DatasetRowPermissionsTreeObj.class);
DatasetRowPermissionsTreeItem customFilterPermission = new DatasetRowPermissionsTreeItem();
customFilterPermission.setType("tree");
customFilterPermission.setSubTree(permissionsTreeObjCustomsFilter);
composePermission.add(customFilterPermission);
BeanUtils.copyBean(dataSetExportRequest, datasetTable);
DatasetRowPermissionsTreeObj permissionsTreeObjCustomsFilter = gson.fromJson(customFilter, DatasetRowPermissionsTreeObj.class);
if (CollectionUtils.isNotEmpty(composePermission)) {
if (StringUtils.isNotEmpty(permissionsTreeObjCustomsFilter.getLogic())) {
DatasetRowPermissionsTreeItem customFilterPermission = new DatasetRowPermissionsTreeItem();
customFilterPermission.setType("tree");
customFilterPermission.setSubTree(permissionsTreeObjCustomsFilter);
composePermission.add(customFilterPermission);
}
dataSetExportRequest.setExpressionTree(gson.toJson(permissionsTreeObjFilter));
}else{
} else if(StringUtils.isNotEmpty(permissionsTreeObjCustomsFilter.getLogic())){
dataSetExportRequest.setExpressionTree(customFilter);
}
dataSetExportRequest.setFilename(dataSetExportRequest.getName());
@ -727,7 +731,7 @@ public class PanelGroupService {
}
public void exportDatasetDetails(PanelViewDetailsRequest request, HttpServletResponse response) throws Exception {
dataSetTableService.exportDataset(composeDatasetExportRequest(request),response);
dataSetTableService.exportDataset(composeDatasetExportRequest(request), response);
}

View File

@ -282,19 +282,7 @@ export default {
}
},
exportExcel(callBack) {
const _this = this
if (this.isOnlyDetails) {
_this.exportExcelDownload(null, null, null, callBack)
} else {
if (this.showChartCanvas) {
html2canvas(document.getElementById('chartCanvas')).then(canvas => {
const snapshot = canvas.toDataURL('image/jpeg', 1)
_this.exportExcelDownload(snapshot, canvas.width, canvas.height, callBack)
})
} else {
_this.exportExcelDownload(null, null, null, callBack)
}
}
this.exportExcelDownload(null, null, null, callBack)
},
exportSourceDetails(callBack) {
const loadingWrapper = { val: this.linkLoading }

View File

@ -469,10 +469,11 @@ export function getCacheTree(treeName) {
}
export function exportExcelDownload(chart, snapshot, width, height, loadingWrapper, downloadParams, callBack) {
if (chart.render === 'antv' && !chart.data?.data?.length) {
if ((chart.render === 'echarts' || ['text', 'label'.includes(chart.type)]) && !(chart.data?.series?.length && chart.data?.series[0].data?.length)) {
callBack()
return
}
if (chart.type === 'echarts' && !(chart.data?.series?.length && chart.data?.series[0].data?.length)) {
} else if ((chart.render === 'antv' && !['text', 'label'].includes(chart.type)) && !chart.data?.data?.length) {
callBack()
return
}
const fields = JSON.parse(JSON.stringify(chart.data.fields))