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

基于Jeecgboot3.6.3的vue3版本的流程中仿钉钉流程的鼠标拖动功能支持

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

 1、因为原先仿钉钉流程里不能进行鼠标拖动来查看流程,所以根据作者提供的信息进行修改,在hooks下增加下面文件useDraggableScroll.ts

import { ref, onMounted, onBeforeUnmount, type Ref } from 'vue'export function useDraggableScroll(containerRef: Ref<HTMLElement | null>) {const isDragging = ref(false);let startX: number, startY: number;let scrollLeft: number, scrollTop: number;const onMouseDown = (e: MouseEvent) => {if (!containerRef.value) return;isDragging.value = true;startX = e.pageX;startY = e.pageY;scrollLeft = containerRef.value.scrollLeft;scrollTop = containerRef.value.scrollTop;document.addEventListener('mousemove', onMouseMove);document.addEventListener('mouseup', onMouseUp);};const onMouseMove = (e: MouseEvent) => {if (!isDragging.value || !containerRef.value) return;const deltaX = e.pageX - startX;const deltaY = e.pageY - startY;containerRef.value.scrollLeft = scrollLeft - deltaX;containerRef.value.scrollTop = scrollTop - deltaY;};const onMouseUp = () => {isDragging.value = false;document.removeEventListener('mousemove', onMouseMove);document.removeEventListener('mouseup', onMouseUp);};onMounted(() => {containerRef.value?.addEventListener('mousedown', onMouseDown);});onBeforeUnmount(() => {containerRef.value?.removeEventListener('mousedown', onMouseDown);});return {isDragging,};
}

2、在lowflow\flowDesign\index修改增加相应的操作

import { useDraggableScroll } from '@/views/lowflow/hooks/useDraggableScroll'

const designerContainerRef = ref<HTMLElement | null>(null)
useDraggableScroll(designerContainerRef);

<div class="designer-container cursor-default active:cursor-grabbing" ref="designerContainerRef">

designer-container {
  --flow-bg-color: v-bind(bgColor);
  position: relative;
  display: flex;
  flex-direction: row;
  height: 100%;
  width: 100%;
  overflow: auto;
  background-color: var(--flow-bg-color);
  padding: 80px 0;

3、ModelDesigner.vue的样式做下面的跳转,以便满足拖动等界面要求

.el-dialog.is-fullscreen.ddDialog {overflow: hidden;}.ddDialog .el-dialog__body {height: 95%;overflow: auto;}

4、效果图

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 多模态大模型intern-vl 1.5 论文解读:How Far Are We to GPT-4V?
  • 代码随想录第二十四天|动态规划(8)
  • C#:基本语法
  • 操作ArkTS页面跳转及路由相关心得
  • 矩阵:消除冗余
  • 逻辑数仓:助企业高效、低成本、轻量级整合全域数据
  • 【MySQL】执行DDL选择Online DDL还是PT-OSC?
  • [BSidesCF 2019]Kookie1
  • 算法笔记|Day20回溯算法II
  • Jenkins部署java项目
  • JAVA集中学习第四周学习记录(三)
  • 测试用例除了覆盖需求,还需要通过什么方式保证测试?
  • 深入理解和应用RabbitMQ的Work Queues模型
  • 00 cadence学习笔记目录
  • python-约瑟夫环(赛氪OJ)
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【个人向】《HTTP图解》阅后小结
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 08.Android之View事件问题
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • 从零开始在ubuntu上搭建node开发环境
  • 检测对象或数组
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用parted解决大于2T的磁盘分区
  • 移动端解决方案学习记录
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 第二十章:异步和文件I/O.(二十三)
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​ubuntu下安装kvm虚拟机
  • ​浅谈 Linux 中的 core dump 分析方法
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (WSI分类)WSI分类文献小综述 2024
  • (待修改)PyG安装步骤
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (六)软件测试分工
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (算法)大数的进制转换
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (正则)提取页面里的img标签
  • (自用)仿写程序
  • .bat批处理出现中文乱码的情况
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net Signalr 使用笔记
  • .NET 指南:抽象化实现的基类
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET导入Excel数据
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .php结尾的域名,【php】php正则截取url中域名后的内容