You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

14 KiB

服务评价相关功能

模块编码evaluation 端侧:微信小程序 关联文档01-模块划分.mdv4.0、02-功能清单-小程序端.md§7、03-业务流转逻辑-小程序端.md§7、05-接口规范.md§9、06-项目技术要求.md 强制规范遵循 07-前端界面开发规范.md

功能概览

项目 说明
菜单名称 服务评价
子菜单 待评价列表 / 评分留言 / 历史评价
功能编号 MP-EV-01 ~ MP-EV-03
权限编码 evaluation:list:*

页面清单

页面1待评价列表

  • 页面路径/pages/evaluation/pending
  • 适用角色:报修人
  • 页面元素
    • 待评价工单列表
    • 工单摘要信息
    • 评价入口
    • 提醒红点/数字标记
  • 查询条件:无(自动过滤待评价工单)
  • 列表字段
字段 类型 说明
工单编号 文本 报修工单号
报修类型 标签 报修分类
报修描述 文本 问题描述摘要
完工时间 时间 维修完成时间
维修人员 文本 处理人姓名
评价状态 标签 待评价/已评价
  • 界面布局
    • 顶部:待评价数量统计
    • 中部:工单卡片列表,每张卡片显示工单信息
    • 底部:无操作栏
  • 操作按钮
    • 「去评价」→ 跳转评分留言页

触发条件:工单完工验收后,系统自动推送评价通知给报修人

数据来源物业公司在Web/小程序端验收通过后触发评价事件ORDER_COMPLETED

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-EV-01 待评价列表 02-小程序端 §7 评分留言 在线报修(验收完成后触发)

交互流程要求

  1. 页面加载流程:页面加载时获取待评价工单列表→显示骨架屏→渲染待评价数量和工单列表
  2. 查询/筛选交互流程:无手动筛选,自动过滤待评价工单
  3. 表单填写与提交流程:无表单提交操作
  4. 弹窗/弹层交互流程:无弹窗
  5. 行内操作流程:点击「去评价」→跳转评分留言页
  6. 异常与错误处理:列表加载失败显示重试;无待评价工单显示空状态
  7. 联动/级联交互:评价完成后列表自动移除已评价项
  8. 权限控制交互表现:仅报修人可访问;待评价工单自动过滤展示

前端硬性约束

  • H1 防重复提交:列表加载时防重复请求;使用 pending 请求去重机制;点击「去评价」跳转时防重复跳转
  • H2 超时控制GET 请求超时 15s列表加载 >3s 时调用 wx.showLoading({ title: '加载中...', mask: true })
  • H3 二次确认:无危险操作,无需二次确认
  • H4 脏数据检测:本页面为列表查看页,无需表单脏数据检测
  • H7 文件上传:无上传操作
  • H8 操作反馈:加载成功无提示(静默刷新);加载失败调用 wx.showToast({ title: '加载失败', icon: 'none' }) 并显示重试按钮;网络异常时提示"网络异常,请检查网络后重试"
  • 通用约束:使用 uni-ui 组件库;所有可点击元素触控区域 ≥44px去评价按钮 ≥44px

组件规范

元素 组件 配置参数
待评价数量 uni-badge :content="count"type="warning"
工单列表 uni-list + uni-list-item clickable=trueshowArrow=true
评价状态标签 uni-tag type: warning(待评价)/success(已评价)
去评价按钮 button type="primary"size="mini"
空状态 uni-section 插槽自定义空状态插图与文案

校验规则

字段 规则 错误提示
工单列表 加载失败允许重试 "加载失败,请重试"
评价时效 验收后7天内可评价 "评价已超期"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px卡片宽度自适应
  • 横竖屏适配策略:竖屏单列卡片;横屏双列卡片展示
  • 手势交互规范工单项可点击区域≥44px去评价按钮≥44px
  • 安全区域:底部适配底部安全区

