• x6.js 从流程图组件库中拖拽组件到画布dnd使用


    上一篇已经了解到了x6.js常用功能以及使用方法。但我们使用流程图的时候还少不了一个非常重要的功能那就是拖拽组件库里的组件进来。如下图:

    首先是布局这块,拖拽组件库的视图中布局无需我们去写,我们只需把界面搭建好。

    添加组件库

    1.搭建布局界面

    这里以guiplan可视化开发工具搭建的界面效果如下:

    分为左右布局排版,左边用来放组件库视图,右边用来放画布视图。

    2.设置相对定位

    这里一定要注意除了排版这样设计以外,组件库部分需要设置定位方式为相对定位。因为自带的组件库视图是绝对定位排版

    position:relative;

    3.创建可拖拽容器

    代码如下:

    1. this.guiAddon = new Addon.Stencil({
    2. title: 'Components',
    3. target: this.guiX6,
    4. search(cell, keyword) {
    5. return cell.shape.indexOf(keyword) !== -1
    6. },
    7. placeholder: 'Search by shape name',
    8. notFoundText: 'Not Found',
    9. collapsable: true,
    10. stencilGraphWidth: 200,
    11. stencilGraphHeight: 180,
    12. groups: [
    13. {
    14. name: 'group1',
    15. title: 'Group(Collapsable)',
    16. },
    17. {
    18. name: 'group2',
    19. title: 'Group',
    20. collapsable: false,
    21. },
    22. ],
    23. })

    4.容器加入到页面中

    将容器放到界面里,也就是上图左边部分,addon是左边部分的元素id

    document.querySelector('#addon').appendChild(this.guiAddon.container)

    这样我们的组件库就做好了 

    组件库里添加组件

    好组件库虽然做好了,但是组件又如何添加进来了?

    1.创建组件

    这里以圆组件为例

    1. let node = new Shape.Circle({
    2. width: 60,
    3. height: 60,
    4. attrs: {
    5. circle: { fill: '#FE854F', strokeWidth: 6, stroke: '#4B4A67' },
    6. text: { text: 'ellipse', fill: 'white' },
    7. },
    8. })

    2.加入组件

    将组件加入到对应的分组中即可

    this.guiAddon.load([node], 'group1')

    3.改初始化配置

    注意:这里虽然创建了组件但并不能拖拽到画布中。

    我们还需要改改画布的配置,也就是创建画布的时候需要给它权限,可拖入节点进来的权限。

    1. this.guiX6 = new Graph({
    2. container: document.querySelector('.guix6'),
    3. snapline: {
    4. enabled: true,
    5. sharp: true,
    6. },
    7. scroller: {
    8. enabled: true,
    9. pageVisible: false,
    10. pageBreak: false,
    11. pannable: true,
    12. },....

    案例下载与导入

    目前整个案例都在guiplan中,找到插件库。然后点击“x6流程图”即可自动下载安装,自动将整个案例插入到你当前项目中来。其中内置的常用函数都以封装好,测试案例已经写好,直接用即可。无需再向我一样耗费好几天的研究,省时省力。

  • 相关阅读:
    Oracle触发器的用途
    全网最详细SpringBoot、SpringCloud整合阿里云OSS对象存储服务
    msvcr120.dll缺失怎么修复,快速修复msvcr120.dll丢失的三个有效方法
    盘一盘高性能设计的哪些点(二)
    京东架构师呕心整理:jvm与性能调优有哪些核心技术知识点
    C#_事件简述
    java技术专家面试指南80问【java学习+面试宝典】(六)
    Spring4 升级 spring5, Hibernate4 升级 Hibernate5 相关问题总结以及修改注意点
    西门子三菱等主流PLC如何通过4G无线网络来实现远程控制?
    面向跨模态匹配的噪声关联学习
  • 原文地址:https://blog.csdn.net/guige8888811/article/details/136714311