ai-share / index.html
yuanyuanwen's picture
Add 3 files
6f5e2c3 verified
Raw
History Blame Contribute Delete
24.6 kB
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>趣味组队系统</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#6E8EFB',
secondary: '#A777FF',
}
}
}
}
</script>
<style>
.member-card {
width: 120px;
height: 80px;
transition: all 0.3s ease;
}
.member-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.ai-bubble {
border-radius: 8px;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.team-name-option {
transition: all 0.2s ease;
}
.team-name-option:hover {
transform: scale(1.05);
}
.countdown-timer {
font-family: monospace;
}
.slide-fade-enter-active {
transition: all 0.3s ease-out;
}
.slide-fade-leave-active {
transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
}
.slide-fade-enter-from,
.slide-fade-leave-to {
transform: translateX(20px);
opacity: 0;
}
</style>
</head>
<body class="bg-gray-50 min-h-screen">
<div class="container mx-auto px-4 py-8">
<!-- Header -->
<header class="mb-8">
<h1 class="text-3xl font-bold text-center text-primary">趣味组队系统</h1>
<p class="text-center text-gray-600 mt-2">为45名成员提供智能有趣的组队体验</p>
<!-- Progress and Countdown -->
<div class="flex justify-between items-center mt-6 bg-white p-4 rounded-lg shadow">
<div class="flex items-center">
<div class="w-64 bg-gray-200 rounded-full h-4 mr-4">
<div class="bg-primary h-4 rounded-full" style="width: 65%"></div>
</div>
<span class="text-sm font-medium">65% 已完成组队</span>
</div>
<div class="countdown-timer bg-gray-100 px-4 py-2 rounded-lg">
<span class="font-bold">⏰ 剩余时间:</span>
<span id="countdown" class="ml-2">23:45:12</span>
</div>
</div>
</header>
<!-- Main Content -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Left Column - Member List -->
<div class="lg:col-span-1 bg-white p-6 rounded-lg shadow">
<h2 class="text-xl font-semibold mb-4 flex items-center">
<i class="fas fa-users mr-2 text-secondary"></i> 成员名单 (45人)
</h2>
<div class="mb-4">
<input type="text" placeholder="搜索成员..." class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-primary">
</div>
<div class="h-96 overflow-y-auto pr-2">
<div class="grid grid-cols-2 sm:grid-cols-3 gap-3">
<!-- Member Cards -->
<template id="member-template">
<div class="member-card bg-white border border-gray-200 rounded-lg p-2 flex flex-col items-center justify-center cursor-pointer hover:border-primary">
<div class="w-8 h-8 rounded-full bg-gray-200 flex items-center justify-center mb-1 text-sm font-medium"></div>
<span class="text-sm text-center font-medium truncate w-full"></span>
<span class="text-xs text-gray-500"></span>
</div>
</template>
</div>
</div>
<div class="mt-4 text-sm text-gray-500">
<p>点击成员可查看详情或邀请组队</p>
</div>
</div>
<!-- Middle Column - Grouping Options -->
<div class="lg:col-span-1 bg-white p-6 rounded-lg shadow">
<h2 class="text-xl font-semibold mb-4 flex items-center">
<i class="fas fa-random mr-2 text-secondary"></i> 组队方式
</h2>
<!-- Grouping Options -->
<div class="space-y-4">
<!-- Free Grouping -->
<div class="border border-gray-200 rounded-lg p-4 hover:border-primary transition-colors">
<div class="flex items-start">
<div class="bg-primary bg-opacity-10 p-2 rounded-full mr-3">
<i class="fas fa-user-plus text-primary"></i>
</div>
<div>
<h3 class="font-medium">自由组队</h3>
<p class="text-sm text-gray-600 mt-1">创建队伍并邀请其他成员加入</p>
<button class="mt-3 bg-primary text-white px-4 py-2 rounded-lg text-sm hover:bg-opacity-90 transition">创建队伍</button>
</div>
</div>
</div>
<!-- AI Grouping -->
<div class="border border-gray-200 rounded-lg p-4 hover:border-secondary transition-colors">
<div class="flex items-start">
<div class="bg-secondary bg-opacity-10 p-2 rounded-full mr-3">
<i class="fas fa-robot text-secondary"></i>
</div>
<div>
<h3 class="font-medium">AI智能分组</h3>
<p class="text-sm text-gray-600 mt-1">基于姓名特征、加入时间等智能匹配</p>
<div class="mt-3 flex space-x-2">
<button class="bg-secondary text-white px-4 py-2 rounded-lg text-sm hover:bg-opacity-90 transition">智能推荐</button>
<button class="border border-gray-300 px-4 py-2 rounded-lg text-sm hover:bg-gray-50 transition">匹配规则</button>
</div>
</div>
</div>
</div>
<!-- Auto Grouping -->
<div class="border border-gray-200 rounded-lg p-4 hover:border-primary transition-colors">
<div class="flex items-start">
<div class="bg-primary bg-opacity-10 p-2 rounded-full mr-3">
<i class="fas fa-magic text-primary"></i>
</div>
<div>
<h3 class="font-medium">自动分组</h3>
<p class="text-sm text-gray-600 mt-1">系统随机分配,快速完成组队</p>
<div class="mt-3">
<label class="flex items-center text-sm">
<input type="checkbox" class="rounded text-primary mr-2">
平衡各组人数
</label>
<button class="mt-2 bg-gray-100 text-gray-800 px-4 py-2 rounded-lg text-sm hover:bg-gray-200 transition w-full">自动分配</button>
</div>
</div>
</div>
</div>
</div>
<!-- AI Recommendation Bubble -->
<div class="mt-6 ai-bubble bg-indigo-50 p-4 border-l-4 border-secondary">
<div class="flex">
<div class="mr-3">
<div class="w-8 h-8 rounded-full bg-secondary text-white flex items-center justify-center">
<i class="fas fa-lightbulb"></i>
</div>
</div>
<div>
<h4 class="font-medium text-secondary">AI 推荐</h4>
<p class="text-sm mt-1">建议将【王宝奇】【王晓楠】【王莹】组成"王牌战队",因三位姓名均含"王"字且字数呈2-3-1递减排列</p>
<div class="mt-2 flex space-x-2">
<button class="text-xs bg-secondary text-white px-3 py-1 rounded hover:bg-opacity-90">采纳建议</button>
<button class="text-xs border border-gray-300 px-3 py-1 rounded hover:bg-gray-50">查看详情</button>
</div>
</div>
</div>
</div>
</div>
<!-- Right Column - Team Management -->
<div class="lg:col-span-1 bg-white p-6 rounded-lg shadow">
<h2 class="text-xl font-semibold mb-4 flex items-center">
<i class="fas fa-users-between-lines mr-2 text-secondary"></i> 队伍管理
</h2>
<!-- Current Team -->
<div class="mb-6">
<div class="flex justify-between items-center mb-3">
<h3 class="font-medium">我的队伍</h3>
<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded">已锁定</span>
</div>
<div class="border border-gray-200 rounded-lg p-4">
<div class="flex justify-between items-center mb-3">
<h4 class="font-medium text-lg">冰雪聪明</h4>
<button class="text-xs text-primary hover:underline">编辑队名</button>
</div>
<!-- Team Members -->
<div class="space-y-2">
<div class="flex items-center justify-between p-2 bg-blue-50 rounded">
<div class="flex items-center">
<div class="w-6 h-6 rounded-full bg-blue-100 mr-2 flex items-center justify-center text-xs"></div>
<span>温媛媛</span>
</div>
<span class="text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded">队长</span>
</div>
<div class="flex items-center justify-between p-2 hover:bg-gray-50 rounded">
<div class="flex items-center">
<div class="w-6 h-6 rounded-full bg-gray-100 mr-2 flex items-center justify-center text-xs"></div>
<span>覃海冰</span>
</div>
<button class="text-xs text-gray-500 hover:text-primary">设为队长</button>
</div>
<div class="flex items-center justify-between p-2 hover:bg-gray-50 rounded">
<div class="flex items-center">
<div class="w-6 h-6 rounded-full bg-gray-100 mr-2 flex items-center justify-center text-xs"></div>
<span>李颖超</span>
</div>
<button class="text-xs text-gray-500 hover:text-primary">设为队长</button>
</div>
</div>
<!-- Team Actions -->
<div class="mt-4 pt-3 border-t border-gray-200 flex justify-between">
<button class="text-xs text-red-500 hover:text-red-700 flex items-center">
<i class="fas fa-trash-alt mr-1"></i> 解散队伍
</button>
<button class="text-xs text-gray-500 hover:text-primary flex items-center">
<i class="fas fa-user-plus mr-1"></i> 邀请成员
</button>
</div>
</div>
</div>
<!-- Team Name Generator -->
<div class="mb-6">
<h3 class="font-medium mb-3">队名生成器</h3>
<div class="border border-gray-200 rounded-lg p-4">
<div class="flex items-center mb-3">
<input type="text" placeholder="输入关键词..." class="flex-1 px-3 py-2 border rounded-l-lg focus:outline-none focus:ring-1 focus:ring-primary">
<button class="bg-primary text-white px-4 py-2 rounded-r-lg hover:bg-opacity-90">
<i class="fas fa-wand-magic-sparkles"></i>
</button>
</div>
<!-- Generated Names -->
<div class="space-y-2 mt-3">
<div class="team-name-option flex items-center justify-between p-3 bg-gray-50 rounded-lg cursor-pointer">
<span class="font-medium">镌刻时光</span>
<button class="text-xs bg-primary text-white px-2 py-1 rounded hover:bg-opacity-90">采纳</button>
</div>
<div class="team-name-option flex items-center justify-between p-3 bg-gray-50 rounded-lg cursor-pointer">
<span class="font-medium">吴与伦比</span>
<button class="text-xs bg-primary text-white px-2 py-1 rounded hover:bg-opacity-90">采纳</button>
</div>
<div class="team-name-option flex items-center justify-between p-3 bg-gray-50 rounded-lg cursor-pointer">
<span class="font-medium">冰雪聪明</span>
<button class="text-xs bg-primary text-white px-2 py-1 rounded hover:bg-opacity-90">采纳</button>
</div>
</div>
<div class="mt-3 flex justify-between text-xs text-gray-500">
<button class="hover:text-primary flex items-center">
<i class="fas fa-rotate-right mr-1"></i> 重新生成
</button>
<button class="hover:text-primary flex items-center">
<i class="fas fa-pen mr-1"></i> 手动编辑
</button>
</div>
</div>
</div>
<!-- Team Status -->
<div>
<h3 class="font-medium mb-3">组队状态</h3>
<div class="border border-gray-200 rounded-lg p-4">
<div class="flex justify-between items-center mb-2">
<span class="text-sm">已完成组队</span>
<span class="text-sm font-medium">29/45</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-green-500 h-2 rounded-full" style="width: 65%"></div>
</div>
<div class="mt-4 text-sm">
<div class="flex justify-between py-1 border-b border-gray-100">
<span>已锁定队伍</span>
<span class="font-medium">10</span>
</div>
<div class="flex justify-between py-1 border-b border-gray-100">
<span>待确认队伍</span>
<span class="font-medium">4</span>
</div>
<div class="flex justify-between py-1">
<span>未组队成员</span>
<span class="font-medium">16</span>
</div>
</div>
<button class="mt-4 w-full bg-primary text-white py-2 rounded-lg hover:bg-opacity-90 text-sm">
锁定队伍并提交
</button>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="mt-12 text-center text-sm text-gray-500">
<p>趣味组队系统 © 2023 | 超时未组队成员将自动分配</p>
<p class="mt-1">截止时间: <span id="deadline" class="font-medium">2023-12-31 18:00</span></p>
</footer>
</div>
<script>
// Sample member data
const members = [
{name: "曾谦", joinTime: "2023-10-01"},
{name: "陈香玉", joinTime: "2023-10-02"},
{name: "陈雅", joinTime: "2023-10-02"},
{name: "崔晓雪", joinTime: "2023-10-03"},
{name: "代小丹", joinTime: "2023-10-03"},
{name: "丁雪晶", joinTime: "2023-10-04"},
{name: "董雪", joinTime: "2023-10-05"},
{name: "杜娟", joinTime: "2023-10-05"},
{name: "冯帆", joinTime: "2023-10-06"},
{name: "高菲", joinTime: "2023-10-07"},
{name: "高阳", joinTime: "2023-10-08"},
{name: "郭晓萌", joinTime: "2023-10-08"},
{name: "韩旭", joinTime: "2023-10-09"},
{name: "何苗", joinTime: "2023-10-10"},
{name: "侯亚楠", joinTime: "2023-10-11"},
{name: "胡畔", joinTime: "2023-10-12"},
{name: "黄珊", joinTime: "2023-10-13"},
{name: "贾茹", joinTime: "2023-10-14"},
{name: "姜楠", joinTime: "2023-10-15"},
{name: "蒋文文", joinTime: "2023-10-16"},
{name: "金鑫", joinTime: "2023-10-17"},
{name: "康慨", joinTime: "2023-10-18"},
{name: "李丹", joinTime: "2023-10-19"},
{name: "李颖超", joinTime: "2023-10-20"},
{name: "梁家镌", joinTime: "2023-10-21"},
{name: "刘畅", joinTime: "2023-10-22"},
{name: "刘洋", joinTime: "2023-10-23"},
{name: "卢珊", joinTime: "2023-10-24"},
{name: "罗薇", joinTime: "2023-10-25"},
{name: "马丽", joinTime: "2023-10-26"},
{name: "牛萌萌", joinTime: "2023-10-27"},
{name: "潘婷", joinTime: "2023-10-28"},
{name: "齐悦", joinTime: "2023-10-29"},
{name: "钱芳", joinTime: "2023-10-30"},
{name: "秦雯", joinTime: "2023-10-31"},
{name: "邱月", joinTime: "2023-11-01"},
{name: "任静", joinTime: "2023-11-02"},
{name: "沈洁", joinTime: "2023-11-03"},
{name: "宋佳", joinTime: "2023-11-04"},
{name: "孙梅", joinTime: "2023-11-05"},
{name: "覃海冰", joinTime: "2023-11-06"},
{name: "王宝奇", joinTime: "2023-11-07"},
{name: "王晓楠", joinTime: "2023-11-08"},
{name: "王莹", joinTime: "2023-11-09"},
{name: "温媛媛", joinTime: "2023-11-10"},
{name: "吴桐", joinTime: "2023-11-11"},
{name: "吴洋", joinTime: "2023-11-12"},
{name: "武迪", joinTime: "2023-11-13"},
{name: "肖雪", joinTime: "2023-11-14"},
{name: "徐静", joinTime: "2023-11-15"},
{name: "许晴", joinTime: "2023-11-16"},
{name: "杨光", joinTime: "2023-11-17"},
{name: "于娜", joinTime: "2023-11-18"},
{name: "袁媛", joinTime: "2023-11-19"},
{name: "张丽", joinTime: "2023-11-20"},
{name: "赵静", joinTime: "2023-11-21"},
{name: "周梅", joinTime: "2023-11-22"},
{name: "朱凯莉", joinTime: "2023-11-23"}
];
// Render members
const memberContainer = document.querySelector('.grid.grid-cols-2.sm:grid-cols-3.gap-3');
const memberTemplate = document.getElementById('member-template');
members.slice(0, 45).forEach(member => {
const clone = memberTemplate.content.cloneNode(true);
const avatar = clone.querySelector('.w-8.h-8');
const name = clone.querySelector('span.text-sm');
const joinTime = clone.querySelector('span.text-xs');
// Get first character of last name
const lastNameChar = member.name.charAt(0);
avatar.textContent = lastNameChar;
name.textContent = member.name;
joinTime.textContent = member.joinTime.split('-')[1] + '月加入';
// Random background color for avatar
const colors = ['bg-blue-100', 'bg-green-100', 'bg-yellow-100', 'bg-red-100', 'bg-purple-100', 'bg-pink-100'];
const randomColor = colors[Math.floor(Math.random() * colors.length)];
avatar.classList.add(randomColor);
memberContainer.appendChild(clone);
});
// Countdown timer
function updateCountdown() {
const now = new Date();
const deadline = new Date('2023-12-31T18:00:00');
const diff = deadline - now;
if (diff <= 0) {
document.getElementById('countdown').textContent = "已截止";
return;
}
const hours = Math.floor(diff / (1000 * 60 * 60));
const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((diff % (1000 * 60)) / 1000);
document.getElementById('countdown').textContent =
`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
}
setInterval(updateCountdown, 1000);
updateCountdown();
// Team name generator interactions
document.querySelectorAll('.team-name-option').forEach(option => {
option.addEventListener('click', function(e) {
if (e.target.tagName === 'BUTTON') return;
const button = this.querySelector('button');
button.classList.toggle('bg-primary');
button.classList.toggle('bg-green-500');
button.textContent = button.textContent === '采纳' ? '已采纳' : '采纳';
});
});
// AI bubble animation
const aiBubble = document.querySelector('.ai-bubble');
setTimeout(() => {
aiBubble.classList.add('animate-pulse');
setTimeout(() => {
aiBubble.classList.remove('animate-pulse');
}, 2000);
}, 1500);
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=yuanyuanwen/ai-share" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>