refactor: kb & station & terminal

This commit is contained in:
2026-03-23 20:17:17 +08:00
parent 63ea2686e1
commit b74ba1a3f8
81 changed files with 1016 additions and 2492 deletions

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Widgets;
use App\Models\Document;
use App\Models\Group;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
@@ -13,49 +12,29 @@ class KnowledgeBaseStatsWidget extends BaseWidget
protected function getStats(): array
{
// 统计文档数据
$totalDocuments = Document::count();
$completedDocuments = Document::where('conversion_status', 'completed')->count();
$failedDocuments = Document::where('conversion_status', 'failed')->count();
$processingDocuments = Document::whereIn('conversion_status', ['pending', 'processing'])->count();
// 统计分组数据
$totalGroups = Group::count();
// 计算转换成功率
$conversionRate = $totalDocuments > 0
? round(($completedDocuments / $totalDocuments) * 100, 1)
$conversionRate = $totalDocuments > 0
? round(($completedDocuments / $totalDocuments) * 100, 1)
: 0;
return [
Stat::make('文档总数', $totalDocuments)
->description('知识库中的文档总数')
->descriptionIcon('heroicon-m-document-text')
->color('primary')
->chart([7, 12, 15, 18, 22, 25, $totalDocuments]),
->color('primary'),
Stat::make('转换完成', $completedDocuments)
->description("成功率: {$conversionRate}%")
->descriptionIcon('heroicon-m-check-circle')
->color('success')
->chart([5, 10, 12, 15, 18, 20, $completedDocuments]),
->color('success'),
Stat::make('转换失败', $failedDocuments)
->description('需要重新处理')
->descriptionIcon('heroicon-m-x-circle')
->color('danger')
->url(route('filament.admin.resources.documents.index', ['tableFilters[conversion_status][value]' => 'failed'])),
Stat::make('处理中', $processingDocuments)
->description('等待转换或转换中')
->descriptionIcon('heroicon-m-arrow-path')
->color('warning'),
Stat::make('知识库分组', $totalGroups)
->description('专用知识库数量')
->descriptionIcon('heroicon-m-folder')
->color('info')
->url(route('filament.admin.resources.groups.index')),
->color('danger'),
];
}
}

View File

@@ -2,8 +2,8 @@
namespace App\Filament\Widgets;
use App\Models\Station;
use App\Models\Terminal;
use App\Models\TerminalPrompt;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
@@ -14,23 +14,20 @@ class TerminalStatsWidget extends BaseWidget
protected function getStats(): array
{
// 统计终端数据
$totalStations = Station::count();
$totalTerminals = Terminal::count();
$onlineTerminals = Terminal::where('is_online', true)->count();
// 统计提示词
$totalPrompts = TerminalPrompt::count();
return [
Stat::make('线站数量', $totalStations)
->description('线站')
->descriptionIcon('heroicon-m-building-office')
->color('info'),
Stat::make('终端总数', $totalTerminals)
->description("{$onlineTerminals} 个在线")
->descriptionIcon('heroicon-m-computer-desktop')
->color('primary')
->url(route('filament.admin.resources.terminals.index')),
Stat::make('提示词配置', $totalPrompts)
->description('终端提示词总数')
->descriptionIcon('heroicon-m-chat-bubble-left-right')
->color('success'),
->color('primary'),
];
}
}