123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. <script setup>
  2. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  3. const lineData = {
  4. labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  5. datasets: [
  6. {
  7. label: 'Pembelian',
  8. data: [65, 59, 80, 81, 56, 55, 40],
  9. fill: false,
  10. backgroundColor: '#2f4860',
  11. borderColor: '#2f4860',
  12. tension: 0.4,
  13. },
  14. {
  15. label: 'Penjualan',
  16. data: [28, 48, 40, 19, 86, 27, 90],
  17. fill: false,
  18. backgroundColor: '#00bb7e',
  19. borderColor: '#00bb7e',
  20. tension: 0.4,
  21. },
  22. ],
  23. }
  24. const barData = {
  25. labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  26. datasets: [
  27. {
  28. label: 'Bulan lalu',
  29. data: [
  30. 65_000_000, 59_000_000, 80_000_000, 81_000_000, 56_000_000, 55_000_000,
  31. 40_000_000,
  32. ],
  33. fill: false,
  34. backgroundColor: '#2f4860',
  35. borderColor: '#2f4860',
  36. tension: 0.4,
  37. },
  38. {
  39. label: 'Bulan ini',
  40. data: [
  41. 28_000_000, 48_000_000, 40_000_000, 19_000_000, 86_000_000, 27_000_000,
  42. 90_000_000,
  43. ],
  44. fill: false,
  45. backgroundColor: '#00bb7e',
  46. borderColor: '#00bb7e',
  47. tension: 0.4,
  48. },
  49. ],
  50. }
  51. const lineOptions = null
  52. </script>
  53. <template>
  54. <DashboardLayout title="Dashboard">
  55. <div class="grid">
  56. <div class="col-12">
  57. <div class="grid">
  58. <div class="col-12 lg:col-6 xl:col-3">
  59. <div class="card mb-0">
  60. <div class="flex justify-content-between mb-3">
  61. <div>
  62. <span class="block text-500 font-medium mb-3">Produk</span>
  63. <div class="text-900 font-medium text-xl">152</div>
  64. </div>
  65. <div
  66. class="flex align-items-center justify-content-center bg-blue-100 border-round"
  67. style="width: 2.5rem; height: 2.5rem"
  68. >
  69. <i class="pi pi-th-large text-blue-500 text-xl"></i>
  70. </div>
  71. </div>
  72. <span class="text-green-500 font-medium">24 produk </span>
  73. <span class="text-500">hari ini</span>
  74. </div>
  75. </div>
  76. <div class="col-12 lg:col-6 xl:col-3">
  77. <div class="card mb-0">
  78. <div class="flex justify-content-between mb-3">
  79. <div>
  80. <span class="block text-500 font-medium mb-3">Pembelian</span>
  81. <div class="text-900 font-medium text-xl">284</div>
  82. </div>
  83. <div
  84. class="flex align-items-center justify-content-center bg-yellow-100 border-round"
  85. style="width: 2.5rem; height: 2.5rem"
  86. >
  87. <i class="pi pi-shopping-cart text-yellow-500 text-xl"></i>
  88. </div>
  89. </div>
  90. <span class="text-green-500 font-medium">28 pembelian </span>
  91. <span class="text-500">hari ini</span>
  92. </div>
  93. </div>
  94. <div class="col-12 lg:col-6 xl:col-3">
  95. <div class="card mb-0">
  96. <div class="flex justify-content-between mb-3">
  97. <div>
  98. <span class="block text-500 font-medium mb-3">Penjualan</span>
  99. <div class="text-900 font-medium text-xl">284</div>
  100. </div>
  101. <div
  102. class="flex align-items-center justify-content-center bg-purple-100 border-round"
  103. style="width: 2.5rem; height: 2.5rem"
  104. >
  105. <i class="pi pi-shopping-cart text-purple-500 text-xl"></i>
  106. </div>
  107. </div>
  108. <span class="text-green-500 font-medium">8 penjualan </span>
  109. <span class="text-500">hari ini</span>
  110. </div>
  111. </div>
  112. <div class="col-12 lg:col-6 xl:col-3">
  113. <div class="card mb-0">
  114. <div class="flex justify-content-between mb-3">
  115. <div>
  116. <span class="block text-500 font-medium mb-3"
  117. >Stok Barang</span
  118. >
  119. <div class="text-900 font-medium text-xl">2848</div>
  120. </div>
  121. <div
  122. class="flex align-items-center justify-content-center bg-orange-100 border-round"
  123. style="width: 2.5rem; height: 2.5rem"
  124. >
  125. <i class="pi pi-box text-orange-500 text-xl"></i>
  126. </div>
  127. </div>
  128. <span class="text-green-500 font-medium">0 barang baru </span>
  129. <span class="text-500">hari ini</span>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. <div class="col-12 xl:col-6">
  135. <div class="grid">
  136. <div class="col-12">
  137. <div class="card">
  138. <h5>Pembelian dan Penjualan</h5>
  139. <Chart type="line" :data="lineData" :options="lineOptions" />
  140. </div>
  141. </div>
  142. <div class="col-12">
  143. <div class="card">
  144. <div class="flex justify-content-between align-items-center mb-5">
  145. <h5>Produk Terlaris</h5>
  146. </div>
  147. <ul class="list-none p-0 m-0">
  148. <li
  149. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  150. >
  151. <div>
  152. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  153. >Space T-Shirt</span
  154. >
  155. <div class="mt-1 text-600">Clothing</div>
  156. </div>
  157. <div class="mt-2 md:mt-0 flex align-items-center">
  158. <div
  159. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  160. style="height: 8px"
  161. >
  162. <div
  163. class="bg-orange-500 h-full"
  164. style="width: 50%"
  165. ></div>
  166. </div>
  167. <span class="text-orange-500 ml-3 font-medium">%50</span>
  168. </div>
  169. </li>
  170. <li
  171. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  172. >
  173. <div>
  174. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  175. >Portal Sticker</span
  176. >
  177. <div class="mt-1 text-600">Accessories</div>
  178. </div>
  179. <div
  180. class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center"
  181. >
  182. <div
  183. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  184. style="height: 8px"
  185. >
  186. <div class="bg-cyan-500 h-full" style="width: 16%"></div>
  187. </div>
  188. <span class="text-cyan-500 ml-3 font-medium">%16</span>
  189. </div>
  190. </li>
  191. <li
  192. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  193. >
  194. <div>
  195. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  196. >Supernova Sticker</span
  197. >
  198. <div class="mt-1 text-600">Accessories</div>
  199. </div>
  200. <div
  201. class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center"
  202. >
  203. <div
  204. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  205. style="height: 8px"
  206. >
  207. <div class="bg-pink-500 h-full" style="width: 67%"></div>
  208. </div>
  209. <span class="text-pink-500 ml-3 font-medium">%67</span>
  210. </div>
  211. </li>
  212. <li
  213. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  214. >
  215. <div>
  216. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  217. >Wonders Notebook</span
  218. >
  219. <div class="mt-1 text-600">Office</div>
  220. </div>
  221. <div
  222. class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center"
  223. >
  224. <div
  225. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  226. style="height: 8px"
  227. >
  228. <div class="bg-green-500 h-full" style="width: 35%"></div>
  229. </div>
  230. <span class="text-green-500 ml-3 font-medium">%35</span>
  231. </div>
  232. </li>
  233. <li
  234. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  235. >
  236. <div>
  237. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  238. >Mat Black Case</span
  239. >
  240. <div class="mt-1 text-600">Accessories</div>
  241. </div>
  242. <div
  243. class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center"
  244. >
  245. <div
  246. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  247. style="height: 8px"
  248. >
  249. <div
  250. class="bg-purple-500 h-full"
  251. style="width: 75%"
  252. ></div>
  253. </div>
  254. <span class="text-purple-500 ml-3 font-medium">%75</span>
  255. </div>
  256. </li>
  257. <li
  258. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  259. >
  260. <div>
  261. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  262. >Robots T-Shirt</span
  263. >
  264. <div class="mt-1 text-600">Clothing</div>
  265. </div>
  266. <div
  267. class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center"
  268. >
  269. <div
  270. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  271. style="height: 8px"
  272. >
  273. <div class="bg-teal-500 h-full" style="width: 40%"></div>
  274. </div>
  275. <span class="text-teal-500 ml-3 font-medium">%40</span>
  276. </div>
  277. </li>
  278. </ul>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. <div class="col-12 xl:col-6">
  284. <div class="grid">
  285. <div class="col-12">
  286. <div class="card">
  287. <h5>Pembelian</h5>
  288. <Chart type="bar" :data="barData" :options="lineOptions" />
  289. </div>
  290. </div>
  291. <div class="col-12">
  292. <div class="card">
  293. <h5>Pendapatan</h5>
  294. <Chart type="bar" :data="barData" :options="lineOptions" />
  295. </div>
  296. </div>
  297. </div>
  298. </div>
  299. </div>
  300. </DashboardLayout>
  301. </template>