AntV 开发 —— x6 图编辑引擎

其实,只是想找个轮子

前序:

碎碎念:

  • 此文个人笔记,官网文档搬运
  • 因为官网对于vue结合Element-UI的示例就几个,本意只是看中了人工智能建模 DAG 图,但是这玩意demo是React,虽然核心的东西一样,但是傻瓜式才方便,故特意按vue2写了一次,没用ts,用ts的其实转换的成本不高
  • demo 待上传中【ps:因demo已魔改,那应该是不可能上传了 →_→ 】
  • x6 版本:1.32.8
  • x6-vue-shape 版本:1.4.0
  • composition-api 版本:1.7.0
  • vue 版本:2.6.11
  • vue-template-compiler 版本:2.6.11
  • Element-UI 版本:2.15.9

一:步骤:

1 —— 创建vue2项目:详情请看 vue开发 —— CLI(开发环境)搭建

2 —— 引入开发组件【Element-UI、antv.x6】

npm i element-ui
npm install @antv/x6 
npm install @antv/x6-vue-shape
// 在vue2.x 若你引入x6-vue-shape,目前这个版本是必须要的,因由在常见问题2
npm install @vue/composition-api --dev
2.1 —— 生成的项目目录如下:
Demo 
├─ node_modules
├─ public
     ├─ favicon.ico
     └─ index.html
├─ src
     ├─ assets
           └─ logo.png
     ├─ components
           └─ HelloWorld.vue
     ├─ App.vue
     └─ main.js
├─ .browserslistrc
├─ .eslintrc.js
├─  babel.config.js
├─ package.json
├─ package-lock.json
└─ README.md
2.2 —— 修改生成的项目【编辑package.json、编辑main.js、编辑App.vue、新增vue.config.js】
// package.json 
// 此处修改为解决常见问题一
 "dependencies": {
    "vue": "2.6.11"
  },
  "devDependencies": {
    "vue-template-compiler": "2.6.11"
  }
// main.js
import Vue from "vue";
import App from "./App.vue";
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.config.productionTip = false;
Vue.use(ElementUI);

new Vue({
  render: (h) => h(App),
}).$mount("#app");
// App.vue
<template>
  <div id="app"></div>
</template>

<script>
export default {
  name: 'App',
  components: {},
};
</script>

<style></style>
// vue.config.js
// 此处新增为解决常见问题二
module.exports = {
    runtimeCompiler: true
}
2.3 —— 开启搬运工生涯【创建画布、创建节点模板、新增节点、新增多个节点、定时改变多个节点状态、达成官网效果、搭配Element-UI、收工】
官网效果图
2.3.1 —— 创建画布
// App.vue
<template>
  <div id="app"></div>
</template>

<script>
import { Graph } from '@antv/x6';
import '@antv/x6-vue-shape'

let graph = null;

export default {
  name: 'App',
  components: {},
  mounted() {
    graph = new Graph({
      container: document.getElementById('app'),
      grid: true,
      autoResize: true,
    });
  },
};
</script>

<style>
#app {
  width: 100%;
  min-height: 500px;
}
</style>
创建画布
2.3.2 —— 创建节点模板
// components/NodeTemplate.vue
<template>
  <div :class="nodeClass" class="node">
    <img :src="logo" />
    <span class="label">{
   { label }}</span>
    <span class="status">
      <img :src="statusImg" v-if="statusImg" />
    </span>
  </div>
</template>

<script>
export default {
  inject: ['getGraph', 'getNode'],
  data() {
    return {
      status: '',
      label: '',
      statusImg: '',
      logo: '',
    };
  },

  methods: {
    mapper(source, target) {
      for (let key in target) {
        target[key] = source?.[key] ?? target[key];
      }
    },
  },

  created() {
    let node = this.getNode();
    // 初始化数据绑定
    this.mapper(node.data, this.$data);
    console.info(node);
    // 节点数据变化监听,从而绑定数据
    node.on('change:data', ({ current }) => this.mapper(current, this.$data));
  },

  computed: {
    nodeClass: function () {
      let clazz = {};
      if (this.status) clazz[this.status] = true;
      return clazz;
    },
  },
};
</script>
2.3.3 —— 新增节点
// App.vue
<template>
  <div id="app"></div>
</template>

<script>
import { Graph } from '@antv/x6';
import '@antv/x6-vue-shape';
import nodetemplate from '@/components/NodeTemplat
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ANTV X6 是一款由 ANT Design 团队开发编辑器。这个编辑器具备强大的功能和易于使用的界面,能够满足用户对于编辑的各种需求。 ANTV X6 提供了丰富的绘能力,可以绘制各种类型的表,包括折线、柱状、饼状等等。用户可以通过拖拽、缩放、旋转等操作来编辑和调整表的样式,使得表能够更好地呈现数据。 同时,ANTV X6 还支持数据的导入和导出,用户可以方便地将数据导入编辑器进行表的制作和编辑,也可以将编辑好的表导出为常见的片格式或者SVG格式。 除了绘功能,ANTV X6 还提供了交互式的编辑功能,用户可以通过简单的点击、拖拽等操作来添加和编辑表的元素,包括文字、箭头、形状等等。编辑器还支持层管理,用户可以方便地调整元素的层级关系,使得绘制出的表更加清晰和有层次感。 ANTV X6 的界面简洁明了,操作流畅,轻松上手。用户可以根据自己的需求来自定义编辑器的布局和工具栏的位置,使得编辑器更符合个人习惯。 总之,ANTV X6 是一款功能强大、界面友好的编辑器,可以满足用户对于编辑的各种需求,并且具备良好的扩展性和可定制性,是一款非常实用的编辑器工具。 ### 回答2: ANTV X6是一款功能强大的编辑器,主要用于多媒体内容的制作和编辑。它具有丰富的功能和易于使用的界面,适用于各种不同的创作需求。 首先,ANTV X6提供了多种多样的编辑工具,包括文字编辑编辑、音频编辑和视频编辑等。用户可以通过这些工具对媒体内容进行修改、调整和优化,以创作出符合自己需求的作品。 其次,ANTV X6还具备了较高的灵活性和自由度。用户可以根据自己的创作意自由调整和定制各种编辑参数,以便更好地表达自己的想法和创意。 此外,ANTV X6还提供了丰富的特效和过渡效果,用户可以轻松地将这些效果应用到自己的作品中,增强作品的视觉冲击力和观赏性。 最后,ANTV X6还具备强大的导出和分享功能。用户可以将自己的作品导出为各种常见的媒体格式,如片、视频或音频文件等。同时,ANTV X6还支持将作品直接分享到社交媒体平台,方便用户与他人分享和展示自己的创作成果。 总体来说,ANTV X6是一款功能强大、易于使用的编辑器,适用于各种创作需求。无论是制作短视频、编辑音频还是设计海报,ANTV X6都能帮助用户轻松实现自己的创意。它为用户提供了丰富的编辑工具、灵活的调整参数、多样的特效和过渡效果,以及便捷的导出和分享功能,让用户能够创作出高质量的多媒体作品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值