Skip to content

工作流监控面板

**本文引用的文件** - [dashboard.vue](file://dm/lemes-web/src/components/dashboard/dashboard.vue) - [dashboard-panel.vue](file://dm/lemes-web/src/components/dashboard/dashboard-panel.vue) - [dashboardLine.vue](file://dm/lemes-web/src/components/dashboard/dashboardLine.vue) - [le-chart.vue](file://dm/lemes-web/src/components/dashboard/le-chart.vue) - [workflow.sql](file://docs/ddl/workflow.sql) - [index.vue](file://dm/lemes-web/src/components/bpmnModeler/index.vue) - [task.vue](file://dm/lemes-web/src/components/bpmnModeler/components/nodePanel/task.vue) - [u-charts.js](file://app/devicemate-app/components/u-charts/u-charts.js) - [iconfont.css](file://dm/lemes-web/src/assets/font/iconfont.css)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本技术文档面向 DeviceMate 工作流监控面板,系统性阐述工作流状态监控、性能指标采集与可视化展示的实现方案。内容覆盖监控数据的采集来源、存储结构、分析维度(流程实例统计、任务执行时长、用户活跃度)、仪表板设计与交互、实时更新机制、告警配置与通知、以及数据导出与报表生成等能力。文档同时提供可视化架构图与流程图,帮助读者快速理解从数据采集到可视化呈现的全链路。

项目结构

工作流监控涉及前端看板组件、图表库封装、BPMN 流程模型渲染、数据库 DDL 定义与后端服务对接。前端采用 Vue 组件化架构,结合 ECharts 与自研图表封装组件;后端通过工作流服务产生审计与日志数据,数据库提供统一的数据存储与查询基础。

图表来源

章节来源

核心组件

  • 全屏看板容器:提供统一的背景、标题、时间显示与全屏切换能力,适配大屏缩放与响应式布局。
  • 面板容器:用于承载监控卡片与子组件,支持标题插槽与内容区域样式定制。
  • 图表封装:基于 ECharts 封装通用折线/柱状/饼图配置,支持动态尺寸监听与重绘。
  • BPMN 渲染与高亮:根据流程任务完成状态对节点与连线进行视觉标记,直观反映流程进度。
  • 图标字体:提供监控相关图标资源,统一界面风格。

章节来源

架构总览

监控体系从前端看板到后端数据,形成“采集-存储-分析-展示”的闭环。前端负责实时刷新与可视化,后端通过工作流服务产生审计与日志数据,数据库提供统一的数据模型支撑。

图表来源

详细组件分析

全屏看板容器(dashboard.vue)

  • 功能要点
    • 提供全屏切换、时间显示、背景与标题区域布局。
    • 计算缩放比例,适配不同分辨率的大屏展示。
    • 响应式监听容器尺寸变化并触发重绘。
  • 关键行为
    • 定时器每秒更新当前时间。
    • 监听容器尺寸变化,确保图表在缩放后正确渲染。

图表来源

章节来源

面板容器(dashboard-panel.vue)

  • 功能要点
    • 支持标题插槽(左侧/中部/右侧),内容区域可自定义样式。
    • 统一边框与背景,便于组合多个监控卡片。
  • 使用建议
    • 将各类指标卡片封装为子组件,通过插槽灵活组合。

章节来源

线型看板(dashboardLine.vue)

  • 功能要点
    • 与 dashboard.vue 类似,但布局更偏向横向展示,适合长条形指标卡。
    • 同样具备全屏切换、时间显示与缩放适配。

章节来源

图表封装(le-chart.vue)

  • 功能要点
    • 基于 ECharts 封装,内置折线、柱状、饼图的默认样式与主题色。
    • 支持动态合并配置、监听容器尺寸变化自动 resize。
    • 提供图例高亮、取消高亮、图例切换等交互事件。
  • 性能特性
    • 使用防抖/节流策略避免频繁重绘。
    • 支持渐变色、阴影等视觉增强,兼顾美观与性能。

图表来源

章节来源

BPMN 流程渲染与高亮(index.vue)

  • 功能要点
    • 根据任务完成状态对 UserTask 节点与连线添加高亮/待办标记。
    • 对网关与结束事件进行分支与终点高亮,直观展示流程走向。
  • 数据来源
    • 依赖任务列表与流程定义,结合 Canvas 标记实现状态可视化。

图表来源

章节来源

监控数据采集与存储(workflow.sql)

  • 审计日志表(flow_audit_log)
    • 记录流程实例、节点标题、审核状态、时间、用户等关键信息,用于统计流程节点耗时、审批效率与用户活跃度。
  • 流程日志表(flow_log)
    • 记录节点类型、任务名称、审批结果、上一步信息等,支撑流程轨迹与异常定位。
  • 用户表(flow_user)与角色表(flow_user_role)
    • 提供用户维度的活跃度与权限信息,便于按用户/角色聚合统计。
  • 节点配置表(flow_node_config)与流程配置表(flow_business_config)
    • 描述流程结构与节点参数,辅助计算流程复杂度与节点权重。

图表来源

章节来源

监控仪表板设计与实现

  • 设计原则
    • 信息密度与可读性平衡:优先展示关键指标与趋势。
    • 一致性:统一字体、颜色与边框风格,使用面板容器与图标字体。
    • 交互性:支持全屏切换、时间显示、图例高亮与点击切换。
  • 组件组合
    • 使用 dashboard.vue 作为根容器,dashboard-panel.vue 承载各卡片,le-chart.vue 展示趋势与分布。
  • 实时更新
    • 通过定时器与容器尺寸监听,确保图表随时间与窗口变化自动刷新。

章节来源

监控告警配置、阈值设置与通知机制

  • 告警维度建议
    • 流程节点超时:基于审计日志中的节点开始/结束时间计算耗时,设定阈值触发告警。
    • 审批通过率异常:按周期统计审批通过率,低于阈值告警。
    • 用户活跃度骤降:基于用户操作日志与任务参与度,设定阈值触发预警。
  • 阈值管理
    • 将阈值配置集中管理,支持按工厂/部门/流程类型差异化配置。
  • 通知机制
    • 结合后端消息推送或 WebSocket 实时通知,前端弹窗或徽章提示。
  • 可视化联动
    • 告警触发时,对应指标高亮或闪烁,BPMN 流程节点标注异常状态。

[本节为概念性说明,未直接分析具体文件,故无“章节来源”]

监控数据导出、报表生成与趋势分析

  • 导出能力
    • 基于表格组件与 Excel 导出工具,支持按时间范围与筛选条件导出。
  • 报表生成
    • 按日/周/月维度汇总流程实例数量、平均耗时、通过率等关键指标。
  • 趋势分析
    • 利用折线图展示指标随时间的变化,识别周期性波动与异常峰值。

[本节为概念性说明,未直接分析具体文件,故无“章节来源”]

依赖关系分析

  • 前端组件依赖
    • dashboard.vue 依赖全屏指令与日期格式化工具。
    • le-chart.vue 依赖 ECharts 与 u-charts.js(小程序场景)。
    • BPMN 渲染依赖 diagram-js 生态与自定义控制样式。
  • 数据依赖
    • 审计日志与流程日志表提供监控数据基础,用户与角色表支撑用户维度分析。
  • 外部集成
    • 后端工作流服务提供数据写入,前端通过接口拉取并轮询更新。

图表来源

章节来源

性能考量

  • 图表渲染优化
    • 控制图表更新频率,避免高频 setOption 导致重绘开销过大。
    • 使用容器尺寸监听的节流策略,减少 resize 次数。
  • 数据加载优化
    • 分页与分段加载监控数据,避免一次性请求过多历史数据。
    • 缓存常用配置与静态资源,降低网络与解析成本。
  • 视觉与交互
    • 合理使用渐变与阴影,避免过度渲染影响性能。
    • 图例高亮/取消高亮采用 dispatchAction,避免全量重绘。

[本节为通用指导,未直接分析具体文件,故无“章节来源”]

故障排查指南

  • 图表不显示或空白
    • 检查容器尺寸是否为 0,确认 mounted 后已获取尺寸并触发 resize。
    • 确认 ECharts 实例已初始化且 setOption 被调用。
  • 时间显示异常
    • 检查定时器是否正常运行,确认时间格式化函数可用。
  • BPMN 高亮不生效
    • 检查任务列表与流程元素匹配关系,确认节点 ID 与连线目标一致。
    • 确认 Canvas 标记样式与流程定义版本一致。
  • 数据缺失或延迟
    • 核对后端工作流服务写入日志是否正常,检查数据库连接与权限。
    • 确认前端轮询间隔与接口返回数据结构一致。

章节来源

结论

DeviceMate 工作流监控面板通过前端看板容器、图表封装与 BPMN 渲染,结合后端工作流审计与日志数据,实现了从状态监控到趋势分析的完整闭环。依托统一的数据模型与可扩展的组件体系,系统可在保证性能的前提下,持续迭代告警、报表与交互体验,满足生产现场对流程透明化与可视化的管理需求。

附录

  • 图标资源:通过 iconfont.css 引入统一图标字体,便于在看板中使用状态、图表、设备等图标。
  • 小程序图表:u-charts.js 提供移动端/小程序场景下的图表绘制能力,便于跨端复用。

章节来源