{产品名称} - 产品需求文档 (PRD) V1.0

文档说明

  • 本文档用于描述产品功能需求,是产品设计、开发、测试的重要依据
  • {} 包裹的内容为占位符,请替换为实际内容
  • 引用块 > 中的文字为填写指导,填写后可删除
  • 本文档应与技术细分文档、UI设计稿、原型图等配套使用

1. 文档信息 (Document Info)

1.1 版本记录

版本号 修改日期 修改人 修改内容 备注
V1.0.0 {YYYY-MM-DD} {姓名} 初始版本 对应技术文档 V1.0.0

1.2 文档责任人

角色 姓名 职责
产品经理 {姓名} 需求输出、需求评审、验收标准制定
UI设计师 {姓名} 界面设计、交互设计、原型输出
技术负责人 {姓名} 技术方案评审、技术可行性评估
测试负责人 {姓名} 测试用例编写、验收测试

1.3 关联文档

文档类型 文档名称 版本 说明
技术文档 {产品名称}-技术细分文档.md V1.0.0 技术实现方案
UI设计稿 {产品名称}-UI设计稿 V1.0 Figma/Sketch设计文件
原型图 {产品名称}-原型图 V1.0 交互原型文件
数据库设计 {产品名称}-数据库设计.md V1.0 表结构设计文档

2. 产品概述 (Product Overview)

2.1 产品定位

简要描述产品的定位、目标用户、核心价值

产品定位:{例如:面向门店店主和护理师的移动端管理工具,帮助门店高效管理订单、护理师、客户等业务}

目标用户

  • 主要用户:{例如:门店店主、门店店员}
  • 次要用户:{例如:护理师、运营人员}

核心价值

  1. {例如:提升订单处理效率,减少人工操作}
  2. {例如:实时掌握门店运营数据,辅助决策}
  3. {例如:优化护理师工作流程,提升服务质量}

2.2 产品目标

明确本次迭代要达成的业务目标

业务目标

  • {例如:提升订单处理效率30%}
  • {例如:减少订单遗漏率至5%以下}
  • {例如:提升护理师接单率至80%以上}

用户目标

  • {例如:门店店主能够快速查看和处理订单}
  • {例如:护理师能够便捷抢单和上报服务进度}

2.3 产品范围

明确本次迭代包含和不包含的功能范围

本次迭代包含

  • {例如:订单大厅模块(订单列表、订单详情、订单操作)}
  • {例如:我的模块(门店信息、数据统计、待办事项)}
  • {例如:首页模块(搜索、Banner)}

本次迭代不包含(后续迭代):

  • {例如:数据报表详细分析}
  • {例如:客户管理模块}
  • {例如:商品管理模块}

3. 用户角色与场景 (User Roles & Scenarios)

3.1 用户角色定义

明确不同用户角色的权限、职责、使用场景

角色名称 角色描述 权限范围 典型使用场景
{门店店主} {拥有门店管理权限,可查看门店所有数据} {可查看门店所有订单、数据统计、可指派师傅、转派订单} {每日查看订单大厅,处理待接单订单,指派师傅}
{门店店员} {门店普通员工,权限受限} {可查看门店订单,但不可进行指派、转派等操作} {查看订单列表,联系客户}
{护理师} {提供上门服务的护理师} {可查看新工单、抢单、上报到达、开始服务} {抢单、上报到达、开始服务、完成服务}

3.2 用户使用场景

描述典型用户的使用场景,帮助理解需求背景

场景1:门店店主处理待接单订单

  • 用户:门店店主
  • 时间:每天上午9:00
  • 场景描述
    1. 打开小程序,进入订单大厅
    2. 查看”待接单”Tab,发现有5个新订单
    3. 点击订单卡片,查看订单详情(客户信息、服务地址、服务时间)
    4. 点击”指派师傅”按钮,选择可用护理师
    5. 指派成功后,订单状态更新为”待服务”

场景2:护理师抢单

  • 用户:护理师
  • 时间:每天上午10:00
  • 场景描述
    1. 打开小程序,进入订单大厅
    2. 查看”新工单”Tab,看到附近有3个可抢订单
    3. 查看订单距离(距您2.5km),选择距离最近的订单
    4. 点击”抢单”按钮,确认抢单
    5. 抢单成功后,订单状态更新为”待服务”

