AdminPanelProvider.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Providers\Filament;
  3. use App\Filament\Pages\Integrations\KnowledgeGraphExplorer;
  4. use App\Filament\Pages\Integrations\KnowledgeGraphIntegration;
  5. use App\Filament\Pages\KnowledgePoints;
  6. use App\Filament\Pages\KnowledgeMindmap;
  7. use App\Filament\Pages\QuestionManagement;
  8. use App\Filament\Pages\PromptManagement;
  9. use App\Filament\Pages\RecommendationList;
  10. use App\Filament\Pages\Statistics\KnowledgePointStats;
  11. use App\Filament\Pages\StudentDashboard;
  12. use App\Filament\Pages\StudentManagement;
  13. use App\Filament\Pages\StudentKnowledgeGraphPage;
  14. use App\Filament\Pages\TextbookImport\TextbookExcelImportPage;
  15. use App\Filament\Widgets\DashboardQuickLinks;
  16. use Filament\Http\Middleware\Authenticate;
  17. use Filament\Http\Middleware\AuthenticateSession;
  18. use Filament\Http\Middleware\DisableBladeIconComponents;
  19. use Filament\Http\Middleware\DispatchServingFilamentEvent;
  20. use Filament\Pages\Dashboard;
  21. use Filament\Panel;
  22. use Filament\PanelProvider;
  23. use App\Filament\Auth\Pages\CustomLogin;
  24. use Filament\Support\Colors\Color;
  25. use Filament\Widgets\AccountWidget;
  26. use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
  27. use Illuminate\Cookie\Middleware\EncryptCookies;
  28. use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
  29. use Illuminate\Routing\Middleware\SubstituteBindings;
  30. use Illuminate\Session\Middleware\StartSession;
  31. use Illuminate\View\Middleware\ShareErrorsFromSession;
  32. use Filament\Support\Facades\FilamentView;
  33. class AdminPanelProvider extends PanelProvider
  34. {
  35. public function panel(Panel $panel): Panel
  36. {
  37. return $panel
  38. ->default()
  39. ->id('admin')
  40. ->path('admin')
  41. ->login(CustomLogin::class)
  42. ->colors([
  43. 'primary' => Color::hex('#0ea5e9'), // 使用DaisyUI的primary色
  44. 'gray' => Color::hex('#6b7280'),
  45. 'warning' => Color::hex('#f59e0b'),
  46. 'success' => Color::hex('#10b981'),
  47. 'danger' => Color::hex('#ef4444'),
  48. ])
  49. ->defaultAvatarProvider(\App\Providers\Filament\AvatarProviders\DiceBearAvatarProvider::class)
  50. ->darkMode(false) // 默认使用浅色模式,保留DaisyUI主题
  51. ->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
  52. ->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
  53. ->pages([
  54. Dashboard::class,
  55. StudentManagement::class,
  56. StudentDashboard::class,
  57. StudentKnowledgeGraphPage::class,
  58. KnowledgePoints::class,
  59. KnowledgeMindmap::class,
  60. QuestionManagement::class,
  61. PromptManagement::class,
  62. RecommendationList::class,
  63. KnowledgePointStats::class,
  64. KnowledgeGraphIntegration::class,
  65. KnowledgeGraphExplorer::class,
  66. TextbookExcelImportPage::class,
  67. ])
  68. ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
  69. ->widgets([
  70. DashboardQuickLinks::class,
  71. AccountWidget::class,
  72. ])
  73. ->renderHook('panels::head.end', fn (): string =>
  74. view('filament.layout.vite-styles')->render() . view('filament.layout.vite-scripts')->render()
  75. )
  76. ->renderHook('global::head.start', fn (): string => view('filament.layout.vite-styles')->render())
  77. ->renderHook('panels::body.end', fn (): string => view('filament.layout.math-renderer')->render())
  78. ->renderHook(
  79. 'panels::page.header.actions.after',
  80. fn () => view('filament.components.menu-visibility-toggle')
  81. )
  82. ->middleware([
  83. EncryptCookies::class,
  84. AddQueuedCookiesToResponse::class,
  85. StartSession::class,
  86. AuthenticateSession::class,
  87. ShareErrorsFromSession::class,
  88. VerifyCsrfToken::class,
  89. SubstituteBindings::class,
  90. DisableBladeIconComponents::class,
  91. DispatchServingFilamentEvent::class,
  92. ])
  93. ->authMiddleware([
  94. Authenticate::class,
  95. ]);
  96. }
  97. }