本地长期开发成果的整体入库快照,包含后端鉴权/权限、AI 接入、合同解析、 SKU 目录等模块,以及前端相应页面与样式改版。 后端 - 新增鉴权与会话:scrypt 密码哈希、HttpOnly cookie(happy_sid)、登录失败锁定 - 新增「角色 → 权限组 → 权限点」三级权限模型与审计日志 - 新增 AI 提供商接入与预设(兼容 OpenAI 协议,内置 DeepSeek / 通义千问等) - 新增合同解析、合同文件保留策略、客户归属与访问控制 - 新增 SKU 目录、组织品牌、新客开发、系统日志等路由 前端 - 新增登录页与用户 / 权限组 / 系统日志管理页 - 新增客户详情、客户公海、询盘详情、报价编辑器、合同清洗中心 - 新增 AI 配置、组织品牌、包装参数、SKU 选择器等组件 - 新增英文大写金额、未保存改动拦截、抽屉与骨架屏 - 新增 stage1 样式层;产品、供应商、订单等页面改版 - EmbeddedSku 页面并入现有产品体系后删除 开源准备 - 新增 AGPL-3.0 LICENSE - README:移除未启用的 SQLCipher 加密声明(改为如实的「已知限制」)、 补充环境变量说明、许可证由「私有项目」改为 AGPL-3.0 - 移除历史遗留的空文件 _index_backup.txt - 文档中的项目路径更新为 happy-export
3.0 KiB
3.0 KiB
项目开发指南
当前进度
✅ Phase 1 已完成:基础框架搭建
已完成的工作
-
项目结构
- 前后端分离架构
- 标准化目录结构
- 开发环境配置
-
数据库设计
- 完整的表结构设计
- 索引优化
- SQLite + SQLCipher 加密
-
后端 API
- Express 服务器
- 数据库连接层
- 基础 CRUD 接口
- 健康检查接口
-
前端页面
- React + React Router
- 6个核心页面:
- 工作台(Dashboard)
- 供应商管理
- 产品管理
- 客户管理
- 订单管理
- 新客开发
- 响应式布局
- 完整的样式系统
下一步工作
立即可做
-
安装依赖并启动
cd D:\wayne\Personal\happy-export # 安装后端依赖 cd backend npm install # 安装前端依赖 cd ..\frontend npm install # 或者直接双击 start.bat -
测试基础功能
- 访问 http://127.0.0.1:5300
- 测试供应商和客户的增删改查
- 检查工作台数据展示
短期规划(1-2周)
-
迁移 SKU Manager 核心功能
- 复制合同解析引擎
- 复制产品管理逻辑
- 复制图片处理功能
- 复制 AI 配置模块
-
完善供应商管理
- 供应商详情页
- 阶梯价格表录入
- 报价记录管理
- 导入导出功能
-
完善产品管理
- 产品详情页
- SKU/SPU 两层管理
- 包装参数编辑
- 产品图片上传
中期规划(3-4周)
-
客户 CRM
- 客户详情页
- 联系人管理
- 跟进记录时间线
- 商机管道视图
-
订单管理
- 订单创建向导
- 订单详情页
- 订单状态流转
- 订单备注系统
-
报价单生成
- 客户报价单
- PDF 导出
- 模板定制
长期规划(1-2个月)
-
自动获客
- 集成 GoodJob 获客引擎
- 数据源适配器
- AI 智能分析
- 线索转化流程
-
高级功能
- 权限管理系统
- 数据分析报表
- 导入导出优化
- 移动端适配
技术决策记录
为什么选择 SQLite?
- 单文件数据库,备份简单
- 支持加密(SQLCipher)
- 适合中小规模(10万级数据)
- 零配置,易于部署
为什么选择 React?
- 组件化开发效率高
- 生态系统成熟
- 与 GoodJob 技术栈一致
为什么不用现成的 ERP?
- ERPNext 过于复杂,定制成本高
- 需要高度定制化的业务流程
- 完全掌控代码和数据
常见问题
Q: 如何备份数据?
A: 直接复制 backend/data/trade.db 文件
Q: 如何迁移到 MySQL?
A: 修改 backend/db/db.js 使用 mysql2 驱动
Q: 如何部署到服务器?
A:
- 后端:
npm start或 PM2 - 前端:
npm run build后用 Nginx 托管 - 配置反向代理
Q: 如何集成 SKU Manager?
A:
- 复制
lib/目录下的解析器 - 复制
parsers/目录 - 调整数据库表结构对应关系
联系方式
项目负责人:Wayne