以若依移动端版为基础,实现uniapp的flowable流程管理

1.前言

此代码是若依移动端版为基础,实现flowable流程管理,支持H5、APP和微信小程序三端。其中,APP是在安卓在雷电模拟器环境下完成的,其他环境未测试,此文章中所提及的APP均指上述环境。移动端是需要配合若依前后端分离的Flowable版本使用,流程图绘制和表单配置等内容均需要在PC端进行配置,移动端包含任务管理中所有内容,功能和PC端一致,两者共用一个后端代码。

PC端内容可以查看我的主页文章《以若依Flowable工作流版本(RuoYi-Vue-Flowable)为基础,进行二次开发》,此资源获取需要收费。资源需要移动端和PC端资源需要分别付费获取,具体收费方式请看文章最后“总结和代码获取方式”。

2.功能介绍

1.首页
1.功能介绍

首页是引入了秋云ucharts组件,引入了五个常用图表,分别是地图统计、折线图统计、柱状图统计、饼状图统计和进度条统计。不用担心使用问题,每个图表都给出了使用案例,并且在配置参数上指明了官网配置说明地址,具体使用方式,后面会介绍。

2.H5端

3.APP端

4.微信小程序端

2.工作台
1.功能介绍

PC端的已发任务功能中的新增流程功能单独拿了出来,新增流程功能没有权限控制,任何人都显示功能。但是,已发任务、待办任务、已办任务和全部任务四个功能,会根据PC端配置的权限进行动态显示。

2.H5端

3.APP端

4.微信小程序端

3.新增流程
1.功能介绍

会自动屏幕大小分配成两个区域,搜索框区域和数据显示区域。搜索框区域固定,数据区域会根据内容多少增加滚动条,滑动时,搜索框位置不会被隐藏。同时,数据区域采用点击“加载更多”按钮的方式进行分页,每次增加10条数据,直至加载所有数据。全局使用此种方式显示和加载多条数据,后面就不介绍这方面功能,只介绍特殊功能。

2.H5端

3.APP端

4.微信小程序端

4.发起流程
1.功能介绍

显示表单信息和流程图信息,表单包括保存、发起和重置功能。保存功能是将流程保存到代办任务中,可以再次打开流程就行修改;发起功能是直接发起流程;重置功能是重置填写的表单信息。并且,默认绑定了一个测试表单,这个表单包含element-ui中表单中的所有组件,给出了相应的uniapp解决方式。uniapp的test.vue和Vue的test.vue内容相互对应的,能够实现两端的联动。如果想实现各端功能,一定要参照这两个表单。

流程图显示在H5端和APP端使用的bpmn-js显示,而微信小程序端拆分成树进行显示。对于显示内容,可以查看我主页文章《uniapp二次封装组件(py组件)》的py-bpmn-viewer组件。

2.H5端

3.APP端

4.微信小程序端

5.已发任务
1.功能介绍

基本功能与3.1功能介绍相同,显示自己发送任务。显示流程名称、流程编号、流程状态和提交时间四个重要信息,通过左滑的方式选择查看和详细两个功能。查看功能通过弹窗的方式显示流程的基本信息,内容过多会自动添加滚动;详细功能查看表单信息和流程图信息。

2.H5端

3.APP端

4.微信小程序端

6.流程详情
1.功能介绍

此功能用于已发任务、已办任务全部任务的详细功能显示,显示表单信息、流转记录和流程图。只能查看这些信息,不能进行操作。对于只读状态下,测试表单功能可以查看我主页文章《uniapp二次封装组件(py组件)》,测试表单使用了里面大量组件。

2.H5端

3.APP端

4.微信小程序端

7.待办任务
1.功能介绍

基本功能与6.1功能介绍类似,只是不显示当前流程流程状态了,因为待办任务肯定都是进行中的流程。左滑操作变成了查看和处理功能。

2.H5端

3.APP端

4.微信小程序端

8.流程处理
1.功能介绍

