npm 包 bpmn-js-properties-panel-activiti-support 使用教程

阅读时长 23 分钟读完

在前端开发中,我们常常需要使用 BPMN 语言来描述各种业务流程,同时也需要通过活动、用户任务和网关等元素来描述流程中的各个阶段和执行步骤。npm 包 bpmn-js-properties-panel-activiti-support 就是在此背景下产生的一款基于 bpmn-js 的 npm 包,它提供了一些支持 Activiti 自定义扩展属性的面板,使我们能够在 BPMN 编辑器中方便地添加和编辑各种扩展属性。在本篇文章中,我们将详细介绍如何使用该 npm 包进行前端开发。

使用 npm 安装 bpmn-js-properties-panel-activiti-support

在开始使用 bpmn-js-properties-panel-activiti-support 前,我们需要保证已经安装好了 node.js 和 npm,如果没有安装,请先安装好。

使用 npm 安装 bpmn-js-properties-panel-activiti-support 只需要执行以下命令即可:

安装完成后,我们可以在 package.json 文件中看到已经添加了该包的依赖信息:

在前端项目中使用 bpmn-js-properties-panel-activiti-support

安装完成后,我们需要在前端项目中引用该包并进行相关配置。

导入 bpmn-js-properties-panel-activiti-support

在需要使用 bpmn-js-properties-panel-activiti-support 的文件中,我们需要先引入该包:

扩展 bpmn-js 的面板配置

接着,我们需要在 bpmn-js 的配置中添加该包的配置信息,以便在编辑器中显示该扩展面板,具体需要配置的信息有如下几个部分:

1. module.imports

在 module.imports 中需要引入 bpmn-js-properties-panel 和 bpmn-js-properties-panel-activiti-support,同时也需要在该变量定义中添加 bpmnjs.properties-panel 和 bpmnjs.properties-panel-activiti-support 的别名,以便在后面的配置中使用。

-- -------------------- ---- -------
--- --------------- - -
    -----
--

--- ----------------- - -
    ------------------------------------
--

--- ----------- - --- -------------
    -----
    ------------------
    ----------------- -
        -----
    --
    -- ----
    ---------------- -
        ------- -----------------------
        -- ----
        ------------------ -
            -
                -- ------------------------ ---
                ------- -------------------
                -- ------------------------ ---
                ----- --------------------------------
                -- ---------------------- ------------------------ --------
                ------------------- -----------------
            --
            -
                -- ----------------------------------------- ---
                ------- ------------------------------------
                -- ----------------------------------------- ---
                ----- -------------------------------------------------
                ------------------- -----------------
            -
        --
        -- ---------
        ------------------- -
            -----
        --
        -----
    --
    -----
-

2. propertiesProvider

在 propertiesProvider 中定义每个元素的扩展属性面板信息,包括每个元素的 ID、elementName、provider 和 descriptor 等属性,设置这些属性后,我们就可以在编辑面板中显示出扩展属性面板,默认情况下不显示。

-- -------------------- ---- -------
--- --------------- - -
    -----
--

--- ----------------- - -
    ------------------------------------
--

--- ----------- - --- -------------
    -----
    ------------------
    ----------------- -
        -----
    --
    -----
    ---------------- -
        ------- -----------------------
        ------------------ -
            -----
        --
        -- -- --------------------------------
        ------------------- -
            -- --------------
            --------------- -
                ----------- -
                    -
                        -- ------- --
                        --- -------
                        -- ---------
                        ----- -----
                        -- --------------
                        --------- -
                            -- --
                            -------- -
                                -- ----
                                -
                                    --- ------------
                                    ------ -------
                                    -- -----------
                                    -------------- -------
                                    -- --- ---- ----
                                    ----- -
                                        -- ------- ----- ---
                                        ----- --------
                                        -- ---------
                                        ------------ -------
                                        -- -------------
                                        -------- -
                                            ----- -------
                                            ----- -----------
                                            ----------- ---------
                                        -
                                    -
                                -
                            -
                        -
                    -
                -
            --
            -----
        --
        -----
    --
    -----
--

在编辑中使用扩展属性面板

在完成以上配置后,我们即可在 bpmn-js 编辑中使用扩展属性面板。

例如,在某个元素上右键单击,弹出弹出菜单后,单击 “Edit” 可以看到显示了新添加的属性面板。

-- -------------------- ---- -------
-- ---

-- ----
---------------------------------------------- -
    -- -------------------------- -
        ------------- - -------------
        ------------------------------
    -
    ------ ------
---

-----

---
 - ------
 - ------ ------ -- -- ---- -- --
 --
-------- ------------- -
    ----- - -----------

    --- ----- - ----- - ----------------------

    -- -------- -
        ----- - ------------
            ------ -----------------------------
            -----
        ---
    - ---- -
        -------------
    -
-

