Andrew 2 месяцев назад
Родитель
Сommit
c4bbcc78d8
1 измененных файлов: 22 добавлений и 23 удалений
  1. 22
    23
      app/Filament/Resources/ProjectResource.php

+ 22
- 23
app/Filament/Resources/ProjectResource.php Просмотреть файл

51
         return $form
51
         return $form
52
             ->schema([
52
             ->schema([
53
                 Section::make('')->schema([
53
                 Section::make('')->schema([
54
-                    Translate::make()->schema(fn(string $locale) => [
54
+                    Translate::make()->schema(fn (string $locale) => [
55
                         TextInput::make('name')->label('項目名稱'),
55
                         TextInput::make('name')->label('項目名稱'),
56
                         TextInput::make('sub_name')->label('項目子名稱'),
56
                         TextInput::make('sub_name')->label('項目子名稱'),
57
                     ])
57
                     ])
77
                         Select::make('region_id')->label('地區')->options(function () {
77
                         Select::make('region_id')->label('地區')->options(function () {
78
                             return Region::where('visible', true)->pluck('name', 'id');
78
                             return Region::where('visible', true)->pluck('name', 'id');
79
                         }),
79
                         }),
80
-                        Translate::make()->schema(fn(string $locale) => [
80
+                        Translate::make()->schema(fn (string $locale) => [
81
                             Textarea::make('summaries')->label('簡述'),
81
                             Textarea::make('summaries')->label('簡述'),
82
                             TextInput::make('district')->label('區域'),
82
                             TextInput::make('district')->label('區域'),
83
                             TextInput::make('address')->label('地址'),
83
                             TextInput::make('address')->label('地址'),
98
                                     return Badge::all()->mapWithKeys(function ($badge) {
98
                                     return Badge::all()->mapWithKeys(function ($badge) {
99
                                         return [
99
                                         return [
100
                                             $badge->id => '<div class="flex items-center gap-2">
100
                                             $badge->id => '<div class="flex items-center gap-2">
101
-                                                <img src="' . Storage::url($badge->img_url) . '" class="w-6 h-6 rounded-full">
102
-                                                <span>' . $badge->title . '</span>
101
+                                                <img src="'.Storage::url($badge->img_url).'" class="w-6 h-6 rounded-full">
102
+                                                <span>'.$badge->title.'</span>
103
                                             </div>',
103
                                             </div>',
104
                                         ];
104
                                         ];
105
                                     });
105
                                     });
117
                                     return Badge::all()->mapWithKeys(function ($badge) {
117
                                     return Badge::all()->mapWithKeys(function ($badge) {
118
                                         return [
118
                                         return [
119
                                             $badge->id => '<div class="flex items-center gap-2">
119
                                             $badge->id => '<div class="flex items-center gap-2">
120
-                                                <img src="' . Storage::url($badge->img_url) . '" class="w-6 h-6 rounded-full">
121
-                                                <span>' . $badge->title . '</span>
120
+                                                <img src="'.Storage::url($badge->img_url).'" class="w-6 h-6 rounded-full">
121
+                                                <span>'.$badge->title.'</span>
122
                                             </div>',
122
                                             </div>',
123
                                         ];
123
                                         ];
124
                                     });
124
                                     });
139
                     Tab::make('開發歷程')->schema([
139
                     Tab::make('開發歷程')->schema([
140
                         Repeater::make('histories')->label('')->schema([
140
                         Repeater::make('histories')->label('')->schema([
141
                             TextInput::make('histories_item_key')
141
                             TextInput::make('histories_item_key')
142
-                                ->default(fn() => Str::random())
142
+                                ->default(fn () => Str::random())
143
                                 ->hidden()
143
                                 ->hidden()
144
                                 ->afterStateHydrated(function (TextInput $component, $state) {
144
                                 ->afterStateHydrated(function (TextInput $component, $state) {
145
                                     if (empty($state)) {
145
                                     if (empty($state)) {
147
                                     }
147
                                     }
148
                                 }),
148
                                 }),
149
                             DatePicker::make('operate_date')->label('歷程日期')->columnSpan(1),
149
                             DatePicker::make('operate_date')->label('歷程日期')->columnSpan(1),
150
-                            Translate::make()->schema(fn(string $locale) => [
150
+                            Translate::make()->schema(fn (string $locale) => [
151
                                 TextInput::make('title')->label('標題')->columnSpanFull(),
151
                                 TextInput::make('title')->label('標題')->columnSpanFull(),
152
                             ])
152
                             ])
153
                                 ->locales(['zh_TW', 'en'])
153
                                 ->locales(['zh_TW', 'en'])
154
                                 ->actions([
154
                                 ->actions([
155
                                     app(DeepLService::class)->createTranslationAction('histories', ['title']),
155
                                     app(DeepLService::class)->createTranslationAction('histories', ['title']),
156
                                 ])->columnSpanFull()
156
                                 ])->columnSpanFull()
157
-                                ->id(fn($get) => 'histories_' . $get('histories_item_key')),
157
+                                ->id(fn ($get) => 'histories_'.$get('histories_item_key')),
158
                         ])
158
                         ])
159
                             ->relationship('histories', function ($query, Get $get, $livewire) {
159
                             ->relationship('histories', function ($query, Get $get, $livewire) {
160
                                 return $query->orderby('operate_date', 'desc');
160
                                 return $query->orderby('operate_date', 'desc');
164
                     ]),
164
                     ]),
165
                     Tab::make('空間資訊')->schema([
165
                     Tab::make('空間資訊')->schema([
166
                         Group::make()->schema([
166
                         Group::make()->schema([
167
-                            Translate::make()->schema(fn(string $locale) => [
167
+                            Translate::make()->schema(fn (string $locale) => [
168
                                 TextInput::make('contact_unit')->label('物管單位'),
168
                                 TextInput::make('contact_unit')->label('物管單位'),
169
                                 TextInput::make('contact_phone')->label('物管電話'),
169
                                 TextInput::make('contact_phone')->label('物管電話'),
170
                                 TextInput::make('inversment_phone')->label('招商電話'),
170
                                 TextInput::make('inversment_phone')->label('招商電話'),
177
                             TextInput::make('offical_link')->label('官網連結'),
177
                             TextInput::make('offical_link')->label('官網連結'),
178
                         ])->columnSpanFull(),
178
                         ])->columnSpanFull(),
179
                         Repeater::make('spaceInfos')->label('')->schema([
179
                         Repeater::make('spaceInfos')->label('')->schema([
180
-                            Translate::make()->schema(fn(string $locale) => [
180
+                            Translate::make()->schema(fn (string $locale) => [
181
                                 TextInput::make('title')->label('標題')->columnSpanFull(),
181
                                 TextInput::make('title')->label('標題')->columnSpanFull(),
182
                                 Textarea::make('content')->label('內文')->columnSpanFull(),
182
                                 Textarea::make('content')->label('內文')->columnSpanFull(),
183
                             ])
183
                             ])
184
                                 ->locales(['zh_TW', 'en'])
184
                                 ->locales(['zh_TW', 'en'])
185
-                                ->actions(fn($arguments) => $arguments['locale'] === 'zh_TW' ? [] : [
186
-                                    app(DeepLService::class)->createTranslationAction('spaceInfos', ['title', 'content'])
187
-                                ])
188
-                                ->columnSpanFull()
189
-                                ->id(fn($get) => 'spaceInfos_' . $get('item_key')),
185
+                                ->actions([
186
+                                    app(DeepLService::class)->createTranslationAction('spaceInfos', ['title', 'content']),
187
+                                ])->columnSpanFull()
188
+                                ->id(fn ($get) => 'spaceInfos_'.$get('item_key')),
190
                         ])
189
                         ])
191
                             ->relationship('spaceInfos')
190
                             ->relationship('spaceInfos')
192
                             ->label('')
191
                             ->label('')
208
                 ImageColumn::make('thumbnail_url')->label('縮圖')->alignCenter(),
207
                 ImageColumn::make('thumbnail_url')->label('縮圖')->alignCenter(),
209
                 ImageColumn::make('first_list_img_url')->label('列表圖')->alignCenter(),
208
                 ImageColumn::make('first_list_img_url')->label('列表圖')->alignCenter(),
210
                 TextColumn::make('region.name')->label('地址')->alignCenter()
209
                 TextColumn::make('region.name')->label('地址')->alignCenter()
211
-                    ->formatStateUsing(fn($record) => $record->region->getTranslation('name', 'zh_TW') . ' | ' . $record->getTranslation('address', 'zh_TW')),
210
+                    ->formatStateUsing(fn ($record) => $record->region->getTranslation('name', 'zh_TW').' | '.$record->getTranslation('address', 'zh_TW')),
212
             ])
211
             ])
213
             ->filters([
212
             ->filters([
214
                 SelectFilter::make('visible')->label('上/下架')
213
                 SelectFilter::make('visible')->label('上/下架')
217
                         1 => '上架',
216
                         1 => '上架',
218
                     ])
217
                     ])
219
                     ->query(
218
                     ->query(
220
-                        fn(array $data, Builder $query): Builder => $query->when(
219
+                        fn (array $data, Builder $query): Builder => $query->when(
221
                             $data['value'],
220
                             $data['value'],
222
-                            fn(Builder $query, $value): Builder => $query->where('visible', $data['value'])
221
+                            fn (Builder $query, $value): Builder => $query->where('visible', $data['value'])
223
                         )
222
                         )
224
                     ),
223
                     ),
225
             ])
224
             ])
227
                 Tables\Actions\EditAction::make(),
226
                 Tables\Actions\EditAction::make(),
228
                 Tables\Actions\DeleteAction::make(),
227
                 Tables\Actions\DeleteAction::make(),
229
                 \Filament\Tables\Actions\Action::make('audit')
228
                 \Filament\Tables\Actions\Action::make('audit')
230
-                    ->label(fn($record) => match ($record->visible) {
229
+                    ->label(fn ($record) => match ($record->visible) {
231
                         0 => '上架',
230
                         0 => '上架',
232
                         1 => '下架',
231
                         1 => '下架',
233
                     })
232
                     })
234
-                    ->color(fn($record) => match ($record->visible) {
233
+                    ->color(fn ($record) => match ($record->visible) {
235
                         0 => 'warning',
234
                         0 => 'warning',
236
                         1 => 'gray',
235
                         1 => 'gray',
237
                     })
236
                     })
238
-                    ->icon(fn($record) => match ($record->visible) {
237
+                    ->icon(fn ($record) => match ($record->visible) {
239
                         0 => 'heroicon-m-chevron-double-up',
238
                         0 => 'heroicon-m-chevron-double-up',
240
                         1 => 'heroicon-m-chevron-double-down',
239
                         1 => 'heroicon-m-chevron-double-down',
241
                     })
240
                     })
242
                     ->action(function ($record): void {
241
                     ->action(function ($record): void {
243
-                        $record->visible = !$record->visible;
242
+                        $record->visible = ! $record->visible;
244
                         $record->save();
243
                         $record->save();
245
                     })
244
                     })
246
                     ->outlined()
245
                     ->outlined()