diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2637646 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,60 @@ +# 更新日志 + +## 2026-01-26 - 起始页面交互优化 + +### 主要改进 + +#### 1. 起始页面重构(SearchPage) +- **搜索框功能**:保持不变,用于输入股票标的(如"贵州茅台") +- **下方展示区域**:从股票列表改为评级模版展示 + - 默认评级模版(通用、全面) + - 消费股模版(消费、品牌) + - 科技股模版(科技、成长) + - 快速诊断模版(快速、简洁) + +#### 2. 交互流程优化 +**新的操作流程**: +1. 在搜索框输入股票标的名称 +2. 选择合适的评级模版 +3. 点击模版或按回车,直接进入评级详情页 +4. 详情页默认展开右侧图表区域,无需再次点击 + +**用户体验提升**: +- 减少操作步骤:从"输入 → 进入 → 点击查看图表"简化为"输入 → 选择模版 → 直接看到图表" +- 模版可视化:每个模版都有独特的图标、颜色和描述,更易识别 +- 即时反馈:选中模版时有明显的视觉反馈(边框高亮、选中标识) + +#### 3. Dashboard 页面优化 +- **默认展开右侧面板**:进入页面时右侧图表区域默认显示 +- **默认渲染图表**:无需等待点击,图表数据立即加载显示 +- 保留左右分屏布局,左侧显示指标列表,右侧显示对应图表 + +### 技术细节 + +#### 模版数据结构 +```typescript +{ + id: string; // 模版唯一标识 + name: string; // 模版名称 + description: string; // 模版描述 + icon: ReactElement; // 模版图标 + bgColor: string; // 背景色 + iconColor: string; // 图标颜色 + borderColor: string; // 边框颜色 + tags: string[]; // 标签 +} +``` + +#### URL 参数传递 +- 通过 URL 参数 `template` 传递选中的模版 ID +- 例如:`/dashboard?template=consumer` +- 为未来根据不同模版加载不同数据做准备 + +### 后续优化建议 + +1. **模版数据动态化**:根据不同模版加载对应的维度和指标配置 +2. **自定义模版**:允许用户创建和保存自己的评级模版 +3. **搜索结果优化**:支持模糊搜索、历史搜索记录 +4. **模版预览**:鼠标悬停时显示模版详细配置预览 +5. **快捷键支持**:键盘快捷键选择模版和提交 + diff --git a/README.md b/README.md index ab6a948..1bcab94 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,134 @@ -
-GHBanner -
+# 资产评级系统 (Asset Rating System) -# Run and deploy your AI Studio app +一个基于多维度分析的智能资产评级系统,帮助投资者全面评估股票的投资价值。 -This contains everything you need to run your app locally. +## 功能特点 -View your app in AI Studio: https://ai.studio/apps/drive/1ukYcPlCYB97O2tjajF3GI8pxlmamIjpO +### 🎯 核心功能 +- **多模版评级**:提供默认、消费股、科技股、快速诊断四种评级模版 +- **多维度分析**:估值逻辑、资金流向、宏观背景、相关资产四大维度 +- **可视化图表**:每个指标都配有历史走势图和研判结论 +- **自定义配置**:支持拖拽排序、添加删除维度和指标 +- **模版管理**:保存和加载自定义评级模版 -## Run Locally +### 📊 分析维度 +1. **估值逻辑**:PB/PE/PS质量对比、股息回报等 +2. **宏观胜率背景**:ERP风险溢价、无风险利率等 +3. **相关资产走势**:同行业、上下游、同风格公司对比 +4. **资金流向**:市场成交活跃度、主力资金、北向资金等 -**Prerequisites:** Node.js +## 快速开始 +### 前置要求 +- Node.js 16.x 或更高版本 +- npm 或 yarn -1. Install dependencies: - `npm install` -2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key -3. Run the app: - `npm run dev` +### 安装依赖 +```bash +npm install +``` + +### 运行开发环境 +```bash +npm run dev +``` + +访问 `http://localhost:5173` 查看应用 + +### 构建生产版本 +```bash +npm run build +``` + +## 使用指南 + +### 1. 选择标的和模版 +1. 在搜索框输入股票名称(如"贵州茅台") +2. 从下方选择合适的评级模版 +3. 点击模版卡片或按回车进入评级详情页 + +### 2. 查看多维度分析 +- **左侧**:资产评级表,展示各维度指标和摘要 +- **右侧**:图表详情,显示指标历史走势和研判结论 +- 点击左侧任意指标,右侧自动滚动到对应图表 + +### 3. 自定义配置 +1. 点击设置图标(⚙️)进入编辑模式 +2. 拖拽指标调整顺序 +3. 添加或删除维度和指标 +4. 为维度打星级评分 +5. 点击"另存为"保存为新模版 + +详细使用指南请查看 [USER_GUIDE.md](./docs/USER_GUIDE.md) + +## 技术栈 + +- **前端框架**:React 18 + TypeScript +- **构建工具**:Vite +- **路由管理**:React Router v6 +- **样式方案**:Tailwind CSS +- **图表库**:Recharts +- **图标库**:Lucide React + +## 项目结构 + +``` +quantBuddy_assetRating_demo/ +├── components/ # 组件目录 +│ ├── Logo.tsx # Logo组件 +│ ├── Sidebar.tsx # 侧边栏组件 +│ └── StockChart.tsx # 图表组件 +├── pages/ # 页面目录 +│ ├── SearchPage.tsx # 起始页(搜索和模版选择) +│ ├── DashboardPage.tsx # 评级详情页 +│ └── DetailPage.tsx # 深度分析页 +├── data/ # 数据目录 +│ └── mockData.ts # 模拟数据 +├── docs/ # 文档目录 +│ └── USER_GUIDE.md # 用户指南 +└── dist/ # 构建输出目录 +``` + +## 更新日志 + +### v1.1 (2026-01-26) +- ✅ 优化起始页面交互逻辑 +- ✅ 下方展示区改为评级模版展示 +- ✅ 进入详情页时默认展开图表区域 +- ✅ 增强模版选择的视觉反馈 +- ✅ 优化操作提示和用户引导 + +### v1.0 +- 🎉 初始版本发布 +- ✅ 四大维度资产评级 +- ✅ 编辑模式和模版管理 +- ✅ 响应式布局设计 + +详细更新日志请查看 [CHANGELOG.md](./CHANGELOG.md) + +## 部署 + +项目已配置 Vite 构建,可以部署到任何静态网站托管服务: + +- Vercel +- Netlify +- GitHub Pages +- 自定义服务器 + +部署指南请查看 [README_DEPLOY.md](./README_DEPLOY.md) + +## 贡献指南 + +欢迎提交 Issue 和 Pull Request! + +## 许可证 + +MIT License + +## 联系方式 + +如有问题或建议,请通过 Issue 联系我们。 + +--- + +Made with ❤️ for better investment decisions diff --git a/docs/PROJECT_STRUCTURE.md b/docs/PROJECT_STRUCTURE.md new file mode 100644 index 0000000..6303e72 --- /dev/null +++ b/docs/PROJECT_STRUCTURE.md @@ -0,0 +1,276 @@ +# 项目文件结构 + +``` +quantBuddy_assetRating_demo/ +│ +├── 📁 components/ # React 组件 +│ ├── Logo.tsx # Logo 组件 +│ ├── Sidebar.tsx # 侧边栏组件(暂未使用) +│ └── StockChart.tsx # 图表组件(基于 Recharts) +│ +├── 📁 pages/ # 页面组件 +│ ├── SearchPage.tsx # ✨ 起始页(搜索+模版选择) +│ ├── DashboardPage.tsx # ✨ 评级详情页(多维度分析) +│ └── DetailPage.tsx # 详细分析页(单维度深度分析) +│ +├── 📁 data/ # 数据层 +│ └── mockData.ts # 模拟数据生成器 +│ +├── 📁 docs/ # 📚 文档目录 +│ ├── QUICK_START.md # 快速启动指南 +│ ├── USER_GUIDE.md # 用户使用手册 +│ ├── UI_IMPROVEMENTS.md # UI 改进说明 +│ └── TEST_CHECKLIST.md # 功能测试清单 +│ +├── 📁 dist/ # 构建输出目录 +│ ├── assets/ # 静态资源 +│ │ ├── css/ # 样式文件 +│ │ ├── js/ # JavaScript 文件 +│ │ └── ... # 图片、字体等 +│ └── index.html # 入口 HTML +│ +├── 📁 node_modules/ # npm 依赖包 +│ +├── 📁 src/ # 源码目录(未使用) +│ └── index.css # 基础样式 +│ +├── 📄 App.tsx # 根组件 +├── 📄 index.tsx # 应用入口 +├── 📄 types.ts # TypeScript 类型定义 +│ +├── 📄 package.json # 项目配置 +├── 📄 tsconfig.json # TypeScript 配置 +├── 📄 vite.config.ts # Vite 构建配置 +├── 📄 tailwind.config.js # Tailwind CSS 配置 +├── 📄 postcss.config.js # PostCSS 配置 +│ +├── 📄 README.md # 项目说明 +├── 📄 CHANGELOG.md # 更新日志 +├── 📄 README_DEPLOY.md # 部署指南 +│ +└── 📄 index.html # HTML 入口文件 + +``` + +## 核心文件说明 + +### 🎯 关键页面组件 + +#### SearchPage.tsx +**起始页 - 搜索和模版选择** + +```typescript +功能: +- 股票搜索输入框 +- 4 种评级模版展示(默认、消费股、科技股、快速诊断) +- 模版选择交互 +- 跳转到评级详情页 + +改进亮点: +✅ 从展示股票改为展示模版 +✅ 清晰的操作流程引导 +✅ 动态提示文字 +``` + +#### DashboardPage.tsx +**评级详情页 - 多维度分析** + +```typescript +功能: +- 左侧:资产评级表(4大维度,多个指标) +- 右侧:图表详情(默认展开) +- 编辑模式:拖拽排序、添加删除 +- 模板库和另存为功能 + +改进亮点: +✅ 默认展开右侧图表区域 +✅ 默认渲染图表(无需点击) +✅ 左右联动交互 +``` + +#### DetailPage.tsx +**详细分析页 - 单维度深度分析** + +```typescript +功能: +- 大图表展示 +- 研判结论和图表说明 +- 多标签页切换 +- AI 修改输入框 + +特点: +- 更大的图表显示区域 +- 详细的分析说明 +- 支持自然语言修改参数 +``` + +### 📊 数据层 + +#### mockData.ts +**模拟数据生成器** + +```typescript +导出: +- generateChartData() // 图表数据生成函数 +- STOCK_DATA_CONFIG // 股票数据配置对象 + ├── valuation // 估值维度 + ├── macro // 宏观维度 + ├── assets // 资产维度 + └── capital // 资金维度 + +每个维度包含: +- id: 唯一标识 +- dimension: 维度名称 +- items: 指标数组 + ├── id: 指标ID + ├── label: 指标名称 + ├── summary: 研判摘要 + ├── chartData: 图表数据 + └── color: 主题色 +``` + +### 🎨 组件层 + +#### StockChart.tsx +**图表组件(基于 Recharts)** + +```typescript +Props: +- data: 图表数据 +- color: 线条颜色 +- height: 图表高度 +- legend: 图例文字 + +特点: +- 响应式设计 +- 自适应容器大小 +- 美观的样式配置 +``` + +### 📚 文档层 + +| 文档 | 用途 | 读者 | +|------|------|------| +| QUICK_START.md | 快速上手 | 新用户 | +| USER_GUIDE.md | 详细使用说明 | 所有用户 | +| UI_IMPROVEMENTS.md | UI 改进说明 | 开发者/产品经理 | +| TEST_CHECKLIST.md | 测试清单 | 测试人员 | +| CHANGELOG.md | 版本更新日志 | 所有人 | +| README.md | 项目概览 | 所有人 | + +## 配置文件说明 + +### package.json +```json +{ + "scripts": { + "dev": "vite", // 开发服务器 + "build": "vite build", // 生产构建 + "preview": "vite preview" // 预览构建结果 + }, + "dependencies": { + "react": "^18.x", + "react-router-dom": "^6.x", + "recharts": "^2.x", + "lucide-react": "^0.x" + } +} +``` + +### vite.config.ts +```typescript +// Vite 构建配置 +- 开发服务器设置 +- 构建优化选项 +- 插件配置 +``` + +### tsconfig.json +```json +// TypeScript 配置 +- 编译选项 +- 路径别名 +- 类型检查规则 +``` + +### tailwind.config.js +```javascript +// Tailwind CSS 配置 +- 主题定制 +- 颜色方案 +- 响应式断点 +- 插件扩展 +``` + +## 构建产物说明 + +### dist/ 目录 +``` +dist/ +├── assets/ +│ ├── index.[hash].js # 应用主逻辑 +│ ├── index.[hash].css # 样式文件 +│ └── vendor.[hash].js # 第三方库 +└── index.html # 入口 HTML(注入资源) +``` + +## 开发工作流 + +```mermaid +graph LR + A[修改源码] --> B[Vite 热更新] + B --> C[浏览器自动刷新] + C --> D[查看效果] + D --> A +``` + +## 部署流程 + +```bash +# 1. 构建生产版本 +npm run build + +# 2. dist/ 目录上传到服务器 +# 支持任何静态网站托管服务 + +# 3. 访问部署后的 URL +``` + +## 技术栈一览 + +| 技术 | 版本 | 用途 | +|------|------|------| +| React | 18.x | UI 框架 | +| TypeScript | 5.x | 类型安全 | +| Vite | 5.x | 构建工具 | +| React Router | 6.x | 路由管理 | +| Tailwind CSS | 3.x | 样式方案 | +| Recharts | 2.x | 图表库 | +| Lucide React | 最新 | 图标库 | + +## 项目特点 + +✨ **模版化思维**:从选股票到选模版+选股票 +🚀 **即时反馈**:进入页面立即看到图表 +🎨 **美观易用**:现代化 UI 设计 +📱 **响应式**:完美适配桌面、平板、手机 +⚡ **高性能**:Vite 构建,快速加载 +🔧 **可定制**:编辑模式自由调整配置 +💾 **可保存**:模版持久化(规划中) +📊 **可视化**:Recharts 驱动的精美图表 + +## 下一步计划 + +- [ ] 接入真实金融数据 API +- [ ] 实现模版的完整 CRUD +- [ ] 添加更多行业专用模版 +- [ ] 支持多股票对比 +- [ ] 移动端优化 +- [ ] 性能优化和代码分割 +- [ ] 单元测试覆盖 + +--- + +**最后更新时间**:2026-01-26 +**当前版本**:v1.1 + diff --git a/docs/QUICK_START.md b/docs/QUICK_START.md new file mode 100644 index 0000000..6fb7b6d --- /dev/null +++ b/docs/QUICK_START.md @@ -0,0 +1,124 @@ +# 快速启动指南 ⚡ + +## 30秒快速开始 + +```bash +# 1. 安装依赖 +npm install + +# 2. 启动开发服务器 +npm run dev + +# 3. 打开浏览器访问 +# http://localhost:5173 +``` + +就是这么简单!🎉 + +--- + +## 第一次使用? + +### Step 1: 输入股票名称 +在搜索框输入"贵州茅台"或其他股票名称 + +### Step 2: 选择模版 +从下方 4 个模版中选择一个: +- 📄 **默认评级模版** - 最全面 +- 📈 **消费股模版** - 消费行业专用 +- 🔬 **科技股模版** - 科技股分析 +- ⚡ **快速诊断模版** - 快速看盘 + +### Step 3: 查看分析 +点击模版卡片,立即看到: +- ✅ 四大维度分析 +- ✅ 多个指标图表 +- ✅ 研判结论 + +--- + +## 5分钟进阶教程 + +### 自定义你的分析模版 + +1. **进入编辑模式** + - 点击左上角的 ⚙️ 设置图标 + +2. **调整指标顺序** + - 拖动指标到你想要的位置 + +3. **添加或删除指标** + - 点击 ✕ 删除不需要的指标 + - 点击 "+" 添加新指标 + +4. **保存为模版** + - 点击顶部"另存为" + - 输入模版名称 + - 下次直接使用你的自定义模版 + +--- + +## 常见问题速查 + +**Q: 如何切换到其他股票?** +A: 点击顶部"首页"链接,重新搜索 + +**Q: 图表看不清?** +A: 点击图表右下角的"Ask"按钮,进入大图模式 + +**Q: 想要对比多个股票?** +A: 当前版本暂不支持,即将推出! + +**Q: 数据从哪里来?** +A: 当前使用模拟数据演示,实际版本将接入真实金融数据 + +--- + +## 键盘快捷键 + +| 快捷键 | 功能 | +|--------|------| +| `Enter` | 提交搜索 | +| `Esc` | 关闭弹窗 | +| `Tab` | 切换焦点 | + +--- + +## 推荐使用流程 + +### 场景1:长期投资分析 +``` +默认评级模版 → 查看所有维度 → 重点关注估值和基本面 +``` + +### 场景2:短期交易决策 +``` +快速诊断模版 → 关注资金流向 → 查看成交活跃度 +``` + +### 场景3:行业对比 +``` +行业专用模版(消费/科技) → 查看相关资产 → 对比同行业公司 +``` + +--- + +## 需要帮助? + +- 📖 详细文档:[USER_GUIDE.md](./USER_GUIDE.md) +- 🎨 UI说明:[UI_IMPROVEMENTS.md](./UI_IMPROVEMENTS.md) +- ✅ 测试清单:[TEST_CHECKLIST.md](./TEST_CHECKLIST.md) +- 📝 更新日志:[../CHANGELOG.md](../CHANGELOG.md) + +--- + +## 技术支持 + +遇到问题?欢迎提交 Issue! + +**项目地址**:[GitHub Repository](#) + +--- + +Made with ❤️ | 让投资决策更智能 + diff --git a/docs/TEST_CHECKLIST.md b/docs/TEST_CHECKLIST.md new file mode 100644 index 0000000..ae979b3 --- /dev/null +++ b/docs/TEST_CHECKLIST.md @@ -0,0 +1,290 @@ +# 功能测试清单 + +## 测试前准备 +- [ ] 确保已安装依赖:`npm install` +- [ ] 启动开发服务器:`npm run dev` +- [ ] 访问 `http://localhost:5173` + +--- + +## 1. 起始页面测试 + +### 搜索功能 +- [ ] 搜索框显示正常,占位符文字为"搜索标的..." +- [ ] 输入文字后,下方显示搜索结果下拉框 +- [ ] 点击搜索结果,可以触发跳转 +- [ ] 按 Enter 键可以提交搜索 + +### 提示文字 +- [ ] 未输入时显示:"先输入股票名称,然后从下方选择评级模版" +- [ ] 输入后显示:"✓ 已选择股票,请选择一个评级模版" +- [ ] 输入且选择模版后显示:"✓ 已选择股票和模版,点击模版卡片或按回车进入" + +### 模版展示 +- [ ] 显示 4 个模版卡片:默认、消费股、科技股、快速诊断 +- [ ] 每个模版都有图标、名称、描述、标签 +- [ ] 默认选中"默认评级模版" +- [ ] 点击模版卡片,边框变色并显示勾选标识 +- [ ] Hover 模版卡片时,图标有放大动效 + +### 导航跳转 +- [ ] 点击模版卡片(已输入股票),自动跳转到评级详情页 +- [ ] URL 包含模版参数,如 `/dashboard?template=consumer` +- [ ] 显示加载动画(旋转图标 + "正在加载评级数据...") + +--- + +## 2. 评级详情页测试 + +### 页面初始状态 +- [ ] 进入页面后,右侧图表区域默认展开 +- [ ] 图表自动加载并显示(无需点击) +- [ ] 左侧显示 4 个维度卡片:估值逻辑、宏观胜率背景、相关资产走势、资金流向 +- [ ] 每个维度下有多个指标项 + +### 左侧评级表 +- [ ] 维度卡片有不同的主题色(蓝、紫、青、靛) +- [ ] 点击指标项,右侧图表区域滚动到对应位置 +- [ ] 指标摘要信息显示正常 +- [ ] 响应式布局:大屏显示 2 列,小屏显示 1 列 + +### 右侧图表区域 +- [ ] 默认显示第一个维度的图表 +- [ ] 图表按维度分组显示 +- [ ] 每个图表卡片包含:标题、图表、摘要、Ask 按钮 +- [ ] 图表正常渲染(使用 Recharts) +- [ ] 点击 "Ask" 按钮,跳转到详细分析页 + +### 顶部导航 +- [ ] 面包屑显示:"首页 > 贵州茅台 (600519.SH)" +- [ ] 点击"首页"返回搜索页 +- [ ] 显示"模板库"和"另存为"按钮 +- [ ] 右上角显示"关闭详情"按钮(可关闭右侧面板) + +--- + +## 3. 编辑模式测试 + +### 进入编辑模式 +- [ ] 点击设置图标(⚙️)进入编辑模式 +- [ ] 顶部中间显示蓝色提示条:"编辑模式已开启..." +- [ ] 提示条右侧有"完成"按钮 + +### 拖拽排序 +- [ ] 指标左侧显示拖拽手柄图标 +- [ ] 可以在同一维度内拖拽指标调整顺序 +- [ ] 拖拽时,被拖拽项半透明 +- [ ] 拖拽完成后显示"排序已保存"提示(2秒后消失) + +### 删除功能 +- [ ] 每个指标右侧显示删除按钮(✕) +- [ ] 点击删除按钮,弹出确认对话框 +- [ ] 确认后指标被移除 +- [ ] 维度标题右侧显示删除按钮 +- [ ] 可以删除整个维度 + +### 评分功能 +- [ ] 编辑模式下,维度标题右侧显示 5 个星星 +- [ ] 点击星星可以打分(1-5星) +- [ ] 选中的星星显示为黄色填充 + +### 添加功能 +- [ ] 每个维度卡片底部显示"添加视角"按钮(hover 时出现) +- [ ] 点击"添加视角",弹出提示(当前为 alert) +- [ ] 显示"添加维度"虚线卡片 +- [ ] 点击"添加维度",弹出提示(当前为 alert) + +### 退出编辑模式 +- [ ] 点击"完成"按钮,退出编辑模式 +- [ ] 编辑模式提示条消失 +- [ ] 拖拽手柄、删除按钮、星星评分隐藏 +- [ ] 指标摘要重新显示 + +--- + +## 4. 模板库测试 + +### 打开模板库 +- [ ] 点击顶部"模板库"按钮 +- [ ] 弹出模板库弹窗 +- [ ] 显示两个标签页:通用模板、我的模板 + +### 通用模板 +- [ ] 显示 2 个预设模板 +- [ ] 模板卡片包含图标、标题、描述、标签 +- [ ] 点击模板卡片,显示选中状态(蓝色边框) + +### 我的模板 +- [ ] 切换到"我的模板"标签 +- [ ] 显示 2 个自定义模板 +- [ ] 模板卡片显示创建日期 + +### 应用模板 +- [ ] 选中一个模板 +- [ ] 点击"应用模板"按钮 +- [ ] 弹窗关闭,返回评级详情页 + +### 关闭弹窗 +- [ ] 点击右上角 ✕ 按钮,弹窗关闭 +- [ ] 点击"取消"按钮,弹窗关闭 +- [ ] 点击弹窗外部区域,弹窗关闭(可选) + +--- + +## 5. 另存为模板测试 + +### 打开保存对话框 +- [ ] 点击顶部"另存为"按钮 +- [ ] 弹出保存模板对话框 +- [ ] 输入框获得焦点(自动 focus) + +### 输入模板名称 +- [ ] 可以正常输入文字 +- [ ] 占位符文字:"例如:茅台估值分析模板" +- [ ] 未输入时,"保存"按钮禁用(灰色) +- [ ] 输入后,"保存"按钮启用(蓝色) + +### 保存操作 +- [ ] 点击"保存"按钮,弹窗关闭 +- [ ] 按 Enter 键,弹窗关闭并保存 +- [ ] 控制台输出保存信息(当前为 console.log) + +### 取消操作 +- [ ] 点击"取消"按钮,弹窗关闭 +- [ ] 输入的内容被清空 + +--- + +## 6. 详细分析页测试 + +### 进入分析页 +- [ ] 从评级详情页点击"Ask"按钮 +- [ ] 跳转到 `/detail` 路由 +- [ ] 面包屑显示:"股票详情 > 贵州茅台 (600519.SH)" + +### 维度切换 +- [ ] 显示 4 个维度图标和标题 +- [ ] 点击面包屑"股票详情"返回评级详情页 + +### 标签页 +- [ ] 显示多个指标标签 +- [ ] 点击标签,切换显示对应的图表 +- [ ] 激活的标签有蓝色下划线 +- [ ] 右侧显示"+"按钮 + +### 图表展示 +- [ ] 左侧显示大图表(高度 320px) +- [ ] 右侧显示两个卡片:研判结论、图解释 +- [ ] 研判结论和图解释内容正确对应当前选中的指标 + +### AI 修改框 +- [ ] 底部显示输入框 +- [ ] 占位符文字正确 +- [ ] 显示两个小图标按钮(+ 和 @) +- [ ] 右侧显示发送按钮(蓝色圆形) + +--- + +## 7. 响应式测试 + +### 桌面端(>1024px) +- [ ] 起始页:4 列模版网格 +- [ ] 评级详情页:左右分屏显示 +- [ ] 详细分析页:图表和说明左右布局 + +### 平板端(768px-1024px) +- [ ] 起始页:2 列模版网格 +- [ ] 评级详情页:左侧全宽,右侧在大屏显示 +- [ ] 详细分析页:图表和说明上下布局 + +### 移动端(<768px) +- [ ] 起始页:1 列模版网格 +- [ ] 评级详情页:仅显示评级表 +- [ ] 顶部按钮文字隐藏,仅显示图标 +- [ ] 详细分析页:垂直布局 + +--- + +## 8. 性能测试 + +### 加载速度 +- [ ] 首次加载时间 < 2 秒 +- [ ] 页面切换流畅,无卡顿 +- [ ] 图表渲染无延迟 + +### 内存使用 +- [ ] 长时间使用无内存泄漏 +- [ ] 关闭右侧面板后,图表组件正确卸载 + +### 动画性能 +- [ ] 滚动动画流畅(60fps) +- [ ] Hover 动效无延迟 +- [ ] 拖拽操作流畅 + +--- + +## 9. 浏览器兼容性测试 + +### Chrome(推荐) +- [ ] 所有功能正常 +- [ ] 样式显示正确 +- [ ] 动画流畅 + +### Firefox +- [ ] 所有功能正常 +- [ ] 样式显示正确 +- [ ] 拖拽功能正常 + +### Safari +- [ ] 所有功能正常 +- [ ] 样式显示正确(特别是圆角、阴影) + +### Edge +- [ ] 所有功能正常 +- [ ] 样式显示正确 + +--- + +## 10. 错误处理测试 + +### 空状态 +- [ ] 未输入股票时,搜索结果为空 +- [ ] 删除所有指标后,维度卡片显示空状态 +- [ ] 未加载数据时,图表显示加载占位符 + +### 边界情况 +- [ ] 输入特殊字符不会导致崩溃 +- [ ] 连续快速点击不会重复触发 +- [ ] 网络延迟时显示加载状态 + +--- + +## 测试结果汇总 + +**测试日期**:2026-01-26 +**测试人员**:______ +**测试环境**:______ + +| 测试项 | 通过 | 失败 | 备注 | +|--------|------|------|------| +| 起始页面 | ☐ | ☐ | | +| 评级详情页 | ☐ | ☐ | | +| 编辑模式 | ☐ | ☐ | | +| 模板库 | ☐ | ☐ | | +| 另存为模板 | ☐ | ☐ | | +| 详细分析页 | ☐ | ☐ | | +| 响应式 | ☐ | ☐ | | +| 性能 | ☐ | ☐ | | +| 浏览器兼容性 | ☐ | ☐ | | +| 错误处理 | ☐ | ☐ | | + +**发现的问题**: +1. +2. +3. + +**改进建议**: +1. +2. +3. + diff --git a/docs/UI_IMPROVEMENTS.md b/docs/UI_IMPROVEMENTS.md new file mode 100644 index 0000000..32cd6e8 --- /dev/null +++ b/docs/UI_IMPROVEMENTS.md @@ -0,0 +1,265 @@ +# UI 交互改进说明 + +## 改进前后对比 + +### 改进前 ❌ + +**起始页面** +``` +┌─────────────────────────────────────────┐ +│ 搜索框:搜索标的... │ +└─────────────────────────────────────────┘ + +┌──────────┐ ┌──────────┐ ┌──────────┐ +│ 贵州茅台 │ │ 其他股票 │ │ 更多... │ +│600519.SH │ │ │ │ │ +│ +1.85% │ │ │ │ │ +└──────────┘ └──────────┘ └──────────┘ + ↓ 点击进入 + +评级详情页(默认右侧隐藏) +┌─────────────────────┬──────────────┐ +│ │ │ +│ 资产评级表 │ (空白) │ +│ │ │ +│ 需要点击指标 │ 未显示图表 │ +│ 才会显示图表 │ │ +│ │ │ +└─────────────────────┴──────────────┘ +``` + +**问题**: +1. 下方显示的是股票卡片,而非模版 +2. 进入详情页后需要手动点击才能看到图表 +3. 没有模版选择的概念 + +--- + +### 改进后 ✅ + +**起始页面** +``` +┌─────────────────────────────────────────┐ +│ 🔍 搜索框:搜索标的... │ +│ ✓ 已选择股票和模版,点击模版卡片或按回车 │ +└─────────────────────────────────────────┘ + + 选择评级模版 + +┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ +│ 📄 默认 │ │ 📈 消费股│ │ 🔬 科技股│ │ ⚡ 快速 │ +│ 评级模版 │ │ 模版 │ │ 模版 │ │ 诊断模版 │ +│ │ │ │ │ │ │ │ +│[通用][全面]│ │[消费][品牌]│ │[科技][成长]│ │[快速][简洁]│ +│ ✓ 选中 │ │ │ │ │ │ │ +└──────────┘ └──────────┘ └──────────┘ └──────────┘ + ↓ 选择模版后自动进入 + +评级详情页(默认右侧展开) +┌─────────────────────┬───────────────────┐ +│ │ │ +│ 资产评级表 │ 📊 图表详情 │ +│ │ │ +│ 点击指标跳转 │ 自动显示图表 │ +│ 左右联动 │ 研判结论 │ +│ │ 图表说明 │ +└─────────────────────┴───────────────────┘ +``` + +**优势**: +1. ✅ 模版化思维:用户选择分析模版而非简单地看股票 +2. ✅ 一步到位:进入详情页即可看到完整的分析结果 +3. ✅ 视觉引导:清晰的提示文字指导用户操作 +4. ✅ 即时反馈:选中状态有明显的视觉标识 + +--- + +## 关键交互改进 + +### 1. 搜索框提示优化 + +**动态提示文字**: +``` +未输入股票: + "先输入股票名称,然后从下方选择评级模版" + +已输入股票,未选模版: + "✓ 已选择股票,请选择一个评级模版" + +已输入股票,已选模版: + "✓ 已选择股票和模版,点击模版卡片或按回车进入" +``` + +### 2. 模版卡片选中状态 + +**未选中**: +- 白色背景 +- 灰色边框 +- 正常大小 + +**选中时**: +- 彩色边框(根据模版主题色) +- 外圈阴影效果 +- 右上角显示 ✓ 标识 +- hover 时图标放大动效 + +### 3. 自动跳转逻辑 + +```typescript +// 输入股票 → 选择模版 → 自动进入 +if (searchTerm && selectedTemplate) { + navigate(`/dashboard?template=${selectedTemplate}`); +} +``` + +### 4. 默认展开图表 + +```typescript +// DashboardPage 初始状态 +const [rightPanelVisible, setRightPanelVisible] = useState(true); // ✅ 改为 true +const [shouldRenderCharts, setShouldRenderCharts] = useState(true); // ✅ 改为 true +``` + +--- + +## 模版设计 + +### 模版数据结构 + +```typescript +interface RatingTemplate { + id: string; // 唯一标识 + name: string; // 模版名称 + description: string; // 详细描述 + icon: ReactElement; // 图标组件 + bgColor: string; // 背景色类名 + iconColor: string; // 图标颜色类名 + borderColor: string; // 边框颜色类名 + tags: string[]; // 标签数组 +} +``` + +### 四种预设模版 + +| 模版 | 图标 | 主题色 | 适用场景 | +|------|------|--------|----------| +| 默认评级 | 📄 | 蓝色 | 通用全面分析 | +| 消费股 | 📈 | 紫色 | 消费行业股票 | +| 科技股 | 🔬 | 青色 | 科技成长股票 | +| 快速诊断 | ⚡ | 橙色 | 快速决策场景 | + +--- + +## 响应式布局 + +### 桌面端(>1024px) +``` +起始页:4列模版卡片网格 +详情页:左侧评级表 + 右侧图表(可关闭) +``` + +### 平板端(768px-1024px) +``` +起始页:2列模版卡片网格 +详情页:左侧评级表(右侧在大屏显示) +``` + +### 移动端(<768px) +``` +起始页:1列模版卡片网格 +详情页:仅显示评级表,点击指标进入全屏图表 +``` + +--- + +## 动画效果 + +### 卡片动画 +- **hover**:阴影增强、图标放大 110% +- **选中**:边框动画、外圈光晕 +- **点击**:轻微缩放反馈 + +### 页面过渡 +- **搜索结果**:fade-in + slide-down +- **加载中**:旋转加载图标 + 半透明遮罩 +- **滚动定位**:smooth scroll 行为 + +### 状态提示 +- **成功**:绿色对勾 + 淡入效果 +- **排序**:绿色提示条 + 2秒自动消失 +- **错误**:红色警告 + 震动效果 + +--- + +## 可访问性优化 + +### 键盘操作 +- **Tab**:在模版卡片间切换焦点 +- **Enter**:提交搜索或选择模版 +- **Escape**:关闭弹窗 + +### 语义化 HTML +- 使用 `
`, `
`, `