Files
BigDataTool/templates/index.html
2025-08-11 09:34:29 +08:00

364 lines
14 KiB
HTML
Raw 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.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DataTools Pro - 专业数据处理工具平台</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<style>
body {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
font-family: 'Microsoft YaHei', Arial, sans-serif;
}
.hero-section {
padding: 80px 0;
text-align: center;
color: white;
}
.hero-title {
font-size: 3.5rem;
font-weight: bold;
margin-bottom: 1rem;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.hero-subtitle {
font-size: 1.3rem;
margin-bottom: 3rem;
opacity: 0.9;
}
.tools-section {
padding: 60px 0;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
}
.tool-card {
background: white;
border-radius: 15px;
padding: 2rem;
margin-bottom: 2rem;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
border: none;
height: 100%;
}
.tool-card:hover {
transform: translateY(-10px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}
.tool-icon {
font-size: 3rem;
margin-bottom: 1.5rem;
color: #667eea;
}
.tool-title {
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 1rem;
color: #333;
}
.tool-description {
color: #666;
margin-bottom: 2rem;
line-height: 1.6;
}
.tool-features {
text-align: left;
margin-bottom: 2rem;
}
.tool-features li {
margin-bottom: 0.5rem;
color: #555;
}
.tool-btn {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border: none;
border-radius: 25px;
padding: 0.75rem 2rem;
color: white;
font-weight: bold;
text-decoration: none;
transition: all 0.3s ease;
display: inline-block;
}
.tool-btn:hover {
transform: scale(1.05);
color: white;
text-decoration: none;
}
.stats-section {
padding: 40px 0;
background: rgba(255, 255, 255, 0.1);
color: white;
}
.stat-item {
text-align: center;
margin-bottom: 2rem;
}
.stat-number {
font-size: 3rem;
font-weight: bold;
display: block;
}
.stat-label {
font-size: 1.1rem;
opacity: 0.9;
}
.footer {
background: rgba(0, 0, 0, 0.8);
color: white;
text-align: center;
padding: 2rem 0;
}
.feature-badge {
background: #28a745;
color: white;
padding: 0.25rem 0.75rem;
border-radius: 15px;
font-size: 0.8rem;
font-weight: bold;
display: inline-block;
margin-bottom: 1rem;
}
.coming-soon {
background: #ffc107;
color: #333;
}
</style>
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar navbar-expand-lg navbar-dark" style="background: rgba(0,0,0,0.1);">
<div class="container">
<a class="navbar-brand" href="/">
<i class="fas fa-code-branch"></i> DataTools Pro
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link active" href="/">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/cassandra-compare">Cassandra比对</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/redis-compare">Redis比对</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- 主标题区域 -->
<div class="hero-section">
<div class="container">
<h1 class="hero-title">
<i class="fas fa-rocket"></i> DataTools Pro
</h1>
<p class="hero-subtitle">
企业级数据处理与比对工具平台<br>
高效、精准、可视化的数据分析解决方案
</p>
</div>
</div>
<!-- 统计信息 -->
<div class="stats-section">
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="stat-item">
<span class="stat-number">2</span>
<span class="stat-label">核心工具</span>
</div>
</div>
<div class="col-md-4">
<div class="stat-item">
<span class="stat-number"></span>
<span class="stat-label">数据处理能力</span>
</div>
</div>
<div class="col-md-4">
<div class="stat-item">
<span class="stat-number">24/7</span>
<span class="stat-label">稳定运行</span>
</div>
</div>
</div>
</div>
</div>
<!-- 工具展示区域 -->
<div class="tools-section">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="text-center mb-5">
<h2 class="mb-3">核心工具模块</h2>
<p class="text-muted">选择适合的工具来解决您的数据处理挑战</p>
</div>
</div>
</div>
<div class="row">
<!-- Cassandra数据库比对工具 -->
<div class="col-lg-6 col-md-12">
<div class="tool-card">
<div class="text-center">
<div class="feature-badge">生产就绪</div>
<div class="tool-icon">
<i class="fas fa-database"></i>
</div>
<h3 class="tool-title">Cassandra数据比对工具</h3>
<p class="tool-description">
企业级Cassandra数据库比对平台支持生产环境与测试环境数据差异分析
提供批量查询、分表查询、多主键查询和详细统计报告。
</p>
</div>
<div class="tool-features">
<h5><i class="fas fa-star text-warning"></i> 核心特性:</h5>
<ul>
<li><i class="fas fa-check text-success"></i> 多环境数据库配置管理</li>
<li><i class="fas fa-check text-success"></i> 分表查询TWCS时间分表</li>
<li><i class="fas fa-check text-success"></i> 多主键查询和复合主键支持</li>
<li><i class="fas fa-check text-success"></i> 可视化差异展示和智能统计</li>
<li><i class="fas fa-check text-success"></i> 查询历史管理和结果导出</li>
<li><i class="fas fa-check text-success"></i> 详细的查询日志和性能监控</li>
</ul>
</div>
<div class="text-center">
<a href="/cassandra-compare" class="tool-btn">
<i class="fas fa-rocket"></i> 立即使用
</a>
</div>
</div>
</div>
<!-- Redis集群比对工具 -->
<div class="col-lg-6 col-md-12">
<div class="tool-card">
<div class="text-center">
<div class="feature-badge">生产就绪</div>
<div class="tool-icon">
<i class="fab fa-redis"></i>
</div>
<h3 class="tool-title">Redis集群比对工具</h3>
<p class="tool-description">
专业的Redis集群数据比对平台支持多种数据类型比对分析
提供随机采样、指定Key查询和全面的性能监控。
</p>
</div>
<div class="tool-features">
<h5><i class="fas fa-star text-warning"></i> 核心特性:</h5>
<ul>
<li><i class="fas fa-check text-success"></i> Redis集群连接和配置管理</li>
<li><i class="fas fa-check text-success"></i> 智能随机采样和指定Key查询</li>
<li><i class="fas fa-check text-success"></i> 全数据类型支持String/Hash/List/Set/ZSet</li>
<li><i class="fas fa-check text-success"></i> 实时性能统计和详细报告</li>
<li><i class="fas fa-check text-success"></i> 批量操作和历史记录管理</li>
<li><i class="fas fa-check text-success"></i> 可视化数据展示和导出功能</li>
</ul>
</div>
<div class="text-center">
<a href="/redis-compare" class="tool-btn">
<i class="fas fa-rocket"></i> 立即使用
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 页脚 -->
<div class="footer">
<div class="container">
<p>&copy; 2024 DataTools Pro. 企业级数据处理与比对解决方案.</p>
<p class="mb-0">
<small class="text-muted">
Version 2.0 | Powered by Flask & Bootstrap |
<i class="fas fa-heart text-danger"></i> Made with passion for data professionals
</small>
</p>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- 新的模块化JS结构 -->
<script type="module" src="/static/js/app-main.js"></script>
<!-- 页面特定脚本 -->
<script type="module">
// 首页特定的功能
import app from '/static/js/app-main.js';
// 首页初始化完成后的操作
document.addEventListener('DOMContentLoaded', function() {
// 为工具卡片添加悬停效果
document.querySelectorAll('.tool-card').forEach(card => {
card.addEventListener('mouseenter', function() {
this.style.transform = 'translateY(-5px)';
});
card.addEventListener('mouseleave', function() {
this.style.transform = 'translateY(0)';
});
});
// 统计数字动画效果
function animateNumbers() {
const stats = document.querySelectorAll('.stat-number');
stats.forEach(stat => {
const target = stat.textContent;
if (target === '∞' || target === '24/7') return;
const num = parseInt(target);
if (isNaN(num)) return;
let current = 0;
const increment = num / 20;
const timer = setInterval(() => {
current += increment;
if (current >= num) {
current = num;
clearInterval(timer);
}
stat.textContent = Math.floor(current);
}, 50);
});
}
// 页面加载后延迟执行动画
setTimeout(animateNumbers, 500);
});
</script>
</body>
</html>