# 服务监督 > 模块编码:service-supervision > 端侧:Web专属(仅医院账号) > 关联文档:01-模块划分 §4.3 / 02-功能清单-医院 §3 / 03-业务流转逻辑-医院 §3 / 05-接口规范 §9.2 > 强制规范遵循 `07-前端界面开发规范.md` ## 功能概览 | 项目 | 说明 | |------|------| | 菜单名称 | 服务监督 | | 子菜单 | 报修数据查看、巡检数据查看、保洁数据查看 | | 功能编号 | HO-SP-01 ~ HO-SP-04 | | 权限编码前缀 | 继承物业模块权限的只读版本 | > **重要**:医院账号仅查看关联物业公司的日常业务数据,**只读,不可操作**。 --- ## 页面1:报修数据查看页 **页面编号**:HO-SP-01-P01 **端侧归属**:Web专属 **页面路径**:/supervision/repair ### 界面布局 ``` ┌──────────────────────────────────────────────────────────────────┐ │ [面包屑] 服务监督 > 报修数据查看 │ ├──────────────────────────────────────────────────────────────────┤ │ [查询条件区] │ │ 工单号[____] 状态[▼] 报修类型[▼] 紧急程度[▼] │ │ 提交日期[起始]~[结束] 所属班组[▼] 所属区域[▼] │ │ [查询] [重置] │ ├──────────────────────────────────────────────────────────────────┤ │ [统计卡片区] │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │总工单│ │待分配│ │处理中│ │已完成│ │ │ │ 156 │ │ 12 │ │ 23 │ │ 108 │ │ │ └──────┘ └──────┘ └──────┘ └──────┘ │ ├──────────────────────────────────────────────────────────────────┤ │ [列表区] │ │ 工单号 | 报修类型 | 紧急程度 | 状态 | 报修人 | 班组 | 提交时间 │ │ WX001 | 水电 | 紧急 | 待分配| 张三 | 水电班| 04-16 10:30│ ├──────────────────────────────────────────────────────────────────┤ │ [分页] 共156条 每页[20▼] < 1 2 3 ... 8 > │ └──────────────────────────────────────────────────────────────────┘ ``` ### 查询条件 | 字段名 | 控件类型 | 必填 | 默认值 | 说明 | |--------|----------|------|--------|------| | 工单号 | 文本输入 | 否 | — | 模糊匹配 | | 状态 | 下拉多选 | 否 | 全部 | — | | 报修类型 | 下拉单选 | 否 | 全部 | — | | 紧急程度 | 下拉单选 | 否 | 全部 | — | | 提交日期 | 日期范围 | 否 | — | — | | 所属班组 | 下拉单选 | 否 | 全部 | — | | 所属区域 | 级联选择 | 否 | 全部 | — | ### 列表字段 | 序号 | 字段名 | 列宽 | 支持排序 | 说明 | |------|--------|------|----------|------| | 1 | 工单号 | 140px | 是 | 点击查看详情(只读) | | 2 | 报修类型 | 80px | 否 | — | | 3 | 紧急程度 | 80px | 否 | — | | 4 | 状态 | 90px | 是 | — | | 5 | 报修人 | 80px | 否 | — | | 6 | 负责班组 | 90px | 否 | — | | 7 | 维修人员 | 80px | 否 | — | | 8 | 提交时间 | 150px | 是 | 默认倒序 | | 9 | 操作 | 80px | — | 查看详情(只读) | ### 操作按钮 | 按钮 | 权限编码 | 位置 | 显示条件 | 说明 | |------|----------|------|----------|------| | 查看详情 | repair:list:view(只读) | 行操作 | 始终 | 跳转只读详情页 | ### 角色差异化视图 | 角色 | 可见按钮 | 数据范围 | 备注 | |------|----------|----------|------| | 医院账号 | 仅查看 | 关联物业公司的全部报修数据 | 无任何操作按钮 | ### 工单详情页(只读) - 展示与物业公司工单详情相同的信息 - 标签页:基本信息、流转记录、照片附件 - 底部无任何操作按钮 ### API端点 | 页面操作 | API路径 | 方法 | 说明 | |----------|---------|------|------| | 列表查询 | /api/v1/repair-orders | GET | 只读,自动过滤关联物业公司 | | 详情查询 | /api/v1/repair-orders/{id} | GET | 只读 | ### 交互流程要求 1. **页面加载流程**:进入页面 → 调用报修工单列表API(自动过滤关联物业公司)→ 渲染统计卡片 + 列表 2. **查询/筛选交互流程**:填写筛选条件 → 点击"查询"按钮 → 调用API携带筛选参数 → 刷新列表和统计卡片;点击"重置"清空条件重新加载 3. **表单填写与提交流程**:不适用(只读页面,无任何操作按钮) 4. **弹窗/抽屉交互流程**:不适用(查看详情跳转只读详情页) 5. **行内操作流程**:点击工单号或"查看详情" → 跳转只读工单详情页(标签页:基本信息/流转记录/照片附件,底部无操作按钮) 6. **异常与错误处理**:API请求失败显示el-message错误提示;列表为空显示el-empty;无权限时提示"您无权查看此数据" 7. **联动/级联交互**:筛选条件变化后统计卡片数据同步刷新;所属区域级联选择(楼栋→楼层→房间) 8. **权限控制交互表现**:医院账号仅查看,所有操作按钮隐藏;仅显示关联物业公司的数据 ### 前端硬性约束 > 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。 | 编号 | 约束项 | 级别 | 本页要求 | |------|--------|------|----------| | **H1** | 防重复提交 | **强制** | 列表查询/翻页期间显示loading状态并禁用查询/分页控件;切换分页时abort上一页未完成请求;"查看详情"操作防重复点击 | | **H2** | 请求超时 | **强制** | GET列表请求设置15s超时;GET详情请求设置15s超时 | | **H3** | 操作确认 | 强制(不适用) | 本页为只读查看页面,无删除/停用等危险操作,不涉及 | | **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 | | **H5** | 权限隔离表现 | 建议 | 医院账号仅可见关联物业公司数据范围;无`repair:list:view`权限时隐藏列表及查询区域;权限不足时展示空状态或无权提示而非报错 | | **H6** | 批量操作限制 | 建议(不适用) | 本页为只读页面,无批量操作,不涉及 | | **H7** | 文件上传约束 | 建议(不适用) | 本页无文件上传功能,不涉及 | | **H8** | 反馈规范 | 建议 | 成功提示自动2s后消失(silent刷新);错误提示需手动关闭(duration=0);网络异常时展示重试按钮 | ### 组件规范 | 元素 | 组件 | 配置参数 | |------|------|----------| | 工单号输入 | el-input | placeholder="请输入工单号",clearable | | 状态选择 | el-select | placeholder="请选择状态",clearable,multiple | | 报修类型选择 | el-select | placeholder="请选择报修类型",clearable | | 紧急程度选择 | el-select | placeholder="请选择紧急程度",clearable | | 提交日期范围 | el-date-picker | type="daterange",start-placeholder="开始日期",end-placeholder="结束日期" | | 所属班组选择 | el-select | placeholder="请选择班组",clearable | | 所属区域 | el-cascader | placeholder="请选择区域",:props="{checkStrictly: true}",级联:楼栋/楼层/房间 | | 查询按钮 | el-button | type="primary",icon="Search" | | 重置按钮 | el-button | type="default",icon="Refresh" | | 统计卡片 | el-card | v-for遍历4个指标,shadow="hover",含数字和标签 | | 工单列表 | el-table | stripe,border,:default-sort="{prop: 'submitTime', order: 'descending'}" | | 紧急程度列 | el-tag | :type根据程度配色(紧急=danger,较急=warning,一般=info) | | 状态列 | el-tag | :type根据状态配色 | | 工单号列 | el-link | type="primary",:underline=false,@click跳转详情 | | 查看详情按钮 | el-button | type="default",size="small",link样式,icon="View" | | 分页 | el-pagination | layout="total, sizes, prev, pager, next",:page-sizes="[10,20,50]" | ### 校验规则 | 字段 | 规则 | 错误提示 | |------|------|----------| | (无表单校验,仅查询条件) | — | — | ### 响应式布局 | 断点 | 布局调整 | |------|----------| | ≥1280px(桌面端) | 查询条件区双行排列,统计卡片横排4列,列表全字段展示 | | 1024-1279px(Pad横屏) | 查询条件区三行排列,统计卡片2×2网格,列表隐藏"报修人""维修人员"列 | | 768-1023px(Pad竖屏) | 查询条件区纵向堆叠(仅保留工单号/状态/报修类型),统计卡片2×2网格,列表仅显示工单号/类型/状态/提交时间/操作 | --- ## 页面2:巡检数据查看页 **页面编号**:HO-SP-03-P01 **端侧归属**:Web专属 **页面路径**:/supervision/inspection ### 列表字段 | 序号 | 字段名 | 列宽 | 支持排序 | 说明 | |------|--------|------|----------|------| | 1 | 巡检人员 | 80px | 否 | — | | 2 | 计划名称 | 150px | 否 | — | | 3 | 巡检区域 | 150px | 否 | — | | 4 | 打卡时间 | 140px | 是 | — | | 5 | 打卡方式 | 80px | 否 | 蓝牙/手动/补录 | | 6 | 状态 | 80px | 否 | 正常/异常 | | 7 | 异常数 | 70px | 否 | — | | 8 | 操作 | 80px | — | 查看详情 | ### 操作按钮 | 按钮 | 权限编码 | 位置 | 显示条件 | 说明 | |------|----------|------|----------|------| | 查看详情 | inspection:task:view(只读) | 行操作 | 始终 | 只读 | ### 交互流程要求 1. **页面加载流程**:进入页面 → 调用巡检数据列表API(自动过滤关联物业公司)→ 渲染列表 2. **查询/筛选交互流程**:支持按巡检人员、计划名称、打卡方式、状态筛选 3. **表单填写与提交流程**:不适用(只读页面) 4. **弹窗/抽屉交互流程**:点击"查看详情" → 跳转只读巡检详情页 5. **行内操作流程**:点击"查看详情"跳转只读详情页;异常数>0时该行标记橙色 6. **异常与错误处理**:API请求失败显示el-message错误提示;列表为空显示el-empty 7. **联动/级联交互**:状态筛选与列表数据联动 8. **权限控制交互表现**:医院账号仅查看,无操作按钮 ### 前端硬性约束 > 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。 | 编号 | 约束项 | 级别 | 本页要求 | |------|--------|------|----------| | **H1** | 防重复提交 | **强制** | 列表查询/筛选/翻页期间显示loading状态并禁用相关控件;切换分页时abort上一页未完成请求;"查看详情"操作防重复点击 | | **H2** | 请求超时 | **强制** | GET列表请求设置15s超时;GET详情请求设置15s超时 | | **H3** | 操作确认 | 强制(不适用) | 本页为只读查看页面,无删除/停用等危险操作,不涉及 | | **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 | | **H5** | 权限隔离表现 | 建议 | 仅展示本医院关联物业公司的巡检数据;无`inspection:task:view`权限时隐藏整个列表区域 | | **H6** | 批量操作限制 | 建议(不适用) | 本页为只读页面,无批量操作,不涉及 | | **H7** | 文件上传约束 | 建议(不适用) | 本页无文件上传功能,不涉及 | | **H8** | 反馈规范 | 建议 | 成功提示自动2s后消失(silent刷新);错误提示需手动关闭(duration=0);网络异常时展示重试按钮 | ### 组件规范 | 元素 | 组件 | 配置参数 | |------|------|----------| | 巡检数据列表 | el-table | stripe,border,:row-class-name异常行高亮 | | 打卡方式列 | el-tag | :type根据方式配色(蓝牙=success,手动=warning,补录=info) | | 状态列 | el-tag | :type根据状态配色(正常=success,异常=danger) | | 异常数列 | el-tag | v-if="异常数>0" type="danger",否则显示"0" | | 查看详情按钮 | el-button | type="default",size="small",link样式,icon="View" | ### 校验规则 | 字段 | 规则 | 错误提示 | |------|------|----------| | (无表单校验,仅查询条件) | — | — | ### 响应式布局 | 断点 | 布局调整 | |------|----------| | ≥1280px(桌面端) | 列表全字段展示 | | 1024-1279px(Pad横屏) | 隐藏"打卡方式"列 | | 768-1023px(Pad竖屏) | 仅显示巡检人员/计划名称/状态/异常数/操作核心字段 | --- ## 页面3:保洁数据查看页 **页面编号**:HO-SP-04-P01 **端侧归属**:Web专属 **页面路径**:/supervision/cleaning ### 列表字段 | 序号 | 字段名 | 列宽 | 支持排序 | 说明 | |------|--------|------|----------|------| | 1 | 保洁人员 | 80px | 否 | — | | 2 | 保洁区域 | 150px | 否 | — | | 3 | 任务日期 | 100px | 是 | — | | 4 | 打卡时间 | 140px | 否 | — | | 5 | 打卡方式 | 80px | 否 | — | | 6 | 完成状态 | 80px | 否 | 已完成/超时/未执行 | | 7 | 抽查结果 | 80px | 否 | 合格/不合格/未抽查 | | 8 | 操作 | 80px | — | 查看详情 | ### 操作按钮 | 按钮 | 权限编码 | 位置 | 显示条件 | 说明 | |------|----------|------|----------|------| | 查看详情 | cleaning:task:view(只读) | 行操作 | 始终 | 只读 | ### 交互流程要求 1. **页面加载流程**:进入页面 → 调用保洁数据列表API(自动过滤关联物业公司)→ 渲染列表 2. **查询/筛选交互流程**:支持按保洁人员、保洁区域、任务日期、完成状态筛选 3. **表单填写与提交流程**:不适用(只读页面) 4. **弹窗/抽屉交互流程**:点击"查看详情" → 跳转只读保洁详情页 5. **行内操作流程**:点击"查看详情"跳转只读详情页;超时/未执行状态行标记橙色;抽查不合格行标记红色 6. **异常与错误处理**:API请求失败显示el-message错误提示;列表为空显示el-empty 7. **联动/级联交互**:完成状态筛选与列表数据联动 8. **权限控制交互表现**:医院账号仅查看,无操作按钮 ### 前端硬性约束 > 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。 | 编号 | 约束项 | 级别 | 本页要求 | |------|--------|------|----------| | **H1** | 防重复提交 | **强制** | 列表查询/筛选/翻页期间显示loading状态并禁用相关控件;切换分页时abort上一页未完成请求;"查看详情"操作防重复点击 | | **H2** | 请求超时 | **强制** | GET列表请求设置15s超时;GET详情请求设置15s超时 | | **H3** | 操作确认 | 强制(不适用) | 本页为只读查看页面,无删除/停用等危险操作,不涉及 | | **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 | | **H5** | 权限隔离表现 | 建议 | 仅展示本医院关联物业公司的保洁数据;无`cleaning:task:view`权限时隐藏整个列表区域 | | **H6** | 批量操作限制 | 建议(不适用) | 本页为只读页面,无批量操作,不涉及 | | **H7** | 文件上传约束 | 建议(不适用) | 本页无文件上传功能,不涉及 | | **H8** | 反馈规范 | 建议 | 成功提示自动2s后消失(silent刷新);错误提示需手动关闭(duration=0);网络异常时展示重试按钮 | ### 组件规范 | 元素 | 组件 | 配置参数 | |------|------|----------| | 保洁数据列表 | el-table | stripe,border,:row-class-name超时/不合格行高亮 | | 完成状态列 | el-tag | :type根据状态配色(已完成=success,超时=warning,未执行=danger) | | 抽查结果列 | el-tag | :type根据结果配色(合格=success,不合格=danger,未抽查=info) | | 查看详情按钮 | el-button | type="default",size="small",link样式,icon="View" | ### 校验规则 | 字段 | 规则 | 错误提示 | |------|------|----------| | (无表单校验,仅查询条件) | — | — | ### 响应式布局 | 断点 | 布局调整 | |------|----------| | ≥1280px(桌面端) | 列表全字段展示 | | 1024-1279px(Pad横屏) | 隐藏"打卡方式"列 | | 768-1023px(Pad竖屏) | 仅显示保洁人员/保洁区域/完成状态/抽查结果/操作核心字段 | --- ## 需求追溯 | 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 | |------------|----------|----------|----------|----------| | HO-SP-01 | 报修数据查看 | 02-医院 §3 / 03-医院 §3.1 | — | 物业在线报修(数据来源) | | HO-SP-02 | 工单详情查看 | 02-医院 §3 / 03-医院 §3.1 | — | 物业工单详情(数据来源) | | HO-SP-03 | 巡检数据查看 | 02-医院 §3 / 03-医院 §3.1 | — | 物业巡检管理(数据来源) | | HO-SP-04 | 保洁数据查看 | 02-医院 §3 / 03-医院 §3.1 | — | 物业保洁管理(数据来源) | ## 业务规则 1. **仅查看不可操作**:医院账号可查看关联物业公司的全部日常业务数据,但不能分配工单、审核补录等操作(来源:01 §4.3 / 03-医院 §3) 2. **数据来源**:物业公司日常业务录入的数据(来源:03-医院 §3.1) 3. **数据范围**:仅查看为本医院服务的物业公司的数据(来源:01 §1.3 / 03-医院 §3) 4. **支持筛选和导出**:支持时间范围、区域、状态等筛选条件,支持导出报表(只读)(来源:03-医院 §3.1)