Index.vue 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <script setup>
  2. import CardCount from './Components/CardCount.vue'
  3. import CardProductFavorite from './Components/CardProductFavorite.vue'
  4. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  5. const props = defineProps([
  6. 'productCounts',
  7. 'productFavorites',
  8. 'saleStatistic',
  9. ])
  10. const purchaseAndSale = {
  11. labels: [
  12. 'Jan',
  13. 'Feb',
  14. 'Mar',
  15. 'Apr',
  16. 'May',
  17. 'Jun',
  18. 'Jul',
  19. 'Aug',
  20. 'Sep',
  21. 'Oct',
  22. 'Nov',
  23. 'Dec',
  24. ],
  25. datasets: [
  26. {
  27. label: 'Pembelian',
  28. data: [65, 59, 80, 81, 56, 55, 40],
  29. fill: false,
  30. backgroundColor: '#2f4860',
  31. borderColor: '#2f4860',
  32. tension: 0.4,
  33. },
  34. {
  35. label: 'Penjualan',
  36. data: [28, 48, 40, 19, 86, 27, 90],
  37. fill: false,
  38. backgroundColor: '#00bb7e',
  39. borderColor: '#00bb7e',
  40. tension: 0.4,
  41. },
  42. ],
  43. }
  44. const barData = {
  45. labels: [
  46. 'Jan',
  47. 'Feb',
  48. 'Mar',
  49. 'Apr',
  50. 'May',
  51. 'Jun',
  52. 'Jul',
  53. 'Aug',
  54. 'Sep',
  55. 'Oct',
  56. 'Nov',
  57. 'Dec',
  58. ],
  59. datasets: [
  60. {
  61. label: 'Bulan lalu',
  62. data: [
  63. 65_000_000, 59_000_000, 80_000_000, 81_000_000, 56_000_000, 55_000_000,
  64. 40_000_000,
  65. ],
  66. fill: false,
  67. backgroundColor: '#2f4860',
  68. borderColor: '#2f4860',
  69. tension: 0.4,
  70. },
  71. {
  72. label: 'Bulan ini',
  73. data: [
  74. 28_000_000, 48_000_000, 40_000_000, 19_000_000, 86_000_000, 27_000_000,
  75. 90_000_000,
  76. ],
  77. fill: false,
  78. backgroundColor: '#00bb7e',
  79. borderColor: '#00bb7e',
  80. tension: 0.4,
  81. },
  82. ],
  83. }
  84. const lineOptions = null
  85. const productCounts = props.productCounts
  86. </script>
  87. <template>
  88. <DashboardLayout title="Dashboard">
  89. <div class="grid">
  90. <div class="col-12">
  91. <div class="grid">
  92. <CardCount :products="productCounts" />
  93. </div>
  94. </div>
  95. <div class="col-12 xl:col-6">
  96. <div class="grid">
  97. <div class="col-12">
  98. <div class="card">
  99. <h5>Pembelian dan Penjualan</h5>
  100. <Chart
  101. type="line"
  102. :data="purchaseAndSale"
  103. :options="lineOptions"
  104. />
  105. </div>
  106. </div>
  107. <div class="col-12">
  108. <CardProductFavorite :products="productFavorites" />
  109. </div>
  110. </div>
  111. </div>
  112. <div class="col-12 xl:col-6">
  113. <div class="grid">
  114. <div class="col-12">
  115. <div class="card">
  116. <h5>Pembelian</h5>
  117. <Chart type="bar" :data="barData" :options="lineOptions" />
  118. </div>
  119. </div>
  120. <div class="col-12">
  121. <div class="card">
  122. <h5>Pendapatan</h5>
  123. <Chart type="bar" :data="barData" :options="lineOptions" />
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </DashboardLayout>
  130. </template>