首页 > 其他分享 >vue3+jointjs demo

vue3+jointjs demo

时间:2023-04-24 18:55:16浏览次数:56  
标签:body JointJS demo joint paper jointjs vue3 rect

下面是使用Vue3和JointJS添加元素的示例代码:

1. 安装JointJS

```terminal
npm install jointjs --save
```

2. 创建JointJS图形

```javascript
import { ref, onMounted } from 'vue';
import * as joint from 'jointjs';

export default {
  setup() {
    const graphContainer = ref(null);
    let paper = null;
    let rect = null;

    onMounted(() => {
      // 创建JointJS图形
      paper = new joint.dia.Paper({
        el: graphContainer.value,
        width: 800,
        height: 600,
        model: new joint.dia.Graph(),
        gridSize: 1
      });

      // 创建矩形元素
      rect = new joint.shapes.standard.Rectangle();
      rect.position(100, 100);
      rect.resize(100, 50);
      rect.attr({
        body: {
          fill: 'blue'
        },
        label: {
          text: 'My Rectangle',
          fill: 'white'
        }
      });

      // 将矩形元素添加到图形中
      const graph = paper.model;
      graph.addCells([rect]);

      // 支持拖动
      paper.on('blank:pointerdown', function (evt, x, y) {
        $('body').css('cursor', 'move');
        paper.translate(-x, -y);
      });

      paper.on('cell:pointerdown', function (cellView, evt) {
        $('body').css('cursor', 'move');
      });

      paper.on('cell:pointerup', function (cellView, evt, x, y) {
        $('body').css('cursor', 'default');
      });

      paper.on('blank:pointerup', function (evt, x, y) {
        $('body').css('cursor', 'default');
      });
    });

    return {
      graphContainer
    };
  }
};
```

上面的代码中,我们先创建了JointJS图形,然后创建了一个矩形元素,并将其添加到图形中。最后,我们实现了支持拖动的功能。

使用上面的代码,你可以在Vue3中快速、方便地添加元素。

 

标签:body,JointJS,demo,joint,paper,jointjs,vue3,rect
From: https://www.cnblogs.com/lljboke/p/17350536.html

相关文章

  • Vue3 Vue3中其他的改变
    视频六、其他1.全局API的转移Vue2.x有许多全局API和配置。例如:注册全局组件、注册全局指令等。//注册全局组件Vue.component('MyButton',{data:()=>({count:0}),template:'<button@click="count++">Clicked{{count}}times.</button>......
  • ai问答:使用 Vue3 组合式API 和 TS 配置 axios 拦截器 http错误状态
    通过axios.create()可以创建一个axios实例axiosInstance,参数如下:baseURL:请求前缀timeout:超时时间headers:请求头默认配置:import{defineComponent}from'vue'importaxiosfrom'axios'exportdefaultdefineComponent({setup(){//实例-默认配置......
  • 高德地图Demo
    第一步先创建高德账号,创建应用获取key和密匙,自行百度。npm安装npmi@amap/amap-jsapi-loader--save 引入插件使用,此处是vue3引入,主要使用了位置和天气功能<template><divclass="page"><divclass="icon"><imgsrc="../assets/logo.png"alt="......
  • BIP2087E: Broker BrokerDemo was unable to process the internal configuration mes
    今天部署的时候,.出现下面这个错误,BIP4041E:执行组'默认'发现一个无效的配置信息。BIP2210E:无效的配置信息:属性名称'allowQueryWSDL'不为目标对象的有效'Main.TestMessageFlows。' Beginrunningtask[Deploying[BrokerDemo.bar]toexecutiongroup[default]]BIP2087E:Broker......
  • vue3 自定义组件双向绑定(modelValue)
    参考链接:https://huaweicloud.csdn.net/638edf68dacf622b8df8d152.html父组件:<Customabcref="editor"v-model="data.introduction":min-height="400"name="职能"placeholder="请编辑"/>子组件<divclass="tinymc......
  • pyqt gui demo
    一些供学习的样例:#-*-coding:utf-8-*-"""@Time:2023/4/2410:53@FileName:gui_demo.py"""importsysfromPyQt5.QtWidgetsimport*fromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5importQtGui,QtWidgets,QtC......
  • 【前端可视化】ECharts中国地图+散点图demo
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content="w......
  • 记录在vue3项目中使用wangeditor富文本编译器以及微信小程序中的渲染
    首先,管理后台中的使用npminstallwangeditor//f封装成了组件,以下是组件中的内容<template>  <divstyle="border:1pxsolid#ccc;maxwidth:600px">   <!--工具栏-->   <Toolbar    style="border-bottom:1pxsolid#ccc"    :......
  • ai问答:使使用 Vue3 组合式API 和 TypeScript 父子组件demo
    这是一个使用Vue3组合式API和TypeScript的简单父子组件示例父组件Parent.vue:<template><div><p>{{msg}}</p><Child/></div></template><scriptlang="ts">import{ref}from'vue'import......
  • Vue3 Suspense
    视频3.Suspense等待异步组件时渲染一些额外内容,让应用有更好的用户体验使用步骤:异步引入组件import{defineAsyncComponent}from'vue'constChild=defineAsyncComponent(()=>import('./components/Child.vue'))使用Suspense包裹组件,并配置好default与fallba......