4. 功能需求 (Functional Requirements)

4.1 {模块名称 - 例如:首页模块}

4.1.1 {功能点名称 - 例如:搜索查询}

功能ID:{例如:M-01}
功能名称:{例如:搜索查询}
功能描述

详细描述功能的作用、用户如何使用

{例如:搜索框默认显示”全域用户运营课程”文案,用户点击搜索框后跳转到搜索结果页。搜索支持4种类型:1=课程;2=活动;3=文章;4=混合结果列表(默认)。}

用户故事

使用”作为…我希望…以便…”的格式描述用户故事

作为{门店店主},我希望{能够快速搜索课程和活动},以便{学习运营知识,提升门店经营能力}。

功能规则

详细描述业务规则、数据规则、交互规则

  1. 搜索框显示规则

    • 默认显示文案:”全域用户运营课程”
    • 搜索框为只读状态,不可直接输入
    • 点击搜索框跳转到搜索结果页
  2. 搜索结果规则

    • 支持4种搜索类型:课程、活动、文章、混合结果列表
    • 默认显示混合结果列表
    • 搜索结果按相关性排序
    • 支持分页加载,每页20条
  3. 交互规则

    • 点击搜索框:跳转到搜索结果页
    • 搜索结果页支持Tab切换(课程/活动/文章/全部)
    • 支持下拉刷新、上拉加载更多

数据来源

明确数据来源、数据表、字段映射

  • 搜索服务:调用搜索服务接口,传入关键词和类型参数
  • 数据表tp_child_lesson(课程表)、tp_activity(活动表)、tp_article(文章表)
  • 字段映射
    • 课程标题:tp_child_lesson.name
    • 课程图片:tp_child_lesson.info(多个OSS链接用逗号拼接,取第一个)

异常处理

描述异常情况的处理方式

  • 网络异常:显示”网络异常,请稍后重试”提示,支持重试
  • 无搜索结果:显示”暂无搜索结果”空状态
  • 搜索关键词为空:显示默认推荐内容

【交互布局规范】

  • 布局: {例如:顶部搜索框 + 内容区域}
  • 尺寸:
    • 搜索框高度: 40px
    • 搜索框圆角: 20px(高度的一半,形成胶囊形状)
    • 搜索图标: 16px,颜色 #999999,左侧内边距 16px
  • 交互:
    • 点击搜索框: 跳转到搜索结果页
    • 搜索框为只读状态: 不可直接输入

验收标准

明确功能验收的标准,便于测试和验收

  1. ✅ 搜索框默认显示”全域用户运营课程”文案
  2. ✅ 点击搜索框能够跳转到搜索结果页
  3. ✅ 搜索结果页支持Tab切换,能够正确显示不同类型的结果
  4. ✅ 搜索结果支持分页加载,下拉刷新、上拉加载更多功能正常
  5. ✅ 网络异常时能够正确提示,支持重试
  6. ✅ 无搜索结果时显示空状态

4.1.2 {功能点名称 - 例如:Banner配置}

功能描述
{例如:首页主Banner支持后台配置,包含图片URL和跳转URL。支持多张Banner轮播,点击Banner跳转到配置的URL。}

用户故事
作为{门店店主},我希望{能够在首页看到运营活动Banner},以便{了解最新活动和优惠信息}。

功能规则

  1. Banner显示规则

    • Banner图片由后台配置,支持上传多张
    • Banner支持自动轮播,轮播间隔3秒
    • Banner支持左右滑动切换
    • Banner底部显示指示器(小圆点),当前Banner高亮
  2. Banner跳转规则

    • 点击Banner跳转到配置的URL
    • 跳转类型包括:
      • 内部页面:使用uni.navigateTo跳转
      • 外部链接:跳转WebView页面
      • 小程序ID:使用uni.navigateToMiniProgram跳转
  3. Banner配置规则

    • 后台可配置Banner图片URL、跳转URL、跳转类型
    • 后台可配置Banner显示顺序
    • 后台可配置Banner是否启用

数据来源

  • 接口GET /mall/home/banner
  • 数据表mall_banner(Banner配置表)
  • 字段映射
    • Banner图片:mall_banner.image_url
    • 跳转URL:mall_banner.jump_url
    • 跳转类型:mall_banner.jump_type(1=内部页面,2=外部链接,3=小程序ID)
    • 显示顺序:mall_banner.sort_order

