feat: 删除亲情卡分类并优化搜索功能

- 移除亲情卡支出分类(前端+后端)
- 搜索结果添加点击编辑功能
- 提取 RecordModal 组件复用(index.js/search.js)
- 添加 useMemo 优化计算性能
- 优化类别查找为 O(1) 映射
- 添加删除分类接口输入验证

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Developer
2026-03-17 11:19:26 +08:00
co-authored by Claude Opus 4.6
parent 3347a256b2
commit b5f9a238bb
8 changed files with 457 additions and 218 deletions
+14 -1
View File
@@ -384,6 +384,20 @@ app.delete('/api/records/:id', authenticate, (req, res) => {
res.json({ message: '删除成功' });
});
// 批量删除指定分类的记录
app.delete('/api/records/by-category/:category', authenticate, (req, res) => {
const { category } = req.params;
if (!category || typeof category !== 'string' || !category.trim()) {
return res.status(400).json({ error: '分类不能为空' });
}
const stmt = db.prepare('DELETE FROM records WHERE category = ? AND user_id = ?');
const result = stmt.run(category.trim(), req.userId);
res.json({ message: `已删除 ${result.changes} 条记录` });
});
// 获取月度统计
app.get('/api/stats', authenticate, (req, res) => {
const { month } = req.query;
@@ -630,7 +644,6 @@ app.get('/api/categories', authenticate, (req, res) => {
{ name: '娱乐', icon: '🎮' },
{ name: '房租', icon: '🏠' },
{ name: '房贷', icon: '🏦' },
{ name: '亲情卡', icon: '💳' },
{ name: '水电', icon: '💧' },
{ name: '衣服', icon: '👔' },
{ name: '通讯', icon: '📱' },