Browse Source

project visible invisible

parent
commit
8e0c3933d9

+ 33
- 1
app/Filament/Resources/ProjectResource.php View File

@@ -27,6 +27,7 @@ use Filament\Resources\Resource;
27 27
 use Filament\Tables;
28 28
 use Filament\Tables\Columns\ImageColumn;
29 29
 use Filament\Tables\Columns\TextColumn;
30
+use Filament\Tables\Filters\SelectFilter;
30 31
 use Filament\Tables\Table;
31 32
 use Illuminate\Database\Eloquent\Builder;
32 33
 use Illuminate\Database\Eloquent\SoftDeletingScope;
@@ -203,10 +204,41 @@ class ProjectResource extends Resource
203 204
                 ->formatStateUsing(fn ($record) => $record->region->getTranslation("name", "zh_TW") . ' | ' . $record->getTranslation("address", "zh_TW")),
204 205
             ])
205 206
             ->filters([
206
-                //
207
+                SelectFilter::make('visible')->label("上/下架")
208
+                ->options([
209
+                    0 => "下架",
210
+                    1 => "上架",
211
+                ])
212
+                ->query(
213
+                    fn (array $data, Builder $query): Builder =>
214
+                    $query->when(
215
+                        $data['value'],
216
+                        fn (Builder $query, $value): Builder => $query->where('visible', $data['value'])
217
+                    )
218
+                ),
207 219
             ])
208 220
             ->actions([
209 221
                 Tables\Actions\EditAction::make(),
222
+                Tables\Actions\DeleteAction::make(),
223
+                \Filament\Tables\Actions\Action::make("audit")
224
+                ->label(fn ($record) => match ($record->visible) {
225
+                    0 => '上架',
226
+                    1 => '下架',
227
+                })
228
+                ->color(fn ($record) => match ($record->visible) {
229
+                    0 => 'warning',
230
+                    1 => 'gray',
231
+                })
232
+                ->icon(fn ($record) => match ($record->visible) {
233
+                    0 => 'heroicon-m-chevron-double-up',
234
+                    1 => 'heroicon-m-chevron-double-down',
235
+                })
236
+                ->action(function ($record): void {
237
+                    $record->visible = !$record->visible;
238
+                    $record->save();
239
+                })
240
+                ->outlined()
241
+                ->requiresConfirmation(),
210 242
             ])
211 243
             ->bulkActions([
212 244
                 Tables\Actions\BulkActionGroup::make([

+ 1
- 1
app/Http/Controllers/Api/ProjectController.php View File

@@ -48,7 +48,7 @@ class ProjectController extends Controller
48 48
         $result["tags"] = $tags;
49 49
 
50 50
         //文章列表
51
-        $projects = Project::query();
51
+        $projects = Project::where("visible", true);
52 52
         if($request->has('region')){
53 53
             $projects->where("region_id", $request->input('region'));
54 54
         }