页面2评分留言

  • 页面路径/pages/evaluation/rate
  • 适用角色:报修人
  • 页面元素
    • 工单信息摘要卡片
    • 五分制评分组件(
    • 评分维度标签(响应速度/服务态度/维修质量/整体满意度)
    • 文字留言输入框多行文本最多200字
    • 图片上传区≤9张
    • 匿名评价开关
    • 提交按钮
  • 查询条件:无
  • 列表字段:无
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:评分星星 + 维度标签 + 留言框 + 图片上传
    • 底部:匿名开关 + 提交按钮
  • 操作按钮
    • 「选择评分」→ 点击星星选择1~5分
    • 「拍照」→ 调用相机拍照评价凭证
    • 「提交评价」→ 提交评价权限evaluation:list:create

评价规则

  • 五分制评分1分=非常不满意2分=不满意3分=一般4分=满意5分=非常满意
  • 评分≤3分时触发低分评价事件LOW_SCORE_EVALUATION通知主管
  • 提交后不可修改评价
  • 评价数据写入评价模块物业公司Web端可查看和回复

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-EV-02 评分留言 02-小程序端 §7 物业公司查看回复 服务评价Web端

交互流程要求

  1. 页面加载流程:页面加载时获取工单信息→渲染工单摘要卡片
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:点击星星选择评分→可选点击评分维度标签→输入留言→可选上传图片→开关匿名评价→点击提交评价→确认弹窗→提交成功
  4. 弹窗/弹层交互流程:点击拍照弹出选择(拍照/相册);提交前弹出确认弹窗"确认提交评价?提交后不可修改"
  5. 行内操作流程:选择评分→输入留言→上传图片→设置匿名→提交
  6. 异常与错误处理图片上传失败提示重传提交失败显示重试评分≤3分触发低分预警事件
  7. 联动/级联交互:评分与提交按钮联动(必须选择评分);匿名开关与提交数据联动
  8. 权限控制交互表现:仅报修人可评价;评价不可修改

前端硬性约束

  • H1 防重复提交:提交按钮点击后立即 loading=true + disabled=true 防止重复提交;使用 pending 请求去重机制(提交请求未返回前禁用按钮);支持 wx.requestTask.abort() 取消前一次未完成的提交
  • H2 超时控制GET 请求超时 15s、POST 请求超时 30s、文件上传超时 60s上传耗时 >3s 时调用 wx.showLoading({ title: '上传中...', mask: true })
  • H3 二次确认:提交评价前必须调用 wx.showModal({ title: '确认提交评价', content: '确认提交评价?提交后不可修改。', confirmText: '确认', cancelText: '取消' }) 进行二次确认,明确告知操作后果(不可修改)
  • H4 脏数据检测:页面进入时对表单数据做 deep clone 快照(评分、留言、图片等);用户编辑过程中维护 isDirty 状态;onUnload / onBackPress 生命周期中检测到 isDirty 时弹出 wx.showModal 提示"未保存的评价内容将丢失,确定离开吗?",用户确认后才允许离开
  • H7 文件上传:单张图片 ≤10MB超出时提示"图片大小不能超过10MB"并阻止上传;使用 uni-file-pickeronProgress 回调显示上传进度条;支持多图队列上传
  • H8 操作反馈:提交成功调用 wx.showToast({ title: '评价提交成功', icon: 'success' });网络异常时调用 wx.showToast({ title: '网络异常,请检查网络后重试', icon: 'none' }) 并提供重试按钮低分预警≤3分提示"已通知主管关注"
  • 通用约束:使用 uni-ui 组件库;星级评分每颗星 ≥44px提交按钮 ≥44px

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
星级评分 uni-rate :max="5":value="score":size="28"
评分维度标签 uni-data-checkbox :localdata="dimensionList"multiple=true
留言输入 uni-easyinput type="textarea"maxlength="200":showWordLimit="true"
图片上传 uni-file-picker limit="9"file-mediatype="image"
匿名开关 switch @change="onAnonymousChange"
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
评分 必选1~5分 "请选择评分"
留言 最多200字 "留言不能超过200字"
图片 最多9张 "评价图片最多上传9张"
评价时效 验收后7天内 "评价已超期"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略:竖屏垂直布局;横屏评分与输入并排
  • 手势交互规范星级评分每颗星≥44px提交按钮≥44px
  • 安全区域:底部提交按钮适配底部安全区

页面3历史评价

  • 页面路径/pages/evaluation/history
  • 适用角色:报修人
  • 页面元素
    • 历史评价列表
    • 评价详情查看
    • 物业回复内容展示
  • 查询条件
    • 评分筛选(全部/好评/中评/差评)
    • 时间筛选
  • 列表字段
字段 类型 说明
工单编号 文本 报修工单号
评分 数字 1~5分
评价内容 文本 留言摘要
评价时间 时间 提交评价时间
回复状态 标签 已回复/未回复
  • 界面布局
    • 顶部:筛选条件 + 统计信息
    • 中部:评价卡片列表,每张卡片显示评分、留言、回复
    • 底部:无操作栏
  • 操作按钮
    • 「查看详情」→ 查看评价详情及物业回复

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-EV-03 历史评价 02-小程序端 §7 服务评价Web端

交互流程要求

  1. 页面加载流程:页面加载时获取历史评价列表→渲染筛选条件和评价卡片
  2. 查询/筛选交互流程:评分筛选(全部/好评/中评/差评)→过滤列表;时间筛选→过滤列表;下拉刷新
  3. 表单填写与提交流程:无表单提交操作
  4. 弹窗/弹层交互流程:点击查看详情→弹出评价详情弹窗(含物业回复内容)
  5. 行内操作流程:点击查看详情→查看评价详情及物业回复
  6. 异常与错误处理:列表加载失败显示重试;无评价显示空状态
  7. 联动/级联交互:筛选条件与列表数据联动
  8. 权限控制交互表现:仅报修人可查看自己的历史评价

前端硬性约束

  • H1 防重复提交:评分筛选/时间筛选切换时防重复请求;列表加载期间禁用筛选操作;使用 pending 请求去重下拉刷新需防重复触发refreshing 标志位)
  • H2 超时控制GET 请求超时 15s列表加载 >3s 时调用 wx.showLoading({ title: '加载中...', mask: true })
  • H3 二次确认:无危险操作,无需二次确认
  • H4 脏数据检测:本页面为列表查看页,无需表单脏数据检测
  • H7 文件上传:无上传操作
  • H8 操作反馈:加载成功无提示(静默刷新);加载失败调用 wx.showToast({ title: '加载失败', icon: 'none' }) 并显示重试按钮;网络异常时提示"网络异常,请检查网络后重试"
  • 通用约束:使用 uni-ui 组件库;所有可点击元素触控区域 ≥44px下拉刷新需防重复触发refreshing 标志位)

