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

Vue中實現(xiàn)在線畫流程圖的方法

 更新時間:2024年07月12日 12:14:49   作者:牛老師講GIS  
最近在調(diào)研一些在線文檔的實現(xiàn),包括文檔編輯器、在線思維導(dǎo)圖、在線流程圖等,本文分享在Vue框架下基于metaeditor-mxgraph實現(xiàn)在線流程圖,感興趣的朋友一起看看吧

概述

最近在調(diào)研一些在線文檔的實現(xiàn),包括文檔編輯器、在線思維導(dǎo)圖、在線流程圖等,前面的文章基于語雀編輯器的在線文檔編輯與查看實現(xiàn)了文檔編輯器。在本文,分享在Vue框架下基于metaeditor-mxgraph實現(xiàn)在線流程圖。

實現(xiàn)效果

image.png

實現(xiàn)

1. 添加依賴

{
   "metaeditor-mxgraph": "^2.0.7"
}

2. 編輯器簡介

metaeditor-mxgraph,圖元編輯器,支持獨立的流程圖編輯器,以及 DrawIO 嵌入方案。文檔地址為:https://npm.io/package/metaeditor-mxgraph。

3. 編輯器實現(xiàn)

<template>
  <div class="flow-chart" ref="flowChart"></div>
</template>
<script>
import 'metaeditor-mxgraph/assets/index.scss'
import { MetaEditor } from 'metaeditor-mxgraph'
const { MetaGraphEditor, getLanguage, stringToXml, xmlToString } = MetaEditor
export default {
  props: {
    chartData: {
      type: Object,
      default: () => null,
    },
  },
  mounted() {
    this.$nextTick(() => {
      this.init()
    })
  },
  watch: {
    chartData() {
      this.init()
    },
  },
  unmounted() {
    this.destroy()
  },
  methods: {
    destroy() {
      if (window.metaGraphEditor) window.metaGraphEditor.destroy()
      window.metaGraphEditor = null
    },
    init() {
      this.destroy()
      const xml = stringToXml(this.chartData || '<mxGraphModel></mxGraphModel>')
      const dom = this.$refs.flowChart
      const metaGraphEditor = new MetaGraphEditor({
        container: dom,
      })
      const lan = getLanguage('zh')
      metaGraphEditor.init(lan, xml)
      window.metaGraphEditor = metaGraphEditor
    },
  },
}
</script>
<style scoped lang="scss">
.flow-chart {
  width: 100%;
  height: 100%;
}
</style>

需要注意的是,編輯器默認(rèn)是絕對定位的,想要跟隨設(shè)定dom大小,需要設(shè)置其樣式為:

 .metagraph-container {
    position: relative;
    width: 100%;
    height: 100%;
    user-select: none;
}

設(shè)置完樣式后,菜單的位置會出錯,這個還沒修復(fù),使用時請注意。

4. 文檔預(yù)覽

<template>
  <div class="flow-chart" ref="flowChart"></div>
</template>
<script>
import 'metaeditor-mxgraph/assets/index.scss'
import { MetaEditor } from 'metaeditor-mxgraph'
const { MetaGraphViewer, stringToXml} = MetaEditor
export default {
  props: {
    chartData: {
      type: Object,
      default: () => null,
    },
  },
  mounted() {
    this.$nextTick(() => {
      this.init()
    })
  },
  watch: {
    chartData() {
      this.init()
    },
  },
  methods: {
    init() {
      const xml = stringToXml(this.chartData || '<mxGraphModel></mxGraphModel>')
      const dom = this.$refs.flowChart
      const metaGraphEditor = new MetaGraphViewer({
        xml: xml,
      })
      const { offsetWidth, offsetHeight } = dom
      const svg = metaGraphEditor.renderSVGDom(null, 1, 1, {
        width: offsetWidth,
        height: offsetHeight,
      })
      dom.appendChild(svg)
    },
  },
}
</script>
<style scoped lang="scss">
.flow-chart {
  width: 100%;
  height: 100%;
}
</style>

到此這篇關(guān)于Vue中實現(xiàn)在線畫流程圖實現(xiàn)的文章就介紹到這了,更多相關(guān)Vue畫流程圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用Cordova打包Vue項目的方法步驟

    用Cordova打包Vue項目的方法步驟

    這篇文章主要介紹了用Cordova打包Vue項目的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 關(guān)于Vue代碼可讀性的幾點建議

    關(guān)于Vue代碼可讀性的幾點建議

    凡事有好就又壞,想必大家都知道Vue的作用與優(yōu)點,但是使用的規(guī)程中也總是有很多問題,接下來小編就來向大家講解使用Vue時應(yīng)注意的一些問題,希望能幫助到大家
    2021-09-09
  • vue實現(xiàn)在v-html的html字符串中綁定事件

    vue實現(xiàn)在v-html的html字符串中綁定事件

    今天小編就為大家分享一篇vue實現(xiàn)在v-html的html字符串中綁定事件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue3 ref獲取不到子組件的解決方法

    vue3 ref獲取不到子組件的解決方法

    在父組件內(nèi)調(diào)用子組件內(nèi)的事件從而改變子組件的某些狀態(tài),父子組件使用<script setup>語法糖,父組件通過給子組件定義ref訪問其內(nèi)部事件,本文給大家介紹了vue3 ref獲取不到子組件的解決方法,需要的朋友可以參考下
    2024-06-06
  • Vue實現(xiàn)模糊查詢的簡單示例

    Vue實現(xiàn)模糊查詢的簡單示例

    在Vue中實現(xiàn)模糊查詢,你可以使用JavaScript的filter和includes方法,結(jié)合Vue的v-for指令,本文給大家舉了一個簡單的示例,并通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Vue監(jiān)聽使用方法和過濾器實現(xiàn)

    Vue監(jiān)聽使用方法和過濾器實現(xiàn)

    這篇文章主要介紹了Vue監(jiān)聽使用方法和過濾器實現(xiàn),過濾器為頁面中數(shù)據(jù)進行強化,具有局部過濾器和全局過濾器
    2022-06-06
  • Vue之mixin全局的用法詳解

    Vue之mixin全局的用法詳解

    這篇文章主要介紹了Vue之mixin全局的用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue組件暴露和.js文件暴露接口操作

    vue組件暴露和.js文件暴露接口操作

    這篇文章主要介紹了vue組件暴露和.js文件暴露接口操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue組件中使用防抖函數(shù)的方式

    vue組件中使用防抖函數(shù)的方式

    這篇文章主要介紹了vue組件中使用防抖函數(shù)的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue2實現(xiàn)自適應(yīng)屏幕大小的兩種方法詳解

    Vue2實現(xiàn)自適應(yīng)屏幕大小的兩種方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue2實現(xiàn)自適應(yīng)屏幕大小的兩種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03

最新評論

西林县| 长治市| 灵山县| 阿坝县| 琼海市| 文安县| 霸州市| 沂源县| 弋阳县| 友谊县| 肇庆市| 县级市| 集安市| 彭山县| 平山县| 西藏| 太康县| 陕西省| 乳源| 张家港市| 原平市| 郯城县| 大城县| 红桥区| 五河县| 孙吴县| 黄石市| 马关县| 德清县| 新沂市| 新沂市| 佛山市| 南平市| 徐闻县| 游戏| 惠州市| 潼关县| 静海县| 岳阳市| 邢台市| 始兴县|