基本功能和7.1功能介绍类似,但是会根据不同情况分配不同功能。如果当前节点是填报节点,并且登录账号为流程申请人账号,显示功能为保存和发起。保存功能将流程信息保存,还能再次在待办任务中修改;发起功能将流程启动。如果满足上述条件,就显示审批、选择退回、退回上级和退回初始功能。这四个功能和PC端对应,审批功能是同意流程;选择退回功能是选择退回节点进行退回;退回上级功能是退回到流程的上一节点;退回初始功能是指退回的流程的初始节点。由于流转记录与流程图和7待办任务中类似,下面那些功能对这两个页面不进行截图了,只截图特殊功能。

2.H5端

3.APP端

4.微信小程序端

9.已办任务
1.功能介绍

基本功能和5.已发任务类似,已办任务显示自己办理的任务。左滑功能也和已发任务一样,为查看和详细。详细功能页面和6.流程详情一样,就不介绍和截图了。

2.H5端

2.APP端

3.微信小程序端

10.全部任务
1.功能介绍

基本功能和5.已发任务类似,全部任务显示所有的任务。左滑功能也和已发任务一样,为查看和详细。详细功能页面和6.流程详情一样,就不介绍和截图了。

2.H5端

3.APP端

4.微信小程序端

11.测试表单
1.功能介绍

并非有个功能模块叫做测试表单,而是上面各个模块中都有表单信息这个功能。测试表单会根据传来的值,判断是否有初值和是否为只读状态。如果有初值,将初值赋值给表单。如果只读状态,将所有表单组件设置为只读状态。但是,颜色选择和图片上传可以点击,只能点击查看,不能修改值。由于前面截图没有完整表单截图,所以才又增加这个模块介绍。表单组件很多都是使用的py组件,具体可以查看我主页文章《uniapp二次封装组件(py组件)》。

2.H5端

3.APP端

4.微信小程序端

3.流程开发

1.程序启动
1.启动后端

具体如何启动,可以查看我的主页文章《以若依Flowable工作流版本(RuoYi-Vue-Flowable)为基础,进行二次开发》,因为两者共用一个后端。

2.配置后端

打开config.js文件,将后端启动信息配置在baseUrl上,一定要使用ip访问的方式,不要设置为localhost。如果设置为localhost,在模拟器调试时无法访问后端。

3.配置小程序

用HBuilderX打开manifest.json文件,选择“微信小程序配置”,配置自己的微信小程序AppID。如果配置的AppID,与当前登录微信开发者工具的AppID不同是无法启动的。

1.秋云ucharts
1.引入方式

1.全局引入:在main.js文件中引入,已经写好了代码,去掉注释即可。因为我只在首页中使用了此组件,所以采用了局部引入的方式。

2.局部引入:如果使用组件的页面页面不多,可以采用局部引入的方式。

2.组件使用

不用担心使用问题,每个组件配置信息,都标注了详细的地址和配置信息位置。对于地图统计,标注了地图json获取地址,并有显示数量的例子。具体可以查看index.vue文件。

3.表单导入
1.导入规则

PC端配置表单路径例子为@/views/py/test.vue,到了uniapp端会自动将views路径转换为pages。因此,在PC端配置路径为@/views/py/test.vue的表单,到了uniapp端要将表单放在@/pages/py/test.vue上。如果放置位置不准确是无法绑定的。

2.H5端导入方式

H5端支持动态组件的方式,导入方式和PC端动态导入方式类似,因此哪怕增加新表单,也不用增加代码。

3.APP端导入方式

1.由于APP不支持动态导入组件,每次新增表单页面,都需要在main.js文件中手动导入。

4.微信小程序端导入方式

1.所有操作都在pages.json文件中,在pages中增加表单页面。

2.在usingComponents增加test页面。

5.APP端和微信小程序端

1.在myProcess/detail/index.vue、myProcess/send/index.vue和todo/detail/index.vue三个页面中,分别按照如下格式写入。

2.在myProcess/detail/index.vue,按照如下格式修改。每新增一个页面就写一个v-else-if,格式和下面格式类似,同时修改组件名称,其他内容不要修改。

3.在myProcess/send/index.vue,按照如下格式修改。每新增一个页面就写一个v-else-if,格式和下面格式类似,同时修改组件名称,其他内容不要修改。

4.在todo/detail/index.vue,按照如下格式修改。每新增一个页面就写一个v-else-if,格式和下面格式类似,同时修改组件名称,其他内容不要修改。

6.补充说明

