现代化的Vue3前端界面,为TradingAgents-CN提供优秀的用户体验。
- Node.js >= 18.0.0
- npm >= 8.0.0
npm installnpm run devnpm run buildnpm run previewfrontend/
├── public/ # 静态资源
├── src/
│ ├── api/ # API接口
│ ├── components/ # 组件
│ │ ├── Global/ # 全局组件
│ │ └── Layout/ # 布局组件
│ ├── layouts/ # 页面布局
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ ├── styles/ # 样式文件
│ ├── types/ # 类型定义
│ ├── utils/ # 工具函数
│ ├── views/ # 页面组件
│ ├── App.vue # 根组件
│ └── main.ts # 应用入口
├── index.html # HTML模板
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
├── vite.config.ts # Vite配置
└── README.md # 说明文档
- 数据概览和统计
- 快速操作入口
- 系统状态监控
- 最近分析记录
- 多维度筛选条件
- 实时结果展示
- 批量操作支持
- 筛选结果导出
- 单股深度分析
- 批量分析处理
- 分析历史查看
- 进度实时跟踪
- 任务队列监控
- 实时状态更新
- 任务优先级管理
- 批量操作支持
- 报告生成和管理
- 多格式导出支持
- 报告分享功能
- 历史报告查看
- 个人偏好配置
- 主题和外观设置
- 分析参数配置
- 安全设置管理
- Vue 3 - 渐进式JavaScript框架
- TypeScript - 类型安全的JavaScript
- Vite - 现代化构建工具
- Element Plus - 企业级Vue组件库
- @element-plus/icons-vue - 图标组件
- Pinia - Vue官方状态管理库
- @vueuse/core - Vue组合式API工具集
- Vue Router 4 - 官方路由管理器
- Axios - HTTP客户端
- ESLint - 代码质量检查
- Prettier - 代码格式化
- unplugin-auto-import - 自动导入
- unplugin-vue-components - 组件自动导入
- 响应式布局设计
- 明暗主题切换
- 流畅的动画效果
- 移动端适配
- TypeScript类型安全
- 组件自动导入
- 热模块替换
- 代码分割优化
- 路由懒加载
- 组件按需加载
- 图片懒加载
- 缓存策略优化
- JWT认证集成
- 权限路由守卫
- XSS防护
- CSRF保护
支持多种设备尺寸:
- 桌面端: >= 1200px
- 平板端: 768px - 1199px
- 手机端: < 768px
支持多种主题模式:
- 浅色主题: 适合白天使用
- 深色主题: 适合夜间使用
- 自动模式: 跟随系统设置
创建 .env.local 文件:
# API基础URL
VITE_API_BASE_URL=http://localhost:8000/api
# 应用标题
VITE_APP_TITLE=TradingAgents-CN开发环境自动代理API请求到后端服务:
// vite.config.ts
server: {
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true
}
}
}npm run buildserver {
listen 80;
server_name your-domain.com;
root /path/to/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}- 在
src/views/创建页面组件 - 在
src/router/index.ts添加路由 - 在侧边栏菜单中添加导航
- 在
src/types/定义类型 - 在
src/api/创建API模块 - 在组件中使用API
使用Pinia进行状态管理:
// 定义store
export const useExampleStore = defineStore('example', {
state: () => ({
data: []
}),
actions: {
async fetchData() {
// 获取数据逻辑
}
}
})
// 在组件中使用
const exampleStore = useExampleStore()- 组件名:PascalCase
- 文件名:kebab-case
- 变量名:camelCase
- 常量名:UPPER_SNAKE_CASE
- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式调整
- refactor: 代码重构
- test: 测试相关
- chore: 构建过程或辅助工具的变动
-
依赖安装失败
rm -rf node_modules package-lock.json npm install
-
端口被占用
# 修改端口 npm run dev -- --port 3001 -
类型错误
# 重新生成类型文件 npm run type-check
如有问题,请通过以下方式联系:
- 📧 邮箱: hsliup@163.com
- 💬 微信群: 扫描README中的二维码
- 🐛 问题反馈: GitHub Issues
TradingAgents-CN Frontend v1.0.0-preview - 现代化的股票分析平台前端