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.

20 KiB

服务评价

模块编码evaluation 端侧Web专属仅医院账号 关联文档01-模块划分 §4.4 / 02-功能清单-医院 §4 / 03-业务流转逻辑-医院 §4 / 05-接口规范 §9.2 强制规范遵循 07-前端界面开发规范.md

功能概览

项目 说明
菜单名称 服务评价
子菜单 发起评价、评价汇总查看、评价列表查看
功能编号 HO-EV-01 ~ HO-EV-03
权限编码前缀 evaluation:list:*

重要:医院账号是评价的发起方,物业公司是评价的接收和回复方


页面1发起评价页

页面编号HO-EV-01-P01 端侧归属Web专属 页面路径/evaluation/create

界面布局

┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 服务评价 > 发起评价                                       │
├──────────────────────────────────────────────────────────────────┤
│ ── 评价类型 ──                                                    │
│ ○ 报修服务  ○ 巡检服务  ○ 保洁服务  ○ 综合评价                     │
├──────────────────────────────────────────────────────────────────┤
│ ── 评价对象 ──                                                    │
│ 关联物业公司:[▼]                                                 │
│ 关联服务:[▼] (选择具体工单/巡检任务/保洁任务)                      │
├──────────────────────────────────────────────────────────────────┤
│ ── 评分 ──                                                        │
│ ★★★★★  5分-非常满意                                              │
│ ★★★★☆  4分-满意                                                  │
│ ★★★☆☆  3分-一般                                                  │
│ ★★☆☆☆  2分-不满意                                                │
│ ★☆☆☆☆  1分-非常不满意                                             │
├──────────────────────────────────────────────────────────────────┤
│ ── 评价内容 ──                                                    │
│ 留言:[____________________________]                              │
│ 图片:[+点击上传] (≤5张)                                          │
├──────────────────────────────────────────────────────────────────┤
│                                         [取消]  [提交评价]        │
└──────────────────────────────────────────────────────────────────┘

表单字段

字段名 控件类型 必填 默认值 数据来源 校验规则
评价类型 单选按钮 固定选项 报修/巡检/保洁/综合
关联物业公司 下拉单选 本医院关联物业公司
关联服务 下拉单选 条件 物业公司业务数据 非综合评价时必填
评分 星级选择 固定选项 1~5分
留言 多行文本 自填 最大500字
图片 图片上传 上传 ≤5张

通知触发

触发操作 通知对象 通知方式 消息模板 文档来源
低评分(≤2分) 物业主管+管理员 小程序推送 低评分评价通知 03-医院 §4.1 / 03-物业公司 §6
新评价 物业公司 物业可查看评价

评分触发规则

评分 含义 物业端触发动作 文档来源
5分 非常满意 03-医院 §4.1
4分 满意 03-医院 §4.1
3分 一般 主管关注 03-医院 §4.1
2分 不满意 自动通知物业主管,要求回复 03-医院 §4.1
1分 非常不满意 通知主管+管理员24h内必须回复 03-医院 §4.1

API端点

页面操作 API路径 方法 说明
发起评价 /api/v1/evaluations POST

交互流程要求

  1. 页面加载流程:进入页面 → 渲染空评价表单 → 加载下拉选项(物业公司列表、服务类型)
  2. 查询/筛选交互流程:不适用
  3. 表单填写与提交流程:选择评价类型 → 选择物业公司 → 选择关联服务(综合评价时跳过)→ 评分1-5星→ 填写留言(可选)→ 上传图片可选≤5张→ 点击"提交评价" → 校验通过后调用API → 提交成功提示"评价提交成功",低评分自动触发通知
  4. 弹窗/抽屉交互流程:不适用(表单在页面内直接展示)
  5. 行内操作流程:选择评价类型后联动显示对应的服务选择项;评分选择后显示对应文字描述
  6. 异常与错误处理必填项未填时表单校验不通过提交失败显示el-message错误提示图片上传失败提示"图片上传失败"
  7. 联动/级联交互:评价类型选择→关联物业公司选择→关联服务选择(级联);评价类型为"综合评价"时隐藏关联服务选择;物业公司选择后动态加载该物业的服务数据
  8. 权限控制交互表现:仅医院账号可发起评价;无评价权限时隐藏"提交评价"按钮

组件规范

元素 组件 配置参数
评价类型 el-radio-group v-for遍历4种类型@change联动关联服务显示
关联物业公司 el-select placeholder="请选择物业公司"filterable@change加载服务数据
关联服务 el-select placeholder="请选择关联服务"filterablev-if="非综合评价"
评分 el-rate :max=5show-text:texts="['非常不满意','不满意','一般','满意','非常满意']"allow-half=false
留言 el-input type="textarea":rows=4maxlength=500show-word-limitplaceholder="请输入评价内容"
图片上传 el-upload action="/api/v1/files/upload":limit=5accept=".jpg,.jpeg,.png"list-type="picture-card":on-preview预览
取消按钮 el-button type="default"@click返回上一页
提交评价按钮 el-button type="primary":loading提交中

