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.

43 KiB

报修相关功能

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

功能概览

项目 说明
菜单名称 报修相关功能
子菜单 扫码注册、一键报修、我的工单、催单、维修接单、维修完工、延期申请、延期审批、协助维修申请、工单分配、工单验收、评价
功能编号 MP-R-01 ~ MP-R-12
权限编码 repair:list:* / repair:detail:approve 等

页面清单

页面1扫码注册页

  • 页面路径/pages/repair/scan-register
  • 页面元素
    • 扫码区域调用wx.scanCode
    • 项目信息展示(扫码后显示)
    • 确认绑定按钮
  • 界面布局
    • 顶部:扫码提示文字
    • 中部:扫码框(居中,带边框提示)
    • 底部:扫码结果展示 + 确认绑定按钮
  • 操作按钮
    按钮 权限 说明
    扫描二维码 调用wx.scanCode扫描项目二维码
    确认绑定 绑定身份到对应项目

交互流程要求

  1. 页面加载流程页面加载时自动调起wx.scanCode扫码→扫码成功后显示项目信息→等待用户确认绑定
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程点击扫描二维码→调用wx.scanCode→获取项目编码→查询项目信息→展示项目名称、地址→点击确认绑定→绑定成功跳转工作台
  4. 弹窗/弹层交互流程:扫码失败弹出提示"二维码无效,请重新扫描";绑定成功弹出成功提示
  5. 行内操作流程:点击扫码区域→调起扫码;点击确认绑定→提交绑定请求
  6. 异常与错误处理:扫码超时提示"扫码超时,请重试";二维码无效提示重扫;网络异常显示重试;相机权限被拒提示"请开启相机权限"
  7. 联动/级联交互:扫码结果与项目信息联动展示
  8. 权限控制交互表现:所有用户均可扫码注册;已绑定用户不显示此页面

组件规范

元素 组件 配置参数
扫码区域 button @click="scanCode"type="primary"text="扫描二维码"
项目信息展示 uni-card mode="basic",展示项目名称、地址
确认绑定 button type="primary":loading="binding"
提示弹窗 uni-popup type="dialog",确认/取消

校验规则

字段 规则 错误提示
二维码 必须为系统有效项目二维码 "二维码无效,请重新扫描"
项目信息 扫码后必须返回有效项目数据 "未找到项目信息"
绑定状态 未绑定才可操作 "您已绑定项目"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px扫码区域居中
  • 横竖屏适配策略:竖屏垂直布局;横屏扫码区域与信息并排展示
  • 手势交互规范扫码按钮≥44px确认绑定按钮≥44px
  • 安全区域:底部按钮适配底部安全区

页面2一键报修页

  • 页面路径/pages/repair/create
  • 页面元素
    • 报修类型选择下拉数据来源物业公司Web端配置的报修类型字典
    • 报修描述多行文本最多500字
    • 照片上传区域最多9张含水印时间定位
    • 报修位置(可选,手动选择或自动定位)
    • 联系方式(默认当前用户手机号)
  • 界面布局
    • 顶部:报修类型选择器
    • 中部:报修描述输入框
    • 下部照片上传网格3列+号占位)
    • 底部:提交按钮
  • 操作按钮
    按钮 权限 说明
    拍照上传 调用相机,自动添加水印(时间+位置)
    从相册选择 选择相册照片,自动添加水印
    提交报修 生成工单,等待分配

