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

以若依移动端版为基础,实现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端流程管理相关资源,可以查看我的主页文章。最后,谢谢大家的支持。

相关文章:

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

1.前言 此代码是若依移动端版为基础,实现flowable流程管理,支持H5、APP和微信小程序三端。其中,APP是在安卓在雷电模拟器环境下完成的,其他环境未测试,此文章中所提及的APP均指上述环境。移动端是需要配合若依前后端分…...

DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

unity学习39:连续动作之间的切换,用按键控制角色的移动

目录 1 不同状态之间的切换模式 1.1 在1个连续状态和一个连续状态之间的transition,使用trigger 1.2 在2个连续状态之间的转换,使用bool值切换转换 2 至少现在有2种角色的移动控制方式 2.1 用CharacterController 控制角色的移动 2.2 用animator…...

C++ ——构造函数

1、作用:创建对象时,给对象的属性进行初始化 2、特点 (1)构造函数与类同名 (2)如果没有显式给出构造函数,编译器会给出默认的构造函数(参数为空,并且函数体也为空&#…...

Python实现语音识别详细教程【2025】最新教程

文章目录 前言一、环境搭建1. 下载 Python2. 安装 Python3 使用 pip 安装必要的库 二、使用 SpeechRecognition 库进行语音识别1.识别本地音频文件2.实时语音识别3. 使用其他语音识别引擎 注意事项 前言 以下是一份较为完整的 Python 语音识别教程,涵盖环境搭建、使…...

【第12章:深度学习与伦理、隐私—12.4 深度学习与伦理、隐私领域的未来挑战与应对策略】

凌晨三点的自动驾驶测试场,AI系统突然在暴雨中做出惊人决策——它选择撞向隔离带而不是紧急变道,因为算法推演发现隔离带后的应急车道站着五个工程师。这个惊悚的伦理困境,揭开了深度学习伦理危机最尖锐的冰山一角。 一、潘多拉魔盒已开:深度学习伦理的四大原罪 1.1 数据原…...

Django中数据库迁移命令

在 Django 中,数据库迁移是确保数据库结构与 Django 模型定义保持一致的重要过程。以下是 Django 中常用的数据库迁移命令: 1. python manage.py makemigrations 功能:此命令用于根据 Django 项目的模型文件(models.py&#xff…...

Win11 远程 连接 Ubuntu20.04(局域网)

Win11 远程 连接 Ubuntu20.04(局域网) 0. Ubuntu 开启共享1. Ubuntu系统中安装RDP服务器2.windows中连接使用方式1:远程桌面连接(winr: mstsc)方式2:mobaXterm 3 问题远程连接后出现黑屏 参考文献: 0. Ubuntu 开启共享 在ubunt设置中&#x…...

安卓手游内存call综合工具/内部call/安卓注入call/数据分析(类人猿学院)

进程分析注入综合工具总界面 模块分析函数分析遍历 函数分析 so汇编分析 汇编call植入器,支持模拟器x86 x64 和手机arm64指令全平台 防ce搜索数据功能 全国首套发布,阿凡老师学院最好的安卓内存逆向老师,几乎行业最强的,有兴趣可以…...

PPT工具集

PPT模版 免费下载 爱PPT优品PPTPPT之家第一PPTOfficePlus部分免费 AI生成PPT Kimi秘塔搜索 可以输入内容生成PPT大纲。...

SpringBoot:使用spring-boot-test对web应用做单元测试时如何测试Filter?

对SpringBoot的Web应用做单元测试时&#xff0c;一般会使用spring-boot-test&#xff0c;pom.xml中会添加如下内容&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><…...

解锁 Java 回调函数:异步编程与事件处理的利器

什么是 Java 回调函数 在 Java 中&#xff0c;回调函数是一种编程模式&#xff0c;允许将一个方法作为参数传递给另一个方法&#xff0c;当某个特定事件发生或某个任务完成时&#xff0c;调用该方法。回调机制可以使代码更加灵活和可扩展&#xff0c;因为它允许在运行时动态地…...

记PasteSpider部署工具的Windows.IIS版本开发过程之草稿-Web.IIS.Administration解读(5)

本文是记录PasteSpider的Windows.IIS开发过程, 在应用开发中,结果很重要,但是开发过程中遇到的问题和思考绝对是更有意义的事情! 经历过不同的需求后,你会发觉案例项目还真的只是案例项目,和实际项目天差地别!!! PasteSpider是开发者专属部署工具, 新版本的支持Windo…...

MySQL Workbench安装教程以及菜单汉化

WorkBench的下载 直接给下载MySql WorkBench的链接&#xff0c;直接进入正题&#xff1a;MySQL :: Download MySQL Workbenchhttps://dev.mysql.com/downloads/workbench/进入了下载界面&#xff1a; &#xff08;安装路径自己看着办&#xff0c;注意安装路径不能有中文&#…...

【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十节】

ISO 14229-1:2023 UDS诊断服务测试用例全解析&#xff08;ClearDiagnosticInformation0x14服务&#xff09; 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月13日 关键词&#xff1a;UDS协议、0x14服务、DTC清除、ISO 14229-1:2023、ECU测试 一、服务功能…...

Python的imutils库详细介绍

imutils 是一个专为简化OpenCV&#xff08;计算机视觉库&#xff09;常见操作而设计的Python工具库&#xff0c;提供了一系列便捷函数&#xff0c;使图像和视频处理更加高效和简洁。以下是对其功能、安装及用法的详细介绍&#xff1a; 1. 安装方法 通过pip安装&#xff1a; p…...

常用查找算法整理(顺序查找、二分查找、插值查找、斐波那契查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)

常用的查找算法&#xff1a; 顺序查找&#xff1a;最简单的查找算法&#xff0c;适用于无序或数据量小的情况&#xff0c;逐个元素比较查找目标值。二分查找&#xff1a;要求数据有序&#xff0c;通过不断比较中间元素与目标值&#xff0c;将查找范围缩小一半&#xff0c;效率…...

2526考研资料分享 百度网盘

通过网盘分享的文件&#xff1a;01、2026【考研数学】 链接:https://pan.baidu.com/s/1PwMzp_yCYqjBqa7492mP3w?pwd98wg 提取码:98wg--来自百度网盘超级会员v3的分享 通过网盘分享的文件&#xff1a;01、2026【考研政治】 链接:https://pan.baidu.com/s/1PwMzp_yCYqjBqa7492…...

网络编程(24)——实现带参数的http-get请求

文章目录 二十四、day241. char 转为16进制2. 16进制转为 char3. URL 编码函数4. URL 解码函数5. 实现 get 请求参数的解析6. 测试 二十四、day24 我们在前文通过beast实现了http服务器的简单搭建&#xff0c;但是有很多问题我们并没有解决。 在前文中&#xff0c;我们的 get…...

东方财富股吧发帖与评论爬虫

东方财富股吧发帖与评论爬虫 东方财富股吧爬虫 写在开头项目介绍主要功能文件介绍爬取逻辑 a. 爬取帖子信息b. 爬取评论信息 使用步骤 1. 下载代码2. MongoDB 安装3. Webdriver 安装4. 运行 main.py5. 查看数据 踩过的坑附录&#xff08;运行结果&#xff09; 东方财富股吧爬…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...

HTTPS证书一年多少钱?

HTTPS证书作为保障网站数据传输安全的重要工具&#xff0c;成为众多网站运营者的必备选择。然而&#xff0c;面对市场上种类繁多的HTTPS证书&#xff0c;其一年费用究竟是多少&#xff0c;又受哪些因素影响呢&#xff1f; 首先&#xff0c;HTTPS证书通常在PinTrust这样的专业平…...

React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?

系列回顾&#xff1a; 在上一篇《React核心概念&#xff1a;State是什么&#xff1f;》中&#xff0c;我们学习了如何使用useState让一个组件拥有自己的内部数据&#xff08;State&#xff09;&#xff0c;并通过一个计数器案例&#xff0c;实现了组件的自我更新。这很棒&#…...

如何把工业通信协议转换成http websocket

1.现状 工业通信协议多数工作在边缘设备上&#xff0c;比如&#xff1a;PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发&#xff0c;当设备上用的是modbus从站时&#xff0c;采集设备数据需要开发modbus主站&#xff1b;当设备上用的是西门子PN协议时&#xf…...