vue 中引用gojs绘制E-R图

首先,在vue项目中安装gojs的依赖包,并在项目中引入。

创建tablePreview.vue

<style>
  #sample{
    position: relative;
    margin: 20px;
  }
  #myOverviewDiv {
    position: absolute;
    width:225px;
    height:100px;
    top: 10px;
    left: 10px;
    background-color: aliceblue;
    z-index: 300; /* make sure its in front */
    border: solid 1px blue;
  }
  #mySearch{
    width: 60%;
    float: right;
    margin-right: 20px;
  }
  .input_button{
    margin: 20px;
  }
  #entityRelation{
    width: 100%;
    height: 700px;
    border:1px solid #cccccc;
  }
  .returnShang{
    color: #fff;
    text-underline: none;
  }
  .returnShang:hover{
    color: #fff;
    text-underline: none;
  }
</style>
<template>
  <div>
    <div class="input_button">
      <Button type="success"><router-link to="/dataSourceAdmin" class="returnShang">返回上一级</router-link></Button>
      <Button type="primary" @click="searchDiagram()" style="float: right">Search</Button>
      <Input placeholder="请输入要查询的表名" id="mySearch" v-model="searchText" @keyup.enter.native="searchDiagram()"></Input>

    </div>
    <div id="sample">
      <div id="entityRelation"></div>
      <div id="myOverviewDiv"></div>
    </div>
  </div>
</template>
<script src="./tablePreview.js"></script>

在js文件中绘制E-R图,注意:初始化方面必须放在mounted中调用。

tablePreview.js如下

export default{
  data() {
    return {
      myDiagram: '',
      searchText: '',
      tabViewList: '',
      tabRelView: ''
    }
  },
  mounted() {
    var dataSoureId = JSON.parse(sessionStorage.getItem("previewInfo")).datasourceId
    let _this = this
    _this.$ajax.post(_this.cfg.api.dataPoolAdmin.tableRelView +'?datasourceId=' + dataSoureId)
      .then(function (res) {
        if(res.data.result) {
          _this.tabViewList = res.data.data.tabViewList
          _this.tabRelView = res.data.data.tabRelViewList
          _this.init()
        }
      })

  },
  methods: {
    init() {
      var go = this.go
      if (window.goSamples) goSamples();  // init for these samples -- you don't need to call this
      var a = go.GraphObject.make;  // 定义模板

      this.myDiagram =
        a(go.Diagram, 'entityRelation',  // 必须命名或引用div html元素
          {
            initialContentAlignment: go.Spot.Center,
            allowDelete: false,
            allowCopy: false,
            layout: a(go.ForceDirectedLayout),
            "undoManager.isEnabled": true
          });

      // defi
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue使用GoJS绘制流程是很简单的。首先,你需要将GoJS库引入你的项目。你可以通过npm安装GoJS,然后在你的Vue组件引入它。 在你的组件的script标签,首先你应该引入GoJS库: import * as go from 'gojs'; 然后,在Vue的生命周期钩子函数,比如mounted函数,使用GoJS创建一个表: mounted() { const myDiagram = go.GraphObject.make(go.Diagram, 'myDiagramDiv'); // 创建一个布局 const layout = go.GraphObject.make(go.TreeLayout); // 将布局设置到表上 myDiagram.layout = layout; ... } 上面的代码,我们使用GoJS的make方法创建一个表对象,并将它挂载到id为myDiagramDiv的DOM元素上。然后,我们创建一个布局对象并将其设置到表上。你还可以根据需要自定义表的样式和行为。 接下来,你可以使用GoJS的其他方法和属性来添加节点和链接,设置样式,添加事件等来绘制你的流程。比如: const nodeDataArray = [ { key: 'Alpha', color: 'lightblue' }, { key: 'Gamma', color: 'lightgreen' }, { key: 'Beta', color: 'lightyellow' }, ]; // 添加节点 nodeDataArray.forEach(nodeData => { myDiagram.addNodeData(nodeData); }); // 添加链接 myDiagram.model.addLinkData({ from: 'Alpha', to: 'Beta' }); 在上面的代码,我们使用GoJS的addNodeData方法来添加节点,并使用addLinkData方法来添加链接。你可以根据你的实际需求自定义节点和链接的数据和样式。 最后,在你的模板,你可以使用一个DOM元素来放置你的表: <template> <div id="myDiagramDiv" style="width:800px; height:600px;"></div> </template> 最后,通过一些Vue的工具方法,你可以在Vue组件动态地操作表,并将其与其他Vue组件进行交互。 总之,Vue和GoJS结合使用能够轻松地绘制流程,并提供了丰富的功能和可定制性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值