diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartConstants.java b/core/backend/src/main/java/io/dataease/service/chart/ChartConstants.java index f318b9b856..fe4db8a48d 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartConstants.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartConstants.java @@ -10,5 +10,6 @@ public class ChartConstants { public static final String YEAR_YOY = "year_yoy"; public static final String DAY_MOM = "day_mom"; public static final String MONTH_YOY = "month_yoy"; - public static final String[] M_Y = {YEAR_MOM, MONTH_MOM, YEAR_YOY, DAY_MOM, MONTH_YOY}; + public static final String WEEK_MOM = "week_mom"; + public static final String[] M_Y = {YEAR_MOM, MONTH_MOM, YEAR_YOY, DAY_MOM, MONTH_YOY, WEEK_MOM}; } diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 9fa290b091..2479fadcc4 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -1328,9 +1328,9 @@ public class ChartViewService { data = resultCustomSort(xAxis, data); } // 如果是表格导出查询 则在此处直接就可以返回 - if(chartExtRequest.getExcelExportFlag()){ + if (chartExtRequest.getExcelExportFlag()) { Map sourceInfo = ChartDataBuild.transTableNormal(xAxis, yAxis, view, data, extStack, desensitizationList); - sourceInfo.put("sourceData",data); + sourceInfo.put("sourceData", data); view.setData(sourceInfo); return view; } @@ -1723,6 +1723,12 @@ public class ChartViewService { } else { simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); } + } else if (StringUtils.equalsIgnoreCase(dateStyle, "y_W")) { + if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) { + simpleDateFormat = new SimpleDateFormat("yyyy/'W'w"); + } else { + simpleDateFormat = new SimpleDateFormat("yyyy-'W'w"); + } } Date date = simpleDateFormat.parse(cTime); calendar.setTime(date); @@ -1758,6 +1764,17 @@ public class ChartViewService { calendar.setTime(date); calendar.add(Calendar.MONTH, -1); lastTime = simpleDateFormat.format(calendar.getTime()); + } else if (StringUtils.equalsIgnoreCase(type, ChartConstants.WEEK_MOM)) { + SimpleDateFormat simpleDateFormat = null; + if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) { + simpleDateFormat = new SimpleDateFormat("yyyy/'W'w"); + } else { + simpleDateFormat = new SimpleDateFormat("yyyy-'W'w"); + } + Date date = simpleDateFormat.parse(cTime); + calendar.setTime(date); + calendar.add(Calendar.WEEK_OF_YEAR, -1); + lastTime = simpleDateFormat.format(calendar.getTime()); } return lastTime; } catch (Exception e) { diff --git a/core/frontend/src/views/chart/chart/compare.js b/core/frontend/src/views/chart/chart/compare.js index b06a104a10..f62745a1e2 100644 --- a/core/frontend/src/views/chart/chart/compare.js +++ b/core/frontend/src/views/chart/chart/compare.js @@ -27,3 +27,8 @@ export const compareDayList = [ { name: 'month_yoy', value: 'month_yoy' }, { name: 'year_yoy', value: 'year_yoy' } ] + +export const compareWeekList = [ + { name: 'week_mom', value: 'week_mom' }, + { name: 'year_yoy', value: 'year_yoy' } +] diff --git a/core/frontend/src/views/chart/components/compare/CompareEdit.vue b/core/frontend/src/views/chart/components/compare/CompareEdit.vue index 7277d79a68..ccbd6972c3 100644 --- a/core/frontend/src/views/chart/components/compare/CompareEdit.vue +++ b/core/frontend/src/views/chart/components/compare/CompareEdit.vue @@ -55,7 +55,7 @@