异常处理

  • Banner图片加载失败:显示默认占位图
  • 无Banner配置:不显示Banner区域
  • 跳转URL无效:提示”链接无效”

验收标准

  1. ✅ Banner能够正确显示后台配置的图片
  2. ✅ Banner支持自动轮播,轮播间隔3秒
  3. ✅ Banner支持左右滑动切换
  4. ✅ Banner底部指示器正确显示,当前Banner高亮
  5. ✅ 点击Banner能够正确跳转到配置的URL
  6. ✅ Banner图片加载失败时显示占位图

4.2 {模块名称 - 例如:订单大厅模块}

4.2.1 {功能点名称 - 例如:订单列表}

功能描述
{例如:订单大厅支持多状态Tab导航,展示订单列表。订单状态包括:待接单、待服务、待上门、服务中、待转派。每个Tab显示对应状态的订单数量,点击Tab切换订单列表。}

用户故事
作为{门店店主},我希望{能够快速查看不同状态的订单},以便{及时处理待处理的订单}。

功能规则

  1. Tab导航规则

    • Tab显示:待接单、待服务、待上门、服务中、待转派
    • 每个Tab显示订单数量,格式:”待接单(10)”
    • 当前选中Tab字体高亮+蓝色,未选中为默认灰色
    • 点击Tab切换下方订单列表数据
    • 订单数量实时更新
  2. 订单卡片显示规则

    • 订单类型标签:仅展示”上门订单”和”服务订单”
    • 商品封面图:取work_order_item.pic_url,图片固定展示尺寸根据UI定,若上传图片不符合尺寸要求,则根据比例做自适应适配
    • 服务名称:取work_order_item.goods_name,显示完整名称,超出部分换行显示
    • 订单金额:取work_order_item.payment_price,当前订单的实付金额
    • 订单状态:显示当前订单状态(待接单/待服务/待上门/服务中/待转派)
    • 客户姓名:取work_order_info.user_name,全量展示
    • 联系方式:取work_order_info.phone,全量展示
    • 服务时长:显示单位为分钟,后台有功能但数据库没找到对应的字段(需确认)
    • 服务时间:取work_order_info.appointment_date + appointment_time,格式化显示:
      • 当服务日期是【今天】:文案展示为”今天 HH:mm–HH:mm”,如”今天 15:00–17:00”
      • 当服务日期是【明天】:文案展示为”明天 HH:mm–HH:mm”,如”明天 09:00–11:00”
      • 当服务日期不是今天/明天:展示”MM月dd日 HH:mm–HH:mm”,如”12月29日 15:00–17:00”
      • 开始时间和结束时间均按24小时制展示,小时和分钟均补零(如 09:05)
    • 服务地址:多行展示,优先显示城市+区+详细地址。过长时自动换行,不做省略号
    • 客户备注:区块标题固定为”客户备注”,正文为完整备注内容;超过2行时默认折叠,尾部展示向下箭头(展开),点击展开查看全部,再次点击收起
  3. 列表交互规则

    • 支持下拉刷新,刷新当前Tab的订单列表
    • 支持上拉加载更多,每页10-20条
    • 点击订单卡片跳转到订单详情页
    • 订单状态数量实时更新(每30秒轮询一次或使用WebSocket推送)

数据来源

  • 接口GET /workorder/workOrder/page?shopId=xxx&status=xxx&page=1&size=10
  • 数据表
    • work_order_info(工单主表)
    • work_order_item(工单明细表)
  • 字段映射
    • 订单ID:work_order_info.id
    • 订单状态:work_order_info.status
    • 客户姓名:work_order_info.user_name
    • 联系方式:work_order_info.phone
    • 服务时间:work_order_info.appointment_date + appointment_time
    • 服务地址:work_order_info.service_address
    • 客户备注:work_order_info.customer_remark
    • 商品名称:work_order_item.goods_name
    • 商品图片:work_order_item.pic_url
    • 订单金额:work_order_item.payment_price

异常处理

  • 网络异常:显示”网络异常,请稍后重试”提示,支持下拉刷新重试
  • 无订单数据:显示”暂无订单”空状态
  • 订单数据加载失败:显示”加载失败,请重试”提示,支持重试

