Index.vue 9.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  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 lg:col-6 xl:col-3">
  57. <div class="card mb-0">
  58. <div class="flex justify-content-between mb-3">
  59. <div>
  60. <span class="block text-500 font-medium mb-3">Produk</span>
  61. <div class="text-900 font-medium text-xl">152</div>
  62. </div>
  63. <div
  64. class="flex align-items-center justify-content-center bg-blue-100 border-round"
  65. style="width: 2.5rem; height: 2.5rem"
  66. >
  67. <i class="pi pi-th-large text-blue-500 text-xl"></i>
  68. </div>
  69. </div>
  70. <span class="text-green-500 font-medium">24 produk </span>
  71. <span class="text-500">hari ini</span>
  72. </div>
  73. </div>
  74. <div class="col-12 lg:col-6 xl:col-3">
  75. <div class="card mb-0">
  76. <div class="flex justify-content-between mb-3">
  77. <div>
  78. <span class="block text-500 font-medium mb-3">Pembelian</span>
  79. <div class="text-900 font-medium text-xl">284</div>
  80. </div>
  81. <div
  82. class="flex align-items-center justify-content-center bg-yellow-100 border-round"
  83. style="width: 2.5rem; height: 2.5rem"
  84. >
  85. <i class="pi pi-shopping-cart text-yellow-500 text-xl"></i>
  86. </div>
  87. </div>
  88. <span class="text-green-500 font-medium">28 pembelian </span>
  89. <span class="text-500">hari ini</span>
  90. </div>
  91. </div>
  92. <div class="col-12 lg:col-6 xl:col-3">
  93. <div class="card mb-0">
  94. <div class="flex justify-content-between mb-3">
  95. <div>
  96. <span class="block text-500 font-medium mb-3">Penjualan</span>
  97. <div class="text-900 font-medium text-xl">284</div>
  98. </div>
  99. <div
  100. class="flex align-items-center justify-content-center bg-purple-100 border-round"
  101. style="width: 2.5rem; height: 2.5rem"
  102. >
  103. <i class="pi pi-shopping-cart text-purple-500 text-xl"></i>
  104. </div>
  105. </div>
  106. <span class="text-green-500 font-medium">8 penjualan </span>
  107. <span class="text-500">hari ini</span>
  108. </div>
  109. </div>
  110. <div class="col-12 lg:col-6 xl:col-3">
  111. <div class="card mb-0">
  112. <div class="flex justify-content-between mb-3">
  113. <div>
  114. <span class="block text-500 font-medium mb-3">Stok Barang</span>
  115. <div class="text-900 font-medium text-xl">2848</div>
  116. </div>
  117. <div
  118. class="flex align-items-center justify-content-center bg-orange-100 border-round"
  119. style="width: 2.5rem; height: 2.5rem"
  120. >
  121. <i class="pi pi-box text-orange-500 text-xl"></i>
  122. </div>
  123. </div>
  124. <span class="text-green-500 font-medium">0 barang baru </span>
  125. <span class="text-500">hari ini</span>
  126. </div>
  127. </div>
  128. <div class="col-12 xl:col-6">
  129. <div class="card">
  130. <h5>Pembelian dan Penjualan</h5>
  131. <Chart type="line" :data="lineData" :options="lineOptions" />
  132. </div>
  133. </div>
  134. <div class="col-12 xl:col-6">
  135. <div class="card">
  136. <div class="flex justify-content-between align-items-center mb-5">
  137. <h5>Produk Terlaris</h5>
  138. </div>
  139. <ul class="list-none p-0 m-0">
  140. <li
  141. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  142. >
  143. <div>
  144. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  145. >Space T-Shirt</span
  146. >
  147. <div class="mt-1 text-600">Clothing</div>
  148. </div>
  149. <div class="mt-2 md:mt-0 flex align-items-center">
  150. <div
  151. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  152. style="height: 8px"
  153. >
  154. <div class="bg-orange-500 h-full" style="width: 50%"></div>
  155. </div>
  156. <span class="text-orange-500 ml-3 font-medium">%50</span>
  157. </div>
  158. </li>
  159. <li
  160. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  161. >
  162. <div>
  163. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  164. >Portal Sticker</span
  165. >
  166. <div class="mt-1 text-600">Accessories</div>
  167. </div>
  168. <div class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center">
  169. <div
  170. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  171. style="height: 8px"
  172. >
  173. <div class="bg-cyan-500 h-full" style="width: 16%"></div>
  174. </div>
  175. <span class="text-cyan-500 ml-3 font-medium">%16</span>
  176. </div>
  177. </li>
  178. <li
  179. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  180. >
  181. <div>
  182. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  183. >Supernova Sticker</span
  184. >
  185. <div class="mt-1 text-600">Accessories</div>
  186. </div>
  187. <div class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center">
  188. <div
  189. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  190. style="height: 8px"
  191. >
  192. <div class="bg-pink-500 h-full" style="width: 67%"></div>
  193. </div>
  194. <span class="text-pink-500 ml-3 font-medium">%67</span>
  195. </div>
  196. </li>
  197. <li
  198. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  199. >
  200. <div>
  201. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  202. >Wonders Notebook</span
  203. >
  204. <div class="mt-1 text-600">Office</div>
  205. </div>
  206. <div class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center">
  207. <div
  208. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  209. style="height: 8px"
  210. >
  211. <div class="bg-green-500 h-full" style="width: 35%"></div>
  212. </div>
  213. <span class="text-green-500 ml-3 font-medium">%35</span>
  214. </div>
  215. </li>
  216. <li
  217. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  218. >
  219. <div>
  220. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  221. >Mat Black Case</span
  222. >
  223. <div class="mt-1 text-600">Accessories</div>
  224. </div>
  225. <div class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center">
  226. <div
  227. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  228. style="height: 8px"
  229. >
  230. <div class="bg-purple-500 h-full" style="width: 75%"></div>
  231. </div>
  232. <span class="text-purple-500 ml-3 font-medium">%75</span>
  233. </div>
  234. </li>
  235. <li
  236. class="flex flex-column md:flex-row md:align-items-center md:justify-content-between mb-4"
  237. >
  238. <div>
  239. <span class="text-900 font-medium mr-2 mb-1 md:mb-0"
  240. >Robots T-Shirt</span
  241. >
  242. <div class="mt-1 text-600">Clothing</div>
  243. </div>
  244. <div class="mt-2 md:mt-0 ml-0 md:ml-8 flex align-items-center">
  245. <div
  246. class="surface-300 border-round overflow-hidden w-10rem lg:w-6rem"
  247. style="height: 8px"
  248. >
  249. <div class="bg-teal-500 h-full" style="width: 40%"></div>
  250. </div>
  251. <span class="text-teal-500 ml-3 font-medium">%40</span>
  252. </div>
  253. </li>
  254. </ul>
  255. </div>
  256. </div>
  257. <div class="col-12 xl:col-6">
  258. <div class="card">
  259. <h5>Pembelian</h5>
  260. <Chart type="bar" :data="barData" :options="lineOptions" />
  261. </div>
  262. </div>
  263. <div class="col-12 xl:col-6">
  264. <div class="card">
  265. <h5>Pendapatan</h5>
  266. <Chart type="bar" :data="barData" :options="lineOptions" />
  267. </div>
  268. </div>
  269. </div>
  270. </DashboardLayout>
  271. </template>