Files
ChouJuGEO/docs/guides/LAYOUT_UPGRADE_GUIDE.md
T
刘国栋 8f7f082c3d feat: 重构项目结构并添加平台同步基础架构
- 重构项目目录结构,将功能模块移至 modules/ 目录
- 创建平台同步基础架构,包括发布器基类和 GitHub 发布器
- 新增 UI 状态管理模块 (modules/ui/state.py) 统一管理会话状态
- 更新依赖配置,添加平台同步所需依赖 (httpx, pyperclip)
- 整理文档结构,将所有文档分类移至 docs/ 目录
- 添加 .cursorrules 文件定义项目开发规范
- 清理根目录重复文件,保持项目结构整洁
2026-01-30 10:21:29 +08:00

283 lines
7.0 KiB
Markdown
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.
# 布局升级复杂度评估与实施指南
## 📊 复杂度评估总结
**总体复杂度:⭐⭐⭐☆☆(中等)**
### 为什么是中等复杂度?
**有利因素**
- 你已经有了基础的 CSS 样式系统
- 已经使用了 `st.tabs` 作为主导航
- 已经部分使用了 `st.container(border=True)` 卡片式设计
- 侧边栏已经有 form 结构
- 代码结构相对清晰
⚠️ **需要注意**
- 文件较大(5864行),需要系统化改动
- 有 37 个 `st.expander` 需要评估是否改为 tabs/container
- 需要保持功能逻辑不变,只改布局
---
## 🎯 推荐方案:方案2 + 方案4 混合
### 核心改动点
1. **CSS 增强**30分钟)
- 增强卡片样式
- 优化侧边栏视觉层次
- 统一间距和阴影
2. **Expander → Container/Tabs 转换**2-3小时)
- 将功能相关的多个 expander 合并为 tabs
- 将单个 expander 改为 container(border=True)
- 保持次要信息用 expander
3. **侧边栏优化**30分钟)
- 添加分组容器
- 优化视觉层次
---
## 📋 详细实施步骤
### 阶段 1:CSS 增强(低风险,30分钟)
**改动范围**:只修改 CSS 部分(第 36-170 行)
**具体改动**
```css
/* 1. 增强卡片样式 */
div[data-testid="stVerticalBlockBorderWrapper"] {
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 1.5rem !important; /* 新增:内边距 */
background: #FFFFFF !important; /* 新增:白色背景 */
margin-bottom: 1rem !important; /* 新增:卡片间距 */
}
/* 2. 优化侧边栏分组 */
section[data-testid="stSidebar"] .stForm {
background: #FFFFFF;
border-radius: 8px;
padding: 1rem;
margin-bottom: 1rem;
border: 1px solid var(--border);
}
/* 3. Expander 样式优化(保留但美化) */
.streamlit-expanderHeader {
font-weight: 500;
color: var(--text);
}
.streamlit-expanderContent {
padding-top: 0.75rem;
}
/* 4. 增强分隔线 */
hr {
border: none;
border-top: 1px solid var(--border);
margin: 1.5rem 0;
}
```
**风险**:极低,只改样式,不影响功能
---
### 阶段 2Expander 重构(中等风险,2-3小时)
#### 2.1 识别需要改动的 Expander
**改为 Tabs 的情况**(功能相关的多个选项):
- ✅ Tab1 中的"组合模式选择" + "词库管理" → 可以合并为一个 tabs
- ✅ Tab1 中的"智能关键词挖掘"已经有 tabs(保持)
- ✅ Tab3 中的多个分析 expander → 可以合并为 tabs
**改为 Container 的情况**(主要功能区域):
- ✅ Tab1 中的"组合模式选择"区域 → 已经是 container,保持
- ✅ Tab2 中的主要输入区域 → 确保用 container
- ✅ Tab3 中的优化结果展示 → 用 container
**保留 Expander 的情况**(次要/详细信息):
- ✅ "查看技巧说明" → 保持 expander
- ✅ "详细评分与改进建议" → 保持 expander
- ✅ "预览最后一篇" → 保持 expander
#### 2.2 具体改动示例
**示例 1:Tab1 中的词库管理区域**
**当前代码**(第 797 行):
```python
with st.expander("词库管理", expanded=False):
# 词库编辑和导入导出
```
**改为**
```python
with st.container(border=True):
st.markdown("### 📚 词库管理")
wordbank_tab1, wordbank_tab2 = st.tabs(["编辑词库", "导入/导出"])
with wordbank_tab1:
# 词库编辑代码
with wordbank_tab2:
# 导入导出代码
```
**示例 2Tab3 中的分析结果**
**当前代码**(多个 expander):
```python
with st.expander("📈 事实密度分析", expanded=False):
# 分析内容
with st.expander("🏗️ 结构化块分析", expanded=False):
# 分析内容
```
**改为**
```python
analysis_tabs = st.tabs(["📈 事实密度", "🏗️ 结构化块", "📝 强化详情"])
with analysis_tabs[0]:
with st.container(border=True):
# 事实密度分析内容
with analysis_tabs[1]:
with st.container(border=True):
# 结构化块分析内容
```
---
### 阶段 3:侧边栏优化(低风险,30分钟)
**当前结构**(第 563-697 行):
```python
with st.sidebar:
st.header("全局配置")
with st.form("global_config_form"):
# 所有配置项
```
**优化后**
```python
with st.sidebar:
st.header("⚙️ 全局配置")
# 分组 1LLM 配置
with st.container(border=True):
st.markdown("#### 🤖 LLM 配置")
with st.form("llm_config_form"):
# LLM 相关配置
# 分组 2:品牌信息
with st.container(border=True):
st.markdown("#### 🏢 品牌信息")
with st.form("brand_config_form"):
# 品牌相关配置
# 分组 3:其他设置
with st.container(border=True):
st.markdown("#### ⚙️ 其他设置")
# 其他配置
```
---
## ⏱️ 时间估算
| 阶段 | 任务 | 时间 | 风险 |
|------|------|------|------|
| 阶段 1 | CSS 增强 | 30分钟 | ⭐ 极低 |
| 阶段 2 | Expander 重构 | 2-3小时 | ⭐⭐ 中等 |
| 阶段 3 | 侧边栏优化 | 30分钟 | ⭐ 极低 |
| **总计** | | **3-4小时** | |
---
## 🎨 改动前后对比
### 改动前
- 大量 expander 折叠,需要点击展开
- 视觉层次不够清晰
- 卡片样式不统一
### 改动后
- 主要功能用 tabs,一目了然
- 次要信息用 expander,保持简洁
- 卡片样式统一,视觉更现代
- 侧边栏分组清晰
---
## ⚠️ 注意事项
1. **逐步实施**:先改 CSS,测试没问题再改布局
2. **保持功能**:只改布局,不改逻辑
3. **测试每个 Tab**:改完一个 tab 就测试一次
4. **保留 Expander**:不是所有 expander 都要改,次要信息保持 expander 更合适
---
## 🚀 快速开始
### 最小改动方案(1小时)
如果时间紧张,可以先做这些:
1. **只增强 CSS**30分钟)
- 添加卡片内边距和背景
- 优化侧边栏样式
2. **改 3-5 个关键 Expander**30分钟)
- Tab1 的词库管理
- Tab3 的分析结果区域
- 其他明显需要改的
这样就能看到明显改善,后续再逐步完善。
---
## 📝 检查清单
实施完成后检查:
- [ ] 所有主要功能区域都用 container(border=True) 或 tabs
- [ ] 次要信息保持用 expander
- [ ] 侧边栏有清晰的分组
- [ ] 卡片样式统一(圆角、阴影、内边距)
- [ ] 所有功能正常工作
- [ ] 响应式布局正常(不同屏幕尺寸)
---
## 💡 建议
**推荐实施顺序**
1. ✅ 先做阶段 1(CSS),立即看到效果
2. ✅ 再做阶段 3(侧边栏),改动小风险低
3. ✅ 最后做阶段 2(Expander),需要仔细测试
**如果遇到问题**
- 先回退到上一个稳定版本
- 逐个 tab 测试,不要一次性改完
- 保留原代码注释,方便对比
---
## 🎯 预期效果
实施完成后,你的工具将:
- ✨ 视觉更现代,更像产品级应用
- 🎯 功能组织更清晰,减少滚动疲劳
- 📱 用户体验更好,操作更直观
- 🎨 保持专业感,同时更美观
**复杂度总结**:中等,但可以分阶段实施,风险可控!