This commit is contained in:
zlwu committed 2026-07-18 09:14:02 +08:00
1 parent a903fcf6d4
commit 259c55cc23
80 files changed
+6090 -123

No files matched your search

+678
View File
@@ -0,0 +1,678 @@
# 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+ 条**(含矩阵展开)。若评审仍嫌少,可再按「每状态 × 每字段空/满」继续拆分第二册。