智能模板 (Smart Templates) 功能已成功实现,允许用户通过 / 命令快速创建结构化的集合类型条目,如日报、会议纪要、月报等。
- ✅ 扩展
items表,添加collection_type和sub_items字段 - ✅ 创建
user_templates表存储用户自定义模板 - ✅ 添加相关索引和触发器
- 📄 迁移脚本:
database/migrations/005_smart_templates.sql
- ✅ 添加
collection到ItemType枚举 - ✅ 定义
SubItem、UserTemplate、TemplateFormData接口 - 📄 文件:
src/types/types.ts
- ✅ 创建模板 CRUD API 路由
- ✅ 实现模板使用次数统计
- ✅ 集成到主服务器
- 📄 文件:
server/routes/templates.tsserver/index.ts(已注册路由)
- ✅ 创建
templateApi客户端 - ✅ 提供完整的 CRUD 方法
- 📄 文件:
src/db/templateApi.ts
- ✅ 动态标题生成
- ✅ 子任务列表管理(添加、删除、勾选)
- ✅ 备注输入
- ✅ 标签管理
- 📄 文件:
src/components/items/TemplateInputModal.tsx
- ✅ 显示完成进度
- ✅ 支持子任务勾选
- ✅ 自动折叠已完成的卡片
- ✅ 归档和删除功能
- 📄 文件:
src/components/items/CollectionCard.tsx
- ✅ 监听
/字符触发模板菜单 - ✅ 显示可用模板列表
- ✅ 加载用户模板(支持默认模板)
- ✅ 集成模板保存逻辑
- ✅ 更新模板使用次数
- 📄 文件:
src/components/items/QuickInput.tsx
- ✅ 在所有视图中支持
collection类型渲染 - ✅ 即将发生、归档、标签、搜索结果等视图
- 📄 文件:
src/pages/Dashboard.tsx
1. 用户输入 `/`
↓
2. 显示模板菜单(日报、会议、月报等)
↓
3. 选择模板(如 `/日报`)
↓
4. 打开专用模态框
- 预填充模板默认内容
- 允许用户编辑标题、子任务、备注、标签
↓
5. 保存后创建集合类型条目
↓
6. 显示在仪表盘中
- 显示进度条
- 支持子任务勾选
- 自动折叠已完成
{
"id": "uuid",
"type": "collection",
"collection_type": "日报",
"title": "11月2日 每日工作日志",
"description": "今天完成了智能模板功能的实现...",
"tags": ["工作", "日报"],
"sub_items": [
{
"id": "uuid-1",
"text": "总结今日完成的工作",
"status": "done"
},
{
"id": "uuid-2",
"text": "记录遇到的问题",
"status": "pending"
}
]
}{
"id": "uuid",
"user_id": "user-uuid",
"trigger_word": "日报",
"template_name": "每日工作日志",
"icon": "📰",
"collection_type": "日报",
"default_tags": ["工作", "日报"],
"default_sub_items": [
{
"id": "1",
"text": "总结今日完成的工作",
"status": "pending"
}
],
"is_active": true,
"sort_order": 0,
"usage_count": 0
}psql -U postgres -d cogniflow -f database/migrations/005_smart_templates.sqlcd server
npm run dev- 在输入框中输入
/ - 从弹出菜单中选择模板
- 填写内容并保存
系统提供 3 个默认模板:
- 触发词:
/日报 - 默认标签:工作、日报
- 默认子任务:
- 总结今日完成的工作
- 记录遇到的问题
- 规划明日工作计划
- 触发词:
/会议 - 默认标签:会议、工作
- 默认子任务:
- 记录会议议题
- 记录讨论要点
- 记录行动项
- 触发词:
/月报 - 默认标签:工作、月报
- 默认子任务:
- 本月工作完成情况
- 重点成果与亮点
- 下月工作计划
- 创建
TemplateManagement.tsx页面 - 允许用户创建自定义模板
- 编辑和删除模板
- 模板排序和启用/禁用
- 添加"管理模板..."入口到命令菜单
- 模板分享功能
- 模板导入/导出
- 模板变量(如自动填充日期)
- 模板分类和搜索
- 模板使用统计和推荐
- ✅ 图标显示(根据 collection_type 自动选择)
- ✅ 进度条(显示子任务完成进度)
- ✅ 可折叠/展开
- ✅ 已完成自动折叠
- ✅ 子任务直接勾选
- ✅ 下拉菜单(归档、删除)
- ✅ 响应式设计
- ✅ 自动生成标题
- ✅ 键盘快捷键(Enter 添加子任务)
- ✅ 实时预览
- ✅ 表单验证
GET /api/templates 获取所有模板
GET /api/templates/:id 获取单个模板
POST /api/templates 创建新模板
PUT /api/templates/:id 更新模板
DELETE /api/templates/:id 删除模板
POST /api/templates/:id/increment-usage 增加使用次数
由于所有集合都以结构化形式存储,可以轻松实现:
SELECT * FROM items
WHERE type = 'collection'
AND collection_type = '日报'
AND created_at BETWEEN '2025-10-28' AND '2025-11-03';SELECT COUNT(*) as meeting_count
FROM items
WHERE type = 'collection'
AND collection_type = '会议'
AND created_at >= date_trunc('month', CURRENT_DATE);- 类型安全:完整的 TypeScript 类型定义
- 数据结构化:JSONB 存储子任务,支持高效查询
- UI 组件化:可复用的 Modal 和 Card 组件
- API 抽象:统一的 API 客户端接口
- 用户体验:流畅的交互流程,自动保存使用统计
- ✅ 100% 准确的意图识别(用户主动选择模板)
- ✅ 零 AI 成本(不需要 AI 解析结构)
- ✅ 结构化数据存储(便于后续聚合和分析)
- ✅ 灵活的模板系统(支持用户自定义)
- ✅ 完整的 CRUD 功能(创建、读取、更新、删除)
- ✅ 友好的用户界面(Command 菜单 + Modal 输入)
状态: ✅ 核心功能已完成并可使用
下一步: 实现模板管理界面,允许用户创建和编辑自定义模板