react组件之cmao-ui,编写流程图的功能介绍

流程组件介绍:

  该组件参考老版力软learun框架中的jquery流程组件进行重构,改写为react的组件。样式、操作、交互方式大致相近。

  该组件依赖的react版本大于18(不是不能做到兼容旧版react,而是要写就写新版本的,还用老的干嘛)

下载

//npm下载
npm install cmao-ui

引用

该组件是ui框架组件,内有多个功能组件,此处只讲流程图的使用。

import {Workflow} from cmao-ui;

//渲染
<Workflow />

注意的地方。需要另外安装babel-plugin-import,来配置css自动随着组件的import引用而引用。

若不进行配置,import上面的组件,需要手动引用css。
import form 'lib/workflow/style/index'

效果图

左侧栏为功能选择。选择功能后,才能对应在右侧画板上进行操作。可以选择添加节点,给两个节点之间画线连接。

参考<Workflow />组件的属性值,了解相关功能。

interface Props {
    id: string;
    /**是否为预览 */
    isPreview: boolean;
    /**
     * 双击节点node的回调方法
     * @param arg0 当前节点node
     * @returns
     */
    openNode?: (arg0: Node) => void;
    /**
     * 双击线line的回调方法
     * @param arg0 当前点击的线line
     * @param arg1 当前点击的线line来自的节点
     * @returns
     */
    openLine?: (arg0: Line, arg1: Node) => void;
    ref?: any;
}

如何在外部调用组件内部方法?

//目前该组件是通过暴露组件内方法,由外部调用。
//优点:简单直接。
//缺点:没有暴露相关属性值,没有相关介绍则无从得知。
//cmao-ui暂时版本如此,等以后重构后会优化

//组件ref绑定
const workflowRef = useRef<any>(null);
 <Workflow ref={workflowRef} />
 
  //获取页面上的点线json组合。在画板上画好流程后,调用该方法即可
  let data = workflowRef.current.workflowGet();
 
 //通过方法给画板画流程。把符合的json给传参到data中即可
  workflowRef.current.workflowSet('set', { data: data });
 
 //修改对应的node,参数是node的id及整个node对象
 workflowRef.current.workflowSet('updateNodeById', { id: node.id, data: node });
 
  //修改对应的line,参数是line的id及整个line对象
 workflowRef.current.workflowSet('updateLineById', { id: line.id, data: line });
 

 

 

 

posted @ 2024-04-10 15:23  shine声  阅读(105)  评论(0编辑  收藏  举报