市场调研小程序 - 交互流程图

业务流程与交互关系可视化

1. 调研任务完整流程

调研员从接取任务到完成提交的完整业务流程。前提:任务已由管理端创建并发布/派单。

flowchart TD %% 阶段划分 subgraph P1 [阶段一: 任务接取] Start[管理端: 发布任务] --> A[调研员登录] A --> B{接取方式} B -->|自动| C[接收推送] B -->|抢单| D[抢单大厅] C --> E[查看详情] D --> E end subgraph P2 [阶段二: 到达与核销] E --> F[导航到达] F --> G{在围栏内?} G -- 否 --> H[提示距离] H -.-> F G -- 是 --> I[打卡核销-核销单] end subgraph P3 [阶段三: 填报数据] I --> J{需拍照?} J -- 是 --> K[拍照标注] K --> L{OCR识别?} L -- 是 --> M[识别填充] L -- 否 --> N[填写表单] M --> N J -- 否 --> N end subgraph P4 [阶段四: 提交审核] N --> O[提交任务] O --> P[等待审核] P --> Q{审核结果} Q -- 通过 --> R[任务完成] Q -- 驳回 --> S[修改重提] S -.-> N end %% 样式 style Start fill:#f9f,stroke:#333,stroke-width:2px linkStyle default interpolate basis
流程说明

1. 流程起点:管理端完成任务设置与发布后,流程正式开始。

2. 仅当管理端已创建并派单后,调研员才能接单(自动派单接收或抢单)。

3. 接单后到达目标位置,在电子围栏内进行打卡核销(核销单),再拍照、填表、提交。

4. 拍照和 OCR 为可选,根据任务配置;审核驳回后可修改表单重新提交。

2. 派单审核流程

严格顺序:管理人员先创建并派单 → 调研员才能接单 → 接单后打卡核销(核销单)→ 拍照填表提交 → 审核

flowchart TD subgraph Phase1[阶段一 管理端派单] direction TB A1[派单员创建任务] --> A2[设置电子围栏] A2 --> A3[选择表单模板] A3 --> A4[发布派单] A4 --> A5{派发方式} A5 -->|自动| A6[推送给调研员] A5 -->|抢单| A7[上架抢单大厅] end subgraph Phase2[阶段二 调研员接单] direction TB B1[调研员接取任务] end subgraph Phase3[阶段三 执行与核销] direction TB C1[到达目标位置] --> C2[打卡核销-核销单] C2 --> C3[拍照/OCR] C3 --> C4[填写表单] C4 --> C5[提交数据] end subgraph Phase4[阶段四 审核] direction TB D1[审核员审核] --> D2{审核结果} D2 -->|通过| D3[数据入库] D2 -->|驳回| D4[返回修改] end %% 连接各阶段 A6 --> B1 A7 --> B1 B1 --> C1 C5 --> D1 D4 -.-> C4 linkStyle default interpolate basis
说明

任务必须先由管理端创建并发布/派单后,调研员才能接单;接单后需在围栏内完成打卡核销(核销单),再拍照、填表、提交;审核通过后数据入库,驳回则返回修改后重新提交。

3. 定位打卡流程(核销单)

调研员到达目标位置后,在围栏内完成打卡核销(核销单)的逻辑

flowchart TD A[进入打卡页面] --> B[获取当前位置] B --> C{定位成功?} C -->|否| D[提示开启定位权限] D --> B C -->|是| E[计算与目标距离] E --> F{在围栏范围内?} F -->|否| G[显示距离提示] G --> H[等待5秒] H --> B F -->|是| I[启用打卡按钮-核销单] I --> J[用户点击打卡核销] J --> K[记录经纬度时间] K --> L[上传打卡数据] L --> M{上传成功?} M -->|是| N[跳转拍照页面] M -->|否| O[提示重试] O --> J
技术说明

1. 围栏内打卡即完成核销单;使用 GPS/WiFi/基站 混合定位,精度目标 10-50 米。