验收标准

  1. ✅ Tab导航能够正确显示5个状态,每个Tab显示订单数量
  2. ✅ 当前选中Tab字体高亮+蓝色,未选中为默认灰色
  3. ✅ 点击Tab能够切换订单列表数据
  4. ✅ 订单卡片能够正确显示所有字段信息
  5. ✅ 服务时间能够正确格式化显示(今天/明天/其他日期)
  6. ✅ 客户备注超过2行时能够折叠/展开
  7. ✅ 支持下拉刷新、上拉加载更多
  8. ✅ 点击订单卡片能够跳转到订单详情页
  9. ✅ 订单状态数量能够实时更新

4.2.2 {功能点名称 - 例如:订单详情}

功能描述
{例如:订单详情页展示订单完整信息,包括服务信息、客户信息、师傅信息、订单信息、订单操作按钮等。}

用户故事
作为{门店店主},我希望{能够查看订单的详细信息},以便{了解订单全貌,进行订单操作}。

功能规则

  1. 订单详情展示规则

    • 服务信息:服务名称、服务时长、服务时间、服务地址
    • 客户信息:客户姓名、联系方式、客户备注
    • 师傅信息(仅当已指派师傅时显示):
      • 接单师傅:取worker_user.name
      • 联系师傅:取worker_user.phone_mob
      • 当前等级:取worker_user.level_id,需要转换为等级名称显示(如”中级护理师”)
      • 接单时间:前端统一展示为”MM月dd日 HH:mm”格式,例如:12月29日 15:02
    • 订单信息
      • 订单编号:取work_order_info.order_no,文本完整展示,不截断;点击【复制】按钮,复制成功toast”已复制”
      • 订单收入:当前订单师傅预计总收入,含固定收入与上门费等合计,保留1位小数
      • 收入说明文案:固定展示文案等运营那边确认后定(待定)
      • 要求到达:默认比客户预计的上门时间早10分钟
      • 客户期望到达:取work_order_info.appointment_date + appointment_time,展示用户下单时预定的服务开始–结束时间
      • 阶段时间:抢单、到达、服务、完成,这几个时间以护理师实际点击提交为准,前端统一展示为”MM-dd HH:mm”格式,例如:12-29 15:02。未完成的阶段显示”–”
  2. 订单操作按钮规则(根据订单状态显示不同按钮):

    • 待接单状态
      • 【取消订单】按钮:点击需二次确认弹窗,确认后订单状态更新为已取消并从当前列表移除
      • 【联系客户】按钮:点击直接调用系统拨号
      • 【指派师傅】按钮:点击按钮进入指派弹窗,选择可用师傅后更新接单信息
    • 待转派状态
      • 【转派订单】按钮:点击按钮触发师傅弹窗,完成后当前师傅信息更新为新师傅,并记录转派时间
    • 待上门状态
      • 底部整条按钮展示为「X分钟后开始」(倒计时),或「已到预约时间,尽快上门」(已超时)
      • 按钮为禁用态,仅做提示,无点击事件
    • 服务中状态
      • 展示距离服务结束的倒计时,实时按本地时间刷新
      • 显示”剩余X分钟”或”已超时X分钟”
  3. 倒计时功能规则

    • 待上门倒计时
      • 当前时间 < expected_arrive_time:底部整条按钮展示为「X分钟后开始」,用分钟倒计时,实时刷新
      • 当当前时间 ≥ expected_arrive_time 且 service_start_time 为空:底部按钮文案切换为「已到预约时间,尽快上门」,不再显示倒计时
      • 进入详情页时按当前时间重新计算剩余时间;若停留在该页面,文案每分钟自动更新一次
    • 服务中倒计时
      • 根据服务时长字段(单位:分钟,如120分钟)计算本次服务计划结束时间:计划结束时间 = 服务开始时间 + 服务时长
      • 当前时间 < 计划结束时间时,展示”剩余X分钟”
      • 当前时间 ≥ 计划结束时间且师傅未点击”结束服务”时,展示”已超时X分钟”
    • 倒计时计算规则
      • 不依赖setInterval递减,而是依赖系统时间差
      • onShow时强制重算,防止后台挂起导致计时偏差

