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

Vue3中使用 Vue Flow 流程图方法

效果图:

最近项目开发时有一个流程图的功能,需要做流程节点的展示,就搜到了 Vue Flow 这个插件,这个插件总得来说还可以,简单已使用,下边就总结一下使用的方法:

Vue Flow官网:https://vueflow.dev/

1、安装插件:

npm i --save @vue-flow/core

2、页面引入使用:

<template>
  <div style="width: 100%; height: 300px;">
     <VueFlow :nodes="nodes" :edges="edges" @node-click="onNodeClick" fit-view-on-init>
         <!-- 自定义节点插槽 -->
         <template #node-custom="nodeProps">
             <div>{{ nodeProps.data.label }}</div>
             <div style="margin-top: 5px;">进度: {{ nodeProps.data.value }}%</div>
         </template>
     </VueFlow>
  </div>
</template>
<script>
import { VueFlow } from '@vue-flow/core'
export default {
    components: {
        VueFlow
    },
    data () {
        return{
            // 节点数据
            nodes: [
                // 默认节点,可以省略`type:'Default'`
                { id: '1', type: 'custom', data: { label: '金属制造冶炼', value: 30 }, position: { x: 300, y: 30 },
                    style: {
                        width: '150px',height: '80px',padding: '15px', fontSize: '13px',
                        border: '2px solid #10D27A', borderRadius: '8px'
                    }, 
                },
                { id: '2',type: 'custom', data: { label: '金属镶边',value: 50 }, position: { x: 500, y: 30 },
                    style: {
                        width: '150px',height: '80px',padding: '15px', fontSize: '13px',
                        border: '2px solid #F1881C', borderRadius: '8px'
                    }, 
                },
                { id: '3',type: 'custom', data: { label: '整形', value: 80 }, position: { x: 400, y: 150 },
                    style: { 
                        width: '150px',height: '80px',padding: '15px', fontSize: '13px',
                        border: '2px solid #81D85D', borderRadius: '8px'
                    }, 
                },
                { id: '4',type: 'custom', data: { label: '冲洗', value: 40 }, position: { x: 400, y: 250 },
                    style: { 
                        width: '150px',height: '80px',padding: '15px', fontSize: '13px',
                        border: '2px solid #0F6DC6', borderRadius: '8px'
                    }, 
                },
            ],
            // 节点连线(就是哪个节点到那个节点)
            edges: [
                { id: 'e1-1', source: '1', target: '3'},
                { id: 'e1-2', source: '2', target: '3' },
                { id: 'e1-3', source: '3', target: '4' },
            ],
        }
    },
    created() {
        
    },
    mounted() {
        
    },
    methods: {
        // 节点点击事件
        onNodeClick(node) {
            console.log('Node clicked:', node);
        },
    }
}

</script>
<style>
    /* 这些是vue-flow的必备样式 */
    @import "@vue-flow/core/dist/style.css";
    /* 这包含默认主题,这些是可选样式 */
    @import "@vue-flow/core/dist/theme-default.css";
</style>

解析:

  • nodes里边的data数据可以自定义配置,但需要设置 type: 'custom', 

3、更多配置项:

后期更新

至此完成!!!

测试有效!!!感谢支持!!!


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

相关文章:

  • 单片机-LED点阵实验
  • 力扣第137题:只出现一次的数字 II C语言解法
  • 关于markdown实现页面跳转(调查测试:csdn(博客编写效果、发布效果)、typroa中md转pdf的使用情况)
  • Java虚拟机面试题:内存管理(上)
  • 【three.js】场景搭建
  • 麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本
  • [2个简单方法]如何将iPhone中的联系人保存到iCloud?
  • 联邦学习的 AI 大模型微调中,加性、选择性、重参数化和混合微调
  • Android设备使用AOA协议进行主机与配件模式通信
  • 深入理解连接池:从数据库到HTTP的优化之道
  • maven之插件调试
  • C++ 设计模式:迭代器模式(Iterator Pattern)
  • TCP Analysis Flags 之 TCP Retransmission
  • 动态规划六——两个数组的dp问题
  • 设计模式之桥接设计模式
  • H3C MPLS跨域optionC
  • Tableau数据可视化与仪表盘搭建-数据连接
  • 命令模式——C++实现
  • ASP.NET Core 下载文件
  • 【全栈】SprintBoot+vue3迷你商城(1)
  • http源码分析
  • Visual Studio 2022+Qt6.5.3安装教程+环境配置+创建Qt项目+乱码插件+运行很完美(16岁孩子也能看懂)
  • 计算机的错误计算(二百零一)
  • 计算机网络--路由器问题
  • [python3]Excel解析库-xlutils
  • AIA - APLIC之三(附APLIC处理流程图)