2. 围栏校验使用 Turf.js 库进行地理计算;定位每5秒自动刷新,实时更新距离。

4. 表单填写流程

动态表单渲染与数据提交流程

flowchart TD A[进入表单页面] --> B[获取表单模板] B --> C[渲染表单组件] C --> D{有OCR数据?} D -->|是| E[自动填充字段] D -->|否| F[用户手动填写] E --> F F --> G{触发条件显示?} G -->|是| H[动态显示/隐藏字段] H --> F G -->|否| I[用户点击提交] I --> J[字段验证] J --> K{验证通过?} K -->|否| L[显示错误提示] L --> F K -->|是| M[提交表单数据] M --> N[跳转完成页面]
5. OCR识别流程

照片OCR文字识别与表单自动填充流程

flowchart LR A[拍摄照片] --> B[上传图片] B --> C{识别类型} C -->|票据| D[调用票据OCR] C -->|商品| E[调用商品OCR] C -->|通用| F[调用通用OCR] D --> G[解析识别结果] E --> G F --> G G --> H[提取关键信息] H --> I[映射到表单字段] I --> J[自动填充] J --> K[用户确认/修改]
OCR服务

支持腾讯云OCR和百度云OCR两种服务商

根据场景选择:票据识别、商品识别、通用文字识别

6. 用户登录时序图

微信小程序授权登录的时序流程

sequenceDiagram participant U as 用户 participant MP as 小程序 participant WX as 微信服务器 participant API as 后端API U->>MP: 点击登录按钮 MP->>WX: wx.login() WX-->>MP: 返回 code MP->>API: POST /auth/login {code} API->>WX: code2Session WX-->>API: 返回 openid, session_key API->>API: 生成 JWT Token API-->>MP: 返回 token, userInfo MP->>MP: 存储 token alt 首次登录 MP->>U: 显示绑定手机号 U->>MP: 授权手机号 MP->>WX: 获取加密手机号 WX-->>MP: 返回加密数据 MP->>API: POST /auth/bindPhone API-->>MP: 绑定成功 end MP->>U: 跳转首页
7. 管理设置流程

管理后台系统配置与基础数据维护流程

flowchart TD A[管理员登录] --> B{设置入口} B -->|用户与权限| C[用户管理] C --> C1[新增/编辑用户] C1 --> C2[分配角色] C2 --> C3[配置权限] B -->|基础数据| D[围栏管理] D --> D1[创建电子围栏] D1 --> D2[地图绘制围栏] D2 --> D3[保存围栏] B -->|表单配置| E[表单模板管理] E --> E1[设计表单] E1 --> E2[保存模板] E2 --> E3[模板分类] B -->|系统参数| F[系统设置] F --> F1[审核流程配置] F1 --> F2[派单规则配置] F2 --> F3[地图/OCR密钥] C3 --> G[配置生效] D3 --> G E3 --> G F3 --> G
说明

管理设置通常在发布任务前完成;用户角色、围栏、表单模板、审核与派单规则配置好后,派单员方可创建并发布任务。

8. 发布任务流程

派单员从创建任务到发布、派发的完整流程

flowchart TD A[派单员进入任务管理] --> B[点击创建任务] B --> C[填写任务基本信息] C --> C1[标题/描述/截止时间] C1 --> D[关联电子围栏] D --> D1{围栏已存在?} D1 -->|是| E[选择已有围栏] D1 -->|否| E2[前往围栏管理新建] E2 --> E E --> F[关联表单模板] F --> F1{模板已存在?} F1 -->|是| G[选择已有模板] F1 -->|否| G2[前往表单管理新建] G2 --> G G --> H[设置派发方式] H --> H1{派发方式} H1 -->|自动派单| I1[配置派单规则] I1 --> I2[轮询/就近/负载均衡] H1 -->|抢单| I3[设置抢单名额与限制] I2 --> J[保存任务] I3 --> J J --> K{立即发布?} K -->|是| L[发布任务] K -->|否| M[保存为草稿] L --> L1[自动派单: 推送给围栏内调研员] L --> L2[抢单: 上架抢单大厅] M --> N[可稍后编辑再发布]
说明

