# 进入项目目录
cd /Users/zhangqilai/project/vibe-code-100-projects/cogniflow
# 运行迁移脚本
psql -U postgres -d cogniflow -f database/migrations/005_smart_templates.sqlcd server
npm run dev应该看到输出包含:
📋 可用端点:
- GET /api/templates (获取模板)
# 在另一个终端
npm run dev- 打开应用,登录到仪表盘
- 在底部输入框输入
/ - 选择模板,例如 "📰 /日报"
- 填写内容:
- 标题会自动生成(如 "11月2日 每日工作日志")
- 默认子任务已预填充
- 可以添加更多子任务
- 可以添加备注
- 点击保存
- 在"即将发生"视图中查看你的集合卡片
- 在卡片上直接点击子任务前的复选框
- 进度条会自动更新
- 全部完成后卡片自动折叠
- 点击卡片右上角的 ⋮ 菜单
- 可以归档或删除集合
- 在搜索框中搜索关键词
- 集合类型的卡片会正常显示
触发词: /日报
用途: 记录每日工作进展
默认子任务:
- 总结今日完成的工作
- 记录遇到的问题
- 规划明日工作计划
触发词: /会议
用途: 记录会议纪要
默认子任务:
- 记录会议议题
- 记录讨论要点
- 记录行动项
触发词: /月报
用途: 月度工作总结
默认子任务:
- 本月工作完成情况
- 重点成果与亮点
- 下月工作计划
SELECT
title,
created_at,
sub_items,
description
FROM items
WHERE type = 'collection'
AND collection_type = '日报'
AND created_at >= date_trunc('week', CURRENT_DATE)
ORDER BY created_at DESC;SELECT
id,
title,
jsonb_array_length(sub_items) as total_tasks,
(
SELECT COUNT(*)
FROM jsonb_array_elements(sub_items) AS item
WHERE item->>'status' = 'done'
) as completed_tasks
FROM items
WHERE type = 'collection'
AND collection_type = '日报';WITH daily_logs AS (
SELECT
title,
description,
sub_items,
created_at
FROM items
WHERE type = 'collection'
AND collection_type = '日报'
AND created_at BETWEEN '2025-10-28' AND '2025-11-03'
ORDER BY created_at
)
SELECT
json_agg(
json_build_object(
'date', created_at::date,
'title', title,
'summary', description,
'tasks', sub_items
)
) as weekly_data
FROM daily_logs;解决:
- 确保输入的是
/字符(不是中文全角) - 检查浏览器控制台是否有错误
- 确认后端服务正在运行
解决:
- 检查"即将发生"标签页
- 确认数据库迁移已运行
- 查看浏览器控制台的网络请求
解决:
- 确保登录状态有效
- 检查网络连接
- 查看浏览器控制台的错误信息
如果需要自定义集合卡片的样式,编辑:
src/components/items/CollectionCard.tsx
const response = await fetch('http://localhost:3001/api/templates', {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const templates = await response.json();const newTemplate = {
trigger_word: '周报',
template_name: '周度工作总结',
icon: '📊',
collection_type: '周报',
default_tags: ['工作', '周报'],
default_sub_items: [
{ id: '1', text: '本周完成的工作', status: 'pending' },
{ id: '2', text: '下周工作计划', status: 'pending' },
],
};
const response = await fetch('http://localhost:3001/api/templates', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(newTemplate),
});完成模板管理界面,实现:
- 模板列表展示
- 创建自定义模板
- 编辑现有模板
- 删除模板
- 模板排序
参考文件位置:
src/pages/TemplateManagement.tsx (待创建)
src/components/templates/ (待创建)
提示: 这个功能是完全实现的,可以立即使用!🎉