# crm-standard **Repository Path**: haobinjun/crm-standard ## Basic Information - **Project Name**: crm-standard - **Description**: 标准版 CRM 系统,前后端分离架构,结构清晰便于快速部署 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-01-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CRM客户资源管理系统 一个基于 Spring Boot + Vue 的全栈 CRM 客户管理系统。 ## ⚠️ 重要:首次使用前请修改配置 **请先修改 `crm-backend/src/main/resources/application.yml` 中的数据库密码:** ```yaml spring: datasource: password: YOUR_DATABASE_PASSWORD # 请修改为你的 MySQL 密码 ``` 然后执行数据库初始化脚本。 ## 项目结构 ``` crm-system/ ├── crm-backend/ # 后端项目 │ ├── src/ │ │ └── main/ │ │ ├── java/com/crm/ │ │ │ ├── controller/ # 控制器层 │ │ │ ├── service/ # 业务逻辑层 │ │ │ ├── mapper/ # 数据访问层 │ │ │ ├── entity/ # 实体类 │ │ │ ├── dto/ # 数据传输对象 │ │ │ ├── config/ # 配置类 │ │ │ ├── filter/ # 过滤器 │ │ │ ├── exception/ # 异常处理 │ │ │ └── utils/ # 工具类 │ │ └── resources/ │ │ ├── mapper/ # MyBatis XML │ │ ├── sql/ # 数据库脚本 │ │ └── application.yml │ └── pom.xml │ └── crm-frontend/ # 前端项目 ├── public/ │ └── index.html ├── src/ │ ├── api/ # API接口 │ ├── assets/ # 静态资源 │ ├── components/ # 组件 │ ├── router/ # 路由配置 │ ├── store/ # Vuex状态管理 │ ├── utils/ # 工具函数 │ ├── views/ # 页面 │ ├── App.vue │ └── main.js ├── package.json └── vue.config.js ``` ## 技术栈 ### 后端 - Java 1.8+ - Spring Boot 2.7.18 - MyBatis-Plus 3.5.5 - Spring Security + JWT - MySQL 5.7+ ### 前端 - Vue 2.6 - Vue Router - Vuex - Element UI 2.15 - Axios - ECharts 5.4 ## 环境准备 ### 前置工具下载 运行本项目需要安装以下工具: #### Windows 系统 **方法一:使用 winget 命令(Windows 10/11 推荐方式)** 在 PowerShell 或命令提示符中执行以下命令: ```powershell # 安装 JDK 17 (或使用 Oracle JDK 17) winget install EclipseAdoptium.Temurin.17.JDK # 安装 Maven winget install Apache.Maven # 安装 Node.js 20 LTS winget install OpenJS.NodeJS.LTS # 安装 MySQL 8.0 winget install Oracle.MySQL ``` **方法二:手动下载安装** 如果 winget 不可用,请下载以下安装包: ```powershell # 1. JDK 17 (Oracle JDK) # 下载链接: https://download.oracle.com/java/17/archive/jdk-17.0.12_windows-x64_bin.exe # 或使用命令启动下载: Start-BitsTransfer -Source "https://download.oracle.com/java/17/archive/jdk-17.0.12_windows-x64_bin.exe" -Destination "$HOME\Downloads\" # 2. Apache Maven 3.9.6 # 下载链接: https://archive.apache.org/dist/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip Start-BitsTransfer -Source "https://archive.apache.org/dist/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip" -Destination "$HOME\Downloads\" # 3. Node.js 20 LTS # 下载链接: https://nodejs.org/dist/v20.11.0/node-v20.11.0-x64.msi Start-BitsTransfer -Source "https://nodejs.org/dist/v20.11.0/node-v20.11.0-x64.msi" -Destination "$HOME\Downloads\" # 4. MySQL 8.0 Installer # 下载链接: https://dev.mysql.com/get/Downloads/MySQL-Installer/mysql-installer-community-8.0.40.0.msi Start-BitsTransfer -Source "https://dev.mysql.com/get/Downloads/MySQL-Installer/mysql-installer-community-8.0.40.0.msi" -Destination "$HOME\Downloads\" ``` **方法三:使用 Chocolatey(需先安装 Chocolatey)** ```powershell # 安装 Chocolatey (如果尚未安装) Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) # 使用 Chocolatey 安装工具 choco install jdk17 -y choco install maven -y choco install nodejs-lts -y choco install mysql -y ``` #### Linux 系统 (Ubuntu/Debian) ```bash # 更新包管理器 sudo apt update # 安装 JDK 17 sudo apt install -y openjdk-17-jdk # 安装 Maven sudo apt install -y maven # 安装 Node.js 20 LTS curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs # 安装 MySQL sudo apt install -y mysql-server ``` #### macOS 系统 ```bash # 使用 Homebrew 安装 # 如果尚未安装 Homebrew,先执行: # /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装 JDK 17 brew install openjdk@17 # 安装 Maven brew install maven # 安装 Node.js 20 LTS brew install node@20 # 安装 MySQL brew install mysql ``` ### 验证安装 安装完成后,请验证所有工具已正确安装: ```bash # 检查 JDK 版本 java -version # 检查 Maven 版本 mvn -version # 检查 Node.js 版本 node -v # 检查 npm 版本 npm -v # 检查 MySQL 版本 mysql --version ``` ### 环境变量配置 #### Windows 系统 - 自动配置脚本 **方法一:使用 PowerShell 脚本(推荐)** 将以下内容保存为 `setup-env.ps1`,然后在 PowerShell 中以管理员身份运行: ```powershell # ======================================== # CRM 项目环境变量配置脚本 # ======================================== # 使用方法:在 PowerShell(管理员)中执行: .\setup-env.ps1 # ======================================== Write-Host "========================================" -ForegroundColor Cyan Write-Host "CRM 项目环境变量配置" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan # 请根据实际安装路径修改以下变量 $JDK_PATH = "C:\java\jdk-13" # JDK 安装目录 $MAVEN_PATH = "D:\apache-maven-3.9.12" # Maven 安装目录 $NODE_PATH = "C:\Program Files\nodejs" # Node.js 安装目录 $MYSQL_PATH = "C:\Program Files\MySQL\MySQL Server 5.7" # MySQL 安装目录 # 设置用户环境变量 Write-Host "`n[1/4] 配置 JAVA_HOME..." -ForegroundColor Yellow [Environment]::SetEnvironmentVariable("JAVA_HOME", $JDK_PATH, "User") Write-Host "JAVA_HOME = $JDK_PATH" -ForegroundColor Green Write-Host "`n[2/4] 配置 MAVEN_HOME..." -ForegroundColor Yellow [Environment]::SetEnvironmentVariable("MAVEN_HOME", $MAVEN_PATH, "User") Write-Host "MAVEN_HOME = $MAVEN_PATH" -ForegroundColor Green Write-Host "`n[3/4] 配置 NODE_PATH..." -ForegroundColor Yellow [Environment]::SetEnvironmentVariable("NODE_PATH", $NODE_PATH, "User") Write-Host "NODE_PATH = $NODE_PATH" -ForegroundColor Green # 获取当前 PATH $currentPath = [Environment]::GetEnvironmentVariable("Path", "User") # 添加新路径到 PATH(避免重复) $newPaths = @( "$JDK_PATH\bin", "$MAVEN_PATH\bin", "$NODE_PATH", "$MYSQL_PATH\bin" ) foreach ($newPath in $newPaths) { if ($currentPath -notlike "*$newPath*") { $currentPath = "$newPath;$currentPath" Write-Host "添加到 PATH: $newPath" -ForegroundColor Green } else { Write-Host "PATH 已存在: $newPath" -ForegroundColor Gray } } [Environment]::SetEnvironmentVariable("Path", $currentPath, "User") Write-Host "`n[4/4] 配置完成!" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Cyan Write-Host "请关闭当前终端窗口,重新打开以使环境变量生效" -ForegroundColor Yellow Write-Host "然后运行以下命令验证安装:" -ForegroundColor Yellow Write-Host " java -version" -ForegroundColor White Write-Host " mvn -version" -ForegroundColor White Write-Host " node -v" -ForegroundColor White Write-Host "========================================" -ForegroundColor Cyan ``` **使用方法:** 1. 将上述脚本保存为 `setup-env.ps1` 2. 右键点击该文件,选择"使用 PowerShell 运行"或"以管理员身份运行" 3. 根据实际安装路径修改脚本中的路径变量 4. 运行完成后重启终端 **方法二:手动命令行配置(适用于已安装工具的情况)** 在 PowerShell 中逐个执行以下命令(**请修改为实际路径**): ```powershell # 设置 JAVA_HOME(请修改为你的 JDK 路径) [Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\java\jdk-13", "User") # 设置 MAVEN_HOME(请修改为你的 Maven 路径) [Environment]::SetEnvironmentVariable("MAVEN_HOME", "D:\apache-maven-3.9.12", "User") # 添加到 PATH $path = [Environment]::GetEnvironmentVariable("Path", "User") $path = "C:\java\jdk-13\bin;" + $path $path = "D:\apache-maven-3.9.12\bin;" + $path $path = "C:\Program Files\nodejs;" + $path $path = "C:\Program Files\MySQL\MySQL Server 5.7\bin;" + $path [Environment]::SetEnvironmentVariable("Path", $path, "User") # 刷新环境变量 $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") ``` #### Linux/macOS 系统 在 `~/.bashrc` 或 `~/.zshrc` 中添加(**请修改为实际路径**): ```bash # Java 环境 export JAVA_HOME=/usr/lib/jvm/java-13-openjdk export PATH=$JAVA_HOME/bin:$PATH # Maven 环境 export MAVEN_HOME=~/apache-maven-3.9.12 export PATH=$MAVEN_HOME/bin:$PATH # Node.js 环境(通常已自动配置) # export PATH=/usr/local/bin:$PATH # MySQL 环境 export PATH=/usr/local/mysql/bin:$PATH ``` 然后执行:`source ~/.bashrc` 或 `source ~/.zshrc` ## 快速开始 ### 1. 数据库初始化 创建数据库并执行初始化脚本: ```bash mysql -u root -p < crm-backend/src/main/resources/sql/init.sql ``` 或手动执行 [init.sql](crm-backend/src/main/resources/sql/init.sql) 中的SQL语句。 默认管理员账号: - 用户名: `admin` - 密码: `Admin123` ### 2. 后端启动 修改 [application.yml](crm-backend/src/main/resources/application.yml) 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/crm_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: your_password ``` 使用 Maven 启动后端: ```bash cd crm-backend mvn clean install mvn spring-boot:run ``` 后端服务将运行在 `http://localhost:8080/api` ### 3. 前端启动 安装依赖并启动前端: ```bash cd crm-frontend npm install npm run serve ``` 前端服务将运行在 `http://localhost:8081` ### 4. 访问系统 打开浏览器访问 `http://localhost:8081`,使用管理员账号登录。 ## 功能模块 ### 1. 数据统计 - 客户数量概览 - 订单统计 - 销售额统计 - 转化率分析 - 客户状态分布图表 - 订单状态分布图表 - 销售趋势图表 ### 2. 客户管理 - 客户信息录入 - 客户列表查询 - 客户信息编辑 - 客户状态管理(潜在/意向/成交/流失) - 客户转移功能 ### 3. 跟进记录 - 跟进记录创建 - 跟进历史查看 - 下次跟进提醒 - 跟进结果记录 ### 4. 订单管理 - 订单创建 - 订单状态管理 - 订单金额统计 - 成交时间记录 ### 5. 用户管理(仅管理员) - 用户列表查看 - 用户信息编辑 - 用户状态启用/禁用 - 角色分配(管理员/普通用户) ## API 接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 - `GET /api/user/current` - 获取当前用户信息 ### 客户接口 - `GET /api/customer/page` - 分页查询客户 - `GET /api/customer/{id}` - 获取客户详情 - `POST /api/customer` - 创建客户 - `PUT /api/customer` - 更新客户 - `DELETE /api/customer/{id}` - 删除客户 - `GET /api/customer/all` - 获取所有客户列表 ### 跟进记录接口 - `GET /api/follow/page` - 分页查询跟进记录 - `GET /api/follow/customer/{customerId}` - 获取客户跟进记录 - `POST /api/follow` - 创建跟进记录 - `PUT /api/follow` - 更新跟进记录 - `DELETE /api/follow/{id}` - 删除跟进记录 ### 订单接口 - `GET /api/order/page` - 分页查询订单 - `GET /api/order/{id}` - 获取订单详情 - `POST /api/order` - 创建订单 - `PUT /api/order` - 更新订单 - `PUT /api/order/{id}/status` - 更新订单状态 - `DELETE /api/order/{id}` - 删除订单 ### 统计接口 - `GET /api/statistics/overview` - 获取统计数据 ## 默认配置 - 后端端口: 8080 - 前端端口: 8081 - JWT过期时间: 24小时 ## 注意事项 1. 首次运行前请确保MySQL服务已启动 2. 建议使用JDK 1.8及以上版本 3. 前端依赖Node.js 14及以上版本 4. 管理员账号不能被删除