上述导入页面的方式,已经是目前我能想到最好的方式了,不要尝试其他方式了,很有可能浪费时间。我也在这浪费了很多时间,很多方式在APP和微信小程序不支持,这是没办法的事情。也不要尝试将三个页面导入组件部分,写成一个组件,然后导入这个组件,新增表单只需要修改这个地方。上述方法我也考虑到了,出于功能和使用方面,感觉都不是太好。每次新增流程都需要新增页面,增加这一部分内容也不会有太大问题。不要和我一样因为纠结这个问题而浪费了大量时间。

4.表单设计
1.接收参数

需要接收两个参数,一个是readOnly,另一个是formData。readOnly:表单是否为只读状态;formData:表单数据。并且判断下formData是否有值,有值的话复制给表单。

2.只读状态

1.由于表单只读状态没有Vue那么方便,为了减少代码,表单只读状态是通过禁用事件来完成的。只读状态是通过类py-form-disabled实现的,只需要在表单外层嵌套个view,并通过下面方式设置即可。

2.如果表单下某个组件需要事件,可以组件加上类clickable-item。由于文件需要点击放大,颜色选择器可以点击查看颜色,哪怕是只读状态也需要点击事件,可以如下面方式设置。

3.表单规则

u--form已经明确表示设置表单规则时,为了兼容微信小程序,除了在表单上设置规则外,还需要手动设置规则。

4.组件交互

1.表单重置方法名称必须为reset,因为父组件会调用这个方法,如果不是这个名称,会导致表单重置失效。表单重置最好和我一样,先手动设置,再调用重置方式,防止重置失败。

2.表单保存方法名称必须为submitForm,因为父组件会调用这个方法,如果不是这个名称,会导致表单保存失效。由于不设置规则时,调用validate报错,可以使用下面这种方式判断下,这样不会报错。规则验证完成后,一定要调用父组件saveForm方法,并将表单值传过去。如果没有特别需要,不用修改submitForm方法。

5.表单值转换

如果表单值保存到数据库,或者数据库值转换为表单值出现问题,可以自行修改py.js中getVarType方法和getFormData方法。getVarType方法用于表单值保存到数据过程中,获取值的类型。getFormData方法是数据库值转换为对应类型的数据。两个转换方法可能随着操作环境改变,要做一定修改,我从Vue复制过这两个方法后,直接uniapp中出现了一点小错误,修改了后才能使用的。

6.补充说明

如果细心发现,为什么整个表单页面,都是使用uview-ui的组件,怎么评分使用uni-rate组件。这是因为u-rate组件时,在H5和微信小程序端正常,但是在APP端选择后,会导致清空。但是切换tabs后,再切换回表单页面,就能使用。这个原因很奇怪,又不想修改u-view自带组件,因此我使用uni-rate组件。由于,同时写三端的代码,很容易出现问题。如果你发现有些地方很奇怪,并且有注释,就好好看下注释,有可能我提前给你把坑踩了。

5.权限配置

权限功能是使用若依自带的权限,并且通过Vue页面保存位置和uniapp页面保存位置进行匹配,因此不能修改uniapp中flowable文件夹下的页面位置。并且,权限只控制在了菜单,并且仅在任务管理功能下使用了,菜单权限控制和PC端一致。

4.总结和代码获取方式

1.总结

这次流程管理uniapp版本的开发,让我真的感到疲倦。为了开发出兼容三端的功能,花了大量时间。尤其,有时候出现的问题让人无法理解,有时候两端没有问题但是某一端出现问题,就得花大量时间排查。真的没有用Vue开发时那么轻松,如果只是兼容H5的话,我感觉最少减少一半开发时间。基于三端问题,我已经花大量时间进行测试了,但是我也没自信说代码没问题,很可能存在一些bug,请大家见谅。如果出现问题,可以csdn私信或QQ私信给我,我视情况进行修改。

很久没有发布新作品,可能有些小伙伴以为我放弃了。由于本人不像水文章来表明自己没有放弃和时间原因,我发布文章速度可能有些慢,但是文章质量不会让大家失望的。如果大家对若依框架、java、Vue和uniapp等内容感兴趣,可以关注我,我会不定时发布一些文章。大家放心,绝大部分是免费内容,我会根据工作量判断是否需要收费。写完这个文章,我又得考虑下一个要写的内容,如果大家有关于上面四个方面内容的建议,可以私信给我,我会优先考虑的。如果我不会,我可以去学习,如果没发学好,这部分内容就得搁置了。