交互流程要求

  1. 页面加载流程:页面加载时获取报修类型字典→渲染类型选择器;获取当前位置信息预填位置

  2. 查询/筛选交互流程:无筛选操作

  3. 表单填写与提交流程:选择报修类型→输入报修描述→拍照/选择照片(自动添加时间+位置水印)→选择/确认报修位置→确认联系方式→点击提交报修→确认弹窗→提交成功跳转工单列表

  4. 弹窗/弹层交互流程:点击拍照/相册弹出选择弹窗(拍照/从相册选择);提交前弹出确认弹窗

  5. 行内操作流程:点击照片上传区域→调起相机/相册→选择照片→自动添加水印→显示缩略图;点击位置→打开地图选择位置

  6. 异常与错误处理:定位失败提示手动选择位置;图片上传失败提示重传;提交失败显示重试;离线时数据暂存本地草稿

  7. 联动/级联交互:报修类型与描述提示联动;位置自动获取与手动选择联动

  8. 权限控制交互表现:所有登录用户均可报修;相机/定位权限被拒时引导开启

  9. H1 防重复请求(强制):提交报修按钮点击后:loading="submitting"且disabled表单提交请求pending期间禁用提交和返回操作使用requestTask管理提交请求生命周期

  10. H2 超时配置(强制)报修类型字典GET请求超时15s提交报修POST请求超时30s图片上传超时60s定位接口超时10s>3s wx.showLoading("正在提交..."); 超时后提示"请求超时,请重试"+重试按钮

  11. H3 操作确认(强制)提交前必须弹出uni-popup确认弹窗"确认提交报修单?提交后将生成工单等待分配",含后果说明

  12. H4 脏数据检测(强制)进入页面对空表单做深拷贝快照填写过程中任何字段变更标记isDirty=true页面卸载/onBackPress时检测isDirty若有已填写内容描述/照片等弹出uni-popup确认"有未提交的报修内容,确定离开吗?"

  13. H7 文件上传(建议)照片上传使用wx.chooseMedia({count:9, mediaType:['image']})选择单张≤10MB格式白名单jpg/jpeg/png自动添加水印(时间+位置)后再上传;上传过程显示进度回调(uni-file-picker);上传失败提示具体原因支持重传

  14. H8 反馈(建议)报修提交成功wx.showToast({icon:'success', title:'报修成功'}); 提交失败wx.showToast({icon:'none', title:'提交失败原因'})可显示多文字定位失败wx.showToast({icon:'none', title:'定位失败,请手动选择位置'}); 离线模式提示数据已存草稿

组件规范

元素 组件 配置参数
报修类型选择 uni-data-select v-model="type":localdata="typeList"
报修描述 uni-easyinput type="textarea"maxlength="500":showWordLimit="true"
照片上传 uni-file-picker limit="9"file-mediatype="image":auto-upload="true"
报修位置 uni-list-item :showArrow="true"@click="chooseLocation"
联系方式 uni-easyinput type="number"maxlength="11"
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"
位置选择 map + button 调用wx.chooseLocation

校验规则

字段 规则 错误提示
报修类型 必选 "请选择报修类型"
报修描述 必填最多500字 "请填写报修描述" / "描述不能超过500字"
照片 最多9张必须含水印 "照片最多上传9张"
联系方式 必填11位手机号 "请输入联系方式" / "手机号格式不正确"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略竖屏垂直布局横屏照片上传区3~4列网格
  • 手势交互规范照片上传区域≥44px提交按钮≥44px位置选择≥44px
  • 安全区域:底部提交按钮适配底部安全区

页面3我的工单列表

  • 页面路径/pages/repair/my-orders
  • 页面元素
    • 状态Tab筛选全部/待分配/处理中/待验收/已完成/已关闭)
    • 工单列表
    • 下拉刷新 + 上拉加载
  • 查询条件
    条件 类型 说明
    状态筛选 Tab 全部/待分配/处理中/待验收/已完成/已关闭
    关键词 搜索框 按工单号/描述搜索
  • 列表字段
    字段 说明
    工单编号 如 WO20260416001
    报修类型 图标+文字
    报修描述 截断显示
    报修时间 相对时间
    工单状态 状态标签(不同颜色)
    维修人员 已分配时显示
    催单标记 已催单显示红色标记
  • 界面布局
    • 顶部状态Tab + 搜索框
    • 中部:工单卡片列表
      • 卡片顶部:工单编号 + 状态标签
      • 卡片中部:报修类型 + 描述
      • 卡片底部:时间 + 维修人员 + 催单标记
    • 底部:无更多数据提示
  • 操作按钮
    按钮 权限 说明
    查看详情 跳转工单详情页
    催单 repair:list:view 处理中工单可催单

