Przeglądaj źródła

feat: dashboard

rodzic
commit
f62995c312
1 zmienionych plików z 274 dodań i 1 usunięć
  1. 274
    1
      resources/js/pages/Dashboards/Index.vue

+ 274
- 1
resources/js/pages/Dashboards/Index.vue Wyświetl plik

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