组件规范

元素 组件 配置参数
评分筛选 uni-segmented-control :values="['全部','好评','中评','差评']"
时间筛选 uni-datetime-picker type="date"fields="month"
评价列表 uni-list + uni-list-item clickable=true
评分显示 uni-rate :size="14":readonly="true"
回复状态标签 uni-tag type: success(已回复)/warning(未回复)
详情弹窗 uni-popup type="bottom",展示评价详情+物业回复
下拉刷新 uni-refresher @onRefresh回调

校验规则

字段 规则 错误提示
评价列表 加载失败允许重试 "加载失败,请重试"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px卡片宽度自适应
  • 横竖屏适配策略:竖屏单列卡片;横屏双列卡片展示
  • 手势交互规范评价项可点击区域≥44px
  • 安全区域:底部适配底部安全区

业务规则

  1. 评价触发工单完工验收通过后自动触发评价通知事件ORDER_COMPLETED
  2. 评价时效验收通过后7天内可评价超期不可评价
  3. 低分预警评分≤3分触发 LOW_SCORE_EVALUATION 事件,通知主管
  4. 评价匿名:支持匿名评价,物业公司无法看到评价人信息
  5. 评价不可修改:提交后不可修改评价内容
  6. 物业回复物业公司可在Web端查看评价并回复回复内容在小程序端展示
  7. 图片水印:评价图片自动添加时间水印
  8. 图片数量单次评价最多上传9张图片
  9. 评分维度:支持多维度评分(响应速度/服务态度/维修质量/整体满意度)

状态流转

评价状态

待评价 → 已评价(显示物业回复)
    ↓
  超期未评价 → 关闭评价入口

事件触发

工单验收通过 → ORDER_COMPLETED 事件 → 触发评价通知
评价提交≤3分→ LOW_SCORE_EVALUATION 事件 → 通知主管
评价提交 → 评价数据写入评价模块 → 物业公司Web端可查看回复