最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

繪制flowable?流程圖的Vue?庫使用詳解

 更新時間:2022年09月09日 11:48:02   作者:江南一點雨  
這篇文章主要為大家介紹了繪制flowable?流程圖的Vue?庫使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

之前松哥發(fā)了一篇文章和小伙伴們介紹了前端的 bpmn.js 這個庫,利用這個庫我們可以自己將繪制流程圖的功能嵌入到我們的項目中。

然而,這個庫默認是給 Camunda 設計的,所以畫出來的流程圖導出來的 XML 文件無法直接使用,必須要做一些深度定制,才能將 XML 文件轉(zhuǎn)為 Flowable 流程引擎可用的 XML 文件。這個深度定制太太太麻煩了。

所以我就在想前端有沒有現(xiàn)成的庫,可以直接用來繪制 Flowable 流程圖的?找來找去,找到了兩個,這兩個的相似度還蠻高的,不過這兩個都有一個問題,那就是都是基于 Vue2 開發(fā)的,在 Vue3 中用不了,算了,作為一個工具,Vue2 就 Vue2 吧,忍了。畢竟我也不是專業(yè)的前端工程師,掌握的前端技能能滿足我后端的需求也就足夠了,要是專業(yè)的前端工程師,我肯定把 bpmn.js+Vue3 整的明明白白了。

好啦,接下來就不廢話了,跟小伙伴們介紹一下這兩個可以繪制 Flowable 流程圖的前端庫。

workflow-bpmn-modeler

workflow-bpmn-modeler 基于 Vue 和 bpmn.io@7.0,實現(xiàn)了 flowable 的工作流設計器。使用這個流程繪制工具,建議采用 flowable6.4.1 版本,flowable6.4.2 版本開始進行商業(yè)化重構(gòu),為了方便刨碼學習,推薦使用 flowable6.4.1 版本。

這個用法其實很簡單,首先我們創(chuàng)建一個 Vue2 的項目,注意 Vue 的版本不要選錯了,項目創(chuàng)建好之后,添加 workflow-bpmn-modeler 依賴,執(zhí)行如下任意命令添加:

npm i workflow-bpmn-modeler

或者:

yarn add workflow-bpmn-modeler

添加完成后,package.json 內(nèi)容如下:

{
  "name": "bpmn_demo02",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
  },
  "dependencies": {
    "core-js": "^3.8.3",
    "element-ui": "^2.15.9",
    "vue": "^2.6.14",
    "vue-router": "^3.5.1",
    "workflow-bpmn-modeler": "^0.2.8"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-router": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "vue-template-compiler": "^2.6.14"
  }
}

注意看版本號。

接下來我們就可以在一個 .vue 文件中使用這個組件了,代碼如下:

<template>
  <div>
    <bpmn-modeler
            ref="refNode"
            :xml="xml"
            :users="users"
            :groups="groups"
            :categorys="categorys"
            :is-view="false"
            @save="save"
    />
  </div>
</template>

<script>
  import bpmnModeler from "workflow-bpmn-modeler";

  export default {
    components: {
      bpmnModeler,
    },
    data() {
      return {
        xml: "", // 后端查詢到的xml
        users: [
          { name: "javaboy", id: 1 },
          { name: "itboyhub", id: 2 },
          { name: "江南一點雨", id: 3 },
        ],
        groups: [
          { name: "經(jīng)理", id: 4 },
          { name: "組長", id: 5 },
          { name: "員工", id: 6 },
        ],
        categorys: [
          { name: "OA", id: "oa" },
          { name: "財務", id: "finance" },
        ],
      };
    },
    methods: {
      getModelDetail() {
        // 發(fā)送請求,獲取xml
        // this.xml = response.xml
      },
      save(data) {
        console.log(data);  // { process: {...}, xml: '...', svg: '...' }
      },
    },
  };
</script>

我們來分析一下這段代碼:

首先從 workflow-bpmn-modeler 中導入 bpmnModeler。

注冊 bpmnModeler 組件

在頁面中直接使用 bpmnModeler 組件,使用該組件時候,有五個屬性一個方法,我們挨個來說:

xml:這個屬性是 bpmnModeler 要展示的流程圖的 XML 字符串,我們可以提前給一個流程圖的 XML 字符串,這樣 bpmnModeler 組件就會將這個 XML 字符串所對應的流程圖給畫出來,如果我們只是單純的想自己繪制流程圖,那么這個可以不用管,給一個空字符串就行了。

users:這是一個數(shù)組,當我們配置 UserTask 的時候,可以設置這個 UserTask 由誰來處理,users 配置的就是這里用到的用戶。

groups:這個類似于 users,也是在 UserTask 中,如果我們想要配置一個 UserTask 的候選組的話,那么就會用到 groups 中的內(nèi)容。

categorys:這個屬性親測沒有任何功能,源代碼我也看了,源代碼中也沒有用這個屬性,這完全就是一個沒有用的屬性,可忽略之。

is-view:這個表示當前 bpmnModeler 是要畫流程圖還是單純的只是將流程圖展示出來,false 表示我們是用 bpmnModeler 畫流程圖的,如果設置為 true,就表示 bpmnModeler 只是用來展示流程圖(提前準備好流程圖的 XML 文件,可以用 bpmnModeler 將之展示出來)。

@save:這個是點擊網(wǎng)頁上的保存模型按鈕的時候,會觸發(fā)的一個回調(diào)函數(shù)。

好啦,這就可以了。

接下來,我們啟動 Vue 項目,就可以看到這個流程圖繪制頁面了:

現(xiàn)在就可以愉快的畫流程圖了~

接下來,松哥就用這個,手把手教大家畫一下之前文章中和大家用的請假流程圖,當時的流程圖是這樣的:

