Lf工作流自定义html节点

server/2024/10/21 11:42:30/
htmledit_views">

1.定义js文件CustomCircle.js

javascript">import { HtmlNode, HtmlNodeModel } from "@logicflow/core";
class UmlModel extends HtmlNodeModel {setAttributes() {this.text.editable = false; // 禁止节点文本编辑// 设置节点宽高和锚点const width = 120;const height = 70;this.width = width;this.height = height;this.anchorsOffset = [[width / 2, 0],[0, height / 2],[-width / 2, 0],[0, -height / 2],];}
}
class UmlNode extends HtmlNode {setHtml(rootEl) {const { properties } = this.props.model;console.log(3333,properties);const el = document.createElement("div");el.className = "uml-wrapper";const html = `<div class='allcontent'>${properties.process}</div>`;el.innerHTML = html;// 需要先把之前渲染的子节点清除掉。rootEl.innerHTML = "";rootEl.appendChild(el);}
}export default {type: "CustomCircleNode",view: UmlNode,model: UmlModel
};

2.其中 properties 值为 .vue文件中 

javascript">import { HtmlNode, HtmlNodeModel, LogicFlow } from "@logicflow/core";
import { Control, DndPanel, SelectionSelect, Menu } from "@logicflow/extension";
import CustomCircleNode from "./components/CustomCircle.js";
import "@logicflow/core/dist/style/index.css";
import "@logicflow/extension/lib/style/index.css";
data() {return {lf: "",graphData: {nodes: [],edges: []},width: "",height: ""};},
mounted() {this.lf = new LogicFlow({container: this.$refs.container,grid: true,plugins: [Control, DndPanel, SelectionSelect, Menu]});this.lf.register(CustomCircleNode);this.lf.extension.dndPanel.setPatternItems([{label: "选区",icon:"data:,callback: () => {this.lf.extension.selectionSelect.openSelectionSelect();this.lf.once("selection:selected", () => {this.lf.extension.selectionSelect.closeSelectionSelect();});}},{type: "CustomCircleNode",text: "",label: "电池箱装配",icon:"data:",properties: {process: "电池箱装配"}}]);this.lf.render(this.graphData);},

 


http://www.ppmy.cn/server/47373.html

相关文章

vscode怎么点击路径直接跳转对应文件

在vue项目中经常要引入工具类、组件、模版等&#xff0c;想要直接去看对应文件&#xff0c;只能自己找到对应路径再去打开。 我们可用在js项目中创建一个 jsconfig.json文件&#xff0c;TS项目可以创建tsconfig.json 文件代码 {"compilerOptions": {"baseUrl&…

华为设备动态路由OSPF(单区域+多区域)实验

动态路由OSPF的配置 OSPF分类两种情况&#xff1a;单区域 多区域路由 OSPF单区域路由配置 OSPF&#xff1a;开放最短路径优先的路由协议。属于大型动态路由协议&#xff0c;适用于中大型的园区网。 网络拓扑&#xff1a; 配置步骤&#xff1a; 1.完成基本配置&#xff08;略&a…

号称超级增程电动,领克07EM-P带来技术变革?

近年来&#xff0c;自主品牌在新能源汽车领域百花齐放&#xff0c;尤其是在混合动力市场上&#xff0c;比亚迪的DM-i技术引领了风潮&#xff0c;秦L的一经亮相&#xff0c;整个车圈都沸腾了&#xff0c;“超级混动”的概念深入人心。 各大自主品牌都有了自己的混动平台和技术。…

Flutter 中的 DefaultAssetBundle 小部件:全面指南

Flutter 中的 DefaultAssetBundle 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它允许开发者使用 Dart 语言来构建高性能、美观的应用。在 Flutter 中&#xff0c;管理资源文件是一个重要的方面&#xff0c;特别是当你需要加载图片、…

(11)svelte 教程:Forms

&#xff08;11&#xff09;svelte 教程&#xff1a;Forms 什么是 Forms 在 Svelte 框架中&#xff0c;Forms 是一种用于处理用户输入数据的机制。通过 Forms&#xff0c;你可以创建各种输入控件&#xff0c;如文本框、复选框、选择框等&#xff0c;以便用户填写并提交数据。…

MQ基础(RabbitMQ)

通信 同步通信&#xff1a;就相当于打电话&#xff0c;双方交互是实时的。同一时刻&#xff0c;只能与一人交互。 异步通信&#xff1a;就相当于发短信&#xff0c;双方交互不是实时的。不需要立刻回应对方&#xff0c;可以多线程操作&#xff0c;跟不同人同时聊天。 RabbitM…

多输入多输出非线性对象的模型预测控制—Matlab实现

本示例展示了如何在 Simulink 中设计多输入多输出对象的闭环模型预测控制。该对象有三个操纵变量和两个测量输出。 一、非线性对象的线性化 运行该示例需要同时安装 Simulink 和 Simulink Control Design。 % 检查是否同时安装了 Simulink 和 Simulink Control Design if ~m…

6个PPT素材模板网站,免费!

免费PPT素材模板下载&#xff0c;就上这6个网站&#xff0c;建议收藏&#xff01; 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图库 菜鸟图库是一个设计、办公、媒体等素材非常齐全的网站&#xff0c;站内有几百万的素材&#xff0c;其中PPT模板就有几十万个&#xff0c;…