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.
服务评价相关功能
模块编码:evaluation
端侧:微信小程序
关联文档:01-模块划分.md(v4.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 |
评分留言 |
在线报修(验收完成后触发) |
交互流程要求
- 页面加载流程:页面加载时获取待评价工单列表→显示骨架屏→渲染待评价数量和工单列表
- 查询/筛选交互流程:无手动筛选,自动过滤待评价工单
- 表单填写与提交流程:无表单提交操作
- 弹窗/弹层交互流程:无弹窗
- 行内操作流程:点击「去评价」→跳转评分留言页
- 异常与错误处理:列表加载失败显示重试;无待评价工单显示空状态
- 联动/级联交互:评价完成后列表自动移除已评价项
- 权限控制交互表现:仅报修人可访问;待评价工单自动过滤展示
前端硬性约束
- 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=true,showArrow=true |
| 评价状态标签 |
uni-tag |
type: warning(待评价)/success(已评价) |
| 去评价按钮 |
button |
type="primary",size="mini" |
| 空状态 |
uni-section |
插槽自定义空状态插图与文案 |
校验规则
| 字段 |
规则 |
错误提示 |
| 工单列表 |
加载失败允许重试 |
"加载失败,请重试" |
| 评价时效 |
验收后7天内可评价 |
"评价已超期" |
响应式布局
- 适配机型:iPhone SE(375px)~ iPad mini(768px),卡片宽度自适应
- 横竖屏适配策略:竖屏单列卡片;横屏双列卡片展示
- 手势交互规范:工单项可点击区域≥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端) |
交互流程要求
- 页面加载流程:页面加载时获取工单信息→渲染工单摘要卡片
- 查询/筛选交互流程:无筛选操作
- 表单填写与提交流程:点击星星选择评分→可选点击评分维度标签→输入留言→可选上传图片→开关匿名评价→点击提交评价→确认弹窗→提交成功
- 弹窗/弹层交互流程:点击拍照弹出选择(拍照/相册);提交前弹出确认弹窗"确认提交评价?提交后不可修改"
- 行内操作流程:选择评分→输入留言→上传图片→设置匿名→提交
- 异常与错误处理:图片上传失败提示重传;提交失败显示重试;评分≤3分触发低分预警事件
- 联动/级联交互:评分与提交按钮联动(必须选择评分);匿名开关与提交数据联动
- 权限控制交互表现:仅报修人可评价;评价不可修改
前端硬性约束
- 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-picker 的 onProgress 回调显示上传进度条;支持多图队列上传
- 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 SE(375px)~ iPad mini(768px),表单宽度自适应
- 横竖屏适配策略:竖屏垂直布局;横屏评分与输入并排
- 手势交互规范:星级评分每颗星≥44px;提交按钮≥44px
- 安全区域:底部提交按钮适配底部安全区
页面3:历史评价
- 页面路径:
/pages/evaluation/history
- 适用角色:报修人
- 页面元素:
- 查询条件:
- 列表字段:
| 字段 |
类型 |
说明 |
| 工单编号 |
文本 |
报修工单号 |
| 评分 |
数字 |
1~5分 |
| 评价内容 |
文本 |
留言摘要 |
| 评价时间 |
时间 |
提交评价时间 |
| 回复状态 |
标签 |
已回复/未回复 |
- 界面布局:
- 顶部:筛选条件 + 统计信息
- 中部:评价卡片列表,每张卡片显示评分、留言、回复
- 底部:无操作栏
- 操作按钮:
需求追溯:
| 功能点编号 |
功能名称 |
文档来源 |
后续服务 |
关联功能 |
| MP-EV-03 |
历史评价 |
02-小程序端 §7 |
无 |
服务评价(Web端) |
交互流程要求
- 页面加载流程:页面加载时获取历史评价列表→渲染筛选条件和评价卡片
- 查询/筛选交互流程:评分筛选(全部/好评/中评/差评)→过滤列表;时间筛选→过滤列表;下拉刷新
- 表单填写与提交流程:无表单提交操作
- 弹窗/弹层交互流程:点击查看详情→弹出评价详情弹窗(含物业回复内容)
- 行内操作流程:点击查看详情→查看评价详情及物业回复
- 异常与错误处理:列表加载失败显示重试;无评价显示空状态
- 联动/级联交互:筛选条件与列表数据联动
- 权限控制交互表现:仅报修人可查看自己的历史评价
前端硬性约束
- 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 SE(375px)~ iPad mini(768px),卡片宽度自适应
- 横竖屏适配策略:竖屏单列卡片;横屏双列卡片展示
- 手势交互规范:评价项可点击区域≥44px
- 安全区域:底部适配底部安全区
业务规则
- 评价触发:工单完工验收通过后自动触发评价通知(事件:ORDER_COMPLETED)
- 评价时效:验收通过后7天内可评价,超期不可评价
- 低分预警:评分≤3分触发 LOW_SCORE_EVALUATION 事件,通知主管
- 评价匿名:支持匿名评价,物业公司无法看到评价人信息
- 评价不可修改:提交后不可修改评价内容
- 物业回复:物业公司可在Web端查看评价并回复,回复内容在小程序端展示
- 图片水印:评价图片自动添加时间水印
- 图片数量:单次评价最多上传9张图片
- 评分维度:支持多维度评分(响应速度/服务态度/维修质量/整体满意度)
状态流转
评价状态
待评价 → 已评价(显示物业回复)
↓
超期未评价 → 关闭评价入口
事件触发
工单验收通过 → ORDER_COMPLETED 事件 → 触发评价通知
评价提交(≤3分)→ LOW_SCORE_EVALUATION 事件 → 通知主管
评价提交 → 评价数据写入评价模块 → 物业公司Web端可查看回复