当前位置: 首页 > article >正文

【Vue + Antv X6】可拖拽流程图组件

使用事项:
❗先放个组件上来,使用手册有空会补全
❗需要下载依赖

“@antv/x6”: “^2.18.1”,
“@antv/x6-plugin-dnd”: “^2.1.1”,

组件:
在这里插入图片描述

组件使用:

  <flowChart :key="flowChartKey" ref="flowChart" left-title="可用工序" :node-list="nodeList" :graph-data="dataJson"
             :drawer-config="drawerConfig" :line-drawer-config="lineDrawerConfig"
              route-record-type="2" route-record-label="procedureName" route-record-key="procedureId"/>
      nodeList: [],
      dataJson: {},
      drawerConfig: [
        {
          type: undefined,
          prop: 'procedureId'
        },
        {
          type: 'input',
          label: '工序名称',
          prop: 'procedureName',
          placeholder: '请输入工序名称',
          disabled: true
        },
        {
          type: 'input',
          label: '工序编号',
          prop: 'procedureCode',
          placeholder: '请输入工序编号',
          disabled: true
        },
        {
          type: 'selectDict',
          label: '工序类型',
          prop: 'procedureType',
          placeholder: '请选择工序类型',
          dictType: 'MES_GXLX',
          disabled: true
        }
      ],
      lineDrawerConfig: [
        {
          type: undefined,
          prop: 'procedureId'
        },
        {
          type: 'input',
          label: '起始工序',
          prop: 'startProcedureName',
          placeholder: '',
          disabled: true
        },
        {
          type: 'input',
          label: '下道工序',
          prop: 'endProcedureName',
          placeholder: '',
          disabled: true
        },
        {
          type: 'selectRoute',
          label: '记录工序',
          prop: 'recordProcedure',
          placeholder: '请选择',
          options: [],
          disabled: false
        }
      ]
     // 获取节点数据
        const nodeList = this.form.nodeList || []
        const nodes = []
        nodeList.forEach(el => {
          const coordinate = el.coordinate.split(',') || []
          const portList = el.portList.map(item => ({
            group: item.portGroup,
            id: item.portId
          }))
          console.log('el.procedureType.toString()', el.procedureType, el.procedureType ? el.procedureType.toString() : '')
          nodes.push({
            id: el.nodeId,
            x: coordinate.length ? coordinate[0] * 1 : 0,
            y: coordinate.length ? coordinate[1] * 1 : 0,
            width: el.width,
            height: el.height,
            label: el.nodeDesc,
            nodeType: el.nodeType,
            shape: 'custom-node',
            ports: {
              items: portList
            },
            nodeData: {
              procedureCode: el.procedureCode,
              procedureId: el.procedureId,
              procedureName: el.procedureName,
              procedureType: el.procedureType != null ? (el.procedureType === 0 ? '0' : el.procedureType.toString()) : ''
            }
          })
        })
        // 获取连线数据
        const linkList = this.form.linkList || []
        const edges = []
        linkList.forEach(el => {
          edges.push({
            id: el.linkId,
            source: {
              cell: el.startId,
              port: el.startPortId
            },
            target: {
              cell: el.endId,
              port: el.endPortId
            },
            nodeData: {
              recordProcedure: el.recordProcedure,
              startProcedure: el.startProcedure,
              startProcedureName: el.startProcedureName,
              postProcedure: el.postProcedure,
              endProcedureName: el.postProcedureName
            }
          })
        })
        this.dataJson = {
          nodes,
          edges
        }

http://www.kler.cn/a/500890.html

相关文章:

  • Java Web开发基础:HTML的深度解析与应用
  • Unity + Firebase + GoogleSignIn 导入问题
  • 大语言模型训练的数据集从哪里来?
  • NGINX--HTTPTCP负载均衡
  • 无需昂贵GPU:本地部署开源AI项目LocalAI你在消费级硬件上运行大模型
  • 基于python Numpy的24位音频数据读取实例解析
  • Playwright vs Selenium:全面对比分析
  • MySQL 深度分页:挑战与优化指南
  • 深度学习助力网络故障定位:提升运维效率的新利器
  • 前端学习网络
  • 里氏替换原则(Liskov Substitution Principle,LSP):面向对象设计的基本原则
  • Python实现windows自动关机
  • YARN 架构组件及原理
  • 基于 Python 和 OpenCV 的人脸识别上课考勤管理系统
  • (leetcode算法题)239. 滑动窗口最大值
  • MoMA: 基于多头注意力的动量对比学习知识蒸馏,用于组织病理学图像分析|文献速递-视觉大模型医疗图像应用
  • 安卓studio生成apk步骤
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(9)带孔矩形板与L型支架案例的对称平面处理方案
  • 如何学习Vue设计模式
  • 应急响应之入侵排查(下)
  • VSCode 更好用的设置
  • 2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉
  • el-date-picker 禁用一个月前、一个月后(当天之后)的时间 datetimerange