数据来源

  • 接口GET /workorder/workOrder/{orderId}
  • 数据表
    • work_order_info(工单主表)
    • work_order_item(工单明细表)
    • worker_user(师傅表)
  • 字段映射
    • 订单编号:work_order_info.order_no
    • 订单收入:work_order_info.payment_price(需计算固定收入+上门费)
    • 要求到达:work_order_info.expected_arrive_time(如果不存在,需计算:appointment_time - 10分钟)
    • 客户期望到达:work_order_info.appointment_date + appointment_time
    • 阶段时间:work_order_info.accept_time(抢单)、work_order_info.arrive_time(到达)、work_order_info.service_start_time(服务)、work_order_info.service_end_time(完成)
    • 师傅姓名:worker_user.name
    • 师傅电话:worker_user.phone_mob(注意:不是phone字段)
    • 师傅等级:worker_user.level_id(需要转换为等级名称)

异常处理

  • 订单不存在:提示”订单不存在”,返回上一页
  • 订单数据加载失败:显示”加载失败,请重试”提示,支持重试
  • 倒计时计算异常:显示”–”,不影响其他功能

验收标准

  1. ✅ 订单详情页能够正确显示所有信息模块(服务信息、客户信息、师傅信息、订单信息)
  2. ✅ 订单编号能够正确显示,点击复制按钮能够复制成功并提示
  3. ✅ 阶段时间能够正确格式化显示,未完成的阶段显示”–”
  4. ✅ 根据订单状态能够正确显示不同的操作按钮
  5. ✅ 待上门倒计时能够正确计算和显示,每分钟自动更新
  6. ✅ 服务中倒计时能够正确计算和显示,实时刷新
  7. ✅ 倒计时在onShow时能够强制重算,防止后台挂起导致计时偏差
  8. ✅ 点击操作按钮能够正确执行相应操作(取消订单、联系客户、指派师傅等)

4.3 {模块名称 - 例如:我的模块}

4.3.1 {功能点名称 - 例如:门店信息展示}

功能描述
{例如:我的页面顶部展示门店信息,包括门店名称、身份标签、评分等。}

用户故事
作为{门店店主},我希望{能够查看门店基本信息},以便{了解门店状态}。

功能规则

  1. 门店名称显示规则

    • 当前登录门店/商户名称,与账号绑定的主门店名
    • 最多14个汉字(暂定),超出以「…」截断
    • 点击右侧小三角展开门店选择弹层
  2. 身份标签显示规则

    • 枚举:门店店主、门店店员
    • 看设计那边是做成一张图还是背景图
  3. 店家评分显示规则

    • 显示历史总得分,0-5分,保留一位小数
    • 无点击交互仅展示
    • 计算方式:店内护理师评分总和/护理师人数

数据来源

  • 接口GET /mall/shop/info?shopId=xxx
  • 数据表
    • shop_info(门店信息表)
    • worker_user(护理师表)
  • 字段映射
    • 门店名称:shop_info.shop_name
    • 身份标签:根据用户角色判断(门店店主/门店店员)
    • 店家评分:计算SUM(worker_user.score) / COUNT(worker_user.id),限制worker_user.shop_id = shopIdworker_user.status = 可用

异常处理

  • 门店信息加载失败:显示”加载失败,请重试”提示
  • 评分计算异常:显示”–”

验收标准

  1. ✅ 门店名称能够正确显示,超出14个汉字时以「…」截断
  2. ✅ 点击右侧小三角能够展开门店选择弹层
  3. ✅ 身份标签能够正确显示(门店店主/门店店员)
  4. ✅ 店家评分能够正确计算和显示,保留一位小数

5. 非功能需求 (Non-Functional Requirements)

5.1 性能需求

明确性能指标要求

  • 页面加载时间

    • 首页加载时间 < 2秒
    • 订单列表加载时间 < 1秒
    • 订单详情加载时间 < 500ms
  • 接口响应时间

    • 订单列表查询:< 1秒
    • 订单详情查询:< 500ms
    • 数据统计查询:< 2秒(可考虑缓存)
  • 列表滚动性能

    • 列表滚动流畅,60fps
    • 支持分页加载,每页10-20条

5.2 兼容性需求

