- 实现基于 Laravel 11 和 Filament 3.X 的文档管理系统 - 添加用户认证和分组管理功能 - 实现文档上传、分类和权限控制 - 集成 Word 文档自动转换为 Markdown - 集成 Meilisearch 全文搜索引擎 - 实现文档在线预览功能 - 添加安全日志和审计功能 - 完整的简体中文界面 - 包含完整的项目文档和部署指南 技术栈: - Laravel 11.x - Filament 3.X - Meilisearch 1.5+ - Pandoc 文档转换 - Redis 队列系统 - Pest PHP 测试框架
89 lines
3.1 KiB
PHP
89 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\GroupResource\RelationManagers;
|
|
|
|
use Filament\Forms;
|
|
use Filament\Forms\Form;
|
|
use Filament\Resources\RelationManagers\RelationManager;
|
|
use Filament\Tables;
|
|
use Filament\Tables\Table;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
|
|
|
class UsersRelationManager extends RelationManager
|
|
{
|
|
protected static string $relationship = 'users';
|
|
|
|
protected static ?string $title = '分组成员';
|
|
|
|
protected static ?string $modelLabel = '用户';
|
|
|
|
public function form(Form $form): Form
|
|
{
|
|
return $form
|
|
->schema([
|
|
Forms\Components\TextInput::make('name')
|
|
->label('用户名称')
|
|
->required()
|
|
->maxLength(255),
|
|
Forms\Components\TextInput::make('email')
|
|
->label('邮箱')
|
|
->email()
|
|
->required()
|
|
->maxLength(255),
|
|
]);
|
|
}
|
|
|
|
public function table(Table $table): Table
|
|
{
|
|
return $table
|
|
->recordTitleAttribute('name')
|
|
->columns([
|
|
Tables\Columns\TextColumn::make('id')
|
|
->label('ID')
|
|
->sortable(),
|
|
Tables\Columns\TextColumn::make('name')
|
|
->label('用户名称')
|
|
->searchable()
|
|
->sortable(),
|
|
Tables\Columns\TextColumn::make('email')
|
|
->label('邮箱')
|
|
->searchable()
|
|
->sortable(),
|
|
Tables\Columns\TextColumn::make('created_at')
|
|
->label('加入时间')
|
|
->dateTime('Y-m-d H:i:s')
|
|
->sortable(),
|
|
])
|
|
->filters([
|
|
//
|
|
])
|
|
->headerActions([
|
|
Tables\Actions\AttachAction::make()
|
|
->label('添加成员')
|
|
->preloadRecordSelect()
|
|
->modalHeading('添加分组成员')
|
|
->modalSubmitActionLabel('添加')
|
|
->modalCancelActionLabel('取消'),
|
|
])
|
|
->actions([
|
|
Tables\Actions\DetachAction::make()
|
|
->label('移除')
|
|
->modalHeading('移除分组成员')
|
|
->modalDescription('确定要将此用户从分组中移除吗?')
|
|
->modalSubmitActionLabel('确认移除')
|
|
->modalCancelActionLabel('取消'),
|
|
])
|
|
->bulkActions([
|
|
Tables\Actions\BulkActionGroup::make([
|
|
Tables\Actions\DetachBulkAction::make()
|
|
->label('批量移除')
|
|
->modalHeading('批量移除分组成员')
|
|
->modalDescription('确定要将选中的用户从分组中移除吗?')
|
|
->modalSubmitActionLabel('确认移除')
|
|
->modalCancelActionLabel('取消'),
|
|
]),
|
|
]);
|
|
}
|
|
}
|