# 基于SSM的CRM系统 **Repository Path**: null_421_3280/crm-system-based-on-ssm ## Basic Information - **Project Name**: 基于SSM的CRM系统 - **Description**: 我的毕业设计,基于SSM的CRM - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-03-19 - **Last Updated**: 2023-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目总结 [TOC] ## 技术栈 前端:Vue+ElementUI+Echars+axios \ 后端:SpringBoot+SpringMVC+Mybatis+JWT ## 系统功能 |功能|描述| |---|---:| |基础功能|实现登陆、修改密码、记住我| |营销管理|营销机会管理、客户开发计划| |权限管理|用户管理、角色管理、菜单管理| |客户管理|客户信息管理、客户流失管理| |服务管理|服务创建、服务分配、服务处理、服务反馈| |数据报表|客户构成分析、客户服务分析、客户贡献分析、客户流失分析| ## 效果展示 |功能|效果| |---|---:| |登录|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/%E7%99%BB%E5%BD%95.png)| |修改密码|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/%E4%BF%AE%E6%94%B9%E5%AF%86%E7%A0%81.png)| |表单|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/%E8%A1%A8%E5%8D%95.png)| |数据表格|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/%E6%95%B0%E6%8D%AE%E8%A1%A8%E6%A0%BC%E5%B1%95%E7%A4%BA.png8/crm-system-based-on-ssm/raw/master/md_img/%E4%BF%AE%E6%94%B9%E5%AF%86%E7%A0%81.png)| |树形控件|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/%E6%A0%91%E5%BD%A2%E6%8E%A7%E4%BB%B6.png)| |树形菜单|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/%E6%A0%91%E5%BD%A2%E8%8F%9C%E5%8D%95.png)| |Echarts数据可视化|![图片](https://gitee.com/hwxta668/crm-system-based-on-ssm/raw/master/md_img/Echarts%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96.png)| ## 项目总结 + Spring框架的Http请求异常状态码对应的错误原因。 + 统一异常处理 + 通过JWT提高接口安全。 + Mybatis框架逆向工程和分页助手。 + java定时任务 + 前端动态路由和动态菜单的实现。 + 集成Echarts图表库 + 项目部署 ## 技术总结 ### 前端 1. 表格 + 通过引入el-table的html,接着在vue中设置数据源参数绑定数据显示表格 + 再配合el-popconfirm实现分页效果 + 通过formatter可以处理表格中指定字段的转化,比如将 状态=1 =>已分配,但是原数据并未发生变化 + 可以通过v-if显示应该出现哪个表格行内功能,比如 state=1 显示查看详情按钮 否则显示 添加暂缓按钮 + 通过scope.row获取当前行对象 + 当字段太多时,可以通过fixed属性来固定指定字段 + 实现表格的多选功能,手动添加一个el-table-column,设type属性为selection 2. 表单 + 将el-form嵌套在el-dialog中,实现点击功能按钮弹出对话框展示表单 + el-dialog是通过visible.sync绑定一个布尔值来实现对话框的显示或隐藏,true为显示 + 表单验证,el-form要通过rules属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名 + 每次打开表单时重置表单验证,首先el-form通过ref绑定唯一标识,调用 this.$refs[formName].resetFields() 即可。但通常当前表单对象还未被加载出来就执行这个方法就会报错,因此要先判断 this.$refs[formName]不为空再执行