明确兼容性要求

  • 平台兼容

    • 微信小程序(iOS、Android)
    • 支持微信版本:7.0+
  • 设备兼容

    • iOS 12.0+
    • Android 8.0+
  • 屏幕适配

    • 支持不同屏幕尺寸(iPhone SE、iPhone 12、iPhone 14 Pro Max等)
    • 支持横竖屏切换(如需要)

5.3 安全性需求

明确安全性要求

  • 数据安全

    • 所有接口需要Token认证
    • 敏感数据(如手机号)需要脱敏显示
    • 订单操作需要权限校验
  • 多租户隔离

    • 所有接口都需要校验tenant_id,确保数据隔离
    • 店铺隔离:所有业务接口都需要校验shop_id,确保只能操作当前门店的数据

5.4 可用性需求

明确可用性要求

  • 错误处理

    • 网络异常时显示友好提示,支持重试
    • 数据加载失败时显示空状态,支持重试
    • 操作失败时显示明确错误提示
  • 空状态处理

    • 所有列表页需封装空状态组件,区分”无网络”、”无数据”、”加载失败”三种状态
  • 降级方案

    • 若用户拒绝定位权限,”距离优先”排序置灰或降级为默认排序
    • 若门店坐标缺失,距离计算返回默认值或提示”距离未知”

6. 数据统计需求 (Data Statistics Requirements)

6.1 数据指标定义

明确需要统计的数据指标

指标名称 指标定义 计算方式 数据来源
访客数 今日访问小程序/门店的UV数 统计今日访问小程序的独立用户数 mall_visit_log
成交单量 今日已支付订单数 统计order_info表下限制同一个sale_shop_id,且order_type为1,2,3,4,5的所有is_pay状态=1的订单数量 order_info
成交金额 今日已支付订单的实收金额(不含退款) 统计今日已支付订单的payment_price总和,单位元,保留2位小数 order_info
待接单数 进入工单池但尚未被护理师接单的服务单数 统计work_order_info表中status='待接单'的订单数量 work_order_info
待服务数 已接单但服务未开始的服务单数 统计work_order_info表中status='待服务'的订单数量 work_order_info
服务中数 服务已开始尚未结束的服务单数 统计work_order_info表中status='服务中'的订单数量 work_order_info

6.2 数据展示规则

明确数据展示的格式和规则

  • 访客数

    • 显示今日UV数
    • 下行文案显示【昨日 X】
    • 点击跳转”数据”页面
  • 成交单量

    • 显示今日已支付订单数
    • 下行文案显示【昨日 X】
    • 点击跳转”数据”页面
  • 成交金额

    • 今日已支付订单的实收金额(不含退款),单位元,保留2位小数
    • 超10万时用【1.2万】格式
    • 点击跳转”数据”页面

6.3 数据更新频率

明确数据更新的频率

  • 实时数据:订单状态数量、待办事项数量(每30秒轮询一次或使用WebSocket推送)
  • 准实时数据:访客数、成交单量、成交金额(每小时更新一次)
  • 历史数据:昨日数据(每天凌晨更新)

7. 交互设计说明 (Interaction Design)

7.1 页面跳转规则

明确页面之间的跳转关系

来源页面 触发操作 目标页面 跳转方式 传递参数
首页 点击搜索框 搜索结果页 uni.navigateTo keyword, type
首页 点击Banner 配置的URL uni.navigateTo / uni.navigateToMiniProgram -
订单大厅 点击订单卡片 订单详情页 uni.navigateTo orderId
我的页面 点击数据统计项 数据页面 uni.navigateTo type
我的页面 点击待办项 对应列表页 uni.navigateTo status

7.2 交互反馈规则

明确用户操作的反馈方式

  • 点击反馈

    • 按钮点击:显示点击态(颜色变化或阴影效果)
    • 列表项点击:显示点击态,跳转页面
  • 加载反馈

    • 页面加载:显示Loading动画
    • 列表加载:显示下拉刷新动画、上拉加载动画
    • 操作提交:显示Loading提示,防止重复提交
  • 成功反馈

    • 操作成功:显示Toast提示(如”抢单成功”、”切换成功”)
    • 数据更新:自动刷新页面或列表
  • 失败反馈

    • 网络异常:显示Toast提示”网络异常,请稍后重试”,支持重试
    • 操作失败:显示Toast提示具体错误信息
    • 数据加载失败:显示空状态,支持重试