交互流程要求

  1. 页面加载流程页面加载时请求工单列表→显示骨架屏→渲染Tab和工单卡片默认显示"全部"状态

  2. 查询/筛选交互流程点击状态Tab切换筛选条件→重新加载列表输入关键词搜索工单号/描述;下拉刷新重新加载;上拉加载更多

  3. 表单填写与提交流程:无表单提交操作

  4. 弹窗/弹层交互流程:催单时弹出确认弹窗"确认催单?催单后维修人员和主管将收到通知"

  5. 行内操作流程:点击工单卡片→跳转工单详情;点击催单→确认催单→发送催单通知

  6. 异常与错误处理列表加载失败显示重试催单超过每日3次限制提示"今日已催单3次请明日再试";网络异常显示错误提示

  7. 联动/级联交互Tab切换与列表数据联动催单后催单标记实时更新

  8. 权限控制交互表现催单按钮仅处理中工单显示无repair:list:view权限时隐藏催单按钮

  9. H1 防重复请求(强制)催单按钮点击后loading态+disabledTab切换请求pending时不重复发列表请求搜索输入防抖300ms上拉加载更多时分页用requestTask管理新请求abort前一次下拉刷新abort进行中请求

  10. H2 超时配置(强制)工单列表GET请求超时15s催单POST请求超时30s>3s保持骨架屏超时后提示"请求超时,请下拉刷新"+重试按钮

  11. H3 操作确认(强制)催单操作必须弹出uni-popup确认弹窗"确认催单催单后维修人员和主管将收到通知今日剩余X次",含后果说明和次数限制提示

  12. H6 批量限制(建议)催单每天最多3次服务端校验前端达到限制时直接禁用催单按钮并提示"今日已催单3次请明日再试"

  13. H8 反馈(建议)催单成功wx.showToast({icon:'success', title:'催单成功'}); 列表加载失败wx.showToast({icon:'none', title:'加载失败,请下拉刷新'}); 催单次数不足wx.showToast({icon:'none', title:'今日已催单3次请明日再试'})

组件规范

元素 组件 配置参数
状态Tab uni-segmented-control :values="['全部','待分配','处理中','待验收','已完成','已关闭']"
搜索框 uni-search-bar placeholder="搜索工单号/描述"
工单列表 uni-list + uni-list-item clickable=true
状态标签 uni-tag type: success(已完成)/warning(处理中)/error(异常)/default(待分配)
催单标记 uni-badge content="催"type="error"
下拉刷新 uni-refresher @onRefresh回调
上拉加载 uni-load-more :status="loadingStatus"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
工单列表 加载失败允许重试 "加载失败,请下拉刷新"
搜索关键词 最少2个字符 "请输入至少2个字符"
催单 每天最多3次 "今日已催单3次请明日再试"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px卡片宽度自适应padding 16px
  • 横竖屏适配策略:竖屏单列卡片;横屏双列卡片展示
  • 手势交互规范工单卡片可点击区域≥44px催单按钮≥44px支持下拉刷新和上拉加载
  • 安全区域:底部列表适配底部安全区

页面4待处理工单列表维修人员

  • 页面路径/pages/repair/pending-orders
  • 页面元素
    • 待接单工单列表
    • 下拉刷新 + 上拉加载
  • 查询条件:无(自动加载分配给当前人员的待处理工单)
  • 列表字段
    字段 说明
    工单编号 如 WO20260416001
    报修类型 图标+文字
    报修描述 截断显示
    报修时间 相对时间
    优先级 高/中/低,不同颜色标记
    报修照片缩略图 第一张照片
  • 界面布局
    • 顶部:待处理工单数量统计
    • 中部:工单卡片列表
      • 卡片顶部:工单编号 + 优先级标签
      • 卡片中部:报修类型 + 描述
      • 卡片底部:报修时间 + 接单按钮
    • 底部:无更多数据提示
  • 操作按钮
    按钮 权限 说明
    接单 repair:list:update 接单后工单状态变为"处理中"

交互流程要求

  1. 页面加载流程:页面加载时请求分配给当前维修人员的待处理工单→显示骨架屏→渲染待处理数量统计和工单列表

  2. 查询/筛选交互流程:无手动筛选,自动加载当前人员的待处理工单;下拉刷新重新加载

  3. 表单填写与提交流程:无表单提交操作

  4. 弹窗/弹层交互流程:点击接单→弹出确认弹窗"确认接单?"

  5. 行内操作流程:点击工单卡片→查看工单详情;点击接单→确认后工单状态变为处理中→通知报修人

  6. 异常与错误处理:列表加载失败显示重试;接单失败提示错误信息;工单已被他人接单提示"工单已被接单"

  7. 联动/级联交互:接单成功后列表数据更新,待处理数量减少

  8. 权限控制交互表现仅维修人员角色可见此页面无repair:list:update权限时接单按钮置灰

  9. H1 防重复请求(强制)接单按钮点击后loading态+disabled列表加载pending不重复发上拉分页用requestTask管理新请求abort旧请求下拉刷新abort进行中请求

  10. H2 超时配置(强制)待处理工单列表GET请求超时15s接单POST请求超时30s>3s保持骨架屏超时后提示"请求超时,请下拉刷新"+重试按钮

  11. H3 操作确认(强制)接单操作必须弹出uni-popup确认弹窗"确认接单?接单后请在规定时间内完成维修",含后果说明

  12. H6 批量限制(建议):本页面主要为单个接单操作,无批量操作场景

  13. H8 反馈(建议)接单成功wx.showToast({icon:'success', title:'接单成功'}); 工单已被他人接单wx.showToast({icon:'none', title:'工单已被接单,请刷新列表'}); 列表加载失败wx.showToast({icon:'none', title:'加载失败,请重试'})

