请问bpmn-js应该如何设置画布不可编辑拖拽,以及转图片方便显示历史呢

来源:7-18 高亮历史流程渲染接口(下)

一米粒

2020-12-16

RT,项目需要实时在界面开出一小块查看历史流程图,想把cavans内的流程图缩放成图片展示,该如何实现呢

写回答

1回答

汪汪对

2020-12-16

主要代码

     public InputStream getProcessDiagram(String processInstanceId) {
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
                .processInstanceId(processInstanceId).singleResult();

        // null check
        if (processInstance != null) {
            // get process model
            BpmnModel model = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());

            if (model != null && model.getLocationMap().size() > 0) {
                ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();
                // 生成流程图 已启动的task 高亮
//                return generator.generateDiagram(model,
//                        runtimeService.getActiveActivityIds(processInstanceId));
                // 生成流程图 都不高亮
                return generator.generateDiagram(model,Collections.<String>emptyList());
            }
        }
        return null;
    }


调用代码

InputStream in = this.getProcessDiagram(processInstance.getId());
 String imageName = "image" + Instant.now().getEpochSecond()+".png";
            FileUtils.copyInputStreamToFile(in, new File("src/main/resources/processes/"+imageName));

扩展名可以尝试svg或png


bpmnjs活动的图,还能增加功能,比如鼠标以上的历史环节提示,甚至点击任务节点弹出页面去维护表等等
生成图片,是历史的车轮就倒回去了,但是不排除就有这样的需求。

还是建议用bpmnjs去展示吧。



1
0

Activiti7工作流开发 打造通用型可视化UML工作流系统

从0打造黑马潜力项目作品,掌握新版Activiti7核心+工程化思维。

963 学习 · 368 问题

查看课程