2.代码获取方式

在文章开始,我就强调代码是收费的,请大家见谅!不管收益如何,有收益也是我坚持写作的动力。下面会分几个情况介绍收费情况。每一篇文章需要打赏10才能获取资源的;如果你已经有我QQ了,代表你已经获取过我收费资源了,每篇文章打赏8元就能获取资源,这也是对长期支持我的一点福利。如果没有我QQ好友,打赏10元后,需要csdn私信给我发打赏截图和QQ号,我会根据打赏的文章拉你进相应的资源群。如果有我好友,打赏8元后,需要qq私信给我发打赏截图和需要的资源。特别注意,8元红包需要打赏两次(6元+2元)。

根据上面收费情况,如果你只想获取当前uniapp流程管理资源,如果有我QQ,需要打赏8元;如果没有QQ,需要打赏10元。如果想同时获取uniapp和PC端的流程管理资源,并且没有我QQ,需要打赏18元;如果想同时获取uniapp和PC端的流程管理资源,并且有我QQ,需要打赏16元。对于同时获取uniapp和PC端的流程管理资源,具体怎么打赏不限制,只要金额对应就可以。但是有我QQ,并且打赏采用每篇打赏8元的方式,一定要QQ给我消息。一个是需要验证,另一个是QQ发消息,我能更快速的回复。

如果大家对这个文章还算满意,就给个赞吧,获取到大家的支持,就是我最大动力。如果大家需要文件预览和PC端流程管理相关资源,可以查看我的主页文章。最后,谢谢大家的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18719.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ Primer 返回值和return语句

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

dma_ddr 的编写 通过mig控制ddr3