组件规范

元素 组件 配置参数
待处理数量 uni-badge :content="count"type="warning"size="large"
工单列表 uni-list + uni-list-item clickable=true
优先级标签 uni-tag type: error(高)/warning(中)/default(低)
照片缩略图 image mode="aspectFill"60px×60px圆角
接单按钮 button type="primary"size="mini"
下拉刷新 uni-refresher @onRefresh回调
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
工单列表 加载失败允许重试 "加载失败,请下拉刷新"
接单操作 工单必须为待分配/已分配状态 "工单状态已变更,请刷新"

响应式布局

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

页面5维修完工页

  • 页面路径/pages/repair/complete
  • 页面元素
    • 工单基本信息(只读)
    • 维修说明(多行文本,必填)
    • 维修后照片上传最多9张含水印时间定位
    • 材料使用记录(可选)
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:维修说明输入框
    • 下部:照片上传网格
    • 底部:提交完工按钮
  • 操作按钮
    按钮 权限 说明
    拍照上传 拍摄维修后照片
    提交完工 repair:list:update 工单状态变为"待验收"

交互流程要求

  1. 页面加载流程:页面加载时获取工单基本信息→渲染工单信息摘要
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:输入维修说明→拍照上传维修后照片(自动添加水印)→可选填材料使用记录→点击提交完工→确认弹窗→提交成功跳转工单列表
  4. 弹窗/弹层交互流程:点击拍照弹出选择弹窗(拍照/从相册选择);提交前弹出确认弹窗
  5. 行内操作流程:点击照片上传区域→调起相机/相册;点击提交完工→确认提交
  6. 异常与错误处理:图片上传失败提示重传;提交失败显示重试;离线时数据暂存本地草稿
  7. 联动/级联交互照片上传数量与限制联动最多9张
  8. 权限控制交互表现仅维修人员可操作无repair:list:update权限时提交按钮置灰

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
维修说明 uni-easyinput type="textarea"maxlength="500":showWordLimit="true"
照片上传 uni-file-picker limit="9"file-mediatype="image":auto-upload="true"
材料使用记录 uni-list + uni-list-item 可动态添加行
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
维修说明 必填最多500字 "请填写维修说明" / "维修说明不能超过500字"
维修后照片 至少1张 "请上传维修后照片"
照片水印 自动添加时间+位置水印

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略竖屏垂直布局横屏照片区3~4列网格
  • 手势交互规范照片上传区域≥44px提交按钮≥44px
  • 安全区域:底部提交按钮适配底部安全区

页面6延期申请页

  • 页面路径/pages/repair/extension-apply
  • 页面元素
    • 工单基本信息(只读)
    • 延期原因(多行文本,必填)
    • 预计完成时间(日期时间选择器,必填)
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:延期原因输入 + 预计完成时间
    • 底部:提交申请按钮
  • 操作按钮
    按钮 权限 说明
    提交延期申请 repair:list:update 工单状态变为"延期中",等待主管审批

交互流程要求

  1. 页面加载流程:页面加载时获取工单基本信息→渲染工单信息摘要
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:输入延期原因→选择预计完成时间→点击提交延期申请→确认弹窗→提交成功跳转工单详情
  4. 弹窗/弹层交互流程:提交前弹出确认弹窗"确认申请延期?"
  5. 行内操作流程:点击预计完成时间→弹出日期时间选择器→选择时间;点击提交延期申请→确认提交
  6. 异常与错误处理:提交失败显示重试;预计完成时间不能早于当前时间
  7. 联动/级联交互:延期申请提交后工单状态变为"延期中"
  8. 权限控制交互表现仅维修人员可操作无repair:list:update权限时提交按钮置灰

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
延期原因 uni-easyinput type="textarea"maxlength="500":showWordLimit="true"
预计完成时间 uni-datetime-picker type="datetime":start="minDate"
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
延期原因 必填最多500字 "请填写延期原因" / "延期原因不能超过500字"
预计完成时间 必选,必须晚于当前时间 "请选择预计完成时间" / "预计完成时间不能早于当前时间"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略:竖屏垂直布局;横屏表单水平分组展示
  • 手势交互规范时间选择器≥44px提交按钮≥44px
  • 安全区域:底部提交按钮适配底部安全区

