AriStockAI/services/frontend/src/views/Index.vue
fanfpy deaba87362 feat: 重构前端架构并添加核心功能
- 新增Pinia状态管理用于用户认证和全局状态
- 实现JWT认证工具类和API服务封装
- 添加路由权限控制和全局错误处理
- 重构项目结构,新增layouts目录和组件
- 完善工具函数库和常量定义
- 新增404页面和API接口模块
- 优化移动端导航和响应式布局
- 更新依赖并添加开发工具支持
2025-07-18 16:13:23 +08:00

157 lines
10 KiB
Vue
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.

<template>
<div class="min-h-screen bg-gray-900 text-white">
<!-- 英雄区域 -->
<section class="relative py-20 overflow-hidden">
<div class="absolute inset-0 bg-[radial-gradient(circle_at_top_right,_rgba(79,70,229,0.15),_transparent_70%)]"></div>
<div class="container mx-auto px-4 relative z-10">
<div class="max-w-3xl mx-auto text-center">
<div class="inline-block px-3 py-1 rounded-full bg-gray-800 text-green-400 mb-6">
由AI驱动的智能投资平台
</div>
<h1 class="text-4xl md:text-5xl lg:text-6xl font-bold mb-6 leading-tight">
The Most Powerful AI Platform for <span class="text-transparent bg-clip-text bg-gradient-to-r from-green-400 to-blue-500">Smarter Investment</span>
</h1>
<p class="text-xl mb-10 max-w-2xl mx-auto text-gray-400">
利用人工智能技术分析市场趋势提供精准选股建议帮助投资者做出更明智的决策
</p>
<div class="flex flex-col sm:flex-row justify-center gap-4">
<button class="px-8 py-4 rounded-xl bg-gradient-to-r from-green-500 to-blue-600 hover:opacity-90 transition-opacity text-lg font-medium" @click="handleStartUsing">
开始使用
</button>
<button class="px-8 py-4 rounded-xl bg-gray-800 hover:bg-gray-700 transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 inline mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z" />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
观看演示
</button>
</div>
</div>
</div>
</section>
<!-- 核心功能模块 -->
<section id="features" class="py-20 bg-gray-900 border-t border-gray-800">
<div class="container mx-auto px-4">
<div class="text-center mb-16">
<div class="inline-block px-3 py-1 rounded-full bg-gray-800 text-blue-400 mb-4">
核心功能
</div>
<h2 class="text-3xl md:text-4xl font-bold mb-6">AI驱动的智能股票分析与投资决策平台</h2>
<p class="text-xl max-w-3xl mx-auto text-gray-400">
集成五大核心功能模块提供全方位的股票数据分析与投资决策支持
</p>
</div>
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- 每日股票推荐 -->
<div class="bg-gray-800/50 border border-gray-800 rounded-2xl p-6 hover:border-blue-500/50 transition-all group">
<div class="w-14 h-14 rounded-xl bg-blue-500/20 flex items-center justify-center mb-6 group-hover:bg-blue-500/30 transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-7 w-7 text-blue-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" />
</svg>
</div>
<h3 class="text-xl font-bold mb-3">每日股票推荐</h3>
<p class="text-gray-400 mb-4">
基于机器学习算法每日推送潜力股票推荐列表结合市场趋势与历史数据分析助您把握投资机会
</p>
<ul class="space-y-2 text-sm text-gray-400">
<li class="flex items-center gap-2"><span class="text-green-400"></span> 多因子模型评估</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 风险收益比分析</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 行业分布均衡推荐</li>
</ul>
</div>
<!-- 技术分析 -->
<div class="bg-gray-800/50 border border-gray-800 rounded-2xl p-6 hover:border-green-500/50 transition-all group">
<div class="w-14 h-14 rounded-xl bg-green-500/20 flex items-center justify-center mb-6 group-hover:bg-green-500/30 transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-7 w-7 text-green-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2v-6a2 2 0 00-2-2h-2a2 2 0 00-2 2v6z" />
</svg>
</div>
<h3 class="text-xl font-bold mb-3">技术分析</h3>
<p class="text-gray-400 mb-4">
提供专业级股票技术分析图表支持多种技术指标与周期切换帮助您深入分析股票走势与市场情绪
</p>
<ul class="space-y-2 text-sm text-gray-400">
<li class="flex items-center gap-2"><span class="text-green-400"></span> 实时K线图与指标</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 多周期技术分析</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 技术形态识别</li>
</ul>
</div>
<!-- 用户设置股票 -->
<div class="bg-gray-800/50 border border-gray-800 rounded-2xl p-6 hover:border-purple-500/50 transition-all group">
<div class="w-14 h-14 rounded-xl bg-purple-500/20 flex items-center justify-center mb-6 group-hover:bg-purple-500/30 transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-7 w-7 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z" />
</svg>
</div>
<h3 class="text-xl font-bold mb-3">用户设置股票</h3>
<p class="text-gray-400 mb-4">
个性化股票关注列表管理支持添加删除和分组管理关注股票实时追踪您关心的市场动态
</p>
<ul class="space-y-2 text-sm text-gray-400">
<li class="flex items-center gap-2"><span class="text-green-400"></span> 自定义关注列表</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 股票分组管理</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 快速访问与排序</li>
</ul>
</div>
<!-- 添加指标 -->
<div class="bg-gray-800/50 border border-gray-800 rounded-2xl p-6 hover:border-yellow-500/50 transition-all group">
<div class="w-14 h-14 rounded-xl bg-yellow-500/20 flex items-center justify-center mb-6 group-hover:bg-yellow-500/30 transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-7 w-7 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" />
</svg>
</div>
<h3 class="text-xl font-bold mb-3">添加指标</h3>
<p class="text-gray-400 mb-4">
灵活的技术指标自定义功能支持添加MACDRSIKDJ等多种技术指标自定义参数与显示样式
</p>
<ul class="space-y-2 text-sm text-gray-400">
<li class="flex items-center gap-2"><span class="text-green-400"></span> 30+技术指标支持</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 自定义指标参数</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 多指标组合分析</li>
</ul>
</div>
<!-- 订阅股票的技术信号提醒 -->
<div class="bg-gray-800/50 border border-gray-800 rounded-2xl p-6 hover:border-red-500/50 transition-all group md:col-span-2 lg:col-span-1">
<div class="w-14 h-14 rounded-xl bg-red-500/20 flex items-center justify-center mb-6 group-hover:bg-red-500/30 transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" class="h-7 w-7 text-red-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" />
</svg>
</div>
<h3 class="text-xl font-bold mb-3">技术信号提醒</h3>
<p class="text-gray-400 mb-4">
智能技术信号监测系统支持自定义股票信号条件实时推送买卖点提醒不错过任何投资机会
</p>
<ul class="space-y-2 text-sm text-gray-400">
<li class="flex items-center gap-2"><span class="text-green-400"></span> 自定义信号条件</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 实时推送提醒</li>
<li class="flex items-center gap-2"><span class="text-green-400"></span> 历史信号回溯</li>
</ul>
</div>
</div>
</div>
</section>
</div>
</template>
<script>
export default {
name: 'LandingPage',
methods: {
handleStartUsing() {
// 检查用户登录状态
const isLoggedIn = localStorage.getItem('isLoggedIn') === 'true';
if (isLoggedIn) {
this.$router.push('/app');
} else {
this.$router.push('/sign-up');
}
}
}
}
</script>