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

瑞安网站建设优化推广关键词搜索排名公司

瑞安网站建设优化推广,关键词搜索排名公司,重庆响应式网站,南昌比较好的网站设计背景 bpmn-js是个流程图绘制的工具,但是现在我希望实现的是,绘制的不是节点而是一个vue组件。 保留线的拖拽和连接。 方案 那就说明不是依赖于节点的样式,找到了他有个属性,就是类似覆盖节点的操作。 思路就是用vue组件做遮罩&…

背景

bpmn-js是个流程图绘制的工具,但是现在我希望实现的是,绘制的不是节点而是一个vue组件。
保留线的拖拽和连接。

方案

那就说明不是依赖于节点的样式,找到了他有个属性,就是类似覆盖节点的操作。
思路就是用vue组件做遮罩,盖住原本的节点样式。

/*** 批量操作节点*/handleAddOverlay() {const bpmnModeling = this.bpmnModeler.get('modeling')const contextPad = this.bpmnModeler.get('contextPad')this.bpmnModeler.on('import.done', () => {// 加载完成后每个元素遍历const elementRegistry = this.bpmnModeler.get('elementRegistry')elementRegistry.forEach(element => {if (['bpmn:Task'].includes(element.type)) {const parent = elementRegistry.getGraphics(element)bpmnModeling.resizeShape(element, {width: element.width || this.config.width || 60,height: element.height || this.config.height || 60,x: getDi(element).bounds.x,y: getDi(element).bounds.y})// 遍历任务节点,为每个节点添加 overlaysif (this.isShowComponent) {bpmnModeling.setColor(element, { stroke: this.config.borderColor || '#eee' }) // 修改边框颜色bpmnModeling.setColor(element, { fill: this.config.fillColor || '#fff' }) // 修改边框颜色this.addOverlay(element, parent)}} })})},

接下来是挂载覆盖物的重点,如何让覆盖物跟随节点的移动而移动

/**** @param {*} element* 增加覆盖物节点操作*/addOverlay(element, parent) {const __this = thisconst overlays = this.bpmnModeler.get('overlays')const bpmnModeling = this.bpmnModeler.get('modeling')const elementRegistry = this.bpmnModeler.get('elementRegistry')const index = this.data.nodeLists.findIndex(item => item.config.id === element.id)// 添加覆盖物 ------------------------------------- beginoverlays.add(element, 'my-overlay', {position: __this.overlayPosition,show: {minZoom: 0.1},html: '<div id="my-component"></div>'})const Profile = Vue.extend(this.config.components)overlays.get({ element: element, type: 'my-overlay' })[0].htmlContainer.id = element.idnew Profile({router,propsData: {element: element,node: index > -1 ? this.data.nodeLists[index] : {},func: this.func,...this.props},mounted() {const component = this// 绑定鼠标按下事件component.$el.addEventListener('mousedown', event => {__this.isDrag = falseevent.preventDefault()if (!__this.disable) {dragMouseDown(event)}})// 自定义组件点击事件component.$el.addEventListener('click', () => {if (!__this.isDrag) {__this.showContextPad(element)const bpmnElement = elementRegistry.get(element.id)__this.currentElement = bpmnElement__this.$emit('click', bpmnElement) // 点击事件}})}}).$mount('#my-component')// 添加覆盖物 -------------------------------------end// 必须作为公共变量进行值更改let pos1 = 0let pos2 = 0let pos3 = 0let pos4 = 0/**** @param {*} e* @param {*} overlayPosition* 鼠标按下开始*/function dragMouseDown(e) {e = e || window.evente.preventDefault()pos3 = e.clientXpos4 = e.clientYdocument.onmousemove = event => {__this.isDrag = trueelementDrag(event, __this.overlayPosition)}document.onmouseup = () => {__this.currentElement = nulldocument.onmouseup = nulldocument.onmousemove = null}}/**** @param {*} e* @param {*} overlayPosition*  节点的拖拽*/function elementDrag(e, overlayPosition) {e = e || window.evente.preventDefault()// 计算新的元素位置pos1 = pos3 - e.clientXpos2 = pos4 - e.clientYpos3 = e.clientXpos4 = e.clientYconst bpmnElement = elementRegistry.get(element.id)const deltaX = overlayPosition.x + pos1const deltaY = overlayPosition.y + pos2// 移动父节点及其连接线moveParentNode(bpmnElement, deltaX, deltaY)}/**** @param {*} element* @param {*} dx* @param {*} dy* 更改父节点操作*/function moveParentNode(element, dx, dy) {const parent = element.parentif (!parent) {return}// // 更新父节点的位置信息bpmnModeling.moveElements([element], { x: -dx, y: -dy }, null)// 更新覆盖物的位置const overlay = overlays.get({ element: parent, type: 'my-overlay' })overlay.position = {top: overlay.top - dy,left: overlay.left - dx}}},

在这里插入图片描述

http://www.hrbkazy.com/news/20520.html

相关文章:

  • 安装网站程序的流程百度在线客服
  • 上海网站设计网页设计百度网盘下载速度
  • 物流公司做网站有用吗网页怎么制作
  • 设计网页需要学什么徐州网站建设方案优化
  • 网页制作怎么建站点徐州百度seo排名
  • 北京做电商网站设计上海搜索排名优化公司
  • 用wordpress建立网站线上线下整合营销方案
  • 宿州公司做网站营销型公司网站建设
  • 网站推广服务怎么做怎么找百度客服
  • 怎么做美食的视频网站seo教程下载
  • 做网站图片路径做缓存吗产品宣传推广策划
  • 网站建设与管理说课ppt网络项目资源网
  • 做彩票网站需要什么谷歌商店下载官方正版
  • 沧州网站建设制作苏州推广排名
  • 四川城乡住房城乡建设厅网站手机百度高级搜索入口在哪里
  • 自己做网站分销做百度推广一个月多少钱
  • a3电子报在什么网站做腾讯第三季度营收448亿元
  • 西安网站建设sxyun百度seo怎么查排名
  • 专业做数据的网站有哪些方面怎么让付费网站免费
  • 如何在百度建立自己的网站公司网站建设费
  • 合肥网站建设推荐 晨飞网络营销策划的十个步骤
  • 怎么做企业网站建设浙江百度推广
  • Vs做的网站调试时如何适应网页seo推广招聘
  • 云南网是什么网站百度学术官网
  • 帝国网站管理系统教程信息流广告接单平台
  • 域名服务器ip查询seoul是哪个城市
  • 网站如何做微信支付宝支付宝支付宝谷歌seo搜索引擎下载
  • 学校门户网站的网站建设方案网站文章优化技巧
  • 甘肃手机版建站系统价格网站seo优化步骤
  • 外包做网站哪家好wix网站制作