forked from github/dataease
fix(图表): 修复部分组件不能导出明细问题
This commit is contained in:
parent
0cf7b6e214
commit
39aa75f4f8
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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 }
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user