跳到主要内容

个人线索管理 - 规格增量

ADDED Requirements

Requirement: 个人线索查询

系统 MUST 根据用户的归属人和所属部门权限,仅展示该用户有权访问的个人线索(归属人=当前用户 OR 所属部门=当前用户部门)。

Scenario: 查看个人线索

  • WHEN 销售代表登录系统并进入个人线索管理页面
  • THEN 系统仅显示归属人为该销售代表的线索列表

Scenario: 主管查看部门线索

  • WHEN 销售主管登录系统并进入个人线索管理页面
  • THEN 系统显示归属人为该主管 OR 所属部门为该主管所在部门的所有线索

Scenario: 数据权限过滤

  • WHEN 用户执行查询操作
  • THEN 系统在SQL查询中自动追加权限过滤条件(WHERE owner_id = 当前用户 OR owner_dept = 当前用户部门)

Requirement: 个人线索创建

系统 MUST 允许用户创建新的个人线索,设置归属人为当前用户,归属部门为当前用户部门。

Scenario: 创建个人线索成功

  • WHEN 用户点击"新增线索"按钮,填写线索信息(品牌名称、品牌国家、联系人姓名、公司名称等),并保存
  • THEN 系统创建新线索,设置归属人=当前用户,归属部门=当前用户部门,线索状态="待处理",创建人=当前用户,创建时间=当前时间(UTC)

Scenario: 品牌组合唯一性校验

  • WHEN 用户创建线索时,品牌名称+品牌国家组合在公海池或个人线索中已存在
  • THEN 系统提示"品牌'品牌名'在'国家'已存在",并阻止保存

Scenario: 必填字段校验

  • WHEN 用户未填写必填字段(品牌名称、品牌国家、联系人姓名、公司名称、线索来源、业务线)并尝试保存
  • THEN 系统红字提示"请完善所有必填项",并阻止保存

Scenario: 联系方式条件必填

  • WHEN 用户未填写任何联系方式(邮箱/电话/手机号/微信)并尝试保存
  • THEN 系统提示"至少填写一种联系方式",并阻止保存

Requirement: 个人线索修改

系统 MUST 允许线索归属人修改线索信息,上级可以修改下级的线索,线索状态="已转化"时禁止修改品牌名称和品牌国家。

Scenario: 归属人修改线索

  • WHEN 线索归属人点击"编辑"按钮,修改联系人姓名和邮箱,并保存
  • THEN 系统更新线索信息,记录修改人和修改时间,提示"修改成功"

Scenario: 上级修改下级线索

  • WHEN 销售主管修改其下属的线索信息
  • THEN 系统允许修改并记录修改人为该主管

Scenario: 已转化线索修改限制

  • WHEN 线索状态="已转化",用户尝试修改品牌名称或品牌国家
  • THEN 系统禁用这些字段,提示"线索已转化为客户,品牌信息不可修改"

Scenario: 已转化线索修改其他字段

  • WHEN 线索状态="已转化",用户修改联系人电话或备注
  • THEN 系统允许修改并记录

Requirement: 线索状态流转

系统 MUST 支持线索状态的单向流转:待处理 → 跟进中 → 已转化,不可逆。

Scenario: 待处理转跟进中

  • WHEN 用户将线索状态从"待处理"改为"跟进中"
  • THEN 系统更新状态,记录状态变更时间

Scenario: 跟进中转已转化

  • WHEN 用户将线索状态从"跟进中"改为"已转化"并填写转化为客户的信息
  • THEN 系统更新状态,自动创建客户记录,关联线索ID和客户ID

Scenario: 状态逆流被拒绝

  • WHEN 用户尝试将线索状态从"跟进中"改回"待处理"或从"已转化"改回"跟进中"
  • THEN 系统提示"线索状态不可逆流",并阻止修改

Requirement: 线索释放

系统 MUST 允许归属人或上级将线索释放回公海池,线索状态改为"未分配",清空归属人和归属部门。

