本系统适用于企业内部客户信息管理、订单录入与管理、订单设计师派单、员工业绩核算、设计师团队管理全流程,覆盖普通员工、销售经理、设计师、设计师组长、管理员五类核心角色,适用于企业日常运营管理场景。
点击空白处退出提示
本系统适用于企业内部客户信息管理、订单录入与管理、订单设计师派单、员工业绩核算、设计师团队管理全流程,覆盖普通员工、销售经理、设计师、设计师组长、管理员五类核心角色,适用于企业日常运营管理场景。
1. 实现客户信息统一录入、存储、管理,构建标准化客户池
2. 完成订单从录入、管理、分派、跟进的全流程线上化
3. 支持设计师组长精准分派订单,提升订单处理效率
4. 自动生成员工/设计师业绩报表,简化业绩统计工作
5. 实现设计师团队信息、权限、工作状态的系统化管理
6. 保障数据安全、操作便捷、权限分明,适配企业日常运营
1、我作为项目的全全开发负责人,全部一人完成;
2、前端:JavaScript、Vue 3、Vite、Pinia、Vue Router、Element Plus、Axios。Vue 页面按业务模块组织,并用动态导入加载路由页面,入口和路由分别见 main.js、router/index.js。
后端:Node.js、Express 5,以 REST API 提供认证、客户、订单、合作、财务等接口;入口见 app.js。
数据与基础能力:MySQL、mysql2、JWT、bcrypt、Multer 文件上传;数据表定义见 database.sql,依赖见根目录和前端的 package.json、crm-web/package.json。
架构
整体是 前后端分离的 B/S 单页 Web 应用。
3、实现亮点
业务模块覆盖面较完整:客户、订单、合作、销售/设计师提成、绩效、财务复核、用户权限和操作日志等功能围绕 CRM 流程组织。
关键余额变更考虑并发和一致性:订单、合作相关逻辑使用数据库事务,并在余额读取时使用 FOR UPDATE 行锁;余额计算抽到 balanceUtils.js,有助于避免并发操作造成余额错乱。
前端有统一的登录状态和请求处理:Pinia 管理用户状态,Axios 请求拦截器附带 token,路由守卫根据登录状态和角色控制页面访问。
数据库初始化考虑部署场景:服务启动时检查数据库并按条件执行初始化脚本;已有数据时默认跳过,避免常规启动重跑建库脚本,见 db.js。
4、主要难点与需要留意的地方
金融类业务规则复杂:到账、客户余额、订单扣款、合作状态、提成/绩效之间相互关联。要保证金额精度、业务状态转换、重复请求处理和异常回滚都正确;当前代码已使用事务和行锁处理部分核心流程。权限不只是页面显隐:不同角色能查看和操作的数据范围不同。





评论