Browse Source

project visible invisible

parent
commit
8e0c3933d9

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

27
 use Filament\Tables;
27
 use Filament\Tables;
28
 use Filament\Tables\Columns\ImageColumn;
28
 use Filament\Tables\Columns\ImageColumn;
29
 use Filament\Tables\Columns\TextColumn;
29
 use Filament\Tables\Columns\TextColumn;
30
+use Filament\Tables\Filters\SelectFilter;
30
 use Filament\Tables\Table;
31
 use Filament\Tables\Table;
31
 use Illuminate\Database\Eloquent\Builder;
32
 use Illuminate\Database\Eloquent\Builder;
32
 use Illuminate\Database\Eloquent\SoftDeletingScope;
33
 use Illuminate\Database\Eloquent\SoftDeletingScope;
203
                 ->formatStateUsing(fn ($record) => $record->region->getTranslation("name", "zh_TW") . ' | ' . $record->getTranslation("address", "zh_TW")),
204
                 ->formatStateUsing(fn ($record) => $record->region->getTranslation("name", "zh_TW") . ' | ' . $record->getTranslation("address", "zh_TW")),
204
             ])
205
             ])
205
             ->filters([
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
             ->actions([
220
             ->actions([
209
                 Tables\Actions\EditAction::make(),
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
             ->bulkActions([
243
             ->bulkActions([
212
                 Tables\Actions\BulkActionGroup::make([
244
                 Tables\Actions\BulkActionGroup::make([

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

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