parent
commit
8b75cf4e70

+ 0
- 8
app/Http/Controllers/DashboardController.php Vedi File

8
 use App\Models\TypeMember;
8
 use App\Models\TypeMember;
9
 use App\Models\TypeVehicle;
9
 use App\Models\TypeVehicle;
10
 use App\Services\MutationService;
10
 use App\Services\MutationService;
11
-use App\Services\TopUpService;
12
 use Carbon\Carbon;
11
 use Carbon\Carbon;
13
 use Illuminate\Http\Request;
12
 use Illuminate\Http\Request;
14
 
13
 
71
                     'data' => (new MutationService)->statistic($mutation),
70
                     'data' => (new MutationService)->statistic($mutation),
72
                 ],
71
                 ],
73
             ],
72
             ],
74
-            'barHorizontalStatistics' => [
75
-                [
76
-                    'title' => __('words.top_up_rank'),
77
-                    'description' => __('words.top_up_number_rank', ['number' => 5]),
78
-                    'data' => (new TopUpService)->topUpRank($topUp),
79
-                ],
80
-            ],
81
         ]);
73
         ]);
82
     }
74
     }
83
 }
75
 }

+ 4
- 4
app/Services/TopUpService.php Vedi File

6
 
6
 
7
 class TopUpService extends CurrencyFormatService
7
 class TopUpService extends CurrencyFormatService
8
 {
8
 {
9
-    public function topUpRank(EloquentCollection $collections, int $take = 5)
9
+    public function topStatistic(EloquentCollection $collections, int $take = 5)
10
     {
10
     {
11
         return $collections
11
         return $collections
12
             ->transform(fn($collects) => [[
12
             ->transform(fn($collects) => [[
13
-                'name' => $collects->first()->member->name,
14
-                'phone' => $collects->first()->member->phone,
15
-                'amount' => $collects->sum(fn($collect) => $collect->getRawOriginal('amount')),
13
+                'label1' => $collects->first()->member->name,
14
+                'label2' => $collects->first()->member->phone,
15
+                'data' => $collects->sum(fn($collect) => $collect->getRawOriginal('amount')),
16
             ]])
16
             ]])
17
             ->sortByDesc('amount')
17
             ->sortByDesc('amount')
18
             ->take($take)
18
             ->take($take)

+ 153
- 17386
public/js/resources_js_pages_home_Index_vue.js
File diff suppressed because it is too large
Vedi File


+ 1
- 1
public/js/vue.js Vedi File

58388
 /******/ 		// This function allow to reference async chunks
58388
 /******/ 		// This function allow to reference async chunks
58389
 /******/ 		__webpack_require__.u = (chunkId) => {
58389
 /******/ 		__webpack_require__.u = (chunkId) => {
58390
 /******/ 			// return url for filenames based on template
58390
 /******/ 			// return url for filenames based on template
58391
-/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"10c6b388645ceb22","resources_js_pages_auth_ForgotPassword_vue":"5b9f0529bda25a9b","resources_js_pages_auth_Login_vue":"61b9c9ae1ae9da32","resources_js_pages_auth_ResetPassword_vue":"b091193a1e114ce8","resources_js_pages_auth_VerifyEmail_vue":"d9853eae0a0235f2","resources_js_pages_expense_Create_vue":"310e7d98ea6b356a","resources_js_pages_expense_Index_vue":"bc7ec2fb070cf568","resources_js_pages_expense_Show_vue":"877a19596ee241b4","resources_js_pages_expense_TableHeader_js":"eed3f0613f167cfd","resources_js_pages_home_Index_vue":"4a180c0ce9438466","resources_js_pages_member_Create_vue":"838296974c6b4913","resources_js_pages_member_Edit_vue":"bc2c701451f6a653","resources_js_pages_member_Index_vue":"caaaba41d56c9f67","resources_js_pages_member_TableHeader_js":"51dbf053f7ddd45c","resources_js_pages_mutation_Report_vue":"6e9122d512297940","resources_js_pages_mutation_TableHeader_js":"7822e888aa3c52fc","resources_js_pages_topup_Create_vue":"958203b0038681b5","resources_js_pages_topup_Index_vue":"ccfe12c579a19810","resources_js_pages_topup_Show_vue":"4d5dea1719d4048e","resources_js_pages_topup_TableHeader_js":"601b7c0a855ce64e","resources_js_pages_typemember_Create_vue":"5bba3a97069a1889","resources_js_pages_typemember_Edit_vue":"8ab79ae9735ce84f","resources_js_pages_typemember_Index_vue":"37e8f6153840325d","resources_js_pages_typemember_TableHeader_js":"ac1d31a59f8d464e","resources_js_pages_typevehicle_Create_vue":"4799ba8b5384d9a3","resources_js_pages_typevehicle_Edit_vue":"1ec4ba3e7994e2bc","resources_js_pages_typevehicle_Index_vue":"69ab68f9968f9aff","resources_js_pages_typevehicle_TableHeader_js":"a40378918fbe74e1","resources_js_pages_user_Create_vue":"ed7565eb901e854c","resources_js_pages_user_Edit_vue":"4948ac292320388a","resources_js_pages_user_Index_vue":"552950b60f6dbb1b","resources_js_pages_user_Show_vue":"1d1d7702785d1470","resources_js_pages_user_TableHeader_js":"0d87fd422fe40491"}[chunkId] + "";
58391
+/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"10c6b388645ceb22","resources_js_pages_auth_ForgotPassword_vue":"5b9f0529bda25a9b","resources_js_pages_auth_Login_vue":"61b9c9ae1ae9da32","resources_js_pages_auth_ResetPassword_vue":"b091193a1e114ce8","resources_js_pages_auth_VerifyEmail_vue":"d9853eae0a0235f2","resources_js_pages_expense_Create_vue":"310e7d98ea6b356a","resources_js_pages_expense_Index_vue":"bc7ec2fb070cf568","resources_js_pages_expense_Show_vue":"877a19596ee241b4","resources_js_pages_expense_TableHeader_js":"eed3f0613f167cfd","resources_js_pages_home_Index_vue":"cdaa7918da506f4a","resources_js_pages_member_Create_vue":"838296974c6b4913","resources_js_pages_member_Edit_vue":"bc2c701451f6a653","resources_js_pages_member_Index_vue":"caaaba41d56c9f67","resources_js_pages_member_TableHeader_js":"51dbf053f7ddd45c","resources_js_pages_mutation_Report_vue":"6e9122d512297940","resources_js_pages_mutation_TableHeader_js":"7822e888aa3c52fc","resources_js_pages_topup_Create_vue":"958203b0038681b5","resources_js_pages_topup_Index_vue":"ccfe12c579a19810","resources_js_pages_topup_Show_vue":"4d5dea1719d4048e","resources_js_pages_topup_TableHeader_js":"601b7c0a855ce64e","resources_js_pages_typemember_Create_vue":"5bba3a97069a1889","resources_js_pages_typemember_Edit_vue":"8ab79ae9735ce84f","resources_js_pages_typemember_Index_vue":"37e8f6153840325d","resources_js_pages_typemember_TableHeader_js":"ac1d31a59f8d464e","resources_js_pages_typevehicle_Create_vue":"4799ba8b5384d9a3","resources_js_pages_typevehicle_Edit_vue":"1ec4ba3e7994e2bc","resources_js_pages_typevehicle_Index_vue":"69ab68f9968f9aff","resources_js_pages_typevehicle_TableHeader_js":"a40378918fbe74e1","resources_js_pages_user_Create_vue":"ed7565eb901e854c","resources_js_pages_user_Edit_vue":"4948ac292320388a","resources_js_pages_user_Index_vue":"552950b60f6dbb1b","resources_js_pages_user_Show_vue":"1d1d7702785d1470","resources_js_pages_user_TableHeader_js":"0d87fd422fe40491"}[chunkId] + "";
58392
 /******/ 		};
58392
 /******/ 		};
58393
 /******/ 	})();
