diff --git a/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/DashBoardDto.java b/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/DashBoardDto.java new file mode 100644 index 0000000..55c370e --- /dev/null +++ b/order-service/src/main/java/com/justpickup/orderservice/domain/order/dto/DashBoardDto.java @@ -0,0 +1,58 @@ +package com.justpickup.orderservice.domain.order.dto; + +import lombok.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class DashBoardDto { + + //일일 판매금액 + private Long salesAmount=0L; + private BestSellItem bestSellItem; + List sellAmountAWeeks; + + public static DashBoardDto of(List orderPrices , DashBoardDto.BestSellItem bestSellItem , List sellAmountAWeeks){ + DashBoardDto dashBoardDto = new DashBoardDto(); + orderPrices.forEach(orderPrice -> dashBoardDto.salesAmount+=orderPrice.getOrderPrice()); + dashBoardDto.bestSellItem = bestSellItem; + dashBoardDto.sellAmountAWeeks = sellAmountAWeeks; + + return dashBoardDto; + } + + + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class OrderPrice{ + Long orderPrice; + } + + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class BestSellItem{ + Long itemId; + String itemName; + Long sumCounts; + + public void setItemName(String itemName) { + this.itemName = itemName; + } + } + + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class SellAmountAWeek{ + Object sellDate; + Long sellAmount; + } +} diff --git a/owner-vue/package.json b/owner-vue/package.json index 8562565..7e66f3e 100644 --- a/owner-vue/package.json +++ b/owner-vue/package.json @@ -10,9 +10,11 @@ "dependencies": { "@mdi/js": "^6.5.95", "axios": "^0.26.0", + "chart.js": "^2.9.4", "core-js": "^3.6.5", "moment": "^2.29.1", "vue": "^2.6.11", + "vue-chartjs": "^3.5.1", "vue-daum-postcode": "^0.10.0", "vue-router": "^3.2.0", "vuedraggable": "^2.24.3", diff --git a/owner-vue/src/js/CustomChart.js b/owner-vue/src/js/CustomChart.js new file mode 100644 index 0000000..28c9b55 --- /dev/null +++ b/owner-vue/src/js/CustomChart.js @@ -0,0 +1,11 @@ +// CustomChart.js +import { Line, mixins } from 'vue-chartjs' + +export default { + extends: Line, + mixins: [mixins.reactiveProp], + props:['chartData', 'options'], + mounted () { + this.renderChart(this.chartData, this.options) + } +} \ No newline at end of file diff --git a/owner-vue/src/views/HomeDashBoard.vue b/owner-vue/src/views/HomeDashBoard.vue index 7d96b3d..698f68f 100644 --- a/owner-vue/src/views/HomeDashBoard.vue +++ b/owner-vue/src/views/HomeDashBoard.vue @@ -4,51 +4,70 @@ - - + +
- {{ item.title }}
- 00~00 +
{{ salesAmount.title }}
- - {{item.amount}} - -
- + +

{{salesAmount.data | currency}}원

+ + + mdi-currency-usd + + +
+ +
+
- - + + + +
+
{{ bestSellItem.title }}
+
+ +

{{bestSellItem.data.itemName}} {{ bestSellItem.data.sumCounts }}개

+ + + mdi-coffee + + +
+
- + mdi-currency-usd - 판매금액 + {{ sellAmountAWeeks.title }} - + @@ -59,26 +78,90 @@ diff --git a/owner-vue/src/views/Layout/Sidebar.vue b/owner-vue/src/views/Layout/Sidebar.vue index 75ede1b..713eccc 100644 --- a/owner-vue/src/views/Layout/Sidebar.vue +++ b/owner-vue/src/views/Layout/Sidebar.vue @@ -29,7 +29,7 @@ export default { props: ["drawer"], data() { return { - drawer_sidebar:false, + drawer_sidebar:null, links: [ {name: "지난 주문", url: "/prev-order", icon: "mdi-clipboard-check-outline"}, {name: "카테고리", url: "/category", icon: "mdi-shape-outline"},