完整示例代码

下面是一个完整的示例,包括了 BpmnModeler 的配置和添加事件:

-- -------------------- ---- -------
------ ------ ---- ---------
------ ----------- ---- ----------------------
------ --------------------- ---- ---------------------------
------ ------------------------------------ ---- --------------------------------------------
------ ---- ---- -------
------ -
    --------
- ---- ---------
------------- - -------

----- --------- - ----------------------------------
----- ------------------------ - -----------------------------------------------

-- ------- ------
----- ----------------- - -
    ----------------------
    ------------------------------------
--

-- ------- ------ -------------
----- --------------- - -
    ------------- --------
    ---------- -------
    ---------- -------
    ------------ -----
    ---------------- -----
    ------------- -------
    ----------- -------
    --------------- ------
--
-- --- -------

----- ----------- - ------ ------------- ---------------- ---------------------------------- -------------------------------------------------------- ------------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------ ---------------------------------------------------------- -------------- ------------------------------------- ----------------------------------------------------- ------------------------------------ ---------------- ----------------------------------------- ---------------------------- ------------------------------------- ------- ------- ---------- ---------------------------------------------------------------------------------------------

----- ----------------------- - ------------------ -----------------

----- ------- - --- -------------
            ---------- ----------
            ---------------- -
                -- --------------
                ------- -----------------------
                ------------------ -
                    ------------------------------------
                --
                ------------------- -
                    ----------- -
                        ------ ----------
                        ----------- -
                            -
                                --- -------
                                ----- -----
                                ------------ -------
                                ------- --------------
                                ----- -
                                    ----- --------
                                    -------- -
                                        ----- -------
                                        ----- -----------
                                        ----------- ---------
                                    -
                                -
                            -
                        -
                    --
                    ----- -
                        ------ -------
                        ----------- -
                            -
                                --- ---------------
                                ------------ ---- --- ---- -- --- ---------
                                ------ -------- ------
                                ----- ---------
                                ------ --- ---------
                                --------- -----
                                -------- -
                                    ----- -----------
                                    ----- -------
                                    ----------- ----------
                                -
                            -
                        -
                    --
                    --------- -
                        ------ -----------
                        ----------- -
                            -
                                --- -------------
                                ------ -------- ----
                                ----- ---------
                                ------ ---
                                ------ ------------------
                                ------------ ---- ---------- ----
                                --------- -----
                                -------- -
                                    ----- -----------
                                    ----- ---------------------
                                    ----------- ----------
                                -
                            --
                            -
                                --- ---------------------
                                ------ ---------- ----------
                                ----- --------
                                ------------ ---------- ----------
                                ------ ------------------
                                --------- -----
                                -------- -
                                    ----- -----------
                                    ----- -----------------------------
                                    ----------- ----------
                                --
                                -------------- -
                                    -
                                        ----- ----- -------
                                        ------ -------
                                    --
                                    -
                                        ----- -------------
                                        ------ ------------
                                    --
                                    -
                                        ----- --------- ------------
                                        ------ --------------------
                                    -
                                -
                            -
                        -
                    -
                -
                --
                ------------------ -
                    ----
                --
                ----------------- -
                    -- ---
                --
                -- ------
                -- ---
---
-- ---

-------- ------------------------------------ ------- --- -------- -

    ----- ----------- - ------------ -----

    ------------------------------ -

        --------------------------------- ---------- -
            ----- ---- - -------------------------

            -- ----- ---- ---------- -- --- -----
            -- --------- --- -------- -- --------
            ----------------- -----------
        ---
    ---
-


----------------------------
    -------- ------------------------
        ---------------- -
        --------------------- ---- -
            -- ----- -
                -------------------- -----
            -
        ---
    -
--

-------- ------------- -

    ----------------- ------- ---- -- ------------- ---- -
        --------- -----
    ---
-

-------- ------------------ -
    -------------------------
-
-------- ---------------- -
    ---------------------- ------------- -
        -- ----- -
            -------------------
        - ---- -
            -------------------------
        -
    ---
-

-------- ------------ -

    -- --------- -- --------- --- -- -- - - --- -

        --------------------- ---- -

            -- ----- -
                --------------------- -- ---- ----- -----
            - ---- -
                ----------------- --------
            -
        ---

        --------------------
        -------------------
    -
-

------------------------------------ -----------

--------------------------------------------- ---------- -
    -------------------
---

总结

本文主要介绍了如何使用 npm 包 bpmn-js-properties-panel-activiti-support 进行前端开发,并通过详细的示例代码展示了如何在 BpmnModeler 中添加扩展面板配置,同时也提供了关于该 npm 包使用的深度指导意义。相信读者在学习过程中已经掌握了该 npm 包的使用方法,能够在实际开发中灵活使用该 npm 包。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600673dffb81d47349e53c40

纠错
反馈