瀏覽代碼

defer report initial page load upon visiting

3.x
Andrew Wallo 1 年之前
父節點
當前提交
b659464b4d

+ 8
- 3
app/Filament/Company/Pages/Reports/BaseReportPage.php 查看文件

41
 
41
 
42
     public Company $company;
42
     public Company $company;
43
 
43
 
44
+    public bool $reportLoaded = false;
45
+
44
     #[Session]
46
     #[Session]
45
     public array $toggledTableColumns = [];
47
     public array $toggledTableColumns = [];
46
 
48
 
63
 
65
 
64
         $this->loadDefaultDateRange();
66
         $this->loadDefaultDateRange();
65
 
67
 
66
-        $this->loadReportData();
67
-
68
         $this->loadDefaultTableColumnToggleState();
68
         $this->loadDefaultTableColumnToggleState();
69
     }
69
     }
70
 
70
 
94
     public function loadReportData(): void
94
     public function loadReportData(): void
95
     {
95
     {
96
         unset($this->report);
96
         unset($this->report);
97
+        $this->reportLoaded = true;
97
     }
98
     }
98
 
99
 
99
     protected function loadDefaultTableColumnToggleState(): void
100
     protected function loadDefaultTableColumnToggleState(): void
142
     }
143
     }
143
 
144
 
144
     #[Computed(persist: true)]
145
     #[Computed(persist: true)]
145
-    public function report(): ExportableReport
146
+    public function report(): ?ExportableReport
146
     {
147
     {
148
+        if ($this->reportLoaded === false) {
149
+            return null;
150
+        }
151
+
147
         $columns = $this->getToggledColumns();
152
         $columns = $this->getToggledColumns();
148
         $reportDTO = $this->buildReport($columns);
153
         $reportDTO = $this->buildReport($columns);
149
 
154
 

+ 4
- 2
resources/views/filament/company/pages/reports/detailed-report.blade.php 查看文件

17
                 </form>
17
                 </form>
18
             </div>
18
             </div>
19
             <div class="divide-y divide-gray-200 overflow-x-auto overflow-y-hidden dark:divide-white/10 dark:border-t-white/10">
19
             <div class="divide-y divide-gray-200 overflow-x-auto overflow-y-hidden dark:divide-white/10 dark:border-t-white/10">
20
-                <div class="flex items-center justify-center">
20
+                <div wire:init="loadReportData" class="flex items-center justify-center">
21
                     <div wire:loading.delay wire:target="loadReportData">
21
                     <div wire:loading.delay wire:target="loadReportData">
22
                         <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300" />
22
                         <x-filament::loading-indicator class="p-6 text-primary-700 dark:text-primary-300" />
23
                     </div>
23
                     </div>
24
                 </div>
24
                 </div>
25
 
25
 
26
                 <div wire:loading.remove wire:target="loadReportData">
26
                 <div wire:loading.remove wire:target="loadReportData">
27
-                    <x-company.tables.reports.detailed-report :report="$this->report" />
27
+                    @if($this->report)
28
+                        <x-company.tables.reports.detailed-report :report="$this->report" />
29
+                    @endif
28
                 </div>
30
                 </div>
29
             </div>
31
             </div>
30
             <div class="es-table__footer-ctn border-t border-gray-200"></div>
32
             <div class="es-table__footer-ctn border-t border-gray-200"></div>

Loading…
取消
儲存