feat: 查询页面重构 — 去掉新建查询按钮, 默认直接显示编辑器 + 右侧历史抽屉

1. QueriesPage 重构:
   - 去掉两段式切换(历史列表→新建查询面板)
   - 默认直接显示 SQL 编辑器,无需点'新建查询'
   - 实例+数据库选择器紧凑排列在顶栏
   - 执行按钮移到顶栏右侧,操作更便捷
   - 查询历史改为右侧可折叠抽屉(点击'历史'按钮展开)
   - 全高布局 h-[calc(100vh-3rem)],编辑区和结果区更宽敞
   - Schema 导航侧边栏、快捷模板、CSV导出等保留

2. 文档更新:
   - FEATURES.md: 补充定时执行、SQL检测、日志清理、系统设置种子机制
   - ARCHITECTURE.md: 补充 APScheduler+SQLite 持久化调度、日志清理服务、Settings Seeds
   - ROADMAP.md: 标记已完成功能,更新P1-P3进度
   - AUDIT_REPORT.md: 更新服务/文件/测试数量统计
This commit is contained in:
logan committed 2026-05-25 00:35:57 +08:00
1 parent 00db0e5bca
commit 0995abce08
5 files changed
+534 -727

No files matched your search

+57 -20
View File
@@ -1,6 +1,6 @@
# SQL-Platform-Pro 功能清单
> 生成时间: 2026-05-24 | 版本: v1.0
> 生成时间: 2026-05-25 | 版本: v1.1
## ✅ 已完成功能
@@ -14,16 +14,20 @@
- [x] 查询结果表格 (点击单元格弹详情 + JSON 格式化)
- [x] 查询历史记录 (500 条/用户上限)
- [x] 收藏查询 / 快捷查询
- [x] Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合)
- [x] Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE)
- [x] Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合) — **已加宽 (grid-cols-5 2:3 布局)**
- [x] Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE) — **onInsert prop**
- [x] 两阶段 schema 加载 (选实例加载表名, 选库加载列名)
- [x] 数据库品牌图标 (techicons.dev SVG)
- [x] 实例按权限组过滤 (/instances/accessible?access_type=readonly)
#### 2. 数据变更审批流 (TicketsPage + TicketCreatePage)
- [x] 工单创建 (选择变更授权实例 + 库表浏览辅助)
- [x] 工单创建 — 单页面一键提交 (原三步向导已简化)
- [x] DB 类型按频率排序 (MySQL → Redis → PostgreSQL → MongoDB)
- [x] 选择 DB 类型后自动筛选目标实例
- [x] 库表浏览面板 (点击展开库/表/字段,辅助填写目标库)
- [x] Redis 目录树按 `:` 分隔构建层级
- [x] 工单编号生成 (20位: 时间戳+微秒+序号)
- [x] 工单状态机 (pending → reviewing → approved → executing → success/failed)
- [x] 工单状态机 (pending → reviewing → approved → **scheduled** → executing → success/failed)
- [x] 多步审批流 (standard / parallel / any_one / condition)
- [x] 审批人限定 (必须在权限组成员中)
- [x] 工单撤销 (pending/reviewing 状态可撤销)
@@ -44,6 +48,36 @@
- [x] 规则统计和筛选
- [x] 评分系统 (severity: error/warning/info)
#### 3.1 SQL 检测按钮 (TicketCreatePage)
- [x] 提交按钮旁新增「SQL 检测」按钮
- [x] 验证通过前提交按钮置灰 + 提示文字
- [x] SQL 内容变化自动重置验证状态
- [x] 定时时间显示为醒目红色字体
#### 3.2 定时执行工单 (ticket_scheduler.py)
- [x] 基于 APScheduler + SQLite 持久化的定时调度器 (`apscheduler.db`)
- [x] Ticket 模型新增 `scheduled_at` 字段
- [x] 新增 `SCHEDULED` 状态 (approved ↔ scheduled → executing → success/failed)
- [x] API: `GET /tickets/scheduled/list` 定时工单列表
- [x] API: `POST /tickets/{id}/cancel-schedule` 取消定时
- [x] API: `GET /tickets/scheduled/stats` 定时统计
- [x] 前端: TicketCreatePage 定时执行 datetime picker
- [x] 前端: AutoTaskPage 定时任务管理页
#### 3.3 日志自动清理 (log_cleanup.py)
- [x] 系统设置新增 `cleanup` 分组 (6 项配置)
- [x] 启用自动清理开关
- [x] 清理执行时间 (默认凌晨 3 点)
- [x] 工单保留天数 (默认 90 天)
- [x] 审计日志保留天数 (默认 180 天)
- [x] 查询历史保留天数 (默认 30 天)
- [x] 定时任务日志保留天数 (默认 30 天)
- [x] 只清理已完成/已拒绝的工单,0 天 = 不清理
- [x] API: `POST /settings/cleanup/run` 手动触发清理
- [x] API: `GET /settings/cleanup/preview` 预览待清理数据
- [x] 前端: PlatformConfigPage 清理分组 + CleanupActions 预览/手动清理按钮
- [x] APScheduler cron job 每天 03:00 自动执行
#### 4. 审批流管理 (WorkflowPage)
- [x] 审批流 CRUD (创建/编辑/删除)
- [x] 步骤管理 (拖拽排序 + 类型选择)
@@ -107,10 +141,13 @@
- [x] 测试发送功能
#### 11. 系统配置 (PlatformConfigPage)
- [x] 12 项配置 (查询控制 7 + 安全 3 + 工单 2)
- [x] 18 项配置 (查询控制 7 + 安全 3 + 工单 2 + **清理 6**)
- [x] 分组卡片布局 (布尔→开关/整数→数字/字符串→文本)
- [x] 批量保存 + 变更指示 + 重置默认值
- [x] 查询接口集成 (审批检查/长度检查)
- [x] **设置种子数据机制** (`settings_seeds.py` 统一管理所有设置项)
- [x] **`_ensure_settings` 启动时自动补缺失配置**
- [x] **`SETTING_GROUPS` 分组元信息**
#### 12. 公告管理 (AnnouncementPage)
- [x] 公告 CRUD (Markdown 内容)
@@ -146,7 +183,6 @@
## 🔨 开发中 / 待实现
### 短期 (P1)
- [ ] 自动化任务前端 (AutoTaskPage.tsx + api/autoTask.ts)
- [ ] 通知功能前端页面完善
- [ ] 两个页面 Redis 树抽取为共享组件
- [ ] LDAP 认证对接 (后端已有 LdapConfig 模型)
@@ -169,19 +205,20 @@
## 📊 项目统计
| 指标 | 数值 |
|------|------|
| 总提交 | 56 |
| 源文件 | 326 |
| 后端代码 | ~22,000 行 Python |
| 前端代码 | ~14,000 行 TypeScript/TSX |
| API 路由 | 146 条 |
| 测试用例 | 1,075 个 |
| 数据库表 | 28 张 |
| ORM 模型 | 22 个 |
| 前端页面 | 26 个 |
| 审核规则 | 127 条 |
| 系统配置 | 12 项 |
|| 指标 | 数值 |
||------|------|
|| 总提交 | 56+ |
|| 源文件 | 328+ |
|| 后端代码 | ~23,000 行 Python |
|| 前端代码 | ~15,000 行 TypeScript/TSX |
|| API 路由 | 152+ 条 |
|| 测试用例 | 1,075+ 个 |
|| 数据库表 | 28+ 张 |
|| ORM 模型 | 22+ 个 |
|| 前端页面 | 26+ 个 |
|| 审核规则 | 127 条 |
|| 系统配置 | 18 项 |
|| 定时调度 | APScheduler + SQLite 持久化 |
## 🏗️ 数据库连接器支持矩阵