Scenario: 归属人释放线索

  • WHEN 归属人点击"释放"按钮并确认
  • THEN 系统将线索状态改为"未分配",清空归属人和归属部门,记录最后归属人和最后归属人部门,线索从个人线索池移至公海池

Scenario: 上级释放下级线索

  • WHEN 销售主管批量选择其下属的线索,点击"批量释放"按钮并确认
  • THEN 系统批量释放这些线索回公海池,发送通知给原归属人

Scenario: 释放确认提示

  • WHEN 用户点击"释放"按钮
  • THEN 系统弹窗提示"释放后线索将返回公海池,其他销售可能接手,确认释放?",用户确认后执行释放

Scenario: 释放通知

  • WHEN 线索被释放回公海池
  • THEN 系统发送通知给原归属人,包含线索品牌名称、释放原因、释放时间

Requirement: 线索详情查看

系统 MUST 支持查看线索的完整信息,包括基本信息、品牌信息、联系信息、AI信息、其他信息,以及修改记录和跟进记录。

Scenario: 查看线索详情

  • WHEN 用户点击线索的"详情"按钮
  • THEN 系统展示线索的三个Tab页:"线索信息"、"修改记录"、"跟进记录",默认显示"线索信息"

Scenario: 查看修改记录

  • WHEN 用户切换到"修改记录"Tab
  • THEN 系统以时间轴形式展示所有修改记录(最新在前),格式为"时间 用户 修改了 字段: '旧值' → '新值'"

Scenario: 查看跟进记录

  • WHEN 用户切换到"跟进记录"Tab
  • THEN 系统展示从待办任务同步的拜访记录,格式为" 访问时间 归属人 访问形式 - 合作意向 - 销售阶段 "

Scenario: 查看转化为客户入口

  • WHEN 线索状态="已转化",用户查看线索详情
  • THEN 系统在操作列显示"查看客户"按钮,点击跳转到客户详情页

Requirement: 个人线索批量导入导出

系统 MUST 支持批量导入个人线索(Excel格式,5000条/次,10MB限制),批量导出个人线索(最多10万条)。

Scenario: 批量导入成功

  • WHEN 用户上传符合模板的Excel文件
  • THEN 系统批量创建个人线索,设置归属人=当前用户,显示导入成功数量

Scenario: 批量导出

  • WHEN 用户点击"导出"按钮
  • THEN 系统生成Excel文件,包含当前查询结果下的所有个人线索(不受分页限制),自动下载

Requirement: 个人线索统计

系统 MUST 在列表页顶部展示统计卡片,包括待处理线索数、跟进中线索数、已转化线索数。

Scenario: 显示统计数据

  • WHEN 用户进入个人线索管理页面
  • THEN 系统在查询结果顶部显示3个统计卡片,数据实时计算(基于当前用户权限范围内的线索)

Requirement: 数据行级权限隔离

系统 MUST 根据用户身份自动过滤数据,确保用户只能访问其有权访问的线索。

Scenario: 销售代表仅查看自己的线索

  • WHEN 销售代表(非主管)查询个人线索
  • THEN 系统仅返回归属人为该销售代表的线索

Scenario: 销售主管查看部门线索

  • WHEN 销售主管查询个人线索
  • THEN 系统返回归属人=该主管 OR 所属部门=该主管所在部门的线索

Scenario: 跨部门访问被拒绝

  • WHEN 用户尝试通过URL直接访问其他部门的线索
  • THEN 系统返回"无权访问"错误

Requirement: 菜单权限控制

系统 MUST 根据用户的角色权限显示或隐藏"个人线索管理"菜单。

Scenario: 有权限用户查看菜单

  • WHEN 用户拥有"线索管理"菜单权限
  • THEN 系统在导航菜单中显示"线索管理 ▸ 个人线索管理"入口

Scenario: 无权限用户隐藏菜单

  • WHEN 用户没有"线索管理"菜单权限
  • THEN 系统在导航菜单中隐藏"个人线索管理"入口