我們來看下如何繪制:

  • 首先我們先來定義一下流程的基本信息:

  • 接下來繪制經(jīng)理批準還是拒絕流程:

點擊這個扳手按鈕可以設置任務類型:

為這個任務設置一個監(jiān)聽器:

設置監(jiān)聽器的原因是因為前端用戶在提交請假申請的時候,選擇審批人可以直接選擇審批人,也可以選擇審批人的身份(例如經(jīng)理),這兩種選擇都是被允許的。所以我們就添加一個任務監(jiān)聽器,當流程執(zhí)行到這個 Task 的時候,我們就在任務監(jiān)聽器中,根據(jù)前端傳來的參數(shù)去設置這個任務是由候選人處理還是候選用戶組處理。

  • 添加互斥網(wǎng)關:

  • 審批通過線

接下來,先是審批通過,審批通過的條件是 approved 字段為 true 就表示審批通過:

  • 審批通過發(fā)送通知

審批通過后,給用戶發(fā)送一個通知,這是一個服務任務,發(fā)送通知的類是我們自己寫的,所以也需要配置一下自定義類的位置:

  • 結(jié)束

最后進入到審批通過 UserTask 并且結(jié)束:

  • 繪制拒絕線

按照如上流程,繼續(xù)繪制請假被拒絕的流程:

muheflow-bpmn-modeler

松哥要和大家介紹的第二個工具就是 muheflow-bpmn-modeler,這個基于 Vue 和 bpmn.io@8.0,實現(xiàn)了 flowable 的工作流設計器。使用這個流程繪制工具,建議采用 flowable6.4.1 版本,flowable6.4.2 版本開始進行商業(yè)化重構(gòu),為了方便刨碼學習,推薦使用 flowable6.4.1 版本。

沒找到這個的源代碼,但是我發(fā)現(xiàn)這個的用法和 workflow-bpmn-modeler 的用法毫無差別~所以我就不廢話了,照著上面的用這個就行了。

以上就是繪制flowable 流程圖的Vue 庫使用詳解的詳細內(nèi)容,更多關于Vue 庫繪制flowable 流程圖 的資料請關注腳本之家其它相關文章!

相關文章

  • VUE實現(xiàn)注冊與登錄效果

    VUE實現(xiàn)注冊與登錄效果

    這篇文章主要為大家詳細介紹了VUE實現(xiàn)注冊與登錄效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue filter介紹及其使用詳解

    Vue filter介紹及其使用詳解

    本篇文章主要介紹了Vue filter介紹及其使用詳解,VueJs 提供了強大的過濾器API,能夠?qū)?shù)據(jù)進行各種過濾處理。一起跟隨小編過來看看吧
    2017-10-10
  • 聊聊對Vue中的keep-alive的理解

    聊聊對Vue中的keep-alive的理解

    keepalive?是?Vue?內(nèi)置的一個組件,可以使被包含的組件保留狀態(tài),或避免重新渲染,也就是所謂的組件緩存,這篇文章主要介紹了說說你對Vue的keep-alive的理解,需要的朋友可以參考下
    2022-11-11
  • 談談VUE種methods watch和compute的區(qū)別和聯(lián)系

    談談VUE種methods watch和compute的區(qū)別和聯(lián)系

    本篇文章主要介紹了談談VUE種methods watch和compute的區(qū)別和聯(lián)系,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • 解決router.beforeEach()動態(tài)加載路由出現(xiàn)死循環(huán)問題

    解決router.beforeEach()動態(tài)加載路由出現(xiàn)死循環(huán)問題

    這篇文章主要介紹了解決router.beforeEach()動態(tài)加載路由出現(xiàn)死循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 淺析Vue3中的計算屬性和屬性監(jiān)聽

    淺析Vue3中的計算屬性和屬性監(jiān)聽

    這篇文章主要為大家詳細介紹了Vue3中的計算屬性和屬性監(jiān)聽的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-08-08
  • element-ui el-dialog嵌套table組件,ref問題及解決

    element-ui el-dialog嵌套table組件,ref問題及解決

    這篇文章主要介紹了element-ui el-dialog嵌套table組件,ref問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Vue?服務端渲染SSR示例詳解

    Vue?服務端渲染SSR示例詳解

    這篇文章主要介紹了Vue?服務端渲染SSR示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Vue實現(xiàn)當前頁面刷新的七種方法總結(jié)

    Vue實現(xiàn)當前頁面刷新的七種方法總結(jié)

    大家在vue項目中當刪除或者增加一條記錄的時候希望當前頁面可以重新刷新,但是vue框架自帶的router是不支持刷新當前頁面功能,所以本文就給大家分享了七種vue實現(xiàn)當前頁面刷新的方法,需要的朋友可以參考下
    2023-07-07
  • Vue3.5中新增的baseWatch函數(shù)用法詳解

    Vue3.5中新增的baseWatch函數(shù)用法詳解

    在Vue 3.5.0-beta.3版本中新增了一個base watch函數(shù),這個函數(shù)用法和我們熟知的watch API一模一樣,下面就跟隨小編一起來了解一下它的具體使用吧
    2024-11-11

最新評論

磐安县| 麻城市| 瑞昌市| 夏津县| 东台市| 手游| 含山县| 类乌齐县| 桐柏县| 开化县| 横山县| 长春市| 灯塔市| 阳谷县| 榕江县| 平武县| 桃江县| 彭山县| 嵊州市| 汽车| 南宫市| 腾冲县| 凤冈县| 固镇县| 磐石市| 武邑县| 南城县| 利辛县| 浮山县| 武冈市| 东安县| 南和县| 大安市| 新乐市| 广东省| 上栗县| 田东县| 宜黄县| 澎湖县| 衢州市| 吉林省|