58393
 /******/ 	})();
58394
 /******/ 	
58394
 /******/ 	

+ 5
- 23
resources/js/pages/home/Index.vue Vedi File

1
 <script setup>
1
 <script setup>
2
 import { Head } from '@inertiajs/inertia-vue3'
2
 import { Head } from '@inertiajs/inertia-vue3'
3
-import { orderBy } from 'lodash'
4
 import AppCardStatistic from '@/components/AppCardStatistic.vue'
3
 import AppCardStatistic from '@/components/AppCardStatistic.vue'
5
 import AppLayout from '@/layouts/AppLayout.vue'
4
 import AppLayout from '@/layouts/AppLayout.vue'
6
 
5
 
50
 }
49
 }
51
 
50
 
52
 const barHorizontalChart = (chartData) => {
51
 const barHorizontalChart = (chartData) => {
53
-  // const data = {
54
-  //   datasets: [],
55
-  // }
56
-
57
-  // let id = 0
58
-  // for (const key in chartData) {
59
-  //   data.datasets.push({
60
-  //     label: key,
61
-  //     backgroundColor: colors[id],
62
-  //     data: chartData[key],
63
-  //   })
64
-
65
-  //   id++
66
-  // }
67
-
68
-  // return data
69
-
70
   const labels = []
52
   const labels = []
71
   const data = []
53
   const data = []
72
 
54
 
73
-  for (const chartData of chartData) {
74
-    labels.push([chartData.phone, chartData.name])
75
-    data.push(chartData.amount)
55
+  for (const obj of chartData) {
56
+    labels.push([obj.label1, obj.label2])
57
+    data.push(obj.data)
76
   }
58
   }
77
 
59
 
78
   return {
60
   return {
176
         </Card>
158
         </Card>
177
       </div>
159
       </div>
178
 
160
 
179
-      <!-- <div v-for="pieStatistic in pieStatistics" class="col-12 md:col-6">
161
+      <div v-for="pieStatistic in pieStatistics" class="col-12 md:col-6">
180
         <Card>
162
         <Card>
181
           <template #title>
163
           <template #title>
182
             <div class="flex flex-column">
164
             <div class="flex flex-column">
194
             />
176
             />
195
           </template>
177
           </template>
196
         </Card>
178
         </Card>
197
-      </div> -->
179
+      </div>
198
     </div>
180
     </div>
199
   </AppLayout>
181
   </AppLayout>
200
 </template>
182
 </template>