页面7延期审批页主管

  • 页面路径/pages/repair/extension-approve
  • 页面元素
    • 工单基本信息(只读)
    • 延期申请详情(申请人、原因、预计完成时间)
    • 审批意见输入(多行文本)
    • 通过/驳回按钮
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:延期申请详情 + 审批意见
    • 底部:通过 + 驳回按钮(并排)
  • 操作按钮
    按钮 权限 说明
    通过 repair:detail:approve 延期生效,工单继续处理
    驳回 repair:detail:approve 通知维修人员,工单恢复原状态

交互流程要求

  1. 页面加载流程:页面加载时获取工单基本信息和延期申请详情→渲染工单信息摘要和申请详情
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:查看延期申请详情→输入审批意见→点击通过/驳回→确认弹窗→操作成功跳转列表
  4. 弹窗/弹层交互流程:通过时弹出确认弹窗"确认通过延期申请?";驳回时弹出确认弹窗+必填驳回原因
  5. 行内操作流程:点击通过→确认→延期生效;点击驳回→填写驳回原因→确认→通知维修人员
  6. 异常与错误处理:审批操作失败显示重试;工单状态已变更提示"工单状态已更新,请刷新"
  7. 联动/级联交互:审批结果与工单状态联动更新
  8. 权限控制交互表现仅主管可操作无repair:detail:approve权限时按钮置灰

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
延期申请详情 uni-list + uni-list-item :showArrow="false",展示申请人、原因、预计时间
审批意见 uni-easyinput type="textarea"maxlength="200"
通过按钮 button type="primary"@click="approve"
驳回按钮 button type="warn"@click="reject"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
审批意见 驳回时必填 "请填写驳回原因"
审批意见 最多200字 "审批意见不能超过200字"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略:竖屏垂直布局;横屏按钮并排展示更宽
  • 手势交互规范:通过/驳回按钮≥44px间距≥16px
  • 安全区域:底部按钮适配底部安全区

页面8协助维修申请页

  • 页面路径/pages/repair/assist-apply
  • 页面元素
    • 工单基本信息(只读)
    • 协助班组选择(下拉选择其他班组)
    • 协助原因(多行文本,必填)
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:协助班组选择 + 协助原因
    • 底部:提交申请按钮
  • 操作按钮
    按钮 权限 说明
    提交协助申请 repair:list:update 生成协助子工单,等待协助完成

交互流程要求

  1. 页面加载流程:页面加载时获取工单基本信息和班组列表→渲染工单信息摘要
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:选择协助班组→输入协助原因→点击提交协助申请→确认弹窗→提交成功跳转工单详情
  4. 弹窗/弹层交互流程:提交前弹出确认弹窗"确认申请协助维修?"
  5. 行内操作流程:选择协助班组→输入协助原因→确认提交
  6. 异常与错误处理:提交失败显示重试;无可用协助班组提示"暂无可协助的班组"
  7. 联动/级联交互:协助申请提交后生成协助子工单
  8. 权限控制交互表现仅维修人员可操作无repair:list:update权限时提交按钮置灰

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
协助班组选择 uni-data-select v-model="team":localdata="teamList"
协助原因 uni-easyinput type="textarea"maxlength="500":showWordLimit="true"
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
协助班组 必选 "请选择协助班组"
协助原因 必填最多500字 "请填写协助原因" / "协助原因不能超过500字"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略:竖屏垂直布局;横屏表单水平分组展示
  • 手势交互规范班组选择≥44px提交按钮≥44px
  • 安全区域:底部提交按钮适配底部安全区