校验规则

字段 规则 错误提示
评价类型 required 请选择评价类型
关联物业公司 required 请选择关联物业公司
关联服务 required非综合评价时 请选择关联服务
评分 required 请选择评分
留言 maxlength=500 评价内容不能超过500个字符
图片 ≤5张 图片数量不能超过5张

响应式布局

断点 布局调整
≥1280px桌面端 表单居中展示宽度800px评分与文字描述水平排列
1024-1279pxPad横屏 表单宽度90%,评分与文字描述水平排列
768-1023pxPad竖屏 表单宽度100%,评分与文字描述纵向堆叠,图片上传区全宽

页面2评价汇总查看页

页面编号HO-EV-02-P01 端侧归属Web专属 页面路径/evaluation/dashboard

界面布局

┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 服务评价 > 评价汇总                                       │
├──────────────────────────────────────────────────────────────────┤
│ [时间选择]  本月 / 本季度 / 本年 / 自定义                          │
├──────────────────────────────────────────────────────────────────┤
│ [统计卡片区]                                                       │
│ ┌──────┐ ┌──────┐ ┌──────┐                                       │
│ │总评价│ │平均分│ │待回复│                                       │
│ │  45  │ │ 4.2  │ │  3   │                                       │
│ └──────┘ └──────┘ └──────┘                                       │
├──────────────────────────────────────────────────────────────────┤
│ [图表区]                                                          │
│ ┌────────────────────────┐ ┌────────────────────────┐           │
│ │ 评分趋势(折线图)       │ │ 各物业公司评分对比(柱状图)│           │
│ └────────────────────────┘ └────────────────────────┘           │
│ ┌────────────────────────┐                                       │
│ │ 星级分布(饼图)         │                                       │
│ └────────────────────────┘                                       │
└──────────────────────────────────────────────────────────────────┘

API端点

页面操作 API路径 方法 说明
汇总数据 /api/v1/evaluations/summary GET 本医院发起的评价汇总

交互流程要求

  1. 页面加载流程:进入页面 → 默认加载本月数据 → 调用评价汇总API → 渲染统计卡片 + 图表
  2. 查询/筛选交互流程:选择时间范围(本月/本季度/本年/自定义)→ 刷新汇总数据和图表
  3. 表单填写与提交流程:不适用(只读页面)
  4. 弹窗/抽屉交互流程:不适用
  5. 行内操作流程图表支持交互折线图hover显示具体数据柱状图点击可查看物业公司详情
  6. 异常与错误处理API请求失败显示el-message错误提示无数据时图表显示"暂无数据"
  7. 联动/级联交互:时间范围选择后所有统计卡片和图表同步刷新
  8. 权限控制交互表现:仅医院账号可查看本医院发起的评价汇总

组件规范

元素 组件 配置参数
时间选择 el-radio-group 本月/本季度/本年/自定义,@change刷新数据
自定义日期 el-date-picker type="daterange"v-if="自定义"
统计卡片 el-card shadow="hover"v-for遍历3个指标含数字和标签
评分趋势图 echarts 折线图,:xAxis=时间,:yAxis=平均分tooltipdataZoom
各物业公司评分对比图 echarts 柱状图,:xAxis=物业公司,:yAxis=平均分tooltip
星级分布图 echarts 饼图,:data=各星级占比tooltiplegend

校验规则

字段 规则 错误提示
自定义日期范围 结束日期≥开始日期 结束日期不能早于开始日期

响应式布局

断点 布局调整
≥1280px桌面端 统计卡片横排3列折线图与柱状图左右并排饼图全宽居中
1024-1279pxPad横屏 统计卡片横排3列折线图与柱状图上下排列饼图全宽
768-1023pxPad竖屏 统计卡片纵向堆叠所有图表纵向堆叠ECharts图表宽度100%自适应高度300px

页面3评价列表查看页

页面编号HO-EV-03-P01 端侧归属Web专属 页面路径/evaluation/list

查询条件

字段名 控件类型 必填 默认值 说明
评价类型 下拉单选 全部
评分 下拉单选 全部
物业公司 下拉单选 全部
日期范围 日期范围

列表字段

序号 字段名 列宽 支持排序 说明
1 评价类型 90px
2 关联服务 150px
3 物业公司 120px
4 评分 80px 星级展示
5 评价内容 200px
6 评价时间 140px 默认倒序
7 回复状态 80px 已回复/未回复
8 物业回复 200px
9 操作 80px 查看详情

操作按钮

按钮 权限编码 位置 显示条件 说明
查看详情 evaluation:list:view 行操作 始终 只读

角色差异化视图

角色 可见按钮 数据范围 备注
医院账号 查看 本医院发起的所有评价