7.3 弹窗交互规则

明确弹窗的显示和关闭规则

  • 确认弹窗

    • 取消订单:点击”取消订单”按钮,弹出二次确认弹窗,确认后执行操作
    • 抢单确认:点击”抢单”按钮,弹出确认弹窗,确认后执行抢单操作
  • 选择弹窗

    • 门店切换:点击门店名称或小三角,弹出门店选择弹层,选择后关闭弹层并刷新页面
    • 指派师傅:点击”指派师傅”按钮,弹出师傅选择弹层,选择后关闭弹层并更新订单
  • 信息弹窗

    • 订单详情:点击订单卡片,跳转到订单详情页(非弹窗)

8. 验收标准 (Acceptance Criteria)

8.1 功能验收标准

明确每个功能的验收标准,便于测试和验收

通用验收标准

  1. ✅ 所有功能按照需求文档实现,无遗漏
  2. ✅ 所有交互按照交互设计实现,体验流畅
  3. ✅ 所有数据按照数据统计需求正确计算和显示
  4. ✅ 所有异常情况按照异常处理规则正确处理
  5. ✅ 所有性能指标达到性能需求要求

模块验收标准

  • 首页模块

    • ✅ 搜索框默认显示”全域用户运营课程”文案
    • ✅ 点击搜索框能够跳转到搜索结果页
    • ✅ Banner能够正确显示和轮播
    • ✅ 点击Banner能够正确跳转
  • 订单大厅模块

    • ✅ Tab导航能够正确显示5个状态,每个Tab显示订单数量
    • ✅ 订单列表能够正确显示所有字段
    • ✅ 订单详情页能够正确显示所有信息
    • ✅ 订单操作按钮能够正确执行操作
    • ✅ 倒计时功能能够正确计算和显示
  • 我的模块

    • ✅ 门店信息能够正确显示
    • ✅ 数据统计能够正确计算和显示
    • ✅ 待办事项能够正确统计和显示
    • ✅ 门店切换功能能够正常工作

8.2 测试验收标准

明确测试验收的标准

  • 功能测试

    • 所有功能点测试通过率100%
    • 所有异常情况测试通过率100%
  • 兼容性测试

    • iOS 12.0+ 测试通过
    • Android 8.0+ 测试通过
    • 微信小程序7.0+ 测试通过
  • 性能测试

    • 页面加载时间达到性能需求要求
    • 接口响应时间达到性能需求要求
    • 列表滚动性能达到60fps

9. 版本规划 (Version Planning)

9.1 本次迭代范围

明确本次迭代包含的功能范围

V1.0.0 版本包含

  • 首页模块(搜索、Banner)
  • 订单大厅模块(订单列表、订单详情、订单操作、筛选排序、倒计时)
  • 我的模块(门店信息、数据统计、待办事项、课程列表、退出登录)

9.2 后续迭代规划

明确后续迭代的功能规划

V1.1.0 版本规划(预计{YYYY-MM-DD}上线):

  • 数据报表详细分析
  • 客户管理模块
  • 商品管理模块

V1.2.0 版本规划(预计{YYYY-MM-DD}上线):

  • 消息通知功能
  • 评价管理功能
  • 更多数据统计功能

10. 附录 (Appendix)

10.1 术语表

定义文档中使用的专业术语

术语 定义
UV Unique Visitor,独立访客数
PV Page View,页面浏览量
OSS Object Storage Service,对象存储服务
SSE Server-Sent Events,服务器推送事件
MQTT Message Queuing Telemetry Transport,消息队列遥测传输协议
Redis GEO Redis地理位置数据结构,用于存储和查询地理位置信息
Haversine公式 计算地球表面两点间距离的公式

10.2 参考文档

列出参考的相关文档

10.3 变更记录

记录需求变更的历史

变更日期 变更内容 变更原因 变更人
{YYYY-MM-DD} {变更内容描述} {变更原因} {姓名}

文档版本:V1.0.0
创建时间:{YYYY-MM-DD}
最后更新:{YYYY-MM-DD}
文档状态:✅ 待评审 / ✅ 评审通过 / ✅ 开发中 / ✅ 已完成

作者:Ddd4j  创建时间:2026-01-10 17:57
最后编辑:Ddd4j  更新时间:2026-01-11 19:30