页面9工单分配页主管

  • 页面路径/pages/repair/assign
  • 页面元素
    • 工单基本信息(只读)
    • 分配班组选择(下拉选择)
    • 分配人员选择(联动,根据班组筛选)
    • 分配备注(可选)
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:班组 + 人员级联选择
    • 底部:确认分配按钮
  • 操作按钮
    按钮 权限 说明
    确认分配 repair:list:assign 分配成功后通知维修人员

交互流程要求

  1. 页面加载流程:页面加载时获取工单基本信息和班组列表→渲染工单信息摘要
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:选择分配班组→联动加载班组下人员列表→选择分配人员→可选填分配备注→点击确认分配→确认弹窗→分配成功通知维修人员
  4. 弹窗/弹层交互流程:提交前弹出确认弹窗"确认分配给XXX"
  5. 行内操作流程:选择班组→人员列表联动刷新→选择人员→确认分配
  6. 异常与错误处理:班组下无人员提示"该班组暂无可用人员";分配失败显示重试
  7. 联动/级联交互:班组选择与人员列表联动,选择班组后动态加载该班组人员
  8. 权限控制交互表现仅主管可操作无repair:list:assign权限时提交按钮置灰

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
班组选择 uni-data-select v-model="teamId"@change="loadMembers"
人员选择 uni-data-select v-model="memberId":localdata="memberList"
分配备注 uni-easyinput type="textarea"maxlength="200"
确认分配 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
分配班组 必选 "请选择分配班组"
分配人员 必选 "请选择分配人员"
分配备注 最多200字 "备注不能超过200字"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px表单宽度自适应
  • 横竖屏适配策略:竖屏垂直布局;横屏班组人员选择并排展示
  • 手势交互规范选择器≥44px确认按钮≥44px
  • 安全区域:底部按钮适配底部安全区

页面10工单验收页

  • 页面路径/pages/repair/accept
  • 页面元素
    • 工单基本信息(只读)
    • 维修说明展示
    • 维修前后照片对比
    • 验收结果选择(通过/不通过)
    • 验收意见(多行文本,不通过时必填)
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:维修说明 + 照片对比
    • 下部:验收结果选择 + 验收意见
    • 底部:提交验收按钮
  • 操作按钮
    按钮 权限 说明
    提交验收 repair:detail:approve 通过→工单完成;不通过→退回维修

交互流程要求

  1. 页面加载流程:页面加载时获取工单信息→渲染工单摘要、维修说明、前后照片对比
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:查看维修前后照片对比→选择验收结果(通过/不通过)→不通过时填写验收意见→点击提交验收→确认弹窗→验收通过工单完成/不通过退回维修
  4. 弹窗/弹层交互流程:提交前弹出确认弹窗"确认验收结果?";点击照片弹出大图预览
  5. 行内操作流程:选择通过/不通过→不通过时展开验收意见输入→提交验收
  6. 异常与错误处理:验收操作失败显示重试;工单状态已变更提示刷新
  7. 联动/级联交互:验收结果选择与验收意见联动,不通过时验收意见必填
  8. 权限控制交互表现:仅主管/报修人可操作无repair:detail:approve权限时按钮置灰

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
照片对比 swiper 左右滑动对比,:indicator-dots="true"
照片大图 uni-popup type="center",图片全屏预览
验收结果 uni-data-checkbox :localdata="[{value:'pass',text:'通过'},{value:'fail',text:'不通过'}]"
验收意见 uni-easyinput type="textarea"maxlength="500"
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
验收结果 必选 "请选择验收结果"
验收意见 不通过时必填最多500字 "不通过时请填写验收意见" / "验收意见不能超过500字"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px照片区域宽度自适应
  • 横竖屏适配策略:竖屏照片上下对比;横屏照片左右对比
  • 手势交互规范照片可点击放大≥44px提交按钮≥44px左右滑动切换照片
  • 安全区域:底部按钮适配底部安全区

页面11工单评价页

  • 页面路径/pages/repair/evaluate
  • 页面元素
    • 工单基本信息(只读)
    • 评分组件(五分制星级评分)
    • 评价内容多行文本最多200字
    • 图片上传最多3张
  • 界面布局
    • 顶部:工单信息摘要
    • 中部:评分星级 + 评价输入 + 图片上传
    • 底部:提交评价按钮
  • 操作按钮
    按钮 权限 说明
    提交评价 评价提交后不可修改