API端点

页面操作 API路径 方法 说明
列表查询 /api/v1/evaluations GET 本医院发起的评价
详情 /api/v1/evaluations/{id} GET 含物业回复

交互流程要求

  1. 页面加载流程:进入页面 → 调用评价列表API → 渲染列表,默认按评价时间倒序
  2. 查询/筛选交互流程:选择评价类型/评分/物业公司/日期范围 → 点击"查询"按钮 → 刷新列表
  3. 表单填写与提交流程:不适用(只读页面)
  4. 弹窗/抽屉交互流程:点击"查看详情" → 弹出评价详情弹窗(含评价内容、图片、物业回复)
  5. 行内操作流程:点击"查看详情"弹出详情弹窗;评分列显示星级;回复状态列标签化
  6. 异常与错误处理API请求失败显示el-message错误提示列表为空显示el-empty
  7. 联动/级联交互筛选条件变化后分页重置为第1页
  8. 权限控制交互表现:医院账号仅查看本医院发起的评价

前端硬性约束

以下为本页面必须遵守的前端交互与体验硬性约束H=Hard Constraint

编号 约束项 级别 本页要求
H1 防重复提交 强制 列表查询/翻页期间显示loading状态并禁用查询/分页控件切换分页时abort上一页未完成请求"查看详情"弹窗防重复弹出
H2 请求超时 强制 GET列表请求设置15s超时GET详情请求设置15s超时
H3 操作确认 强制(不适用) 本页为只读列表查看页面,无删除/停用等危险操作,不涉及
H4 脏数据保护 强制(不适用) 本页无编辑表单,不涉及脏数据检测
H5 权限隔离表现 建议 仅展示本医院发起的评价数据;无evaluation:list:view权限时隐藏列表区域;不同角色可见的数据范围通过后端过滤体现
H6 批量操作限制 建议(不适用) 本页为只读列表页面,无批量操作,不涉及
H7 文件上传约束 建议(不适用) 本页无文件上传功能,不涉及
H8 反馈规范 建议 成功提示自动2s后消失(silent刷新);错误提示需手动关闭(duration=0);详情弹窗内图片预览成功/失败分别处理反馈

组件规范

元素 组件 配置参数
评价类型选择 el-select placeholder="请选择评价类型"clearable
评分选择 el-select placeholder="请选择评分"clearableoptions: 1-5分
物业公司选择 el-select placeholder="请选择物业公司"clearablefilterable
日期范围 el-date-picker type="daterange"start-placeholder="开始日期"end-placeholder="结束日期"
查询按钮 el-button type="primary"icon="Search"
重置按钮 el-button type="default"icon="Refresh"
评价列表 el-table stripeborder:default-sort="{prop: 'evaluationTime', order: 'descending'}"
评分列 el-rate :max=5disabledshow-score
回复状态列 el-tag :type根据状态配色已回复=success未回复=warning
查看详情按钮 el-button type="default"size="small"link样式icon="View"
评价详情弹窗 el-dialog title="评价详情"width="600px"
评价内容展示 el-descriptions :column=1border
评价图片 el-image v-for遍历:preview-src-list预览
物业回复展示 el-card shadow="never",含回复内容和回复时间
分页 el-pagination layout="total, sizes, prev, pager, next":page-sizes="[10,20,50]"

校验规则

字段 规则 错误提示
(无表单校验,仅查询条件)

响应式布局

断点 布局调整
≥1280px桌面端 查询条件区单行排列列表全字段展示详情弹窗600px
1024-1279pxPad横屏 查询条件区双行排列,隐藏"评价内容""物业回复"列查看详情详情弹窗80%宽度
768-1023pxPad竖屏 查询条件区纵向堆叠(仅保留评价类型/评分/物业公司),列表显示核心字段(评价类型/物业公司/评分/回复状态/操作),详情弹窗全屏宽度

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
HO-EV-01 发起评价 02-医院 §4 / 03-医院 §4.1 评价→通知物业公司 物业服务评价(查看/回复)
HO-EV-02 评价汇总查看 02-医院 §4 / 03-医院 §4.2 物业评价汇总看板(数据来源)
HO-EV-03 评价列表查看 02-医院 §4 / 03-医院 §4.2 物业评价列表(数据来源)

业务规则

  1. 医院是评价发起方医院账号对物业服务发起评分与留言物业公司查看和回复来源01 §6.1 / 03-医院 §4
  2. 评价类型:报修服务/巡检服务/保洁服务/综合评价来源03-医院 §4.1
  3. 关联服务:评价时需选择具体的工单/巡检任务/保洁任务综合评价除外来源03-医院 §4.1
  4. 低评分通知2分自动通知物业主管1分通知主管+管理员且24h内必须回复来源03-医院 §4.1
  5. 评价数据来源物业公司业务数据为只读引用不可修改来源03-医院 §4.1