# 测试用例(内部)V3.0 > 版本:V3.0(逐条对齐 `ry-vue3` 真实 `.vue` 源码:入口=真实菜单/路由,操作=真实按钮/表单字段,预期=真实校验文案/Toast) > 配套文档:《测试设计方案 V2.0》《详细设计方案 V2.0》 > 测试方式:**黑盒操作 ry-vue3 前端界面**(浏览器点菜单、填表单、看右上角红/绿提示、看列表变化),不调接口、不写 SQL。 --- ## 0. 执行前必读 ### 0.1 测试方式 - 全程在**浏览器**操作 `ry-vue3` 前端。所有「入口」均为真实侧栏菜单或门户链接;所有「操作」均为页面上真实存在的按钮/输入框。 - 后端校验失败时,右上角弹出红色 `ElMessage`(或 `ElNotification`),文案即「预期」中括号内字符串(**逐字核对**)。 - 前端表单校验在**点保存/提交时**触发,红框 + 字段下方红字提示;本用例中的校验文案均来自各 `.vue` 的 `rules`。 - 成功操作通常弹绿色提示 + 列表自动刷新;多步流程用「步骤 → 预期」表达。 - 「落库结果」统一转为**界面可观察现象**(如:该账号再次登录被拦、列表多一行、状态标签变化、角标 +1),测试人员无需连数据库。 ### 0.2 测试账号(界面登录:手机验证码登录,测试验证码 123456) 登录页两种模式:`账号密码登录` / `手机验证码登录`,本系统业务账号统一走 **手机验证码登录**。 | 编号 | 角色 | 登录手机号 | 验证码 | 登录后进入 | |---|---|---|---|---| | U01 | 后台管理员 | 13800000000 | 123456 | `/admin/workbench` 工作台 | | U02 | 合规经理 | 13800000002 | 123456 | `/manager/workbench` 工作台 | | U03 | 医生(已通过) | 13800000001 | 123456 | `/doctor/home` 首页 | | U04 | 医生(待审核) | 13800000003 | 123456 | 无法登录(被拦) | | U05 | 执行方主账号 | 13800000010 | 123456 | `/executor/overview` 首页 | | U06 | 执行方子账号 | 13800000011 | 123456 | `/executor/overview` 首页 | | U07 | 支持方主账号 | 13800000020 | 123456 | `/sponsor/home` 首页 | | U08 | 支持方子账号 | 13800000021 | 123456 | `/sponsor/home` 首页 | | U09 | 项目负责人 | 13800000030 | 123456 | `/leader/home` 首页 | ### 0.3 业务数据(测试前已备好) | 数据 | 关键状态 | |---|---| | 机构 SO1 | 支持方机构(正常) | | 执行单位 EU1 | 执行单位 | | 项目 P1 | 编号 P202609001,创建人 U02,共 10 场,起止 2026-09-01 ~ 09-30,已发布 | | 项目 P3 | 编号 P202609003,已结题(见 §0.5 风险) | | 会议 M1 | 属 P1 第 1 期,未执行 | | 会议 M2 | 属 P1 第 2 期,已执行,劳务/会务已通过,已传凭证 | | 会议 M3 | 属 P1 第 3 期,已冻结 | | 专家 E1 | 王医生,13800000001 | ### 0.4 通用界面约定 - **提示位置**:右上角浮层。红色=失败、绿色=成功、黄色=警告。 - **列表页**:顶部「查询/重置」+ 工具栏按钮(按钮可见性随角色变化);无权限按钮**隐藏**。 - **详情页**:项目详情、会议详情为多卡片/多标签页(劳务材料 / 会务材料 / 劳务凭证 / 会务凭证)。 - **表单校验**:前端 `rules` 校验先于后端,字段下方红字;后端业务校验失败弹右上角红条。 - **消息中心**:右上角铃铛角标显示未读数;新消息推送弹绿色通知「您有新的通知」。 - **权限 vs 状态两类断言**:无权角色能测的是「**入口不存在**(菜单/按钮隐藏)」,不是「点击后报错」——按钮看不到就点不了。因此后端角色校验文案(如「只有管理员可删除会议」)**不作为界面预期**;只有「入口对当前角色可见、但因业务状态失败」的文案(如「会议尚未结算, 不能完结」)才作为预期。凡角色越权,用例只断言「无入口 / 有权角色可操作」。 ### 0.5 已知缺陷风险(执行时先记录,不修) - **已结题项目「不能分配」可能失效**:代码里结题判定一处按 `'Y'`、一处按 `'1'` 不一致。 - 表现:把 P3 置为结题后,经理在「项目分配」里仍可能给 P3 分配成功。 - 涉及用例 TC-PROJECT-005,执行时记录「实际是否拦截」,作为缺陷候选上报。 - **意向审核列被隐藏**:`支持意向`/`执行意向` 列表的「审核状态」「操作(通过/拒绝/删除)」列当前 `v-if="false"` 不渲染,仅能查看 + 导出(见 TC-INTENT-004)。 --- ## 1. 登录与注册(AUTH) ### TC-AUTH-001 已注册手机号发码成功 - **优先级**:P0 - **入口**:门户登录页(`#/login`)→ 切到「手机验证码登录」 - **操作**:输入手机号 13800000001 → 点「获取验证码」 - **预期**:按钮进入倒计时显示「60s 后重试」,绿色提示「验证码已发送」 ### TC-AUTH-002 手机号格式错误不发码 - **优先级**:P1 - **操作**:输入 `123` → 点「获取验证码」 - **预期**:黄色提示「请输入正确的手机号」,不发码 ### TC-AUTH-003 未注册手机号不发码 - **优先级**:P1 - **操作**:输入 19900000000 → 点「获取验证码」 - **预期**:红色提示「该手机号未注册, 请先注册账号」 ### TC-AUTH-004 短信验证码登录成功(医生) - **优先级**:P0 - **前置**:U03 - **操作**:输入 13800000001 + 验证码 123456 → 点「登录」 - **预期**:绿色提示「欢迎,王医生」,跳转 `/doctor/home`;右上角用户名为医生姓名 ### TC-AUTH-005 验证码错误 / 过期 - **优先级**:P1 - **操作**:发码后输入错误验证码 `000000` → 登录 - **预期**:红色提示以「验证码错误或已过期: 」开头,停留登录页 ### TC-AUTH-006 待审核医生登录拦截 - **优先级**:P0 - **前置**:U04 - **操作**:用 13800000003 + 123456 登录 - **预期**:红色提示「您的信息正在审核中」,不进入后台 ### TC-AUTH-007 停用账号登录拦截 - **优先级**:P1 - **前置**:管理员先把某账号停用 - **操作**:该账号登录 - **预期**:红色提示「账号已被停用」 ### TC-AUTH-008 删除账号登录拦截 - **优先级**:P1 - **前置**:管理员删除某账号 - **操作**:该账号登录 - **预期**:红色提示「账号已被删除」 ### TC-AUTH-009 子账号主账号异常登录拦截 - **优先级**:P1 - **前置**:U06(子账号)的主账号 U05 被删除或停用 - **操作**:U06 登录 - **预期**:主账号被删 → 「所属主账号不存在, 请联系管理员」;主账号停用 → 「您所属的机构已禁用」 ### TC-AUTH-010 医生自助注册(待审核) - **优先级**:P0 - **入口**:登录页「新用户注册」→ 注册类别弹窗选「项目参与专家」→ 进入「专家注册」页(`#/register-expert`) - **操作**:填姓名/工作单位/科室/职称/手机号/验证码/密码/确认密码,上传执业证书与职称证明,勾选「我已阅读并同意《用户协议》和《隐私政策》」→ 点「同意协议并注册」 - **预期**:绿色提示「注册成功」,页面切换为成功页(`注册成功` / `请等待管理员审核,审核通过后即可登录`);用该手机号登录被拦「您的信息正在审核中」 ### TC-AUTH-011 医生注册必填校验 - **优先级**:P1 - **操作**:在「专家注册」页逐项清空/填错后提交 - **预期**:逐项红字提示——姓名空「请输入姓名」、单位空「请输入工作单位」、科室「请选择科室」、职称「请选择职称」、手机号「请输入手机号码」/「手机号格式错误」、验证码空「请输入短信验证码」、密码「请输入登录密码」/「密码长度 6-20 位」、确认密码「请再次输入登录密码」/「两次密码不一致」、执业证书「请上传执业证书/证明」、职称证明「请上传职称证明」;发码时手机号错「请先输入正确的手机号」;手机号已注册「该手机号已注册,请直接登录」 ### TC-AUTH-012 执行方注册 - **优先级**:P0 - **入口**:登录页「新用户注册」→ 选「项目执行单位(供应商)」 - **操作**:观察跳转行为 - **预期**:跳转到外部供应商注册系统(`https://zbsupplier.guojustar.com/`),不在本系统内注册。 - 备注:独立路由 `#/register-executor` 仍存在,若直接访问,字段为 用户名/企业名称/企业性质(私营/国营/中外合资/外资/其他)/手机号/验证码/密码/确认密码,提交成功绿色「注册成功」 ### TC-AUTH-013 执行方注册校验 - **优先级**:P1 - **操作**:直接访问 `#/register-executor` 逐项触发 - **预期**:用户名「请输入登录用户名」/「用户名长度 4-20 位」/「只能包含字母/数字/下划线」、企业名称「请输入企业名称」、企业性质「请选择企业性质」、手机号「手机号格式错误」、密码「密码长度 6-20 位」、确认密码「两次密码输入不一致」;用户名占用「登录账号已存在」、手机号已注册「该手机号已注册,请直接登录」 ### TC-AUTH-014 支持方注册(选企业) - **优先级**:P0 - **入口**:登录页「新用户注册」→ 选「项目支持单位」→ 进入「支持方注册」页(`#/register-sponsor`) - **操作**:企业名称下拉远程搜索选择 SO1 → 填联系人姓名/手机号/验证码/密码/确认密码 → 勾选协议 →「同意协议并注册」 - **预期**:绿色提示「注册成功」;该账号登录进入 `/sponsor/home`(子账号视角) ### TC-AUTH-015 支持方注册校验 - **优先级**:P1 - **操作**:注册页逐项触发 - **预期**:用户名「请输入登录用户名」/「用户名长度 4-20 位」/「只能包含字母/数字/下划线」、企业未选「请选择企业」、联系人空「请输入联系人姓名」、手机号「手机号格式错误」、密码「密码长度 6-20 位」、确认密码「两次密码输入不一致」 ### TC-AUTH-016 支持方注册下拉选项 - **优先级**:P2 - **操作**:注册页企业名称下拉,输入关键字远程搜索 - **预期**:按关键字返回可注册的支持方企业,选中后回填 --- ## 2. 专家管理(EXPERT) ### TC-EXPERT-001 管理员建档专家(默认通过) - **优先级**:P0 - **入口**:U01 登录 →「专家管理」→「新建专家」(`#/admin/experts/new`) - **操作**:填姓名/手机号/工作单位/科室/职称 → 点「保存」 - **预期**:弹「创建成功」账号信息框(`专家账号已创建 账号:… 初始密码:…`)+ 绿色「新建成功」;列表新增;该专家手机号可直接登录(默认已通过) ### TC-EXPERT-002 专家启用/停用 - **优先级**:P1 - **前置**:E1 存在 - **操作**:U01「专家管理」→ E1 行「禁用」 - **预期**:绿色「已禁用」;该专家手机号登录被拦「账号已被停用」;再点「恢复」→ 绿色「已恢复」,可登录 ### TC-EXPERT-003 专家编辑(不丢 expert_id) - **优先级**:P0 - **前置**:E1 存在 - **操作**:E1 行「修改」→ 改科室 → 保存 - **预期**:绿色「修改成功」,详情/列表科室更新;该专家仍能正常登录、再次编辑不报错 ### TC-EXPERT-004 专家审核(manager) - **优先级**:P1 - **入口**:U02 登录 →「专家审核」→ 某待审核专家行「审核」 - **操作**:审核弹窗选「通过」/「拒绝」→ 点「确认」 - **预期**:绿色「审核通过」/「已拒绝」;「通过」后该专家可登录;已拒绝的可点行内「已拒绝」查看拒绝意见(`拒绝时间:… 审批人:… 拒绝意见:…`) ### TC-EXPERT-005 专家导入 - **优先级**:P2 - **操作**:专家列表「批量导入」→「下载模板」(`专家批量导入模板.xlsx`)→ 填数据上传 - **预期**:导入结果提示成功/失败条数与原因;无文件/异常时「导入失败, 返回数据异常」或「上传失败, 请重试」 --- ## 3. 机构与人员(ORG / PERSON) ### TC-ORG-001 支持单位管理列表 - **优先级**:P1 - **入口**:U01 登录 →「支持单位管理」 - **操作**:查看列表,按「单位名称」「税号/统一社会信用代码」「合作状态(正常/禁用)」筛选 - **预期**:显示支持方机构列表(单位名称/单位地址/税号/合作状态/创建日期/联系人/联系电话),搜索正常 ### TC-ORG-002 机构停用同步主账号 - **优先级**:P0 - **前置**:SO1 主账号 U07 可登录 - **操作**:U01「支持单位管理」→ SO1 行「禁用」→ 确认弹窗「确定要禁用「SO1」吗? 禁用后该企业主账号无法登录, 企业下子账号也将被拦截」→ 确定 → 用 U07 登录 - **预期**:绿色「已禁用」;U07 登录被拦「您所属的机构已禁用」;点「恢复」→ 绿色「已恢复」,U07 可登录 ### TC-ORG-003 机构导入 - **优先级**:P2 - **操作**:支持单位列表「批量导入」→「下载模板」→ 上传 - **预期**:导入结果提示成功/失败条数与原因 ### TC-PERSON-001 新建人员(支持方) - **优先级**:P0 - **入口**:U01「支持单位下人员」→「新建人员」 - **操作**:填用户名/姓名/手机号/所属公司/部门/职务 → 保存 - **预期**:绿色「新建成功,默认密码 123456」;该手机号可用默认密码 123456 登录 ### TC-PERSON-002 人员列表显示登录账号 - **优先级**:P1 - **入口**:U07 登录 →「人员管理」 - **操作**:查看列表 - **预期**:每行显示「账号」列(登录账号),未绑账号的为空 ### TC-PERSON-003 更换机构管理员 - **优先级**:P1 - **入口**:U01 → 支持单位下人员 - **操作**:对某子账号行「管理员」开关设为开启 → 确认弹窗「确定将「X」设为该机构管理员吗?」 - **预期**:绿色「已更换管理员」;该人员晋升为机构主账号,原主账号降级;已为主账号时点开关提示「已是该机构管理员」 ### TC-PERSON-004 重置人员密码 - **优先级**:P1 - **操作**:人员行「更多」→「重置密码」→ 确认弹窗「确定重置「X」的登录密码为默认 123456 吗?」 - **预期**:绿色「已重置为 123456」;该人员可用 123456 登录 ### TC-PERSON-005 人员导入(含邮箱校验) - **优先级**:P2 - **入口**:执行单位下人员 / 执行方人员管理 →「批量导入」 - **操作**:下载模板,某行留空邮箱后上传 - **预期**:该行标记失败「邮箱不能为空」(或结果弹窗显示失败原因),其余行正常导入 --- ## 4. 项目(PROJECT) ### TC-PROJECT-001 manager 项目列表隔离 - **优先级**:P0 - **入口**:U02 登录 →「项目管理」 - **操作**:查看列表 - **预期**:只显示 U02 自己创建的项目,不出现他人项目 ### TC-PROJECT-002 sponsor 主/子账号隔离 - **优先级**:P0 - **入口**:U07 登录 →「项目管理」(`/sponsor/projects`);U08 登录 →「我的项目」(`/sponsor/my-projects`) - **操作**:各自查看 - **预期**:U07(主账号)看到本机构全部项目;U08(子账号)只看到分配给自己监察的项目 ### TC-PROJECT-003 executor 主/子账号隔离 - **优先级**:P0 - **入口**:U05、U06 分别登录 →「项目列表」 - **操作**:各自查看 - **预期**:U05 看到本执行单位全部项目;U06 只看到分配到执行人自己的项目(子账号隐藏「项目分配」按钮与「分配」链接) ### TC-PROJECT-004 项目删除仅 admin - **优先级**:P0 - **操作**: 1. U02「项目管理」某项目行「更多」→ 无「删除项目」入口 2. U01 同一项目「更多」→「删除项目」→ 确认弹窗「确认删除项目"X"?」→ 确定 - **预期**:经理不可删(无入口);管理员删除绿色「已删除」,列表消失(软删) ### TC-PROJECT-005 已结题项目不能分配 - **优先级**:P0 - **前置**:P3 已结题 - **操作**:U02「项目管理」→ P3 行「分配」 - **预期**:红色提示「已结题项目不能分配」 - **⚠️ 风险**:见 §0.5,可能不拦截、分配成功。记录实际结果。 ### TC-PROJECT-006 项目分配必填/越界校验 - **优先级**:P1 - **操作**:U02「项目分配」弹窗:不加执行方直接保存;填负场次/负金额;场次超总场次 - **预期**:分别提示「请至少选择 1 个执行方并填写场次」「场次不能为负数, 请调整」「金额不能为负数, 请调整」「已分配 X 场, 超过项目总场次 N, 请调整」「已分配 ¥X, 超过项目总金额 ¥N, 请调整」 ### TC-PROJECT-007 批量分配结果统计 - **优先级**:P1 - **操作**:批量分配弹窗填 2 条有效 + 1 条超限 → 保存 - **预期**:弹「分配结果」框显示「批量分配: 成功 N/总数」及失败明细;全部成功则绿色「批量分配成功 (N/M)」 ### TC-PROJECT-008 评分入口角色限制 - **优先级**:P0 - **操作**: 1. U03(医生)查看项目列表 / 详情 2. U02(经理)查看项目列表 / 详情 - **预期**:U03 无「评分 / 批量评分」入口;U02 有评分入口(见 TC-PROJECT-009) ### TC-PROJECT-009 评分聚合与校验 - **优先级**:P1 - **操作**:U02「批量评分」→ 4 维度(履约质量/时效响应/配合度/合规安全)填 1~5 → 确定 - **预期**:维度越界提示「履约质量必须是 1~5 的数字」等;成功绿色「已批量评分 N/M 个项目」或「评分完成,平均分:X」;详情「执行单位评分详情」显示平均分 ### TC-PROJECT-010 删除公告权限 - **优先级**:P1 - **操作**: 1. U02 某项目「更多」→「删除公告」→ 确认弹窗「您确定要删除公告吗?删除后无法恢复」→ 确定 2. U03 查看同一项目 - **预期**:U02 绿色「已删除项目 X 的公告」;U03 无「删除公告」入口 ### TC-PROJECT-011 报名专家导出权限 - **优先级**:P2 - **操作**: 1. U01/U02 点「已报名专家导出」 2. U03/U05/U07 查看项目列表 - **预期**:U01/U02 绿色「导出成功」并下载 xlsx;U03/U05/U07 无该按钮 --- ## 5. 会议(MEETING) > 建会入口:项目列表某行「建会」→ 带 `?projectId=` 进入新建会议页;项目信息为**只读快照**,无「选项目」下拉。 ### TC-MEETING-001 新建会议页项目只读快照 - **优先级**:P0 - **入口**:U02「项目管理」→ P1 行「建会」 - **操作**:观察页面 - **预期**:显示项目编号/项目名称/支持单位/总场次/项目创建人/项目创建时间等只读信息;无「选项目」下拉;会议名称/期数/起止时间/地点/备注可编辑 ### TC-MEETING-002 期数校验 - **优先级**:P0 - **前置**:P1 总场次 10 场 - **操作**:新建会议清空期数→保存;期数填 0→保存;期数填 11→保存 - **预期**:分别提示「请填写期数」「期数必须为正整数」「期数不能高于总场次/总期数 (共 10 场)」 ### TC-MEETING-003 建会时间越界 - **优先级**:P1 - **操作**:新建会议,开始时间早于项目开始 / 结束时间晚于项目结束 / 开始晚于结束 → 保存 - **预期**:分别提示「会议开始时间不能早于项目开始时间」「会议结束时间不能晚于项目结束时间」「会议开始时间不能晚于会议结束时间」;不选时间「请选择会议开始时间」「请选择会议结束时间」;地点空「请填写会议地点」 ### TC-MEETING-004 新建/修改/复制会议成功 - **优先级**:P0 - **操作**:填合法期数/时间/地点 → 保存;编辑后保存;复制后保存 - **预期**:分别绿色「会议创建成功」(跳会议列表)/「修改成功」/「复制成功」 ### TC-MEETING-005 删除会议权限 - **优先级**:P0 - **操作**: 1. U02 会议列表某行「更多」→「删除」→ 确认弹窗「确认删除会议「M1」?」→ 确定 2. U05(执行方)登录查看会议列表 → 某行「更多」 - **预期**:U02 绿色「已删除」;U05 的「更多」里**没有「删除」项**(入口隐藏) ### TC-MEETING-006 提交材料——非执行方无入口 - **优先级**:P0 - **操作**: 1. U02 打开 M1 详情 2. U05 打开同一 M1 详情 - **预期**:U02 页面**无「提交劳务 / 提交会务 / 提交全部」按钮**(对非执行方隐藏);U05 页面**有提交按钮**(后续校验见 TC-MEETING-007/008/009) ### TC-MEETING-007 提交材料——未执行拦截 - **优先级**:P0 - **前置**:M1 未执行 - **操作**:U05 打开 M1 详情 →「提交材料」 - **预期**:红色提示「会议尚未执行, 不能提交材料」 ### TC-MEETING-008 提交材料——已冻结拦截 - **优先级**:P0 - **前置**:M3 已冻结 - **操作**:U05 打开 M3 详情 →「提交材料」 - **预期**:红色提示「会议已冻结, 不能提交材料」 ### TC-MEETING-009 提交材料类型/内容校验 - **优先级**:P1 - **前置**:M1 已执行 - **操作**:U05 提交材料,逐项触发 - **预期**:无材料轨「无可提交的材料轨」/「请选择要提交的材料类型」;无参会人提交劳务「请先添加参会人员 (劳务材料)」;无会务材料「会务材料至少上传一条」 ### TC-MEETING-010 提交材料成功 - **优先级**:P0 - **前置**:M1 已执行、有参会人、已传会务材料 - **操作**:U05 勾选劳务+会务 →「提交全部」 - **预期**:绿色「材料已提交, 待合规审核」,详情页两轨状态变为「待审核」;有未保存上传时先弹「检测到尚未保存的上传内容,是否先保存再提交?」 ### TC-MEETING-011 合规审核——意见必填与入口 - **优先级**:P0 - **操作**: 1. U03 打开 M1 详情 2. U02 打开 M1 详情 → 审核时选「拒绝」但不填意见 - **预期**:U03 页面无「通过 / 拒绝」审核入口(只读);U02 有审核入口,选「拒绝」不填意见 → 红色「拒绝时意见不能为空」 ### TC-MEETING-012 合规审核越序拦截 - **优先级**:P1 - **前置**:M1 劳务轨未提交 - **操作**:U02 对 M1 劳务轨点「通过」 - **预期**:红色提示「当前阶段不允许合规审核」 ### TC-MEETING-013 合规审核通过 - **优先级**:P0 - **前置**:M1 劳务轨已提交 - **操作**:U02 勾选劳务轨 → 填意见 →「通过」 - **预期**:绿色「审核完成」,劳务轨转为待支持方审(详情时间轴更新) ### TC-MEETING-014 批量合规审核 - **优先级**:P1 - **前置**:M1、M2 均在合规审中 - **操作**:U02 会议列表勾选 M1、M2 →「批量审核」→ 选「通过」→ 填意见 → 确定 - **预期**:绿色「批量审核完成, 成功 2 个」;选「退回」不填意见提示「退回时意见不能为空」 ### TC-MEETING-015 支持方监察——非监察员只读 - **优先级**:P0 - **操作**: 1. U07(非本项目监察员)打开 M1 详情 2. U08(本项目监察员)打开 M1 详情 - **预期**:U07 无「通过 / 拒绝」监察入口,操作区只读;U08 有监察入口(可操作,见 TC-MEETING-016) ### TC-MEETING-016 支持方审核通过 - **优先级**:P0 - **前置**:M1 劳务轨已合规通过,U08 为监察员 - **操作**:U08 打开 M1 详情 → 勾选劳务轨 →「通过」→ 填监管意见 - **预期**:绿色「审核完成」,劳务轨状态变为「已通过」,时间轴展示监管意见 --- ## 6. 参会人(ATTENDEE) ### TC-ATTENDEE-001 邀请函打开即报名 - **优先级**:P0 - **前置**:医生 U03 收到 M1 参会邀请(站内信带邀请链接) - **操作**:点邀请链接打开「会议邀请函」页(`/doctor/invitation/:attendeeId`) - **预期**:正常展示邀请函(称谓「尊敬的 王医生:」+ 正文 + 落款「北京整合医学学会」);该医生在「我报名的项目」里出现该项目 ### TC-ATTENDEE-002 邀请函越权/无效拦截 - **优先级**:P1 - **操作**:用非本人参会链接、或无效参会链接,在浏览器打开邀请函页 - **预期**:红色提示加载失败,无法查看邀请函内容 ### TC-ATTENDEE-003 新增参会人(含手机号回填) - **优先级**:P0 - **入口**:U02 打开 M1 详情 → 劳务材料 tab →「+ 新增参会人」 - **操作**:填手机号后点放大镜 → 回填专家信息(「已回填专家信息」);补全必填字段 → 保存 - **预期**:绿色「已添加」,列表新增该参会人;手机号空「请先输入手机号」、格式错「手机号格式不正确」、查无「未找到该手机号对应的专家」 ### TC-ATTENDEE-004 新增参会人必填校验 - **优先级**:P1 - **操作**:新增参会人弹窗逐项清空提交 - **预期**:手机号「请填写联系方式」、姓名「请填写姓名」、医院「请填写医院」、身份证「请填写身份证号」/「身份证号应为18位(末位可为X)」、身份证附件「请上传身份证附件」、科室「请选择科室」、职称「请选择职称」、银行「请填写银行」、银行卡号「请填写银行卡号码」、开户行「请填写开户行」、账户名称「请填写账户名称」、开户行地址「请填写开户行地址」、银行详细地址「请填写银行详细地址」、角色「请选择角色」、应发金额「请填写应发金额」、个税「请填写个税税金」、增值税「请填写增值税附加」、实发金额「请填写实发金额」 ### TC-ATTENDEE-005 参会人 diff 预检 - **优先级**:P1 - **前置**:某参会人信息与专家档案不一致 - **操作**:编辑该参会人 → 保存 - **预期**:弹「检测到与专家档案不一致」二次确认框(确认提交/返回修改),确认后才落库;保存成功绿色「已保存」 ### TC-ATTENDEE-006 劳务已提交后不可改参会人 - **优先级**:P0 - **前置**:M1 劳务轨已提交 - **操作**:尝试编辑/删除参会人 - **预期**:红色提示「劳务已提交, 不能修改参会人」或操作按钮禁用 ### TC-ATTENDEE-007 参会人导入 dry-run / force - **优先级**:P2 - **操作**:参会人 tab「批量导入」→ 选择文件(未选文件「请先选择要导入的文件」)→ 上传 - **预期**:先 dry-run,无冲突直接入库;有冲突弹「检测到与专家档案不一致」确认 → 确认后落库并显示成功/失败明细 ### TC-ATTENDEE-008 sponsor 参会人脱敏 - **优先级**:P0 - **入口**:U08 打开 M1 详情 → 参会人 - **操作**:查看列表 - **预期**:姓名/手机号/银行卡/身份证打码(如「李*明」「138****0005」「6222********0000」「110101********1234」);操作区只读;电子签到表可点「脱敏预览」(无数据时「暂无可预览的脱敏数据」) --- ## 7. 材料与凭证(MATERIAL) ### TC-MATERIAL-001 凭证上传权限 - **优先级**:P0 - **操作**: 1. U03 打开会议详情 2. U02 打开会议详情 → 劳务凭证 / 会务凭证 → 上传凭证 - **预期**:U03 无凭证上传入口(只读);U02 上传成功绿色「保存成功」 ### TC-MATERIAL-002 会务/劳务打包下载权限 - **优先级**:P1 - **操作**: 1. U03 查看会议详情/列表 2. U02 对无会务材料的会议点「会务下载」;对有材料的会议点「会务下载 / 劳务下载」 - **预期**:U03 无「会务下载 / 劳务下载」入口;U02 无材料时提示「该会议暂无可下载的会务材料/劳务材料」,有材料时下载 zip 成功 ### TC-MATERIAL-003 会务材料目录模板 + 打包上传 - **优先级**:P2 - **操作**:详情会务材料 tab「下载目录」→ 按目录放材料 → 压缩 → 上传 - **预期**:上传后进度轮询(「服务器处理中 x/y」),完成绿色「已回填 N 类会务材料」;目录结构不对「未在 zip 中找到会务材料目录, 请按下载模板的目录结构放置文件」 ### TC-MATERIAL-004 扫码拍照回传 - **优先级**:P1 - **前置**:用 ry-h5 手机端扫码拍签到表/全景照 - **操作**:手机拍照 → 自动回传 - **预期**:会议详情材料区出现对应照片记录;异常「非法的拍照类型」「缺少照片 URL」 --- ## 8. 费用与结算(SETTLE) ### TC-SETTLE-001 费用未汇总完成不能结算 - **优先级**:P0 - **前置**:M2 两轨已通过、凭证已传,但费用汇总中 - **操作**:U01 打开 M2 详情 →「结算」 - **预期**:红色「会议费用尚未汇总完成,无法结算」 ### TC-SETTLE-002 结算前置校验 - **优先级**:P0 - **前置**:M2(逐项制造缺失) - **操作**:U01 打开 M2 详情,逐项触发「结算」 - **预期**:只通过一轨「劳务与会务材料都审核通过后才能结算」;已结算「会议已结算」;无凭证「请先上传劳务凭证与会务凭证」;只缺劳务「请先上传劳务凭证」;只缺会务「请先上传会务凭证」 ### TC-SETTLE-003 结算成功 - **优先级**:P0 - **前置**:M2 满足全部前置 - **操作**:U01 对 M2「结算」→ 确认弹窗「确认结算? 结算前请确保已上传劳务/会务付款凭证。」→ 确定 - **预期**:绿色「已结算」,会议状态变为已结算 ### TC-SETTLE-004 完结校验 - **优先级**:P1 - **操作**:U01 对未结算会议点「完结」;对已完结会议再点「完结」;对合法会议点「完结」→ 确认「确认完结? 完结后会议流程终止」 - **预期**:红色「会议尚未结算, 不能完结」/「会议已完结」;合法完结绿色「已完结」 ### TC-SETTLE-005 解冻校验 - **优先级**:P1 - **操作**:U01 对未冻结会议点「解冻」;对已冻结的 M3 点「解冻」→ 确认「确认解冻会议「M3」? 解冻后提交截止时间将重新计算。」 - **预期**:红色「会议未冻结, 无需解冻」;M3 解冻绿色「已解冻」,状态解除冻结 ### TC-SETTLE-006 审核轨迹 - **优先级**:P2 - **操作**:M1 详情查看右侧「材料审核时间轴」 - **预期**:按 会议已执行 → 执行方提交材料 → 合规审核 → 监察意见 → 会议结算 → 会议完结 展示各阶段状态与意见 --- ## 9. 电子签(SIGN) ### TC-SIGN-001 医生签署劳务协议完整流程 - **优先级**:P0 - **入口**:医生 U03 首页「待签署的协议」区(仅审核通过显示)→ 扫二维码或复制链接 → 手机端打开「填写劳务信息」页 - **操作**: 1. 填 姓名/工作单位/科室/账户名称(持卡人姓名)/身份证号/银行卡号/银行名称/开户行(支行)/身份证附件/劳务形式 → 点「下一步」 2. 签署页点签名区「点击此处确认签名」→ 底部 Drawer 手写签名 →「确认」→「提交」 - **预期**: - 未上传身份证附件 → 黄色「请上传身份证正反面」 - 提交劳务信息 → 绿色「已保存, 即将进入签署页」跳签署页 - 未签名直接提交 → 黄色「请先签名」 - 提交成功 → 跳「签字成功」页(`签字成功 / 劳务协议已生成`),该条从待签署列表消失 - **备注**:未受邀时显示「您暂未被邀请,请联系执会人员」 --- ## 10. 策划方案(PLAN) ### TC-PLAN-001 投稿角色数据隔离 - **优先级**:P0 - **入口**:U03 登录 →「我的项目策划方案」 - **操作**:查看列表 - **预期**:只显示自己投稿的方案 ### TC-PLAN-002 新建投稿 - **优先级**:P0 - **操作**:「新建投稿」→ 填策划方案名称/项目方向/项目形式/项目类别/设计文件/备注 → 保存或「保存并提交」 - **预期**:必填校验「请输入策划方案名称」「请选择项目方向」「请选择项目形式」「请选择项目类别」「请上传设计文件」;保存绿色「新建成功」,保存并提交绿色「已保存并提交审核」;sponsor 新建时无「保存并提交」按钮 ### TC-PLAN-003 提交/批量提交投稿 - **优先级**:P0 - **操作**:单条点「提交」;批量勾选后「批量提交」 - **预期**:单条确认「确定要提交投稿「X」吗?提交后将进入审核流程」→ 绿色「已提交,等待审核」;批量确认「确定要批量提交选中的 N 条投稿吗?」→ 绿色「已提交 N 条」;未勾选「请先勾选要提交的投稿」;待审核/通过态不可再提交(无提交按钮) ### TC-PLAN-004 管理端审核/结算 - **优先级**:P1 - **入口**:U02 登录 →「策划方案管理」 - **操作**:待审核方案点「审核」→ 选「通过/退回」→ 确认;已通过方案点「结算」 - **预期**:审核通过需填项目编号(空则「请填写项目编号」);绿色「已通过」/「已退回」;结算确认「您确定要结算吗?」→ 绿色「已结算」;批量退回「批量退回 N/M 条」、批量结算「批量结算 N/M 条」 --- ## 11. 消息中心(MSG) ### TC-MSG-001 我的消息列表与未读 - **优先级**:P1 - **操作**:任意角色点右上角铃铛 /「消息通知」菜单 - **预期**:显示消息列表(分类标签 + 标题 + 摘要 + 时间)+ 未读圆点;有未读时顶部显示「全部已读」 ### TC-MSG-002 全部已读 - **优先级**:P1 - **操作**:点「全部已读」 - **预期**:静默完成,未读圆点消失、铃铛角标清零(无 Toast);失败红色「全部已读失败, 请重试」 ### TC-MSG-003 单条已读(点击即读) - **优先级**:P1 - **操作**:点击某条未读消息 - **预期**:打开详情弹窗(标题「消息详情」或消息标题),该条未读圆点消失、角标自动减一(静默无 Toast) ### TC-MSG-004 消息详情与链接 - **优先级**:P1 - **操作**:打开一条含链接的消息详情 - **预期**:显示二维码 + 「打开链接」「复制链接」;复制成功绿色「链接已复制」;类型为会议邀请的消息直接跳「会议邀请函」页 ### TC-MSG-005 管理员发送校验 - **优先级**:P1 - **入口**:U01「消息通知」→「发送」 - **操作**:不填接收人 / 不填标题 → 发送 - **预期**:红色「接收人不能为空」/「标题不能为空」;合法发送成功 ### TC-MSG-006 SSE 推送与角标 - **优先级**:P1 - **操作**:U03 登录保持在线;管理员给 U03 发一条消息 - **预期**:U03 右上角弹绿色通知「您有新的通知」(`共 N 条未读` / `点击右上角铃铛查看详情`),铃铛角标 +1,消息列表静默刷新;U03 自己点「全部已读」→ 不弹通知、角标清零 ### TC-MSG-007 消息归属 - **优先级**:P1 - **操作**:U02 与 U03 分别登录 → 打开「消息通知」列表 - **预期**:U02 列表只出现发给 U02 的消息,看不到 U03 的消息;U03 同理(相互隔离) --- ## 12. 公示意向(INTENT) ### TC-INTENT-001 公示页匿名意向 - **优先级**:P1 - **入口**:门户「项目公示」→ 某公示详情 - **操作**:点「公益支持」→ 弹匿名意向框填 姓名/手机号/工作单位(部门/职务选填)→「提交意向」;点「项目执行申请」同理 - **预期**:分别绿色「已记录您的支持意向」「已记录您的执行意向」;两类意向分别记录、互不混入登录用户数据 ### TC-INTENT-002 意向必填校验 - **优先级**:P1 - **操作**:公示详情提交意向时逐项清空 - **预期**:姓名「请输入姓名」、手机号「请输入手机号」、工作单位「请输入工作单位名称」 ### TC-INTENT-003 重复意向拦截 - **优先级**:P1 - **操作**:同一手机号再次提交 - **预期**:红色「您已提交过该意向」 ### TC-INTENT-004 意向管理列表 - **优先级**:P2 - **入口**:U02 →「支持意向」/「执行意向」 - **操作**:查看、筛选、导出 - **预期**:列表列「项目编号 / 意向项目名称 / 姓名 / 工作单位 / 部门 / 职务 / 手机号 / 账号状态(存在/不存在) / 创建时间」;导出绿色「导出成功」;「审核状态」「操作」列当前被隐藏(记录,见 §0.5) --- ## 13. 执行意向报名(EXEC-INTENT) ### TC-EXECINTENT-001 医生报名项目 - **优先级**:P0 - **入口**:U03 登录 → 公示详情「立即报名」(或「我报名的项目」入口) - **操作**:点「立即报名」 - **预期**:绿色「报名成功」,项目出现在「我报名的项目」列表;未登录点报名提示「请先登录系统」 ### TC-EXECINTENT-002 重复报名拦截 - **优先级**:P1 - **操作**:U03 对已报名项目,在公示详情查看报名按钮;在「我报名的项目」列表确认该项目已存在 - **预期**:公示详情报名按钮不再可点(显示「已报名」或隐藏报名入口);「我报名的项目」列表中该项目已存在 ### TC-EXECINTENT-003 报名参数异常 - **优先级**:P1 - **操作**:通过异常链接/参数报名(缺项目、项目不存在) - **预期**:红色「项目ID缺失,无法报名」/「项目ID不能为空」/「项目ID格式错误」 --- ## 14. 公示门户(PUBLIC) ### TC-PUBLIC-001 平台协议文章 - **优先级**:P1 - **入口**:门户注册/登录页底部「《用户协议》」「《隐私政策》」 - **操作**:点开(`#/article/agreement` / `#/article/privacy`) - **预期**:正常展示文章内容与「最后更新」时间 ### TC-PUBLIC-002 专项计划公开详情 - **优先级**:P1 - **入口**:门户首页「八大专项计划」卡片 →「查看详情」(`#/special-plan/:id`) - **操作**:未登录点开;已登录点开;点一个不存在的链接 - **预期**:未登录跳登录页(登录后回跳);已登录正常展示;不存在红色「专项计划不存在」 ### TC-PUBLIC-003 招标公告 - **优先级**:P1 - **操作**:公示详情(招标项目)点「查看招标公告」;无项目编号时;无公告时 - **预期**:正常展示;缺编号红色「缺少项目编号」;无公告红色「未查到该项目的招标公告」 ### TC-PUBLIC-004 支持函 / 邀请函公开查看 - **优先级**:P1 - **入口**:门户「支持函」「邀请函」列表页 - **操作**:点开详情 / 预览 / 模板 / QR / 分享 - **预期**:正常展示盖章文档、模板、二维码、分享链接 --- ## 15. 忘记密码(FORGOT) ### TC-FORGOT-001 忘记密码发码 - **优先级**:P0 - **入口**:登录页「忘记密码」弹窗 - **操作**:输错格式手机号 → 发码;输未注册手机号 → 发码;输已注册手机号 → 发码 - **预期**:分别黄色「请输入正确的手机号」、红色「该手机号未注册, 请先注册账号」、绿色「验证码已发送」 ### TC-FORGOT-002 重置密码校验 - **优先级**:P1 - **操作**:重置弹窗逐项触发 - **预期**:手机号错「请输入正确的手机号」、验证码空「请输入短信验证码」、密码短「密码长度 6-20 位」、两次不一致「两次密码输入不一致」、未注册「该手机号未注册」 ### TC-FORGOT-003 重置成功 - **优先级**:P0 - **操作**:填新密码 → 提交 - **预期**:绿色「密码重置成功, 请用新密码登录」;用新密码可登录;失败「密码重置失败」 --- ## 16. 后台统计 / 仪表盘(DASHBOARD) ### TC-DASH-001 经理工作台统计 - **优先级**:P1 - **入口**:U02 登录 →「工作台」 - **操作**:查看 5 张统计卡片 - **预期**:「项目总数量」「已结算数量」「已结题数量」「已执行会议」「未执行会议」数字正确;点击卡片跳转对应列表并带筛选 ### TC-DASH-002 各角色统计口径 - **优先级**:P1 - **操作**:分别查看 admin/manager/executor/sponsor/leader 工作台统计卡片 - **预期**: - admin:`系统用户总数 / 角色类型数 / 项目总数量 / 已结题项目 / 会议总数量` +「快捷入口」8 项 - doctor 首页:欢迎栏「下午好,X专家」+「待签署的协议」区(仅审核通过显示) - manager/sponsor/leader:已执行会议口径 `currentStageNotIn=NOT_STARTED,IN_PROGRESS` - executor:已执行会议口径 `currentStage=RUNNING`(与其他角色不一致,记录) --- ## 17. 字典管理(DICT) ### TC-DICT-001 科室管理 - **优先级**:P1 - **入口**:U01 →「科室管理」 - **操作**:新增科室留空名称 → 保存;删除某科室 - **预期**:黄色「请输入科室名称」;删除确认「确定删除科室"X"? 该操作不可恢复」→ 绿色「删除成功」;停用/启用绿色「已停用」/「已启用」 ### TC-DICT-002 职称管理 - **优先级**:P1 - **入口**:U01 →「职称管理」 - **操作**:新增留空名称 - **预期**:黄色「请输入职称名称」;删除确认「确定删除职称"X"? 该操作不可恢复」 ### TC-DICT-003 写操作 admin-only - **优先级**:P0 - **操作**:U02 登录查看菜单 - **预期**:无「科室管理」「职称管理」「项目类别管理」菜单入口(仅 admin);下拉选择(专家/参会人表单)读取开放 --- ## 18. 后台配置(ADMIN-CONFIG) ### TC-CFG-001 后台建用户权限 - **优先级**:P0 - **入口**:U01 →「用户管理」→「新建用户」 - **操作**: 1. U02 登录查看侧栏菜单 2. U01 新建用户逐项留空/填错 - **预期**:U02 无「用户管理」菜单;U01 依次提示「请选择角色」「请填写登录账号」「请填写密码」「请填写单位名称」「请选择所属单位」「请填写姓名」;账号非法「登录账号需 4-20 位字母/数字/下划线」、重复「登录账号已存在」/「手机号已存在」/「邮箱已存在」;新建成功绿色「新建成功」 ### TC-CFG-002 专项计划管理 - **优先级**:P1 - **入口**:U01 →「专项计划管理」 - **操作**:新增/编辑/删除;查看门户 - **预期**:编辑字段 标题/内容类型(富文本/上传文件)/正文或文件/排序/状态;校验「请输入标题」「请输入正文」「请上传文件」;删除确认「确认删除「X」?」→「已删除」;启用项在门户「专项计划」可见 ### TC-CFG-003 劳务协议模板默认唯一 - **优先级**:P1 - **入口**:U01 →「劳务协议配置」 - **操作**:新建模板并「设为默认」→ 再设另一条为默认;尝试删除默认模板 - **预期**:「设为默认」确认「确认将"X"设为默认模板? 其他默认模板将自动取消」→ 绿色「已设为默认」;任意时刻仅一条默认;删除默认模板黄色「默认模板不能删除, 请先取消默认」;编辑字段 模板名「请输入模板名」、模板内容「请输入模板内容」 ### TC-CFG-004 协议文章管理 - **优先级**:P2 - **入口**:U01 →「协议管理」 - **操作**:编辑文章 标题/类型/状态/正文 - **预期**:校验「请输入标题」「请输入正文」;编辑时类型不可改;发布后门户 `#/article/agreement|privacy` 可见;无新增/删除按钮 --- ## 19. 执行方 / 人员下拉(EXECUTOR / DROPDOWN) ### TC-DROPDOWN-001 项目分配下拉只出主账号/执行单位 - **优先级**:P0 - **入口**:U02「项目分配」→ 执行单位下拉 - **操作**:点开执行单位下拉 - **预期**:选项 label=单位名称(value=orgId),不含该单位下员工子账号;执行方侧「分配执行人」下拉仅列出执行人员(主账号标记「(管理员)」且 disabled) ### TC-DROPDOWN-002 下拉模糊 / 精确搜索 - **优先级**:P1 - **操作**:支持单位/执行单位下拉输入关键字筛选 - **预期**:按名称远程模糊匹配并回填 --- ## 20. OA 集成(ECOLOGY) ### TC-ECOLOGY-001 生态项目搜索 - **优先级**:P2 - **入口**:项目新建/编辑页「项目编号」下拉 - **操作**:输入项目编号关键字搜索 - **预期**:返回泛微生态项目(`编号(名称)`),选中后回填项目名称等信息;异常红色「项目编号不能为空」「ecology 中未找到该项目编号」「ecology 数据源不可用」 --- ## 附:用例统计与准出 - 总用例数:约 **100+ 条**,覆盖 **20 个功能模块**(按界面入口组织)。 - 覆盖角色:admin / manager / doctor / executor / sponsor / leader / 门户匿名。 - 准出:P0 全 Pass;P1 Pass ≥ 98%;已知差异/风险项全部登记(§0.5 is_finished 结题缺陷、意向审核列隐藏、executor 已执行会议口径差异)。 - 每条 Fail 需附:操作路径 + 截图(含红/绿提示文案)+ 预期文案 + 实际文案。 --- ## 附 B:功能覆盖对照 | 功能模块 | 界面入口 | 状态 | |---|---|---| | 登录/注册/忘记密码 | 门户登录页、专家/执行方/支持方注册页 | ✅ | | 专家管理/审核 | 专家管理、专家审核 | ✅ | | 支持/执行单位管理 | 支持单位管理、执行单位管理 | ✅ | | 支持/执行单位人员 | 支持单位下人员、执行单位下人员、人员管理 | ✅ | | 项目管理/分配/评分/导出 | 项目管理、项目分配、项目详情 | ✅ | | 会议管理/审核/结算/冻结 | 会议管理、会议详情 | ✅ | | 参会人/签署/邀请 | 会议详情-参会人、医生签署流程 | ✅ | | 材料/凭证/打包下载 | 会议详情-材料 | ✅ | | 公示门户/意向/支持函/邀请函 | 门户项目公示、公示详情 | ✅ | | 策划方案 | 我的项目策划方案、策划方案管理 | ✅ | | 消息中心/SSE | 消息通知、右上角铃铛 | ✅ | | 仪表盘统计 | 各角色工作台/首页 | ✅ | | 字典/专项计划/协议/劳务协议模板 | 科室/职称/专项计划/协议/劳务协议配置 | ✅ | | 执行方下拉 | 项目分配弹窗 | ✅ | | OA 生态项目 | 项目编辑关联 | ✅ | | 平台基础设施(OSS/摄像头/验证码/通用) | 附件上传、图形验证码 | 按需冒烟 | > 说明:测试人员全程**只在浏览器操作 ry-vue3 界面**完成上述用例;「预期」为界面上弹出的红/绿/黄提示文案(逐字核对)。