/PerfectCRM

CRM客户管理系统

Primary LanguagePython

PerfectCRM 客户管理系统

需求分析:

  • 销售顾问:
    • 对有效客户信息进行存
    • 客户跟进记录
    • 办理报名手续
    • 各种维度查询、过滤客户信息
  • 讲师:
    • 点名
    • 批作业
    • 创建上课记录
    • 查看班级成绩
    • 课时申报
    • 问卷调查
  • 学生:
    • 交作业
    • 查成绩
    • 请假
    • 我的合同
    • 我的推荐
    • 投诉建议
  • 老板任务:
    • 销售报表分析
    • 教学质量报表

架构分析:

  • 用户:面对企业内部职员使用,在安全、界面可以放宽条件
  • 用户量:小,主要内容管理,选择django很合适
  • 业务场景:满足内容需求,要求快速开发上线,周期短。
  • 综上所述,架构简单,django能满足。

组件选择:

  • django
  • bootstrap
  • jquery

设计表结构

  • 设计表结构的重要性:前端与后端的交互都是在与数据库进行交互,如果表结构设计不好,代码编写到一定量的时候,发现表结构有问题,会带来开发的难度,甚至导致后期开发不断出现问题。所以做好表结构设计,可以使得开发过程避免走弯路。

动态页面展示

  • 这里的构思是要根据不同角色显示不同的页面内容。

  • 模仿django原生admin

  • 创建一张菜单表,用来存url的表名

  • 在角色表中关联上菜单表,它们之间是多对多的关系。

  • index.html模板:页面右上角显示当前用户。

  • {{ request.user }}这样可以获取到当前登录的用户,因为django把原生的User对象绑定到request对象里传到了前端模板中。user实际上是由一个定义在django.contrib.auth.models中的user model类所创建的对象。

  • 后台添加菜单:1. 客户库customer_list 2.销售页 sales_index 3.学员页stu_index

  • 角色添加:1.客户 2.销售 3.学员

  • Userprofile添加:admin角色拥有:1.2.3

  • url别名的使用

动态页面展示2

  • 要求:前端页面不配置默认都是一样的,配置了都不一样,即通用模板。参考admin的模型注册功能。(难点):不管多少张表,我只要配置一下就ok。相当于自定义一个admin,之后任何地方都可以拿来直接使用。django开发的不能任意嵌入到自己的其他项目中 ,他的样式不好修改。自己写得非常了解,想怎么改就怎么改。
  • 新建应用king_admin
  • 分析django admin的动态url:app+表名
  • 在创建通用模板
  • 创建king_admin.py:admin基类、admin自定义类、register()注册使用模型类和admin自定义类产生关联。
  • 前端接收admin传来数据的格式:{'crm':{'userprofile':admin_class}}
  • 实现检索、搜索、排序