# 选股板块菜单重构说明 ## 变更日期 2025-10-24 ## 变更概述 将 app.py 中的侧边栏菜单从扁平结构重构为**层级结构**,创建"选股板块"分类,并将主力选股功能归入其中。 ## 变更动机 - 配合 OpenSpec 中新建的选股板块架构 - 提升菜单的组织性和可扩展性 - 为未来的选股策略(技术面、基本面、量化)预留入口 - 优化用户体验,功能分类更清晰 ## 新菜单结构 ### 之前(扁平结构) ``` 📖 历史记录 📊 实时监测 🎯 主力选股 🎯 智策板块 🎯 智瞰龙虎 📊 持仓分析 🏠 返回首页 ⚙️ 环境配置 ``` ### 现在(层级结构) ``` 🏠 单股分析 ─────────────── 🎯 选股板块 ▼ ├─ 💰 主力选股 ├─ 📊 技术面选股(即将推出) ├─ 📈 基本面选股(即将推出) └─ 🧮 量化选股(即将推出) 📊 策略分析 ▼ ├─ 🎯 智策板块 └─ 🐉 智瞰龙虎 💼 投资管理 ▼ ├─ 📊 持仓分析 └─ 📡 实时监测 ─────────────── 📖 历史记录 ⚙️ 环境配置 ``` ## 功能分类说明 ### 1. 🏠 单股分析(首页) - **功能**:对单只股票进行深度AI分析 - **位置**:顶部独立按钮 - **用途**:系统的主要功能入口 ### 2. 🎯 选股板块(可展开) - **功能**:根据不同策略筛选优质股票 - **已实现**: - 💰 主力选股:基于主力资金流向的选股策略 - **即将推出**: - 📊 技术面选股:基于技术指标和形态分析 - 📈 基本面选股:基于财务数据和基本面分析 - 🧮 量化选股:基于量化模型和多因子分析 ### 3. 📊 策略分析(可展开) - **功能**:AI驱动的板块和龙虎榜策略 - **包含**: - 🎯 智策板块:板块轮动和行业策略 - 🐉 智瞰龙虎:龙虎榜深度分析 ### 4. 💼 投资管理(可展开) - **功能**:持仓跟踪与实时监测 - **包含**: - 📊 持仓分析:投资组合分析与定时跟踪 - 📡 实时监测:价格监控与预警提醒 ### 5. 📖 历史记录 - **功能**:查看历史分析记录 - **位置**:独立按钮 ### 6. ⚙️ 环境配置 - **功能**:系统设置与API配置 - **位置**:独立按钮 ## 技术实现 ### 使用的 Streamlit 组件 - `st.button()` - 功能按钮 - `st.expander()` - 可展开的分类容器 - `st.markdown()` - 分类说明和未来功能提示 ### 代码结构 ```python # 单股分析(首页) if st.button("🏠 单股分析", ...): # 清除所有功能页面标志 # 选股板块 with st.expander("🎯 选股板块", expanded=False): if st.button("💰 主力选股", ...): st.session_state.show_main_force = True # 未来功能提示 st.markdown("📊 技术面选股 `即将推出`") # 策略分析 with st.expander("📊 策略分析", expanded=False): if st.button("🎯 智策板块", ...): ... if st.button("🐉 智瞰龙虎", ...): ... # 投资管理 with st.expander("💼 投资管理", expanded=False): if st.button("📊 持仓分析", ...): ... if st.button("📡 实时监测", ...): ... ``` ## 用户体验优化 ### 改进点 1. ✅ **清晰的功能分组**:相关功能归类在一起 2. ✅ **层级化导航**:减少视觉混乱,重点突出 3. ✅ **可展开设计**:节省侧边栏空间 4. ✅ **未来功能预览**:让用户了解系统的发展方向 5. ✅ **图标和提示**:每个按钮都有 emoji 和 help 提示 ### 交互特点 - **Expander 默认折叠**:减少初始的视觉复杂度 - **独立的顶级功能**:单股分析作为主功能保持独立 - **灰色文字提示**:未来功能用灰色标记,清晰标明"即将推出" - **按钮宽度统一**:`width='stretch'` 确保视觉一致性 ## 扩展性设计 ### 添加新选股策略 当未来实现技术面选股时,只需: ```python with st.expander("🎯 选股板块", expanded=False): # 主力选股(已有) if st.button("💰 主力选股", ...): st.session_state.show_main_force = True # 技术面选股(新增) if st.button("📊 技术面选股", ...): st.session_state.show_technical_selection = True # 移除"即将推出"标记 # st.markdown("📊 技术面选股 `即将推出`") ``` ### 添加新功能分类 如需添加新的一级分类(如"AI助手"): ```python with st.expander("🤖 AI助手", expanded=False): st.markdown("**智能问答与投资建议**") if st.button("💬 智能问答", ...): ... ``` ## 注意事项 ### Session State 管理 - 每个功能按钮点击时,需要清除其他功能的状态标志 - 使用 `for key in [...]:` 批量清理,避免遗漏 ### 按钮 Key 值 - 确保每个按钮的 `key` 参数唯一 - 命名规范:`nav_[功能名]` ### 帮助文本更新 已同步更新帮助信息中的功能说明,反映新的菜单结构。 ## 后续工作 ### 短期(1-2周) - [ ] 收集用户反馈,优化菜单交互 - [ ] 根据使用频率调整 expander 默认展开状态 - [ ] 完善各功能的 help 提示文字 ### 中期(1-2个月) - [ ] 实现技术面选股功能 - [ ] 实现基本面选股功能 - [ ] 将"即将推出"改为实际功能入口 ### 长期(3-6个月) - [ ] 实现量化选股功能 - [ ] 根据选股板块总规范,完善所有选股策略 - [ ] 考虑添加选股结果对比功能 ## 兼容性说明 ### 向后兼容 - ✅ 所有原有功能保持不变 - ✅ Session state 机制保持一致 - ✅ 功能页面调用逻辑未改变 ### 数据库兼容 - ✅ 无数据库结构变更 - ✅ 历史数据完全兼容 ## 相关文档 - OpenSpec 选股板块规范:`openspec/specs/stock-selection/spec.md` - OpenSpec 变更提案:`openspec/changes/add-stock-selection-category/proposal.md` - 主力选股使用指南:`docs/主力选股使用指南.md` - 主力选股快速开始:`docs/主力选股快速开始.md` ## 总结 此次菜单重构成功将主力选股归入"选股板块"分类,为系统建立了清晰的功能架构。新的层级菜单不仅提升了用户体验,还为未来功能扩展预留了灵活的空间。 --- **更新日期**: 2025-10-24 **文档版本**: 1.0 **相关变更**: OpenSpec 选股板块架构建立