feat: v3.2 - 用户管理功能和后台菜单统一
新增功能: - 用户管理列表页面(搜索、分页) - 用户详情页面(基本信息、收藏统计) - 管理员重置用户密码功能 - 管理员修改用户昵称功能 - 管理后台首页添加用户统计卡片 优化改进: - 统一后台菜单结构,创建可复用的 sidebar 组件 - 所有后台页面使用统一菜单,避免硬编码 - 优化权限配置文件,清理冗余规则 技术文档: - 添加任务分解规则文档 - 添加后台菜单统一规则文档 - 添加数据库字段修复脚本 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
120
.claude/admin-menu-rules.md
Normal file
120
.claude/admin-menu-rules.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# 后台管理菜单统一规则
|
||||
|
||||
## 📋 规则说明
|
||||
|
||||
所有后台管理页面必须使用统一的菜单结构,不允许硬编码不同的菜单。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 菜单结构
|
||||
|
||||
### 主菜单(按顺序)
|
||||
1. **控制台** - `{{ url_for('admin.index') }}`
|
||||
2. **网站管理** - `{{ url_for('site.index_view') }}`
|
||||
3. **标签管理** - `{{ url_for('tag.index_view') }}`
|
||||
4. **新闻管理** - `{{ url_for('news.index_view') }}`
|
||||
5. **Prompt管理** - `{{ url_for('prompttemplate.index_view') }}`
|
||||
6. **管理员** - `{{ url_for('admin_users.index_view') }}`
|
||||
|
||||
### 系统菜单(按顺序)
|
||||
1. **用户管理** - `{{ url_for('admin_users') }}`
|
||||
2. **SEO工具** - `{{ url_for('seo_tools') }}`
|
||||
3. **批量导入** - `{{ url_for('batch_import') }}`
|
||||
4. **修改密码** - `{{ url_for('change_password') }}`
|
||||
5. **查看网站** - `{{ url_for('index') }}` (target="_blank")
|
||||
6. **退出登录** - `{{ url_for('admin_logout') }}`
|
||||
|
||||
---
|
||||
|
||||
## 📝 实现方式
|
||||
|
||||
### 方式1:使用 admin/master.html(推荐)
|
||||
对于新增的后台页面,应该继承 `admin/master.html`:
|
||||
|
||||
```jinja2
|
||||
{% extends 'admin/master.html' %}
|
||||
|
||||
{% block body %}
|
||||
<!-- 页面内容 -->
|
||||
{% endblock %}
|
||||
```
|
||||
|
||||
**注意**:需要在路由中传递 `admin_view` 对象。
|
||||
|
||||
### 方式2:使用统一菜单组件
|
||||
对于独立HTML页面,使用 `{% include %}` 引入统一菜单组件:
|
||||
|
||||
```jinja2
|
||||
{% set active_page = 'page_name' %}
|
||||
{% include 'admin/components/sidebar.html' %}
|
||||
```
|
||||
|
||||
**注意**:
|
||||
- `active_page` 变量用于标记当前激活的菜单项
|
||||
- 统一菜单组件位于 `templates/admin/components/sidebar.html`
|
||||
- 禁止复制粘贴菜单代码,必须使用 include 方式
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 重要提醒
|
||||
|
||||
1. **禁止删减菜单项** - 所有页面必须显示完整菜单
|
||||
2. **禁止修改顺序** - 菜单顺序必须一致
|
||||
3. **禁止硬编码菜单** - 必须使用统一组件 `admin/components/sidebar.html`
|
||||
4. **新增菜单项** - 只需在统一组件中添加,所有页面自动生效
|
||||
5. **endpoint 名称** - 必须使用正确的 Flask-Admin endpoint
|
||||
|
||||
---
|
||||
|
||||
## 🔍 检查清单
|
||||
|
||||
添加新后台页面时,必须检查:
|
||||
- [ ] 主菜单包含6个项目
|
||||
- [ ] 系统菜单包含6个项目
|
||||
- [ ] endpoint 名称正确
|
||||
- [ ] 图标使用 Material Symbols
|
||||
- [ ] 当前页面有 `active` 类
|
||||
|
||||
---
|
||||
|
||||
## 📂 涉及的文件
|
||||
|
||||
**统一菜单组件:**
|
||||
- `templates/admin/components/sidebar.html` - 唯一的菜单源文件
|
||||
|
||||
**使用统一菜单的页面:**
|
||||
- `templates/admin/master.html` - Flask-Admin 页面基础模板
|
||||
- `templates/admin/batch_import.html` - 批量导入页面
|
||||
- `templates/admin/change_password.html` - 修改密码页面
|
||||
- `templates/admin/seo_tools.html` - SEO工具页面
|
||||
- `templates/admin/users/list.html` - 用户列表页面
|
||||
- `templates/admin/users/detail.html` - 用户详情页面
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 维护指南
|
||||
|
||||
### 添加新菜单项
|
||||
1. 在 `templates/admin/components/sidebar.html` 中添加
|
||||
2. 更新本文档
|
||||
3. 所有使用该组件的页面自动生效
|
||||
|
||||
### 删除菜单项
|
||||
1. 从 `templates/admin/components/sidebar.html` 中删除
|
||||
2. 更新本文档
|
||||
3. 所有使用该组件的页面自动生效
|
||||
|
||||
### 修改菜单顺序
|
||||
1. 在 `templates/admin/components/sidebar.html` 中调整
|
||||
2. 更新本文档
|
||||
3. 所有使用该组件的页面自动生效
|
||||
|
||||
### 新增后台页面
|
||||
1. 如果是 Flask-Admin 页面,继承 `admin/master.html`
|
||||
2. 如果是独立页面,使用 `{% include 'admin/components/sidebar.html' %}`
|
||||
3. 设置 `active_page` 变量标记当前页面
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2025-02-08
|
||||
**维护人**: Claude Sonnet 4.5
|
||||
168
.claude/task-breakdown-rules.md
Normal file
168
.claude/task-breakdown-rules.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# 任务分解规则
|
||||
|
||||
## 📋 规则说明
|
||||
|
||||
在接到新任务后,必须将主任务分解成合适的子任务,通过分步执行的方式来保障开发的稳定性和准确性。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心原则
|
||||
|
||||
1. **先分解,后执行** - 不要直接开始编码,先进行任务分解
|
||||
2. **小步快跑** - 每个子任务应该是独立、可测试的小单元
|
||||
3. **逐步验证** - 完成一个子任务后,验证无误再进行下一个
|
||||
4. **降低风险** - 避免一次性修改过多文件导致的连锁错误
|
||||
|
||||
---
|
||||
|
||||
## 📝 任务分解流程
|
||||
|
||||
### 第一步:理解需求
|
||||
- 仔细阅读用户的需求描述
|
||||
- 明确功能目标和验收标准
|
||||
- 识别涉及的技术栈和文件
|
||||
|
||||
### 第二步:分解任务
|
||||
将主任务分解为 3-8 个子任务,每个子任务应该:
|
||||
- **独立性** - 可以独立完成和测试
|
||||
- **原子性** - 只做一件事情
|
||||
- **可验证** - 有明确的完成标准
|
||||
- **有序性** - 按照依赖关系排序
|
||||
|
||||
### 第三步:列出任务清单
|
||||
使用 TaskCreate 工具创建任务清单,包括:
|
||||
- 任务标题(简短、动词开头)
|
||||
- 详细描述(包含具体要做什么)
|
||||
- 预期结果(如何验证完成)
|
||||
|
||||
### 第四步:逐个执行
|
||||
- 使用 TaskUpdate 标记任务为 in_progress
|
||||
- 完成后标记为 completed
|
||||
- 遇到问题及时反馈,不要继续下一个任务
|
||||
|
||||
---
|
||||
|
||||
## ✅ 良好的任务分解示例
|
||||
|
||||
**主任务:** 添加用户管理功能
|
||||
|
||||
**子任务分解:**
|
||||
1. 创建用户列表页面路由和模板
|
||||
2. 创建用户详情页面路由和模板
|
||||
3. 实现重置密码 API 接口
|
||||
4. 实现修改用户名 API 接口
|
||||
5. 在管理后台首页添加用户统计
|
||||
6. 在管理后台导航添加用户管理入口
|
||||
|
||||
---
|
||||
|
||||
## ❌ 不良的任务分解示例
|
||||
|
||||
**错误示例1:任务过大**
|
||||
- ❌ "完成用户管理功能" - 太笼统,无法独立验证
|
||||
|
||||
**错误示例2:任务过细**
|
||||
- ❌ "创建 user_list.html 文件"
|
||||
- ❌ "在 user_list.html 中添加表格"
|
||||
- ❌ "在表格中添加用户名列"
|
||||
- 这样分解过于琐碎,失去了任务管理的意义
|
||||
|
||||
**错误示例3:任务无序**
|
||||
- ❌ 先做"添加导航入口",后做"创建页面路由"
|
||||
- 应该先有功能,再添加入口
|
||||
|
||||
---
|
||||
|
||||
## 🔍 任务粒度参考
|
||||
|
||||
### 合适的任务粒度:
|
||||
- 创建一个完整的页面(路由 + 模板 + 样式)
|
||||
- 实现一个 API 接口(路由 + 逻辑 + 错误处理)
|
||||
- 添加一个数据库表(模型 + 迁移脚本)
|
||||
- 实现一个完整的功能模块(前端 + 后端)
|
||||
|
||||
### 任务太大的信号:
|
||||
- 需要修改超过 5 个文件
|
||||
- 预计耗时超过 30 分钟
|
||||
- 包含多个不相关的功能点
|
||||
- 难以用一句话描述清楚
|
||||
|
||||
### 任务太小的信号:
|
||||
- 只修改几行代码
|
||||
- 无法独立测试
|
||||
- 必须和其他任务一起才有意义
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 使用工具
|
||||
|
||||
### TaskCreate - 创建任务
|
||||
```
|
||||
subject: "创建用户列表页面"
|
||||
description: "创建 /admin/users 路由,实现用户列表展示,包括搜索和分页功能"
|
||||
activeForm: "创建用户列表页面"
|
||||
```
|
||||
|
||||
### TaskUpdate - 更新任务状态
|
||||
```
|
||||
taskId: "1"
|
||||
status: "in_progress" # 开始工作时
|
||||
```
|
||||
|
||||
```
|
||||
taskId: "1"
|
||||
status: "completed" # 完成后
|
||||
```
|
||||
|
||||
### TaskList - 查看任务列表
|
||||
定期查看任务列表,了解整体进度
|
||||
|
||||
---
|
||||
|
||||
## 📊 任务分解模板
|
||||
|
||||
### 模板1:新增功能页面
|
||||
1. 创建后端路由和数据查询逻辑
|
||||
2. 创建前端页面模板
|
||||
3. 添加页面样式和交互
|
||||
4. 在导航菜单中添加入口
|
||||
5. 测试功能完整性
|
||||
|
||||
### 模板2:API 接口开发
|
||||
1. 设计 API 接口规范(URL、参数、返回值)
|
||||
2. 实现后端路由和业务逻辑
|
||||
3. 添加参数验证和错误处理
|
||||
4. 实现前端调用逻辑
|
||||
5. 测试接口功能
|
||||
|
||||
### 模板3:数据库变更
|
||||
1. 设计数据库表结构
|
||||
2. 创建数据库迁移脚本
|
||||
3. 更新 ORM 模型定义
|
||||
4. 运行迁移并验证
|
||||
5. 更新相关业务逻辑
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. **不要跳过分解步骤** - 即使任务看起来简单,也要先分解
|
||||
2. **及时调整计划** - 如果发现任务分解不合理,及时调整
|
||||
3. **记录遇到的问题** - 在任务描述中记录遇到的问题和解决方案
|
||||
4. **保持沟通** - 遇到不确定的地方,及时向用户确认
|
||||
|
||||
---
|
||||
|
||||
## 🎯 预期效果
|
||||
|
||||
通过任务分解,可以达到:
|
||||
- ✅ 降低开发风险,减少大规模返工
|
||||
- ✅ 提高代码质量,每个子任务都经过验证
|
||||
- ✅ 便于进度跟踪,用户可以看到实时进展
|
||||
- ✅ 提升开发效率,问题可以及早发现和解决
|
||||
|
||||
---
|
||||
|
||||
**创建日期**: 2025-02-08
|
||||
**最后更新**: 2025-02-08
|
||||
**维护人**: Claude Sonnet 4.5
|
||||
Reference in New Issue
Block a user