交互流程要求

  1. 页面加载流程:页面加载时获取工单基本信息→渲染工单信息摘要
  2. 查询/筛选交互流程:无筛选操作
  3. 表单填写与提交流程:点击星级选择评分→输入评价内容→可选上传图片→点击提交评价→确认弹窗→评价提交成功跳转工单详情
  4. 弹窗/弹层交互流程:提交前弹出确认弹窗"确认提交评价?提交后不可修改";上传图片弹出选择(拍照/相册)
  5. 行内操作流程:点击星星评分→输入评价→上传图片→提交评价
  6. 异常与错误处理:图片上传失败提示重传;提交失败显示重试;评价已提交提示"已评价"
  7. 联动/级联交互:评分与评价提交联动,必须选择评分才能提交
  8. 权限控制交互表现:仅报修人可评价;已评价工单不显示评价入口

组件规范

元素 组件 配置参数
工单信息摘要 uni-card mode="basic",只读展示
星级评分 uni-rate :max="5":value="score":size="28"
评价内容 uni-easyinput type="textarea"maxlength="200":showWordLimit="true"
图片上传 uni-file-picker limit="3"file-mediatype="image"
提交按钮 button type="primary":loading="submitting"
确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
评分 必选1~5分 "请选择评分"
评价内容 最多200字 "评价内容不能超过200字"
图片 最多3张 "评价图片最多上传3张"

响应式布局

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

页面12工单详情页

  • 页面路径/pages/repair/detail
  • 页面元素
    • 工单基本信息
    • 报修照片
    • 维修人员信息(已分配时)
    • 维修记录时间轴
    • 维修后照片
    • 操作按钮区(根据状态和角色动态显示)
  • 界面布局
    • 顶部:工单编号 + 状态标签
    • 信息区:报修类型、描述、位置、联系方式、报修时间
    • 照片区:报修照片轮播
    • 维修区:维修人员 + 维修说明 + 维修照片
    • 时间轴:工单流转记录(提交→分配→接单→完工→验收)
    • 底部:操作按钮区(动态)
  • 操作按钮(根据角色和状态动态显示):
    按钮 适用角色 工单状态 说明
    催单 报修人 处理中 发起催单
    接单 维修人员 待分配/已分配 接单
    完工 维修人员 处理中 提交维修完工
    延期申请 维修人员 处理中 申请延期
    协助申请 维修人员 处理中 请求协助
    分配 主管 待分配 分配工单
    延期审批 主管 延期中 审批延期
    验收 主管/报修人 待验收 验收工单
    评价 报修人 已完成 评价工单