此外还有别的模块 本模块是 其中一个 timescale 1ns/1ps module dma_ctrl (input wire ui_clk , //100MHZ 用户时钟input wire ui_rst_n ,//写fifo的写端口 input wire wf_wr_clk , //由数据产生模块的时…

【15】思科AireOS:创建使用 PSK 认证的 WLAN

1. 概述 在 Cisco AireOS 无线局域网控制器(WLC)上,您可以配置基于预共享密钥(PSK)的 WLAN,以提供无线访问。PSK 认证是一种 WPA2/WPA3 个人模式下常用的认证方式,适用于家庭或小型企业环境。 本指南将详细介绍如何在 Cisco AireOS WLC 上配置 PSK 认证的 WLAN,并确保…

基于css实现正六边形的三种方案

方案一:通过旋转三个长方形生成正六边形 分析: 如下图所示,我们可以通过旋转三个长方形来得到一个正六边形。疑问: 1. 长方形的宽高分别是多少? 设正六边形的边长是100,基于一些数学常识,可以…

Python用PyMC3马尔可夫链蒙特卡罗MCMC对疾病症状数据贝叶斯推断

全文链接:https://tecdat.cn/?p39937 本文聚焦于马尔可夫链蒙特卡罗(MCMC)方法在贝叶斯推断中的Python实现。通过介绍MCMC的基础原理、在贝叶斯推断中的应用步骤,展示了其在解决复杂分布采样问题上的强大能力。同时,借…

linux--关于makefile

makefile文件 可以指定编译顺序,这样方便一个项目的多个文件要编译的挨个操作的麻烦。 makefile文件的命名:makefile 或者 Makefile 必须是这俩,系统才能识别 规则的书写语法如下: 一个makefile内可以有多个规则 目标:依赖a 依…

何须付费免费它不香吗

聊一聊 又是一年开学季。 开学了发一些应时期的小软件。 今天给大家分享一款学校班级课程表工具。 这款工具可以投放在学校电子大屏上。 支持学校的白板软件。 软件介绍 学校班级课程表 工具界面清爽,信息能一目了然。 虽然看感觉功能简单,但每个…

day10后期软件

美图秀秀:美拍拼图、Facetune:面部重塑、泼辣修图:手机中的PS Lightroom:精致调色 想法类: 玩创意特效 PicsArt:很强大 排版类:精美杂志风 MOLDIV:无损排版;天天P图&#xff1a…

用大模型学大模型03-数学基础 概率论 条件概率 全概率公式 贝叶斯定理

要深入浅出地理解条件概率与贝叶斯定理,可以从以下几个方面入手,结合理论知识和实例进行学习: 贝叶斯定理与智能世界的暗语 条件概率,全概率公式与贝叶斯公式的推导,理解和应用 拉普拉斯平滑 贝叶斯解决垃圾邮件分类 …

Calico网络组件本地部署支持IPv6(Kubernetes)

知其然 问题背景 因项目现场的网络正逐步从IPv4向IPv6迁移,这几年现场服务器基本上都配置了双栈;但随着IPv6铺开,出现了很多纯IPv6的服务器,并且要求通信优先使用IPv6。 在项目建设之初,其实就考虑了上述情况&#…

【Python】函数

个人主页:Guiat 归属专栏:Python 文章目录 1. 函数的定义1.1 基本定义方式1.2 函数名和参数 2. 函数的调用2.1 基本调用方式2.2 参数传递 3. 函数的返回值3.1 return 语句3.2 返回多个值 4. 函数的作用域4.1 局部变量4.2 全局变量 5. 匿名函数&#xff0…

PbootCMS增加可允许上传文件类型,例如webp、mov等文件格式扩展

在PbootCMS日常使用过程中,会涉及一些非常见的文件格式上传。 这时候就需要在PbootCMS配置文件中追加一些允许上传文件扩展名。 操作步骤 1、打开/config/config.php文件,大约在30行,修改upload配置信息: // 上传配置upload &…

EasyRTC视频通话WebP2P技术:轻量化SDK助力嵌入式设备实时音视频通信

在智能硬件井喷式发展的当下,嵌入式设备对实时音视频通信的需求正从实验室走向千行百业。然而,当开发者尝试将传统RTC(实时通信)方案移植到MCU、边缘计算终端等资源受限设备时,往往会遭遇一道难以逾越的屏障——Flash存…

Vript-Hard——一个基于高分辨率和详细字幕的视频理解算法

一、概述 多模态学习的最新进展促进了对视频理解和生成模型的研究。随之而来的是,对高分辨率视频和详细说明所建立的高质量数据集的需求激增。然而,由于时间因素的影响,视频与文本的配对不像图像那样容易。准备视频和文本配对是一项困难得多…

如何调整 Nginx工作进程数以提升性能

🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年2月15日14点20分 Nginx 的工作进程数&#xff0…

SolidWorks速成教程P3-6【零件 | 第六节】——草图封闭轮廓所选轮廓厚度为零的报错

到这里,我们已经将特征成型的常用功能学完。这节我来继续讲解一下 SolidWorks中建模的一些容易忽略的问题(草图封闭轮廓&所选轮廓&厚度为零的报错)。 目录 1.草图封闭轮廓 2.所选轮廓 3.厚度为零的报错 1.草图封闭轮廓 我们在拉伸凸台时,一般都会绘制封闭的草…

关于post和get的请求参数问题

今天在和泓宇交流的时候,谈到了关于postman测试接口的问题。我昨天在postman测试的时候,对于条件查询不知道怎么测试,脑子里很混乱。今天,泓宇借着条件查询这个机会给我讲了讲get和post的请求参数的知识,趁着现在有记忆…

UE5中的四元数

UE5中的四元数 绕任意轴旋转四元数与矩阵四元数与欧拉角将一个向量旋转到另一个向量插值Reference 我们知道,四元数是除了欧拉角,旋转矩阵之外,主要用来描述旋转的量。四元数直观的定义就是 q [ c o s ( θ 2 ) , s i n ( θ 2 ) N ] q [c…

AUTOSAR MCAL层ETH模块(1)——通信原理

基础了解 ETH,以太网,简单来讲就是将几台设备连接起来形成网络。这种连接是点到点之间的。以太网的传输速率为10M~10G,速度非常快。 为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制…

什么是网关?网关有什么作用?API网关的主要功能,SpringCloud可以选择有哪些API网关?什么是限流算法?网关如何实现限流?一篇文章读懂网关的前世今生

1、什么是网关? API网关(API Gateway)是一种中间层服务器,用于集中管理,保护和路由对后端服务的访问。它充当了客户端与后端服务之间的入口点,提供了一组统一的接口管理和控制API的访问。 2、网关示意图 3…