Files
ai-web/resources/views/public/home.blade.php
jiangdong.cheng a633234239 优化界面
2026-02-12 10:31:53 +08:00

180 lines
9.5 KiB
PHP

@extends('layouts.site')
@section('page_class', 'page-home')
@section('title', 'AIWeb - AI 聚合导航入口')
@section('meta_description', '探索 AI 工具、模型、资讯与教程,统一入口快速搭建 AI 工作流。')
@section('canonical', url('/'))
@section('head')
<script type="application/ld+json">
{!! json_encode([
'@context' => 'https://schema.org',
'@type' => 'WebSite',
'name' => 'AIWeb',
'url' => url('/'),
'potentialAction' => [
'@type' => 'SearchAction',
'target' => route('tools.index').'?q={search_term_string}',
'query-input' => 'required name=search_term_string',
],
], JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT) !!}
</script>
@endsection
@section('content')
@php
$totalCount = ($stats['tools'] ?? 0) + ($stats['models'] ?? 0) + ($stats['articles'] ?? 0) + ($stats['guides'] ?? 0);
@endphp
<div class="channel-layout">
<aside class="channel-sidebar" aria-label="首页导航">
<div class="channel-brand"><span class="channel-brand-mark">AI</span>AIWeb</div>
<nav class="channel-links">
<a class="channel-link active" href="{{ route('home') }}">
<i class="bi bi-house"></i>
<span>首页总览</span>
<small>{{ $totalCount }}</small>
</a>
<a class="channel-link" href="{{ route('tools.index') }}">
<i class="bi bi-tools"></i>
<span>工具导航</span>
<small>{{ $stats['tools'] ?? 0 }}</small>
</a>
<a class="channel-link" href="{{ route('models.index') }}">
<i class="bi bi-cpu"></i>
<span>模型推荐</span>
<small>{{ $stats['models'] ?? 0 }}</small>
</a>
<a class="channel-link" href="{{ route('news.index') }}">
<i class="bi bi-newspaper"></i>
<span>资讯文章</span>
<small>{{ $stats['articles'] ?? 0 }}</small>
</a>
<a class="channel-link" href="{{ route('guides.index') }}">
<i class="bi bi-journal-code"></i>
<span>教程学习</span>
<small>{{ $stats['guides'] ?? 0 }}</small>
</a>
</nav>
</aside>
<section class="channel-main">
<header class="channel-head">
<nav class="channel-tabs" aria-label="频道导航">
<a class="channel-tab active" href="{{ route('home') }}">首页</a>
<a class="channel-tab" href="{{ route('tools.index') }}">AI工具集</a>
<a class="channel-tab" href="{{ route('models.index') }}">模型推荐</a>
<a class="channel-tab" href="{{ route('news.index') }}">资讯文章</a>
<a class="channel-tab" href="{{ route('guides.index') }}">教程学习</a>
</nav>
<div class="channel-status">数据总量 <b>{{ $totalCount }}</b></div>
</header>
<nav class="channel-mobile-nav" aria-label="移动导航">
<a class="channel-link active" href="{{ route('home') }}"><i class="bi bi-house"></i><span>首页</span><small>当前</small></a>
<a class="channel-link" href="{{ route('tools.index') }}"><i class="bi bi-tools"></i><span>工具</span><small>入口</small></a>
<a class="channel-link" href="{{ route('models.index') }}"><i class="bi bi-cpu"></i><span>模型</span><small>入口</small></a>
<a class="channel-link" href="{{ route('news.index') }}"><i class="bi bi-newspaper"></i><span>资讯</span><small>入口</small></a>
<a class="channel-link" href="{{ route('guides.index') }}"><i class="bi bi-journal-code"></i><span>教程</span><small>入口</small></a>
</nav>
<section class="channel-hero">
<span class="channel-chip">AIWEB.CN</span>
<h1 class="channel-title">一站式 AI 导航入口</h1>
<p class="channel-subtitle">参考工具导航页风格统一首页,帮助你用一致路径完成发现、比较与学习。</p>
<form class="channel-search" method="get" action="{{ route('tools.index') }}" role="search" aria-label="搜索 AI 工具">
<input type="search" name="q" placeholder="输入关键词直达工具,如 写作 / 编程 / 自动化" autocomplete="off" spellcheck="false">
<a class="btn btn-outline-secondary" href="{{ route('tools.index') }}">工具入口</a>
<a class="btn btn-outline-secondary" href="{{ route('models.index') }}">模型入口</a>
<a class="btn btn-outline-secondary" href="{{ route('news.index') }}">资讯入口</a>
<button class="btn btn-primary" type="submit"><i class="bi bi-search"></i> 搜索</button>
</form>
<nav class="channel-tabs mt-2" aria-label="热门关键词">
@foreach($hotKeywords as $keyword)
<a class="channel-tab" href="{{ route('tools.index', ['q' => $keyword]) }}">{{ $keyword }}</a>
@endforeach
</nav>
<section class="channel-kpis" aria-label="站点统计概览">
<article class="channel-kpi"><span>工具收录</span><b>{{ $stats['tools'] ?? 0 }}</b></article>
<article class="channel-kpi"><span>模型收录</span><b>{{ $stats['models'] ?? 0 }}</b></article>
<article class="channel-kpi"><span>资讯文章</span><b>{{ $stats['articles'] ?? 0 }}</b></article>
<article class="channel-kpi"><span>教程学习</span><b>{{ $stats['guides'] ?? 0 }}</b></article>
</section>
</section>
<section class="channel-body">
<section class="channel-panel">
<header class="channel-panel-head">
<h2 class="channel-panel-title">核心频道内容</h2>
</header>
<div class="entity-grid">
@forelse($toolList->take(4) as $item)
<article class="entity-card">
<a class="entity-title" href="{{ route('tools.show', $item->slug) }}">{{ $item->name }}</a>
<div class="entity-meta">工具 · {{ $item->pricing_type }}</div>
<p class="entity-desc line-clamp-2">{{ $item->summary }}</p>
<div class="d-flex justify-content-between align-items-center gap-2">
<span class="chip">{{ $item->has_api ? '支持 API' : '无 API' }}</span>
<a class="btn btn-sm btn-outline-primary" href="{{ route('tools.show', $item->slug) }}">详情</a>
</div>
</article>
@empty
<article class="entity-card"><p class="mb-0 text-muted-soft">暂无工具内容</p></article>
@endforelse
@forelse($modelList->take(4) as $item)
<article class="entity-card">
<a class="entity-title" href="{{ route('models.show', $item->slug) }}">{{ $item->name }}</a>
<div class="entity-meta">模型 · {{ $item->provider ?: '未知供应商' }}</div>
<p class="entity-desc line-clamp-2">{{ $item->summary }}</p>
<div class="d-flex justify-content-between align-items-center gap-2">
<span class="chip">总分 {{ $item->total_score }}</span>
<a class="btn btn-sm btn-outline-primary" href="{{ route('models.show', $item->slug) }}">详情</a>
</div>
</article>
@empty
<article class="entity-card"><p class="mb-0 text-muted-soft">暂无模型内容</p></article>
@endforelse
</div>
</section>
<aside class="channel-list">
<section class="channel-panel">
<header class="channel-panel-head">
<h3 class="channel-panel-title">最新资讯</h3>
<a class="tiny-link" href="{{ route('news.index') }}">查看全部</a>
</header>
@forelse($articleList->take(6) as $item)
<article class="side-list-item">
<a href="{{ route('news.show', $item->slug) }}">{{ $item->title }}</a>
<small>{{ $item->published_at?->format('m-d H:i') }}</small>
</article>
@empty
<p class="text-muted-soft small mb-0">暂无资讯</p>
@endforelse
</section>
<section class="channel-panel">
<header class="channel-panel-head">
<h3 class="channel-panel-title">教程学习</h3>
<a class="tiny-link" href="{{ route('guides.index') }}">查看全部</a>
</header>
@forelse($guideList->take(6) as $item)
<article class="side-list-item">
<a href="{{ route('guides.show', $item->slug) }}">{{ $item->title }}</a>
<small>{{ $item->difficulty }}</small>
</article>
@empty
<p class="text-muted-soft small mb-0">暂无教程</p>
@endforelse
</section>
</aside>
</section>
</section>
</div>
@endsection