交互流程要求

  1. 页面加载流程:页面加载时获取工单详细信息→渲染工单编号、状态、基本信息、照片、维修记录、时间轴

  2. 查询/筛选交互流程:无筛选操作

  3. 表单填写与提交流程:本页面无表单提交操作,操作按钮跳转对应子页面

  4. 弹窗/弹层交互流程:点击照片→弹出大图预览;点击催单→弹出确认弹窗

  5. 行内操作流程:点击操作按钮→根据角色和状态跳转对应操作页面(接单→完工页、延期→延期申请页等);查看照片轮播;滚动查看时间轴

  6. 异常与错误处理:工单加载失败显示重试;照片加载失败显示占位图;网络异常显示错误提示

  7. 联动/级联交互:操作按钮根据工单状态和用户角色动态显示/隐藏

  8. 权限控制交互表现:不同角色看到不同操作按钮;无权限操作按钮不显示;催单按钮仅报修人可见

  9. H1 防重复请求(强制):各操作按钮(催单/接单/完工等点击后分别做loading+disabled防连击操作跳转子页面由子页面负责防重照片预览大图操作不做loading拦截工单详情GET请求pending期间不重复发

  10. H2 超时配置(强制)工单详情GET请求超时15s>3s显示骨架屏详情加载超时后提示"加载超时,请重试"+重试按钮

  11. H3 操作确认(强制):催单操作在详情页弹出确认弹窗"确认催单今日剩余X次";其他危险操作由各子页面确认

  12. H7 文件上传(建议):本页面照片均为只读展示,不涉及上传操作

  13. H8 反馈(建议)详情加载成功静默渲染无需toast加载失败wx.showToast({icon:'none', title:'工单信息加载失败,请重试'}); 照片加载失败显示占位图网络异常wx.getNetworkType检测+重试按钮

组件规范

元素 组件 配置参数
状态标签 uni-tag type: success(已完成)/warning(处理中)/error(异常)/default(待分配)
照片轮播 swiper :indicator-dots="true":autoplay="false"
照片大图 uni-popup type="center",图片全屏预览
维修记录 uni-steps :options="timeLineData"direction="column"
信息列表 uni-list + uni-list-item :showArrow="false",展示各项信息
操作按钮区 view + button 固定底部,按钮根据角色动态渲染
催单确认弹窗 uni-popup type="dialog"

校验规则

字段 规则 错误提示
工单信息 必须返回有效工单数据 "工单信息加载失败,请重试"
照片 加载失败显示占位图
操作权限 根据角色和状态校验 "您暂无此操作权限"

响应式布局

  • 适配机型iPhone SE375px~ iPad mini768px信息区域宽度自适应
  • 横竖屏适配策略:竖屏垂直布局;横屏信息区和照片区可并排展示
  • 手势交互规范操作按钮≥44px照片可点击放大≥44px左右滑动切换照片
  • 安全区域底部操作按钮区适配底部安全区padding-bottom=env(safe-area-inset-bottom)

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
MP-R-01 扫码注册 02-小程序端 §2 注册成功→绑定项目身份 通用功能(登录)
MP-R-02 一键报修 02-小程序端 §2 提交→生成工单→触发分配通知 物业Web端工单列表
MP-R-03 我的工单 02-小程序端 §2 查看工单状态→催单/验收/评价 工单详情
MP-R-04 催单 02-小程序端 §2 催单→触发通知服务→通知维修人员/主管 消息通知
MP-R-05 维修接单 02-小程序端 §2 接单→工单状态变更→通知报修人 工单详情
MP-R-06 维修完工 02-小程序端 §2 完工→工单状态变为"待验收"→触发验收通知 工单验收
MP-R-07 延期申请 02-小程序端 §2 申请→工单状态变为"延期中"→通知主管审批 延期审批
MP-R-08 延期审批 02-小程序端 §2 通过→延期生效;驳回→通知申请人 延期申请
MP-R-09 协助维修申请 02-小程序端 §2 申请→生成协助子工单→通知协助班组 工单分配
MP-R-10 工单分配 02-小程序端 §2 分配→通知维修人员 维修接单
MP-R-11 工单验收 02-小程序端 §2 验收通过→工单完成→触发评价 服务评价
MP-R-12 评价 02-小程序端 §2 评价→数据写入评价模块→物业可查看回复 服务评价

业务规则

  1. 照片上传规则06-项目技术要求.md §4.4

    • 报修照片最多9张必须含水印时间+位置信息)
    • 水印位置:图片右下角
    • 上传时自动附带 bluetooth_connected 标记(如蓝牙连接时)
  2. 工单状态流转03-业务流转逻辑-小程序端 §2

    • 报修人提交 → 待分配 → 处理中(接单) → 待验收(完工) → 已完成(验收通过)
    • 处理中可延期 → 延期中 → 主管审批 → 继续处理/驳回
    • 处理中可申请协助 → 生成子工单
  3. 催单规则

    • 只有处理中的工单可以催单
    • 催单后触发通知服务,通知维修人员和主管
    • 同一工单每天最多催单3次
  4. 双端审批对照02-功能清单-小程序端.md 附录):

    • 工单延期审批Web+小程序均可(物业主管)
    • 工单分配Web+小程序均可(物业主管)
    • 工单验收Web+小程序均可(物业主管/报修人)
  5. 数据权限01-模块划分.md §1.3

    • 主管:本班组工单数据
    • 员工:仅本人相关工单数据

状态流转

工单完整状态流转

待分配 ──[主管分配/自动分配]──▶ 已分配 ──[维修人员接单]──▶ 处理中
  │                                                          │
  │                                              ┌───正常完工───┐───延期申请───┐───协助申请───┐
  │                                              │              │              │
  │                                              ▼              ▼              ▼
  │                                          待验收         延期中        协助处理中
  │                                              │              │              │
  │                                              │         主管审批       协助完成
  │                                              │         ┌通过┐┌驳回┐      │
  │                                              │         ▼    ▼            │
  │                                              │     继续处理 通知员工      │
  │                                              │                          │
  │                                          ┌───验收通过───┐───验收不通过───┐
  │                                          │              │              │
  │                                          ▼              ▼              │
  │                                      已完成         退回处理中            │
  │                                          │                              │
  │                                      可评价                          │
  │                                                                         │
  └─────────────────────────────────────────────────────────────────────────┘