zoukankan      html  css  js  c++  java
  • vue JointJS 实例demo

    前言

      越来越发现,前端深入好难哦!虐成渣渣了。

      需求:前端绘制灵活的关系图(此demo还是简单的,我的需求才跨出一小步)

     安装

      npm install jointjs

    容器,工具栏

    <template>
        <div id="toolbar">
                    <button class="btn add-question" :click='addNode'>Add Node</button>
                    <button class="btn add-answer">Add Answer</button>
                    <button class="btn preview-dialog">Preview Dialog</button>
                    <button class="btn code-snippet">Code Snippet</button>
                    <button class="btn clear">Clear Canvas</button>
                    <button class="btn load-example">Load Example</button>
                </div>
                <div id="myholder" @click="click_joint"></div>
    </template>
    <script>
    require('../assets/css/toolbar.css')
    import ParamidaPay from "../paramidaPay.js"
    import joint from 'jointjs'
    import $ from 'jquery'
    
    export default {
      name: 'App',
      data: function () {
        return {
          active: true
        }
      },
      mounted: function () {
        this.inti()
      },
      methods: {
        inti(){
          // 先创建joint graph 对象
          var graph = new joint.dia.Graph();
          
          //设定容器基本信息
          var paper = new joint.dia.Paper({
              el: document.getElementById('myholder'),
               900,
              height: 700,
              model: graph,
          });
          let rect = new joint.shapes.basic.Rect({
              position: { x: 100, y: 30 },
              size: {  100, height: 30 },
              attrs: {
                 rect: { fill: 'rgb(75, 74, 103)' }, text: { text: 'node', fill: 'white' }
                }
          })
          let rect2 = rect.clone();
    
          let rect3 = rect.clone();
              rect2.translate(300);
              rect3.translate(600);
          
          let link = new joint.dia.Link({
              source: { id: rect.id },
              target: { id: rect2.id }
          })
    
           graph.addCells([rect, rect2,  rect3,link]);
        }
      },
      addNode(){
    
      }
    }
    </script>
    <style>
      #myholder{
        width: 900px;
        height: 700px;
        margin: 0 auto;
        margin-top: 25px;
        border: 1px solid #d3d3d3;
      }
    </style>

    运行效果

      

      Fannie式总结

      是不是有点好看

      话不多说,我其实是为了保存代码,最小单元

      然后我要接着做下去了

      好了,emmmm(调研阶段有更多的坑,我下一篇文章写)

      

      

  • 相关阅读:
    v​s​快​捷​键
    sequelize 基本操作
    服务器重启,自动重启httpd
    svn使用方法以及使用教程
    非常全的VsCode快捷键
    原生JS forEach()和map()遍历的区别以及兼容写法
    JS中 map, filter, some, every, forEach, for in, for of 用法总结
    map的使用
    Window和Mac下端口占用情况及处理方式
    vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
  • 原文地址:https://www.cnblogs.com/ifannie/p/10411380.html
Copyright © 2011-2022 走看看