# Jarvis **Repository Path**: majorx/Jarvis ## Basic Information - **Project Name**: Jarvis - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-14 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智慧管家平台 (Jarvis03) 一个基于 Electron + Vue3 + better-SQLite3 + ECharts 的PC端智慧记账管理桌面应用,集成了记账管理、物品管理、图片管理三大核心模块。 ## 🚀 项目特色 - **现代化界面设计**:科技感、炫酷简约的扁平化设计 - **响应式布局**:支持深色/浅色主题切换,自适应窗口尺寸 - **模块化架构**:卡片式布局,支持功能模块扩展 - **本地数据存储**:使用 SQLite 数据库进行数据持久化 - **实时通知系统**:完整的通知管理功能,支持多种通知类型 - **智能分析**:收入、支出、预算等多维度数据分析 ## 🎯 核心功能 ### 📊 记账模块 (Accounting) #### 快速操作 - **财务总览**:查看整体财务状况和统计信息 - **新增记账**:快速记录收入和支出 - **扫描票据**:扫描票据自动识别账单信息(预留功能) #### 账单管理 - **账单列表**:查看、搜索、筛选所有账单记录 - **账单详情**:查看账单详细信息,支持编辑和删除 - **分类管理**:自定义收入和支出分类,支持图标和排序 - **定期账单**:设置和管理周期性账单(月付、周付等),自动提醒 #### 统计分析 - **收入分析**:收入趋势图表和分类统计 - **支出分析**:支出趋势图表和分类统计 - **预算分析**:预算执行情况和趋势分析 #### 特色功能 - **AI 记账**:智能记账助手(预留功能) - **愿望清单**:管理愿望目标,记录存款进度,支持进度提醒 - **冲动管控**:设置消费冷静期,防止冲动消费 - **预算管理**:设置总预算和分类预算,预算超支提醒 #### 系统设置 - **设置**:应用主题、冲动管控设置、分类监控等 - **数据安全**:数据备份和恢复功能 ### 📦 物品管理模块 (Inventory) #### 物品录入与信息管理 - **多渠道快速录入**: - 手动录入:支持自定义字段(名称、类别、购买日期、价格、保质期/使用周期、购买渠道、存放位置、备注等) - 批量导入:兼容 Excel/CSV 模板(预留功能) - 图片上传:支持物品图片上传 - **智能计算**: - 自动计算每日成本(日均消耗 = 总价 ÷ 预计使用天数) - 支持添加自定义标签(常用、贵重、临期、数码产品等) - 记录关键状态:开封状态、使用进度、库存数量 - **低库存阈值设置**:支持设置低库存警报阈值 #### 分类与筛选管理 - **智能分类体系**: - 系统分类:按物品类型(数码产品、家具家电、食品饮料、美妆护肤、日用品、衣物鞋帽、儿童用品等) - 物品位置:如"客厅物品"、"厨房"、"书房",物品可自由移动 - 状态分类:自动划分"在用"、"闲置"、"临期"、"过期"、"低库存"等状态标签 - **多维度筛选搜索**: - 关键词搜索(匹配物品名称、品牌、标签、备注) - 条件筛选(按分类、购买日期、价格区间、保质期剩余天数、存放位置、标签等组合筛选) - 快速切换视图(列表视图 / 网格视图) #### 资产统计与成本分析 - **资产总览**: - 实时统计资产总额(按所有物品当前价值累加) - 展示资产变动趋势(按周 / 月 / 年生成折线图) - 按分类统计资产占比(饼图展示) - 显示物品总数、各类别数量、临期物品数量、低库存物品数量等核心指标 - **成本与消费分析**: - 按时间段(近 7 天 / 30 天 / 自定义)统计新增物品支出总额 - 展示每日 / 每月平均消费成本 - 生成消费热力图,帮助用户识别冲动消费行为 #### 库存与临期提醒 - **库存跟踪**: - 支持库存数量编辑 - 设置低库存警报阈值(低于阈值时自动标记"低库存"并提醒) - 记录物品出入库记录(新增、消耗、补充、闲置),支持查看历史变动日志 - **智能提醒**: - 临期提醒:设置保质期/有效期,到期前 N 天(可自定义天数)通过系统通知、模块内弹窗提醒 - 过期提醒:物品过期后自动标记并推送提醒,避免浪费 - 自定义提醒:支持添加个性化提醒(如家电保养日期、物品更换周期等) - 提醒方式:模块内角标提示、通知清单 ### 🖼️ 图片管理模块 (Photo) #### 照片浏览 - **网格视图**:网格方式浏览照片 - **时间轴**:按时间顺序查看照片 - **地图视图**:基于地理位置的照片展示 - **日历检索**:按日期快速查找照片 #### 相册管理 - **我的相册**:创建和管理相册 - **私密相册**:密码保护的私密相册 - **收藏**:收藏喜欢的照片 - **最近添加**:查看最近添加的照片 #### 工具功能 - **搜索**:智能搜索照片 - **标签管理**:为照片添加和管理标签 - **设置**:照片管理相关设置 ## 🛠️ 技术栈 ### 前端技术 - **框架**:Vue 3 (Composition API) + TypeScript - **路由**:Vue Router 4 - **图表**:ECharts 6.0 + vue-echarts - **构建工具**:Vite 5 - **样式方案**:CSS3 + CSS Variables ### 桌面应用 - **框架**:Electron 30 - **主进程**:Node.js - **IPC通信**:安全的进程间通信机制 ### 数据存储 - **数据库**:better-sqlite3 11.1.2 - **数据表**: - **记账模块**: - `bill` - 账单记录 - `budget` - 预算信息 - `categories` - 分类管理 - `recurring_bill` - 定期账单 - `wish` - 愿望清单 - `tag` - 标签管理 - **物品管理模块**: - `item` - 物品记录 - `item_history` - 物品历史记录(库存变动日志) - **图片管理模块**: - `photo` - 照片记录 - **系统模块**: - `notification` - 通知记录 - `config` - 系统配置 - `group` - 分组管理 - `pwd_info` - 密码信息 ## 📦 安装与运行 ### 环境要求 - **Node.js**:v20.15.0 或更高版本 - **npm**:随 Node.js 安装 - **操作系统**:Windows / macOS / Linux ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash # 启动开发服务器 npm run dev ``` ### 构建应用 ```bash # 构建生产版本 npm run build ``` ### 重新编译原生模块 如果遇到 `better-sqlite3` 模块版本不匹配的问题: ```bash # 重新编译 better-sqlite3 npm rebuild better-sqlite3 # 或使用 electron-rebuild npx electron-rebuild ``` ## 🎨 界面特性 ### 设计风格 - **色彩方案**:高级灰底色 + 差异化撞色卡片 - **交互效果**:hover 缩放(1.05倍) + 阴影加深 - **动画过渡**:平滑的页面切换动画 - **主题切换**:支持深色/浅色主题 ### 响应式设计 - **默认尺寸**:1280px × 800px - **最小尺寸**:1024px × 600px - **自适应布局**:根据窗口尺寸自动调整 ### 组件特性 - **侧边栏**:可折叠的左侧导航栏 - **统计面板**:可折叠的右侧统计信息面板 - **通知系统**:顶部通知中心,支持未读提醒 - **模态框**:自定义确认对话框组件(ConfirmDialog) - **Toast 提示**:全局 Toast 提示组件 - **统一交互**:所有 alert 使用 Toast,所有 confirm 使用 ConfirmDialog - **操作记录**:重要操作自动记录到通知系统 ## 🔧 项目结构 ``` Jarvis03/ ├── electron/ # Electron 主进程 │ ├── main.ts # 主进程入口 │ ├── preload.ts # 预加载脚本 │ ├── constant.ts # IPC 常量定义 │ └── db/ # 数据库相关 │ └── sqlite/ │ ├── db.ts # 数据库连接 │ ├── init-sql.ts # 数据库初始化 │ ├── sqlite-ipc.ts # IPC 处理器 │ ├── tables/ # 数据表定义 │ │ ├── accounting/ # 记账模块表 │ │ ├── inventory/ # 物品管理模块表 │ │ └── photo/ # 图片管理模块表 │ ├── services/ # 业务逻辑层 │ │ ├── accounting/ # 记账模块服务 │ │ ├── inventory/ # 物品管理模块服务 │ │ └── photo/ # 图片管理模块服务 │ └── ipc/ # IPC 处理函数 │ ├── accounting/ # 记账模块IPC │ ├── inventory/ # 物品管理模块IPC │ └── photo/ # 图片管理模块IPC │ ├── src/ # 前端源码 │ ├── components/ # Vue 组件 │ │ ├── common/ # 公共组件 │ │ │ ├── HeaderBar.vue # 顶部导航栏 │ │ │ ├── Toast.vue # 提示组件 │ │ │ └── ConfirmDialog.vue # 确认对话框组件 │ │ ├── accounting/ # 记账模块组件 │ │ │ ├── AccountingContentArea.vue │ │ │ ├── QuickRecordContent.vue │ │ │ ├── BillListContent.vue │ │ │ ├── BudgetManagement.vue │ │ │ └── ... # 其他功能组件 │ │ ├── inventory/ # 物品管理模块组件 │ │ │ ├── InventoryContentArea.vue │ │ │ ├── AddItemContent.vue │ │ │ ├── ItemListContent.vue │ │ │ ├── ItemDetailContent.vue │ │ │ ├── AssetStatsContent.vue │ │ │ ├── CostAnalysisContent.vue │ │ │ └── ... # 其他功能组件 │ │ └── photo/ # 图片管理模块组件 │ │ ├── PhotoContentArea.vue │ │ ├── PhotoGridContent.vue │ │ ├── PhotoImportContent.vue │ │ └── ... # 其他功能组件 │ ├── composables/ # 组合式函数 │ │ ├── useToast.ts # Toast 提示 │ │ ├── useNotification.ts # 通知管理 │ │ └── useConfirm.ts # 确认对话框 │ ├── views/ # 页面视图 │ │ ├── HomeView.vue # 首页 │ │ ├── AccountingView.vue # 记账页面 │ │ ├── InventoryView.vue # 物品管理页面 │ │ └── PhotoView.vue # 图片管理页面 │ ├── router/ # 路由配置 │ ├── types/ # TypeScript 类型 │ ├── App.vue # 根组件 │ └── main.ts # 应用入口 │ ├── public/ # 静态资源 ├── package.json # 项目配置 ├── vite.config.ts # Vite 配置 ├── tsconfig.json # TypeScript 配置 └── electron-builder.json5 # Electron 打包配置 ``` ## 📱 功能模块详解 ### 📊 记账模块功能 #### 1. 财务总览 - 显示本月收入、支出、结余 - 收支趋势图表 - 分类支出占比 - 预算执行情况 #### 2. 快速记账 - 快速记录收入和支出 - 选择分类和支付方式 - 添加备注和标签 - 实时保存到数据库 - 自动创建通知记录 #### 3. 账单列表 - 支持按日期、类型、分类筛选 - 支持搜索账单 - 批量删除功能 - 查看账单详情 #### 4. 分类管理 - 自定义收入和支出分类 - 设置分类图标 - 调整分类顺序 - 分类统计信息 #### 5. 定期账单 - 设置周期性账单(月付、周付、自定义) - 自动执行提醒 - 账单状态管理(激活/暂停) - 执行历史记录 #### 6. 预算管理 - 设置总预算 - 设置分类预算 - 预算执行趋势图表 - 预算超支提醒 - 预算重置功能 #### 7. 愿望清单 - 创建愿望目标 - 设置目标金额和日期 - 记录存款进度 - 进度提醒(完成/接近完成) - 存款历史记录 #### 8. 冲动管控 - 启用/禁用冲动管控 - 设置监控分类 - 设置金额阈值 - 设置冷静期时长 - 消费拦截提醒 #### 9. 数据分析 - **收入分析**:收入趋势、分类统计 - **支出分析**:支出趋势、分类统计、消费习惯 - **预算分析**:预算执行情况、超支预警 ### 📦 物品管理模块功能 #### 1. 物品总览 - 资产总额统计 - 物品总数统计 - 临期物品数量 - 低库存物品数量 - 过期物品数量 #### 2. 物品录入 - 完整的物品信息表单 - 支持图片上传 - 自动计算日均成本 - 标签管理 - 保质期/使用周期设置 #### 3. 物品列表 - 列表/网格视图切换 - 多维度筛选(分类、状态、位置、价格区间) - 关键词搜索 - 物品详情查看 #### 4. 物品详情 - 完整物品信息展示 - 库存信息 - 保质期状态(过期/临期提醒) - 历史记录查看 - 编辑和删除功能 #### 5. 分类管理 - 分类列表展示 - 分类统计(物品数、总价值) - 分类占比可视化 - 添加/编辑/删除分类 #### 6. 资产统计 - 资产总额统计 - 分类资产占比饼图 - 分类明细表格 - 资产变动趋势 #### 7. 成本分析 - 时间段筛选(7天/30天/90天/全部) - 消费统计卡片 - 消费趋势折线图 - 消费明细表格 #### 8. 临期提醒 - 可调节提醒天数(3/7/15/30天) - 临期物品列表 - 过期状态标识 - 剩余天数显示 #### 9. 低库存提醒 - 低库存物品列表 - 库存进度条可视化 - 缺货状态标识 - 库存百分比显示 #### 10. 设置 - 提醒设置(默认临期天数、过期提醒开关等) - 显示设置(默认视图、每页数量) - 数据设置(自动更新状态、保留历史记录) ### 🖼️ 图片管理模块功能 #### 1. 照片浏览 - 网格视图、时间轴、地图视图 - 日历检索 - 幻灯片播放 #### 2. 相册管理 - 我的相册、私密相册 - 收藏、最近添加 #### 3. 工具功能 - 搜索、标签管理、设置 ### 🔔 系统功能 #### 通知系统 - 实时通知中心 - 支持成功、错误、警告、信息四种类型 - 未读通知提醒 - 标记已读/清除全部 - 重要操作自动入库(删除、添加、更新等) #### 系统设置 - 主题切换(深色/浅色) - 冲动管控设置 - 分类监控配置 - 其他应用设置 #### 数据安全 - 数据备份 - 数据恢复 - 数据导出(预留) ## 🔐 数据安全 - 所有数据存储在本地 SQLite 数据库 - 支持数据备份和恢复 - 数据加密(预留功能) - 重要操作自动记录到通知系统,便于追溯 ## 🎨 UI/UX 特性 ### 统一交互规范 - **Toast 提示**:所有成功/错误提示使用 Toast 组件,不再使用 `alert()` - **确认对话框**:所有确认操作使用 ConfirmDialog 组件,不再使用 `confirm()` - **通知入库**:重要操作(添加、删除、更新等)自动记录到通知系统 - **操作反馈**:所有操作都有明确的成功/失败反馈 ### 通知类型规范 - **success**:成功操作(添加、更新、保存等) - **warning**:删除、危险操作 - **error**:操作失败 - **info**:信息提示(重置设置、状态变更等) ## 🐛 常见问题 ### better-sqlite3 模块版本不匹配 **错误信息**: ``` NODE_MODULE_VERSION 不匹配 ``` **解决方法**: ```bash # 方法1:重新编译 npm rebuild better-sqlite3 # 方法2:使用 electron-rebuild npx electron-rebuild # 方法3:重新安装 npm uninstall better-sqlite3 npm install better-sqlite3 ``` ### 数据库初始化失败 确保数据库文件有写入权限,检查应用数据目录。 ## 🚀 开发计划 ### 已完成功能 #### 记账模块 - ✅ 基础记账功能 - ✅ 分类管理 - ✅ 定期账单 - ✅ 预算管理 - ✅ 愿望清单 - ✅ 冲动管控 - ✅ 数据分析 - ✅ 通知系统 - ✅ 数据备份 #### 物品管理模块 - ✅ 物品录入与信息管理 - ✅ 分类与筛选管理 - ✅ 资产统计与成本分析 - ✅ 库存与临期提醒 - ✅ 物品历史记录追踪 - ✅ 多维度筛选和搜索 - ✅ 列表/网格视图切换 #### 图片管理模块 - ✅ 照片浏览(网格、时间轴、地图视图) - ✅ 相册管理 - ✅ 照片导入 - ✅ 标签管理 - ✅ 搜索功能 ### 计划功能 - [ ] AI 记账(智能识别) - [ ] 扫描票据(OCR识别) - [ ] 物品批量导入(Excel/CSV) - [ ] 数据导出(Excel/CSV) - [ ] 云端同步 - [ ] 多语言支持 - [ ] 插件系统 - [ ] 物品图片识别(预留) ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! --- **智慧管家平台 (Jarvis03)** - 让财务管理更智能、更便捷! --- ## 📚 相关文档 - [better-sqlite3 文档](https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md) - [Electron 文档](https://www.electronjs.org/docs) - [Vue 3 文档](https://cn.vuejs.org/) - [Vite 文档](https://cn.vitejs.dev/)