任务必须先关联围栏和表单模板才能发布;发布后根据派发方式自动推送或开放抢单。

9. 表单设计与发布流程

管理端设计表单模板、保存并关联到任务的流程

flowchart TD A[进入表单管理] --> B{新建 or 编辑} B -->|新建| C[创建空白表单] B -->|编辑| C2[选择已有模板] C --> D[拖拽添加组件] C2 --> D D --> D1[基础组件: 文本/单选/多选/日期] D1 --> D2[高级组件: 图片/评分/矩阵/级联] D2 --> E[配置字段属性] E --> E1[必填/校验规则] E1 --> E2[条件显示逻辑] E2 --> E3[字段关联与联动] E3 --> F[实时预览] F --> G{满意?} G -->|否| D G -->|是| H[保存为模板] H --> I[填写模板名称与分类] I --> J[模板入库] J --> K[可被任务关联] K --> L[派单员创建任务时选择该模板] L --> M[调研员执行任务时渲染该表单]
说明

表单模板在管理端设计并保存后,在「发布任务」时被关联;小程序端根据模板 JSON 动态渲染表单并收集数据。

10. 项目逻辑时序图

系统各角色与组件之间的典型交互时序(从配置到执行到审核)

sequenceDiagram participant Admin as 管理员 participant Dispatcher as 派单员 participant AdminVue as 管理后台 participant API as 后端API participant Researcher as 调研员 participant MiniApp as 小程序 participant Reviewer as 审核员 Note over Admin,Dispatcher: 阶段一: 管理设置与发布 Admin->>AdminVue: 登录管理后台 AdminVue->>API: 认证 API-->>AdminVue: Token Admin->>AdminVue: 配置用户/角色/权限 AdminVue->>API: 保存配置 Dispatcher->>AdminVue: 创建电子围栏 AdminVue->>API: 保存围栏 Dispatcher->>AdminVue: 设计表单模板 AdminVue->>API: 保存模板 Dispatcher->>AdminVue: 创建任务并关联围栏与表单 AdminVue->>API: 保存任务 Dispatcher->>AdminVue: 发布任务 AdminVue->>API: 发布/开放抢单 API->>API: 通知推送或上架抢单大厅 Note over Researcher,Reviewer: 阶段二: 调研员执行(先有任务发布,再接单,接单后打卡核销再拍照填表) Researcher->>MiniApp: 打开小程序登录 MiniApp->>API: 微信登录 API-->>MiniApp: Token MiniApp->>API: 获取我的任务/抢单列表 API-->>MiniApp: 任务列表 Researcher->>MiniApp: 接取任务 MiniApp->>API: 获取任务详情与表单模板 API-->>MiniApp: 任务与表单JSON Researcher->>MiniApp: 前往目标位置 Researcher->>MiniApp: 到达围栏内打卡核销-核销单 MiniApp->>API: 提交打卡核销 Researcher->>MiniApp: 拍照/填表并提交 MiniApp->>API: 提交表单与照片 API-->>MiniApp: 提交成功 Note over Admin,Reviewer: 阶段三: 审核与统计 Reviewer->>AdminVue: 打开审核管理 AdminVue->>API: 获取待审核列表 API-->>AdminVue: 提交记录 Reviewer->>AdminVue: 查看详情并审核 AdminVue->>API: 通过/驳回 API->>API: 更新状态并可选通知调研员 Dispatcher->>AdminVue: 查看统计与导出 AdminVue->>API: 报表/导出接口 API-->>AdminVue: 数据
说明

时序分为三阶段:管理设置与发布(管理员/派单员在管理后台完成围栏、表单、任务发布);调研员在小程序端先接单(任务已发布后才可接单)、到达围栏内打卡核销(核销单)、再拍照填表提交;审核员在管理后台审核,派单员/管理员查看统计与导出。

← 返回文档总览