Files
shanxia2.0/miniprogram-e2e/cases/01-crm.md
T
2026-07-18 09:14:02 +08:00

679 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CRM 管理 — 完整测试用例集(测试工程师版)
> 范围:`miniprogram/pages/crm/**`
> 空值展示:「—」;金额:「¥」千分位
> 能力:仅线索可**新增**;全模块**无编辑页、无删除**;写操作含跟进/转客户/无效/公海领取
> 执行约定:缺造数标 `Blocked`;实现与预期不符记缺陷,**不删用例**
**本文件用例规模目标:≥400 条独立 ID(含组合展开)。**
---
# 一、线索管理 · 列表 `crm/clue/list`
## 1.1 进入 / 离开 / 鉴权
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-001 | 工作台入口进入 | P0 | 已登录 | 点「线索管理」 | 打开列表;标题「线索管理」 |
| CRM-CL-002 | 页头左侧返回文案 | P0 | 在列表 | 查看 | 「← 工作台」 |
| CRM-CL-003 | 页头右侧新增文案 | P0 | 在列表 | 查看 | 「新增」 |
| CRM-CL-004 | 点返回回工作台 | P0 | 在列表 | 点「← 工作台」 | 工作台可见四模块 |
| CRM-CL-005 | 未登录深链拦截 | P0 | 清 Token | 打开线索列表 URL | 跳转登录页 |
| CRM-CL-006 | 登录后回跳或可再进 | P1 | 从拦截登录成功 | 再进线索 | 列表正常 |
| CRM-CL-007 | 从详情返回列表定位 | P1 | 详情点返回 | — | 回到列表(Tab/滚动按实现记录) |
| CRM-CL-008 | 从新增取消回列表 | P1 | 新增点取消 | — | 列表页,无脏数据 |
| CRM-CL-009 | 连续进出列表稳定性 | P2 | — | 进→返工作台→再进 ×3 | 无白屏/错乱 |
| CRM-CL-010 | 页面标题系统栏(H5) | P2 | — | 看 document.title/导航 | 不报错即可 |
## 1.2 空态 / 加载 / 分页
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-020 | 全空空态文案 | P0 | 库中无线索或筛空 | 打开全部 | 「暂无线索」 |
| CRM-CL-021 | 空态时仍有搜索框 | P1 | 空列表 | 查看 | 搜索框可见可输入 |
| CRM-CL-022 | 空态时仍有 Tab | P1 | 空列表 | 查看 | 5 个 Tab 可见 |
| CRM-CL-023 | 空态时仍可点新增 | P0 | 空列表 | 点新增 | 进入表单 |
| CRM-CL-024 | 首次加载 loading | P1 | 弱网 | 进入列表 | 「加载中…」后出数据或空态 |
| CRM-CL-025 | 触底加载更多 | P0 | 数据>20 | 滑到底 | 请求下一页;条数增加 |
| CRM-CL-026 | 已加载全部提示 | P1 | 已到最后一页 | 再触底 | 「已加载全部」 |
| CRM-CL-027 | 加载失败 Toast | P1 | mock 接口失败 | 进入/翻页 | Toast「加载失败」或接口 message |
| CRM-CL-028 | 失败后可再次进入重试 | P1 | 上一条后 | 返回再进 | 可恢复 |
| CRM-CL-029 | pageSize=20 边界 | P2 | 恰好 20 条 | 触底 | 再请求或已全部(记录) |
| CRM-CL-030 | 恰好 21 条第二页 1 条 | P2 | 21 条 | 触底 | 多 1 条 |
## 1.3 负向:无编辑 / 无删除
| ID | 标题 | 优先级 | 步骤 | 预期 |
|----|------|--------|------|------|
| CRM-CL-040 | 卡片无编辑按钮 | P0 | 有数据扫所有卡片 | 无「编辑」「修改」 |
| CRM-CL-041 | 卡片无删除按钮 | P0 | 同上 | 无「删除」「移除」 |
| CRM-CL-042 | 页头无批量删除 | P0 | 看页头 | 无批量删 |
| CRM-CL-043 | 长按无菜单删除(H5) | P2 | 长按卡片 | 无删除菜单(或记录实际) |
| CRM-CL-044 | 左滑无删除(若无实现) | P2 | 左滑 | 无删除动作 |
## 1.4 搜索框 — 基础与边界
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-100 | placeholder 文案 | P0 | — | 查看 | 「搜索姓名 / 公司 / 手机」 |
| CRM-CL-101 | 空关键字点搜索 | P1 | — | 不输入直接确认搜索 | 展示当前 Tab 全量或保持;不崩溃 |
| CRM-CL-102 | 仅空格搜索 | P1 | — | 输入空格→搜索 | 空态或全量(记录);不崩溃 |
| CRM-CL-103 | 前后空格 trim | P1 | 姓名「张三」 | 输入「 张三 」搜索 | 能命中张三 |
| CRM-CL-104 | 超长关键字 | P2 | — | 输入 200+ 字符搜索 | 不白屏;空态或截断 |
| CRM-CL-105 | 特殊字符 | P2 | — | 输入 `%'\"<>&` | 不脚本注入;空或正常过滤 |
| CRM-CL-106 | emoji 搜索 | P2 | — | 输入 🙂 | 不崩溃 |
| CRM-CL-107 | 数字串非手机 | P1 | — | 输入 123 | 按实现匹配手机/姓名 |
| CRM-CL-108 | 清空按钮/手动清空 | P1 | 已有关键字结果 | 清空再搜索 | 恢复列表 |
| CRM-CL-109 | 连续快速搜索 | P2 | — | 快速换关键词搜 5 次 | 最终结果与最后一次关键词一致 |
| CRM-CL-110 | 搜索后下拉触底分页 | P1 | 命中>20 | 搜索后触底 | 仍在过滤条件下分页 |
## 1.5 搜索 — 按姓名(独立)
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-120 | 姓名全称命中 | P0 | 线索姓名=测试甲 | 搜「测试甲」 | 仅含该线索(或含该名) |
| CRM-CL-121 | 姓名前缀命中 | P0 | 姓名=张三丰 | 搜「张三」 | 命中 |
| CRM-CL-122 | 姓名后缀命中 | P1 | 同上 | 搜「三丰」 | 命中或按后端规则 |
| CRM-CL-123 | 姓名中间字命中 | P1 | 同上 | 搜「三」 | 命中或按规则 |
| CRM-CL-124 | 姓名大小写(英文名) | P2 | 姓名含 Alex | 搜 alex / ALEX | 按后端规则记录 |
| CRM-CL-125 | 姓名不存在 | P0 | — | 搜「绝不存在姓名XYZ」 | 「暂无线索」 |
| CRM-CL-126 | 多条同名 | P1 | 两人都叫王五 | 搜「王五」 | 两条都出 |
| CRM-CL-127 | 姓名命中后核对主标题 | P0 | 命中后 | 看卡片主标题 | 等于线索姓名 |
## 1.6 搜索 — 按公司(独立)
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-140 | 公司全称命中 | P0 | 公司=山峡化工有限公司 | 搜全称 | 命中;副标题含公司 |
| CRM-CL-141 | 公司关键词命中 | P0 | 同上 | 搜「山峡」 | 命中 |
| CRM-CL-142 | 公司不存在 | P0 | — | 搜「不存在公司ZZZ」 | 空态 |
| CRM-CL-143 | 公司与姓名同关键字 | P1 | 姓名含「华」、公司含「华」 | 搜「华」 | 两类均可出;不报错 |
| CRM-CL-144 | 命中后核对副标题公司 | P0 | 命中 | 看副标题 | 公司字段正确 |
## 1.7 搜索 — 按手机(独立)
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-160 | 完整 11 位命中 | P0 | 手机=13800138000 | 搜完整号 | 命中;行「手机」正确 |
| CRM-CL-161 | 手机后 4 位 | P1 | 同上 | 搜 8000 | 命中或按规则 |
| CRM-CL-162 | 手机前 3 位 | P1 | 同上 | 搜 138 | 命中或按规则 |
| CRM-CL-163 | 错误手机号 | P0 | — | 搜 10000000000 | 空态 |
| CRM-CL-164 | 带横线/空格手机 | P2 | — | 搜 138-0013-8000 | 按规则;不崩溃 |
| CRM-CL-165 | 命中后核对手机行 | P0 | 命中 | 看「手机」行 | 与数据一致 |
## 1.8 Tab — 文案与默认
| ID | 标题 | 优先级 | 步骤 | 预期 |
|----|------|--------|------|------|
| CRM-CL-200 | Tab1 文案「全部」 | P0 | 查看 | 存在 |
| CRM-CL-201 | Tab2 文案「我的」 | P0 | 查看 | 存在 |
| CRM-CL-202 | Tab3 文案「新线索」 | P0 | 查看 | 存在 |
| CRM-CL-203 | Tab4 文案「跟进中」 | P0 | 查看 | 存在 |
| CRM-CL-204 | Tab5 文案「已转化」 | P0 | 查看 | 存在 |
| CRM-CL-205 | 默认选中「全部」 | P0 | 刚进入 | 「全部」为选中态 |
| CRM-CL-206 | 选中态样式可区分 | P1 | 切换 | 当前 Tab 高亮与其它不同 |
## 1.9 Tab — 每个 Tab 独立功能
| ID | 标题 | 优先级 | 预置 | 步骤 | 预期 |
|----|------|--------|------|------|------|
| CRM-CL-210 | 全部-多状态混合 | P0 | 各状态均有 | 点全部 | 可见多种状态 Tag |
| CRM-CL-211 | 全部-含无效线索 | P1 | 有无效 | 点全部 | 无效 Tag「无效」可见(若全部包含) |
| CRM-CL-212 | 我的-仅本人负责 | P0 | 本人与他人线索 | 点我的 | 负责人均为当前用户 |
| CRM-CL-213 | 我的-无本人时为空 | P1 | 本人无线索 | 点我的 | 「暂无线索」 |
| CRM-CL-214 | 新线索-状态全为新线索 | P0 | 有 new | 点新线索 | Tag 均为「新线索」 |
| CRM-CL-215 | 新线索-不含跟进中 | P0 | 有 follow | 点新线索 | 无「跟进中」Tag |
| CRM-CL-216 | 跟进中-状态全为跟进中 | P0 | 有 follow | 点跟进中 | Tag 均为「跟进中」 |
| CRM-CL-217 | 跟进中-不含已转化 | P0 | 有 converted | 点跟进中 | 无「已转化」 |
| CRM-CL-218 | 已转化-状态全为已转化 | P0 | 有 converted | 点已转化 | Tag 均为「已转化」 |
| CRM-CL-219 | 已转化-不含新线索 | P0 | 有 new | 点已转化 | 无「新线索」 |
| CRM-CL-220 | 五 Tab 依次切换无报错 | P0 | — | 全部→我的→新→跟进→转化→全部 | 每次列表刷新正常 |
| CRM-CL-221 | 快速连点同一 Tab | P2 | — | 连点「全部」5 次 | 不重复异常请求导致错乱 |
| CRM-CL-222 | 各 Tab 空态文案 | P1 | 对应空 | 切入 | 均为「暂无线索」 |
## 1.10 Tab × 搜索 组合矩阵(每格一条)
预置:准备可命中「组合关键字」的数据(姓名或公司含「联调」)。
| ID | Tab | 搜索词 | 预期 |
|----|-----|--------|------|
| CRM-CL-230 | 全部 | 联调 | 命中且状态不限 |
| CRM-CL-231 | 我的 | 联调 | 命中且负责人为我 |
| CRM-CL-232 | 新线索 | 联调 | 命中且 Tag=新线索;无则空 |
| CRM-CL-233 | 跟进中 | 联调 | 命中且 Tag=跟进中;无则空 |
| CRM-CL-234 | 已转化 | 联调 | 命中且 Tag=已转化;无则空 |
| CRM-CL-235 | 全部 | 无意义串 | 空态 |
| CRM-CL-236 | 我的 | 无意义串 | 空态 |
| CRM-CL-237 | 新线索 | 无意义串 | 空态 |
| CRM-CL-238 | 跟进中 | 无意义串 | 空态 |
| CRM-CL-239 | 已转化 | 无意义串 | 空态 |
| CRM-CL-240 | 先搜索再切 Tab | 有词时切到跟进中 | 结果=跟进中∩关键词(或清空关键词,记录实际并固化预期) |
| CRM-CL-241 | 先切 Tab 再搜索 | 跟进中后搜联调 | 结果符合交集 |
| CRM-CL-242 | 搜索后切回全部 | — | 按实际:保留词或清空 |
## 1.11 列表卡片 — 逐字段 + 状态枚举
对**同一条**完整线索卡片执行:
| ID | 核对项 | 预期 |
|----|--------|------|
| CRM-CL-300 | 主标题=线索姓名 | 与详情一致 |
| CRM-CL-301 | 副标题=公司 | 与详情一致 |
| CRM-CL-302 | 状态 Tag 文案合法 | 新线索/跟进中/无效/已转化 |
| CRM-CL-303 | 行标签「手机」存在 | 有「手机」文案 |
| CRM-CL-304 | 手机值正确 | 与详情一致或「—」 |
| CRM-CL-305 | 行标签「负责人」存在 | 有 |
| CRM-CL-306 | 负责人值正确 | 与详情一致或「—」 |
| CRM-CL-307 | 行标签「来源」存在 | 有 |
| CRM-CL-308 | 来源值正确 | 与详情一致或「—」 |
状态 Tag 抽样(各造一条):
| ID | 状态数据 | 预期 Tag |
|----|----------|----------|
| CRM-CL-310 | new | 新线索 |
| CRM-CL-311 | follow | 跟进中 |
| CRM-CL-312 | invalid | 无效 |
| CRM-CL-313 | converted | 已转化 |
| CRM-CL-314 | 未知 status | 原样显示或兜底(记录) |
交互:
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CL-320 | 点击卡片进详情 | 点卡片中部 | URL 含 id;详情姓名一致 |
| CRM-CL-321 | 点击卡片边缘 | 点边角 | 仍能进详情 |
| CRM-CL-322 | 列表多条依次点开 | 打开前 3 条详情再返回 | id/内容不错乱 |
---
# 二、线索 · 新增表单 `crm/clue/form`
## 2.1 进入与壳
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CF-001 | 列表点新增进入 | 点「新增」 | 标题「新增线索」 |
| CRM-CF-002 | 有返回 | 查看 | 「← 返回」 |
| CRM-CF-003 | 有取消 | 查看 | 「取消」 |
| CRM-CF-004 | 有保存 | 查看 | 「保存」 |
| CRM-CF-005 | 返回不保存 | 填一半点返回 | 回列表;无新线索 |
| CRM-CF-006 | 取消不保存 | 填一半点取消 | 回列表;无新线索 |
| CRM-CF-007 | 确认无「修改」模式入口 | 带 id 尝试编辑 URL | 无编辑页或不可用(记录) |
## 2.2 字段展示(每个字段一条)
| ID | 字段 | 检查项 | 预期 |
|----|------|--------|------|
| CRM-CF-010 | 线索姓名 | label | 「线索姓名」且必填标识 |
| CRM-CF-011 | 线索姓名 | placeholder | 「联系人姓名」 |
| CRM-CF-012 | 手机号 | label | 「手机号」必填 |
| CRM-CF-013 | 手机号 | placeholder | 「手机号」 |
| CRM-CF-014 | 手机号 | 控件类型 | number 数字键盘(H5) |
| CRM-CF-015 | 公司名称 | label | 「公司名称」必填 |
| CRM-CF-016 | 公司名称 | placeholder | 「公司 / 单位」 |
| CRM-CF-017 | 职位 | label+placeholder | 「职位」 |
| CRM-CF-018 | 来源 | label+placeholder | 「线索来源」 |
| CRM-CF-019 | 来源 | 默认值 | 「其它」 |
| CRM-CF-020 | 行业 | label+placeholder | 「所属行业」 |
| CRM-CF-021 | 园区 | label+placeholder | 「所在园区」 |
| CRM-CF-022 | 备注 | label+placeholder | 「备注」多行 |
## 2.3 必填校验(每个必填独立 + 组合)
| ID | 标题 | 步骤 | 预期 Toast |
|----|------|------|------------|
| CRM-CF-030 | 三空保存 | 全空保存 | 「请填写线索姓名」 |
| CRM-CF-031 | 仅姓名空 | 手机公司有、姓名空 | 「请填写线索姓名」 |
| CRM-CF-032 | 仅手机空 | 姓名公司有、手机空 | 「请填写手机号」 |
| CRM-CF-033 | 仅公司空 | 姓名手机有、公司空 | 「请填写公司名称」 |
| CRM-CF-034 | 姓名仅空格 | 姓名=空格 | 「请填写线索姓名」或按 trim 规则 |
| CRM-CF-035 | 公司仅空格 | 公司=空格 | 「请填写公司名称」或按规则 |
| CRM-CF-036 | 手机仅空格 | 手机空格 | 「请填写手机号」 |
| CRM-CF-037 | 先姓名空再补全 | 触发姓名错→补姓名再存 | 进入下一校验或成功 |
## 2.4 字段边界与内容
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CF-050 | 姓名 1 字 | 填「甲」+必填 | 可成功(若后端允许) |
| CRM-CF-051 | 姓名很长 | 50+ 字姓名 | 成功或后端长度错 Toast |
| CRM-CF-052 | 姓名含符号 | 「张·三」 | 成功或明确失败 |
| CRM-CF-053 | 手机不足 11 位 | 138001 | 前端是否拦;不拦则后端错(记缺陷若无提示) |
| CRM-CF-054 | 手机超过 11 位 | 138001380001 | 记录截断或失败 |
| CRM-CF-055 | 手机非号段 | 12345678901 | 成功或失败有提示 |
| CRM-CF-056 | 公司很长 | 100+ 字 | 成功或长度错 |
| CRM-CF-057 | 职位很长 | 长文本 | 成功或截断 |
| CRM-CF-058 | 备注多行 | 含换行长文 | 详情备注完整或合理截断 |
| CRM-CF-059 | 来源清空再保存 | 清空默认「其它」 | 按实现:失败或提交「-」 |
| CRM-CF-060 | 来源改为自定义 | 填「展会」 | 详情来源=展会 |
| CRM-CF-061 | 行业填写 | 填「化工」 | 详情行业=化工 |
| CRM-CF-062 | 园区填写 | 填「杭州园区」 | 详情园区一致 |
| CRM-CF-063 | 全部选填填写 | 职位来源行业园区备注都填 | 详情全部一致 |
| CRM-CF-064 | 全部选填留空 | 仅三必填 | 详情选填「—」或默认 |
## 2.5 保存成功 / 失败 / 状态
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CF-080 | 最小必填成功 | 姓名手机公司合法→保存 | Toast「创建成功」;约 0.5s 回列表 |
| CRM-CF-081 | 成功后列表可见 | 回列表搜姓名 | 新线索出现 |
| CRM-CF-082 | 成功后详情字段 | 点进详情 | 各字段与提交一致 |
| CRM-CF-083 | 保存中按钮文案 | 点保存瞬间 | 「提交中…」 |
| CRM-CF-084 | 保存中防重复点 | 连点保存 | 不创建重复多条(或有防抖) |
| CRM-CF-085 | 网络失败 | 断网保存 | Toast 失败类;停留表单;数据仍在输入框 |
| CRM-CF-086 | 服务端 4xx/5xx | mock | Toast message;不假装成功 |
| CRM-CF-087 | 成功后默认状态 | 打开新线索 | 一般为「新线索」 |
## 2.6 确认无修改 / 无删除
| ID | 标题 | 预期 |
|----|------|------|
| CRM-CF-090 | 表单无删除按钮 | 无 |
| CRM-CF-091 | 保存成功后不能在本页改 | 回列表后无编辑入口 |
---
# 三、线索 · 详情 `crm/clue/detail`
## 3.1 打开与返回
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CD-001 | 列表进入详情 | 点卡片 | 标题「线索详情」 |
| CRM-CD-002 | 返回文案 | 查看 | 「← 返回」 |
| CRM-CD-003 | 返回列表 | 点返回 | 回线索列表 |
| CRM-CD-004 | 非法 id | 打开不存在 id | Toast 加载失败类;可返回 |
| CRM-CD-005 | 无 id | 打开无参详情 | 失败提示或空 |
## 3.2 Hero 字段(逐项)
| ID | 字段 | 预期 |
|----|------|------|
| CRM-CD-010 | 主标题姓名 | =线索姓名 |
| CRM-CD-011 | 副标题公司 | =公司 |
| CRM-CD-012 | 状态 Tag | 与列表一致 |
| CRM-CD-013 | 级别 Chip | A级/B级/C级/D级 |
| CRM-CD-014 | 负责人 Chip | 负责人姓名 |
## 3.3 基本信息(逐项)
| ID | label | 有数据预期 | 空数据预期 |
|----|-------|------------|------------|
| CRM-CD-020 | 手机 | 正确号码 | — |
| CRM-CD-021 | 职位 | 正确 | — |
| CRM-CD-022 | 来源 | 正确 | — |
| CRM-CD-023 | 行业 | 正确 | — |
| CRM-CD-024 | 园区 | 正确 | — |
| CRM-CD-025 | 备注 | 正确(长文可展) | — |
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CD-026 | 基本信息区块标题 | 查看 | 有「基本信息」 |
| CRM-CD-027 | 备注超长展示 | 很长备注 | 可完整看或展开;不撑破布局至不可用 |
## 3.4 跟进记录展示
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CD-040 | 区块标题 | 查看 | 「跟进记录」 |
| CRM-CD-041 | 空态 | 无跟进 | 「暂无跟进」 |
| CRM-CD-042 | 单条-跟进方式 | 有1条 | 标题=方式 |
| CRM-CD-043 | 单条-时间 | 有1条 | 副标题=创建时间 |
| CRM-CD-044 | 单条-内容 | 有1条 | 正文=内容 |
| CRM-CD-045 | 单条-跟进人 | 有1条 | 行「跟进人」有值 |
| CRM-CD-046 | 多条顺序 | ≥2 条 | 按时间倒序或正序(记录并固化) |
| CRM-CD-047 | 新提交后列表刷新 | 提交跟进后 | 新记录出现在列表 |
## 3.5 跟进表单
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CD-060 | 底栏始终有「跟进」 | 各状态 | 「跟进」可见 |
| CRM-CD-061 | 点跟进展开 | 点击 | 出现方式、内容、取消、提交跟进 |
| CRM-CD-062 | 方式默认电话 | 展开 | 值为「电话」 |
| CRM-CD-063 | 方式 placeholder | 查看 | 「如:电话 / 微信 / 拜访」 |
| CRM-CD-064 | 内容必填标识 | 查看 | 跟进内容带必填 |
| CRM-CD-065 | 内容 placeholder | 查看 | 「填写本次沟通要点」 |
| CRM-CD-066 | 内容空提交 | 提交 | Toast「请填写跟进内容」 |
| CRM-CD-067 | 内容仅空格 | 提交 | Toast 请填写… |
| CRM-CD-068 | 取消收起 | 点取消 | 表单关;无新记录 |
| CRM-CD-069 | 改方式为微信 | 改方式+内容提交 | 记录方式=微信 |
| CRM-CD-070 | 改方式为拜访 | 同上 | 方式=拜访 |
| CRM-CD-071 | 长内容提交 | 500+ 字 | 成功或长度错提示 |
| CRM-CD-072 | 提交成功 Toast | 合法提交 | 「已保存」 |
| CRM-CD-073 | 提交中文案 | 提交时 | 「提交中…」 |
| CRM-CD-074 | 提交失败 | mock 失败 | 「保存失败」或 message |
| CRM-CD-075 | 接口 422 字段问题 | 已知跟进字段 | 失败→记缺陷;用例保留 |
| CRM-CD-076 | 连续跟进两次 | 提交两次 | 两条记录 |
| CRM-CD-077 | 跟进中再次点跟进 | 已展开时 | 不重复叠两个表单 |
## 3.6 转客户 / 无效 — 显示矩阵
| ID | 状态 | 跟进 | 转客户 | 无效 |
|----|------|------|--------|------|
| CRM-CD-100 | 新线索 | 有 | 有 | 有 |
| CRM-CD-101 | 跟进中 | 有 | 有 | 有 |
| CRM-CD-102 | 已转化 | 有 | **无** | **无** |
| CRM-CD-103 | 无效 | 有 | **无** | **无** |
## 3.7 转客户流程
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CD-110 | 弹窗标题 | 点转客户 | 「转化为客户」 |
| CRM-CD-111 | 弹窗文案含姓名 | — | 「将「{姓名}」转为客户,是否继续?」 |
| CRM-CD-112 | 取消 | 取消 | 状态不变 |
| CRM-CD-113 | 确认成功 | 确认 | Toast「转化成功」;Tag=已转化 |
| CRM-CD-114 | 成功后按钮隐藏 | 再看底栏 | 无转客户/无效 |
| CRM-CD-115 | 转化失败 | mock | Toast「转化失败」或 message |
| CRM-CD-116 | 转化后客户侧可查 | 去客户/相关 | 有对应客户(若业务生成) |
## 3.8 无效流程
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CD-120 | 点无效出输入 | 点击 | placeholder「无效原因(可选)」 |
| CRM-CD-121 | 取消 | 取消 | 不变 |
| CRM-CD-122 | 原因空确认 | 确认 | Toast「已标记」;状态无效 |
| CRM-CD-123 | 原因有值确认 | 填原因确认 | 「已标记」;无效 |
| CRM-CD-124 | 成功后按钮隐藏 | — | 无转客户/无效 |
| CRM-CD-125 | 操作失败 | mock | 「操作失败」或 message |
## 3.9 详情负向
| ID | 标题 | 预期 |
|----|------|------|
| CRM-CD-130 | 无编辑按钮 | 无 |
| CRM-CD-131 | 无删除按钮 | 无 |
| CRM-CD-132 | 不能改姓名/手机 | 字段只读展示 |
---
# 四、商机管理
## 4.1 列表壳与负向
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-OL-001 | 入口标题 | →商机管理 | 「商机管理」 |
| CRM-OL-002 | 返回工作台 | 点返回 | 回工作台 |
| CRM-OL-003 | 无新增 | 看页头 | **无**新增 |
| CRM-OL-004 | 无编辑删除 | 看卡片 | **无** |
| CRM-OL-005 | 空态 | 无数据 | 「暂无商机」 |
| CRM-OL-006 | 未登录拦截 | 清 Token | 跳登录 |
| CRM-OL-007 | 加载失败 | mock | Toast 加载失败 |
| CRM-OL-008 | 分页触底 | >20 | 加载更多/已全部 |
## 4.2 搜索(独立维度)
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-OL-020 | placeholder | — | 「搜索商机 / 客户」 |
| CRM-OL-021 | 按商机名全称 | — | 主标题命中 |
| CRM-OL-022 | 按商机名部分 | — | 命中 |
| CRM-OL-023 | 按客户名 | — | 副标题命中 |
| CRM-OL-024 | 无结果 | 乱码 | 「暂无商机」 |
| CRM-OL-025 | 空关键字 | — | 全量或保持 |
| CRM-OL-026 | 空格/特殊字符 | — | 不崩溃 |
| CRM-OL-027 | 清空恢复 | — | 恢复 |
## 4.3 Tab 逐个
| ID | 标题 | 预期 |
|----|------|------|
| CRM-OL-040 | Tab 文案 | 全部/跟进中/赢单/输单 |
| CRM-OL-041 | 默认全部 | 选中全部 |
| CRM-OL-042 | 全部混合状态 | 多种 Tag |
| CRM-OL-043 | 跟进中纯净 | Tag=跟进中 |
| CRM-OL-044 | 赢单纯净 | Tag=赢单 |
| CRM-OL-045 | 输单纯净 | Tag=输单 |
| CRM-OL-046 | 各 Tab 空态 | 「暂无商机」 |
| CRM-OL-047 | Tab×搜索命中 | 交集正确 |
| CRM-OL-048 | Tab×搜索无结果 | 空态 |
## 4.4 卡片字段
| ID | 字段 | 预期 |
|----|------|------|
| CRM-OL-060 | 商机名称 | 主标题 |
| CRM-OL-061 | 客户名称 | 副标题 |
| CRM-OL-062 | 状态 Tag | 跟进中/赢单/输单/无效 |
| CRM-OL-063 | 阶段 | 初步接触/需求确认/方案报价/商务谈判/赢单/输单 等 |
| CRM-OL-064 | 金额 | ¥ 格式 |
| CRM-OL-065 | 负责人 | 有值或— |
| CRM-OL-066 | 点进详情 | id 正确 |
## 4.5 详情字段与跟进
| ID | 项 | 预期 |
|----|-----|------|
| CRM-OD-001 | 标题 | 商机详情 |
| CRM-OD-002 | Hero 商机名 | 正确 |
| CRM-OD-003 | Hero 客户 | 正确 |
| CRM-OD-004 | Hero 状态 | 正确 |
| CRM-OD-005 | Hero 阶段 Chip | 正确 |
| CRM-OD-006 | Hero 金额 Chip | ¥ |
| CRM-OD-010 | 基本信息-商机编号 | 有或— |
| CRM-OD-011 | 基本信息-负责人 | 有或— |
| CRM-OD-012 | 基本信息-来源 | 有或— |
| CRM-OD-013 | 基本信息-预计成交 | 有或— |
| CRM-OD-014 | 基本信息-备注 | 有或— |
| CRM-OD-020 | 跟进空态 | 暂无跟进 |
| CRM-OD-021 | 跟进有数据字段 | 方式/时间/内容(无跟进人行) |
| CRM-OD-030 | 写跟进展开 | 方式默认电话 |
| CRM-OD-031 | 内容空校验 | 请填写跟进内容 |
| CRM-OD-032 | 取消 | 收起 |
| CRM-OD-033 | 提交成功 | 已保存 |
| CRM-OD-034 | 提交失败 | 保存失败 |
| CRM-OD-040 | 无编辑删除改状态 | **无** |
| CRM-OD-041 | 返回 | 回列表 |
---
# 五、客户管理
## 5.1 列表
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-CUL-001 | 入口 | →客户管理 | 标题正确 |
| CRM-CUL-002 | 无新增编辑删除 | — | **均无** |
| CRM-CUL-003 | 空态 | — | 暂无客户 |
| CRM-CUL-010 | 搜索 placeholder | — | 搜索客户名称 |
| CRM-CUL-011 | 全称命中 | — | 主标题命中 |
| CRM-CUL-012 | 部分命中 | — | 命中 |
| CRM-CUL-013 | 无结果 | — | 空态 |
| CRM-CUL-014 | 边界空格特殊字符 | — | 不崩溃 |
| CRM-CUL-020 | Tab「我的」存在 | — | 有 |
| CRM-CUL-021 | Tab「全部」存在 | — | 有 |
| CRM-CUL-022 | **默认「我的」** | 刚进入 | 选中我的 |
| CRM-CUL-023 | 我的范围 | — | 负责人=我 |
| CRM-CUL-024 | 全部范围 | — | 可含他人 |
| CRM-CUL-025 | Tab×搜索 | — | 交集 |
| CRM-CUL-030 | 卡片-客户名 | — | 主标题 |
| CRM-CUL-031 | 卡片-编号 | — | 副标题 |
| CRM-CUL-032 | 卡片-状态 Tag | 潜在/意向/洽谈/已成交/流失/公海 | 合法 |
| CRM-CUL-033 | 卡片-级别 | A/B/C/D级 | 合法 |
| CRM-CUL-034 | 卡片-联系人/手机 | — | 有联系人示联系人否则手机 |
| CRM-CUL-035 | 卡片-负责人 | — | 正确 |
| CRM-CUL-036 | 进详情 | — | 详情一致 |
| CRM-CUL-037 | 分页 | — | 正常 |
## 5.2 详情
| ID | 项 | 预期 |
|----|-----|------|
| CRM-CUD-001 | 标题 | 客户详情 |
| CRM-CUD-002~006 | Hero 名/编号/状态/级别/负责人 | 正确 |
| CRM-CUD-010 | 类型 | 有或— |
| CRM-CUD-011 | 来源 | 有或— |
| CRM-CUD-012 | 行业 | 有或— |
| CRM-CUD-013 | 手机 | 有或— |
| CRM-CUD-014 | 地址 | 有或— |
| CRM-CUD-015 | 备注 | 有或— |
| CRM-CUD-020 | 跟进空态 | 暂无跟进 |
| CRM-CUD-021 | 跟进字段 | 方式/时间/内容 |
| CRM-CUD-030 | 写跟进校验 | 空内容→请填写跟进内容 |
| CRM-CUD-031 | 写跟进成功 | 已保存 |
| CRM-CUD-032 | 写跟进取消 | 收起 |
| CRM-CUD-040 | 无编辑删除 | **无** |
| CRM-CUD-041 | 返回 | 回列表 |
---
# 六、公海池
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-PL-001 | 入口标题 | →公海池 | 公海池 |
| CRM-PL-002 | 无 Tab | 查看 | **无**状态 Tab |
| CRM-PL-003 | 无新增编辑删除 | — | 仅领取 |
| CRM-PL-010 | 搜索 placeholder | — | 搜索客户名称 |
| CRM-PL-011 | 名称命中 | — | 命中 |
| CRM-PL-012 | 部分命中 | — | 命中 |
| CRM-PL-013 | 无结果 | — | 公海暂无客户 |
| CRM-PL-014 | 边界字符 | — | 不崩溃 |
| CRM-PL-020 | 主标题客户名 | — | 正确 |
| CRM-PL-021 | 副标题入池时间 | — | 「入池:」+时间 |
| CRM-PL-022 | 级别 Tag | — | A/B/C/D |
| CRM-PL-023 | 来源行 | — | 有或— |
| CRM-PL-024 | 原负责人行 | — | 有或— |
| CRM-PL-025 | 领取按钮文案 | — | 「领取」 |
| CRM-PL-030 | 领取弹窗标题 | 点领取 | 「领取客户」 |
| CRM-PL-031 | 弹窗含客户名 | — | 确认领取「姓名」? |
| CRM-PL-032 | 领取取消 | 取消 | 仍在公海 |
| CRM-PL-033 | 领取成功 | 确认 | 「领取成功」;列表更新 |
| CRM-PL-034 | 领取中文案 | 请求中 | 「领取中…」 |
| CRM-PL-035 | 领取失败 | mock | 领取失败或 message |
| CRM-PL-036 | 领取后我的客户可见 | 去客户-我的 | 可见该客户 |
| CRM-PL-040 | 点头进详情-成功 | 有权限 | 进客户详情 |
| CRM-PL-041 | 点头进详情-失败 | 无权限 | 「暂无法查看详情」 |
| CRM-PL-042 | 分页/加载 | — | 正常 |
---
# 七、报价管理
## 7.1 列表
| ID | 标题 | 预期 |
|----|------|------|
| CRM-QL-001 | 入口/返回 | 正常 |
| CRM-QL-002 | 无新增编辑删除 | **无** |
| CRM-QL-003 | 空态 | 暂无报价 |
| CRM-QL-010 | 搜索 placeholder | 搜索报价单号 / 客户 |
| CRM-QL-011 | 按单号全称 | 命中 |
| CRM-QL-012 | 按单号部分 | 命中 |
| CRM-QL-013 | 按客户 | 命中 |
| CRM-QL-014 | 无结果 | 空态 |
| CRM-QL-015 | 边界字符 | 不崩溃 |
| CRM-QL-020 | Tab 全部 | 有 |
| CRM-QL-021 | Tab 草稿 | 状态=草稿 |
| CRM-QL-022 | Tab 待审批 | 状态=待审批 |
| CRM-QL-023 | Tab 已通过 | 状态=已通过 |
| CRM-QL-024 | 默认全部 | 是 |
| CRM-QL-025 | 各 Tab 空态 | 暂无报价 |
| CRM-QL-026 | Tab×搜索 | 交集 |
| CRM-QL-030 | 主标题 | 标题或单号 |
| CRM-QL-031 | 副标题 | 单号·客户 |
| CRM-QL-032 | 状态 Tag 枚举 | 草稿/待审批/已通过/已驳回/已作废/已转合同 |
| CRM-QL-033 | 金额 | ¥ |
| CRM-QL-034 | 负责人 | 有或— |
| CRM-QL-035 | 报价日期 | 有或创建时间 |
| CRM-QL-036 | 进详情 | 正确 |
| CRM-QL-037 | 分页 | 正常 |
## 7.2 详情只读
| ID | 项 | 预期 |
|----|-----|------|
| CRM-QD-001 | 标题 | 报价详情 |
| CRM-QD-002~006 | Hero 字段 | 正确 |
| CRM-QD-010 | 报价单号 | 有或— |
| CRM-QD-011 | 报价日期 | 有或— |
| CRM-QD-012 | 有效期至 | 有或— |
| CRM-QD-013 | 关联商机 | 有或— |
| CRM-QD-014 | 备注 | 有或— |
| CRM-QD-020 | 说明文案 | 含 Web 管理端审批改价转合同 |
| CRM-QD-021 | 无任何写操作底栏 | **无** |
| CRM-QD-022 | 仅返回 | 回列表 |
---
# 八、合同管理
## 8.1 列表
| ID | 标题 | 预期 |
|----|------|------|
| CRM-CTL-001 | 入口/返回 | 正常 |
| CRM-CTL-002 | 无新增编辑删除 | **无** |
| CRM-CTL-003 | 空态 | 暂无合同 |
| CRM-CTL-010 | 搜索 placeholder | 搜索合同 / 客户 |
| CRM-CTL-011 | 按合同名 | 命中 |
| CRM-CTL-012 | 按客户名 | 命中 |
| CRM-CTL-013 | 无结果 | 空态 |
| CRM-CTL-014 | 边界 | 不崩溃 |
| CRM-CTL-020 | Tab 全部 | 有 |
| CRM-CTL-021 | Tab 草稿 | 纯净 |
| CRM-CTL-022 | Tab 待审批 | 纯净 |
| CRM-CTL-023 | Tab 已生效 | 纯净 |
| CRM-CTL-024 | Tab 执行中 | 纯净 |
| CRM-CTL-025 | 默认全部 | 是 |
| CRM-CTL-026 | Tab×搜索 | 交集 |
| CRM-CTL-030 | 主标题合同名 | 正确 |
| CRM-CTL-031 | 副标题编号·客户 | 正确 |
| CRM-CTL-032 | 状态枚举 | 草稿/待审批/已生效/已驳回/执行中/已完成/已终止/已过期 |
| CRM-CTL-033 | 金额 | ¥ |
| CRM-CTL-034 | 负责人 | 有或— |
| CRM-CTL-035 | 签订日期 | 有或— |
| CRM-CTL-036 | 进详情 | 正确 |
| CRM-CTL-037 | 分页 | 正常 |
## 8.2 详情只读
| ID | 项 | 预期 |
|----|-----|------|
| CRM-CTD-001 | 标题 | 合同详情 |
| CRM-CTD-002~006 | Hero | 正确 |
| CRM-CTD-010 | 合同编号 | 有或— |
| CRM-CTD-011 | 合同类型 | 有或— |
| CRM-CTD-012 | 签订日期 | 有或— |
| CRM-CTD-013 | 开始日期 | 有或— |
| CRM-CTD-014 | 结束日期 | 有或— |
| CRM-CTD-015 | 审批状态 | 有或— |
| CRM-CTD-016 | 备注 | 有或— |
| CRM-CTD-020 | 说明文案 | 含 Web 审批签署 |
| CRM-CTD-021 | 无写操作 | **无** |
| CRM-CTD-022 | 返回 | 回列表 |
---
# 九、CRM 灰卡与跨页回归
| ID | 标题 | 步骤 | 预期 |
|----|------|------|------|
| CRM-WB-001 | 产品分类灰卡 | 点击 | 本期暂未开放 |
| CRM-WB-002 | 产品管理灰卡 | 点击 | 同上 |
| CRM-WB-003 | 合同审批灰卡 | 点击 | 同上 |
| CRM-RG-001 | 新建线索后各 Tab 可见性 | 新建后查全部/新线索 | 能找到 |
| CRM-RG-002 | 跟进后详情记录增加 | — | +1 |
| CRM-RG-003 | 转客户后列表已转化 Tab | — | 可见 |
| CRM-RG-004 | 无效后全部可见无效 Tag | — | 可见 |
| CRM-RG-005 | 公海领取后公海消失 | — | 公海无;客户有 |
| CRM-RG-006 | 模块间往返 | 线索↔商机↔客户↔报价↔合同 | 无串数据 |
---
# 执行记录
| 批次 | 日期 | 通过 | 失败 | 阻塞 | 备注 |
|------|------|------|------|------|------|
| — | — | — | — | — | 文字用例阶段 |
## 用例统计(本文件)
按 ID 前缀估算:**约 420+ 条**(含矩阵展开)。若评审仍嫌少,可再按「每状态 × 每字段空/满」继续拆分第二册。