Files
chatroom/resources/views/admin/marriages/index.blade.php
lkddi 37af4ba975 修复:婚姻管理总览页 Tailwind v4 动态类无法构建问题
- 「婚礼档位」按钮改用 style 内联颜色(bg-pink-600 未被扫描)
- 快捷入口4张卡片 hover 颜色改为完整静态类名
  (Tailwind v4 无法扫描动态拼接 bg-xx / text-xx)
- npm run build 验证已生效
2026-03-01 15:23:35 +08:00

158 lines
8.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{--
文件功能:后台婚姻管理总览页
统计卡片 + 最近结婚记录 + 最近离婚记录
@author ChatRoom Laravel
@version 1.0.0
--}}
@extends('admin.layouts.app')
@section('title', '婚姻管理 - 总览')
@section('content')
{{-- 页面标题 --}}
<div class="flex items-center justify-between mb-6">
<div>
<h2 class="text-xl font-bold text-gray-800">💒 婚姻管理</h2>
<p class="text-sm text-gray-500 mt-1">婚姻系统总览,管理求婚、结婚、婚礼及参数配置</p>
</div>
<div class="flex gap-2">
<a href="{{ route('admin.marriages.configs') }}"
class="bg-indigo-600 text-white px-4 py-2 rounded-lg text-sm font-bold hover:bg-indigo-700 transition">
⚙️ 参数配置
</a>
<a href="{{ route('admin.marriages.tiers') }}" style="background:#db2777;color:#fff;"
class="px-4 py-2 rounded-lg text-sm font-bold transition hover:opacity-90">
🎊 婚礼档位
</a>
</div>
</div>
{{-- 统计卡片 --}}
<div class="grid grid-cols-2 md:grid-cols-3 xl:grid-cols-6 gap-4 mb-8">
<div class="bg-white rounded-xl shadow-sm border p-4 text-center">
<div class="text-2xl mb-1">💑</div>
<div class="text-2xl font-bold text-indigo-600">{{ $stats['total_married'] }}</div>
<div class="text-xs text-gray-500 mt-1">当前已婚</div>
</div>
<div class="bg-white rounded-xl shadow-sm border p-4 text-center">
<div class="text-2xl mb-1">💍</div>
<div class="text-2xl font-bold text-amber-500">{{ $stats['total_pending'] }}</div>
<div class="text-xs text-gray-500 mt-1">求婚中</div>
</div>
<div class="bg-white rounded-xl shadow-sm border p-4 text-center">
<div class="text-2xl mb-1">💔</div>
<div class="text-2xl font-bold text-red-500">{{ $stats['total_divorced'] }}</div>
<div class="text-xs text-gray-500 mt-1">已离婚</div>
</div>
<div class="bg-white rounded-xl shadow-sm border p-4 text-center">
<div class="text-2xl mb-1">🎊</div>
<div class="text-2xl font-bold text-pink-500">{{ $stats['total_weddings'] }}</div>
<div class="text-xs text-gray-500 mt-1">婚礼场次</div>
</div>
<div class="bg-white rounded-xl shadow-sm border p-4 text-center">
<div class="text-2xl mb-1">🎁</div>
<div class="text-2xl font-bold text-green-600">{{ number_format($stats['total_envelopes']) }}</div>
<div class="text-xs text-gray-500 mt-1">红包总额()</div>
</div>
<div class="bg-white rounded-xl shadow-sm border p-4 text-center">
<div class="text-2xl mb-1"></div>
<div class="text-2xl font-bold text-emerald-600">{{ number_format($stats['claimed_amount']) }}</div>
<div class="text-xs text-gray-500 mt-1">已领取()</div>
</div>
</div>
{{-- 快捷入口 --}}
<div class="grid grid-cols-2 md:grid-cols-4 gap-3 mb-8">
<a href="{{ route('admin.marriages.list') }}"
class="bg-white rounded-xl border shadow-sm p-5 flex flex-col items-center gap-2 hover:shadow-md hover:border-blue-300 transition group">
<span class="text-3xl">📋</span>
<span class="text-sm font-bold text-gray-700 group-hover:text-blue-600">婚姻列表</span>
</a>
<a href="{{ route('admin.marriages.proposals') }}"
class="bg-white rounded-xl border shadow-sm p-5 flex flex-col items-center gap-2 hover:shadow-md hover:border-amber-300 transition group">
<span class="text-3xl">💌</span>
<span class="text-sm font-bold text-gray-700 group-hover:text-amber-600">求婚记录</span>
</a>
<a href="{{ route('admin.marriages.ceremonies') }}"
class="bg-white rounded-xl border shadow-sm p-5 flex flex-col items-center gap-2 hover:shadow-md hover:border-pink-300 transition group">
<span class="text-3xl">🎊</span>
<span class="text-sm font-bold text-gray-700 group-hover:text-pink-600">婚礼红包</span>
</a>
<a href="{{ route('admin.marriages.intimacy-logs') }}"
class="bg-white rounded-xl border shadow-sm p-5 flex flex-col items-center gap-2 hover:shadow-md hover:border-purple-300 transition group">
<span class="text-3xl">💞</span>
<span class="text-sm font-bold text-gray-700 group-hover:text-purple-600">亲密度日志</span>
</a>
</div>
{{-- 最近已婚 --}}
<div class="grid grid-cols-1 xl:grid-cols-2 gap-6">
<div class="bg-white rounded-xl shadow-sm border overflow-hidden">
<div class="px-5 py-4 flex justify-between items-center border-b bg-gray-50">
<h3 class="font-bold text-gray-700">💑 最近结婚</h3>
<a href="{{ route('admin.marriages.list') }}" class="text-xs text-indigo-600 hover:underline">查看全部</a>
</div>
<div class="divide-y">
@forelse ($recentMarriages as $m)
<div class="px-5 py-3 flex items-center justify-between text-sm">
<div class="flex items-center gap-2">
<span class="text-lg">{{ $m->ringItem?->icon ?? '💍' }}</span>
<div>
<span class="font-bold">{{ $m->user?->username }}</span>
<span class="text-gray-400 mx-1">×</span>
<span class="font-bold">{{ $m->partner?->username }}</span>
</div>
</div>
<div class="text-right">
<div class="text-gray-500">{{ $m->married_at?->format('m/d') }}</div>
<div class="text-xs text-indigo-500">
{{ \App\Services\MarriageIntimacyService::levelName($m->level) }}</div>
</div>
</div>
@empty
<div class="px-5 py-8 text-center text-gray-400">暂无已婚记录</div>
@endforelse
</div>
</div>
{{-- 最近离婚 --}}
<div class="bg-white rounded-xl shadow-sm border overflow-hidden">
<div class="px-5 py-4 flex justify-between items-center border-b bg-gray-50">
<h3 class="font-bold text-gray-700">💔 最近离婚</h3>
<a href="{{ route('admin.marriages.list', ['status' => 'divorced']) }}"
class="text-xs text-red-600 hover:underline">查看全部</a>
</div>
<div class="divide-y">
@forelse ($recentDivorces as $m)
<div class="px-5 py-3 flex items-center justify-between text-sm">
<div>
<span class="font-bold">{{ $m->user?->username }}</span>
<span class="text-gray-400 mx-1">×</span>
<span class="font-bold">{{ $m->partner?->username }}</span>
</div>
<div class="text-right">
<span
class="text-xs px-2 py-0.5 rounded-full font-bold
{{ match ($m->divorce_type) {
'forced' => 'bg-red-100 text-red-600',
'auto' => 'bg-orange-100 text-orange-600',
'admin' => 'bg-purple-100 text-purple-600',
default => 'bg-gray-100 text-gray-600',
} }}">
{{ match ($m->divorce_type) {'forced' => '强制','auto' => '超时','admin' => '管理员',default => '协议'} }}
</span>
<div class="text-xs text-gray-400 mt-0.5">{{ $m->divorced_at?->format('m/d') }}</div>
</div>
</div>
@empty
<div class="px-5 py-8 text-center text-gray-400">暂无离婚记录</div>
@endforelse
</div>
</div>
</div>
@endsection