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

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

🍬引言

🍬什么是低代码平台?

低代码平台(Low-Code Platform)是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比,低代码平台大大简化了开发过程,允许用户使用拖放、配置和自动化功能来构建应用程序。其核心理念是通过预建的模板和组件,降低编程门槛,减少开发时间。

低代码平台的目标是让更多的人能够参与到应用程序的开发过程中,不仅是程序员,甚至业务人员也能参与进来,推动业务需求和技术实现的快速对接。

🍬低代码平台有什么用?

低代码平台的主要用途包括:

  • 快速应用开发:开发人员可以利用预构建的模块和模板迅速创建应用程序,减少从设计到交付的时间。

  • 业务人员参与开发:低代码平台通常提供简化的图形界面和配置工具,让非技术人员(如业务人员)也能在一定程度上参与应用开发和定制。

  • 简化维护和迭代:通过简化代码和自动化部署,低代码平台使得应用的更新和维护更加简单,尤其是在频繁变化的业务环境中。

  • 支持多平台开发:许多低代码平台支持跨平台开发,意味着开发者可以一次性创建的应用可以运行在多个平台(如Web、移动端等)上。

  • 增强协作与效率:低代码平台使团队成员之间的协作更加紧密,产品经理、设计师和开发人员可以更快速地交互和迭代应用的设计与功能。

  • 支持企业级定制化应用:尽管低代码平台提供了高效的开发流程,但许多平台也支持深度定制,可以根据企业的特殊需求进行功能扩展。

🍬优势何在?

这里简略包含以下几部分~

  • 提高开发效率
  • 降低技术门槛
  • 减少开发成本
  • 灵活的定制能力
  • 易于维护和更新
  • 高可扩展性
  • 支持跨平台部署

🍬Microi吾码介绍

在这里插入图片描述

下面是平台的预览图
在这里插入图片描述

里面有许多的开源源码
在这里插入图片描述

🍬Microi吾码产品优势

在这里插入图片描述
在这里插入图片描述

产品目标

  1. 通过“低代码”技术重塑系统开发方式

  2. 轻快实现任何重量级系统的复杂定制

  3. 万物皆可轻,启动轻代码程序革命

  4. 与其它低代码平台对比
    Microi.net面向程序员、开发团队,暂不面向C端普通用户,可通过Google V8引擎javascript语法实现各种非常复杂的场景,如互联网、物联网、ERP等。
    无任何限制(不限制用户数、表单数、数据量等等)

产品团队

  1. 研发部90%为技术开发人员,分为两组

  2. Microi.net产品研发组

  3. 基于Microi.net进行二次定制开发组

  4. 提供稳定的更新与售后服务

技术架构

  1. 跨平台:.Net Core分布式架构,支持华为云、阿里云、腾讯云、亚马逊云、三大运营商云服务器等、本地化部署,提供框架源代码。

  2. 跨语言:提供Grpc协议源代码,支持Java、Pyhon等语言调用进行二次开发

  3. 提供前端主框架90%源代码;提供微服务框架100%源代码,支持Vue、ReactJS、AngularJs进行二次开发,私有化npm部署

  4. Dos.ORM跨数据库支持(MySql[5.5、5.6、5.7、8.x]、Oracle[11g]、SqlServer[2005+],分库分表、读写分离、多主同步),可扩展更多数据库。

  5. 多种SAAS模式,支持数据库级别隔离、TenantId租户隔离、独立组织机构数据隔离

  6. 分布式缓存Redis(哨兵)

  7. 分布式云存储、MinIO、亚马逊S3等

  8. 消息队列、高性能MongoDB日志系统

  9. 集成搜索引擎Solr/ES

  10. Nginx、负载均衡、CDN全球加速

  11. OAuth2.0、JWT 统一身份认证

  12. Docker、K8S、Jenkins、Rancher、CICD

产品优势

  1. 表单引擎
    丰富的组件:如下拉树、定制组件(支持表单引擎嵌入定制vue组件/定制vue组件嵌入表单引擎/无限嵌套)等
    自由扩展组件
    丰富的配置项
    灵活的V8引擎事件,分为前端、后端事件
    表单/表格模板引擎
    一键加载第三方数据库表
  2. Google V8引擎
    JavaScript语法,可自由封装、扩展。
    支持全局V8引擎
  3. 模块引擎
    支持多表关联、查询列、不显示列、统计列、可搜索列、可排序列、动态V8按钮、复杂where条件、接口地址替换等
    支持多种嵌入模式:iframe、微服务、组件、内置界面模板等
  4. 接口引擎
    支持大量常用库,如:V8.Cache、V8.Http、V8.FormEngine等
    支持自定义接口地址、支持分布式锁、匿名调用、权限控制、数据库事务等
  5. 数据源引擎
    与接口引擎类似,新增sql数据源、接口数据源、普通数据源
  6. 数据库管理
    一键加载第三方数据库
  7. 消息队列管理、分布式任务调度系统
    与V8引擎结合
  8. 搜索引擎
    选择性的将表、数据同步至ES搜索引擎
  9. 自定模板导出打印
    本地设计office模板,根据模板进行导出、打印
  10. 聊天系统
    仿微信界面实现内部聊天
  11. 第四代工作流引擎
    第一代基于微软WWF、第二代参与ccflow研发、第三代基于微软最新WWF
    第四代完全自主研发,由表单引擎、接口引擎驱动。
  12. 细粒度权限控制
    细化到每张表、每个字段、每个菜单、每个V8按钮等
  13. 单点登陆
    支持隐藏左侧、顶部。支持第三方系统单点登陆低代码平台、低代码平台支持登陆第三方系统。
  14. 集成微信公众平台
    多公众号配置(不同集团分公司用户绑定不同公众号发送模板消息)
    多小程序配置
    模板消息配置
  15. 全模块由表单引擎驱动
  16. 小程序(uni-app)
    开放100%源代码,可打包安卓、ios

成功案例
目前已有成功案例开发团队客户50家以上,而客户基于低代码平台研发的系统已应用到数百家企业

  • 房地产互联网平台(仿贝壳)(大量的前端微服务定制)
  • 大型电器ERP(300+表,100+模块)(大量的后端定制)
  • 多个服装ERP(100+表,1个人1个月完成)(纯低代码平台实现的服装ERP系统)
  • 物联网智能家居(亿级数据量处理)、植物工厂智能硬件控制
  • 集团、国企OA系统
  • 停车场、潮汐检测、固定资产、CRM 等等平台
  • 四所大学实训课程
    在这里插入图片描述

🍬丰富的引擎服务

界面引擎

在这里插入图片描述

表单引擎
在这里插入图片描述
工作流引擎
在这里插入图片描述

同时里面提供了丰富的接口引擎
在这里插入图片描述

在这里插入图片描述

报表引擎
在这里插入图片描述

🍬Microi吾码代码目录说明&&示例

下面是相关的代码目录说明

Dos.ORM:数据库组件源码
Dos.ORM.MySql:数据库组件mysql插件源码
Dos.ORM.NoSql:数据库组件nosql插件源码
Dos.ORM.Oracle:数据库组件oracle插件源码
Dos.Common:常用开发类库源码
Microi.net.Api:.NET8后端框架源码,提供api接口
Microi.Cache:后端分布式缓存插件源码
Microi.Captcha:后端验证码组件插件源码
Microi.gRPC.Client:后端gRPC客户端测试源码
Microi.gRPC.Java:后端gRPC客户端java测试源码
Microi.gRPC.Server:后端gRPC服务端源码
Microi.HDFS:后端分布式存储插件源码
Microi.Job:后端任务调度插件源码
Microi.Model:后端实体类源码
Microi.MQ:后端消息队列插件源码
http://Microi.net前端扩展:PC前端vue2框架源码需要用到的扩展
Microi.Office:后端office相关处理插件源码
Microi.ORM:后端数据库差异化处理源码
Microi.SearchEngine:后端搜索引擎源码
Microi.Spider:后端采集引擎插件源码
Microi.WeChat:后端微信插件源码
Microi.SystemBase:后端系统基础管理,将会被FormEngine表单引擎全面替换后而废弃
lib:后端需要用到的dll引用
microi.vue2.pc:前端PC传统界面框架源码,element-ui + webpack + vuex + node14
microi.vue2.qiankun:基于qiankun的PC前端vue2微服务框架源码
microi.vue2.uniapp:基于uview的vue2移动端版本(已停更)
microi.vue3.os:前端PC操作系统框架源码(个人版),element-plus + vite5 + pinia + node18
microi.vue3.os.build:前端PC操作系统框架(免费开源版)
microi.vue3.tuniao:基于图鸟UI的vue3移动端版本源码
microi.vue3.uni-ui:基于uni-ui的vue3移动端版本(暂未开源)
npm组件发布-dos.fontawesome:已将源码集成到microi.vue2.pc,无需再使用
npm组件发布-microi.services:已将源码集成到microi.vue2.qiankun,无需再使用
本地编程建议使用vs code(后端.NET8也是一样),需安装C#、C# Dev Kit、.NET Install Tool插件

官方同时为我们提供了一下示例代码

iframe外挂形式集成

  • 任何前端框架都可以集成,这种模式说白了就是百搭,它是无状态的,不依赖任何前端和后端,高内聚低耦合,可集成任意平台。
    平台集成使用frame,把页面设计器嵌入到自己页面中,通过postMessage方式与父页面进行通信,父页面可以获取到设计器生成的页面JSON,也可以把token传给设计器。

VUE完整DEMO示例

<template><div v-loading="loading" class="iframe-container"><iframeref="myIframe"id="iframe":src="src"frameborder="0"width="100%"height="730px"@load="onIframeLoad"></iframe></div>
</template><script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue'
const loading = ref(true)
const src = ref('https://www.nbweixin.cn/autopage/')const myIframe = ref(null)//模拟数据库数据
const demoObj = {Id: 31908,Title: '测试标题',Number: 'page_31908',Desc: '这是一个空的页面模板',JsonObj: {} //对象或者字符串
}// 监听 iframe 是否加载完成
const onIframeLoad = () => {console.log('Iframe 已加载完成')loading.value = falsesendMessageToIframe()
}const sendMessageToIframe = () => {// 要发送的数据const dataToSend = {iframeToken: 'token_test', //自定义tokeniframeFormData: JSON.stringify(demoObj), //页面JSON,新增的话JsonObj留空就行}// 使用 postMessage 发送数据给 iframemyIframe.value.contentWindow.postMessage(dataToSend, '*')
}//监听iframe 内部透传事件
let pageengineEvent = null
pageengineEvent = function (event) {if (event.data) {switch (event.data.key) {//保存页面jsoncase 'saveFormJson':console.log('已接到到来自iframe消息,saveFormJson', event.data.value)let obj = JSON.parse(event.data.value)console.log(obj)break//监听日历选择日期事件case 'calendarSelDate':console.log('已接到到来自iframe消息,calendarSelDate', event.data.value)break//监听日历选择日期事件case 'calendarSelDate':console.log('已接到到来自iframe消息,calendarSelDate', event.data.value)break//卡片更多跳转case 'cartMoreLink':console.log('已接到到来自iframe消息,cartMoreLink 监听',event.data.value)break//链接组件跳转case 'linkWidget':console.log('已接到到来自iframe消息,linkWidget', event.data.value)break//鱼骨图跳转case 'fishWidget':console.log('已接到到来自iframe消息,fishWidget', event.data.value)break//步骤跳转case 'stepsWidget':console.log('已接到到来自iframe消息,stepsWidget', event.data.value)breakdefault:break}}
}
window.addEventListener('message', pageengineEvent)
onMounted(() => {})onBeforeUnmount(() => {window.removeEventListener('message', pageengineEvent)
})
</script><style lang="scss" scoped></style>

🍬Microi吾码相关文档

官方为我们提供了丰富的相关文档

  • Microi吾码官网:https://microi.net
  • 演示地址:Microi.Net-界面设计引擎
  • Vue3试用地址(仅查询):https://microi.net
  • Vue2传统界面试用地址(可操作数据):https://demo.microi.net/
  • Gitee开源地址:https://gitee.com/ITdos/microi.net
  • GitCode开源地址:https://gitcode.com/microi-net/microi.net/overview
  • 平台演示地址:https://microi.net/
  • 平台介绍:https://blog.csdn.net/weixin_43151418/article/details/144050762

🍬结语

低代码平台正在改变传统软件开发的方式,尤其是在提高开发效率、降低成本、促进业务与技术结合等方面展现出强大的优势。随着企业对数字化转型的需求不断加深,低代码平台成为了加速创新和提升竞争力的重要工具。通过借助低代码平台,企业可以更快速响应市场变化,减少开发周期,并让更多的业务人员参与到应用的构建和迭代中来。
Microi吾码作为一款强大的低代码平台,不仅提供了丰富的功能和强大的定制能力,还支持跨平台开发和企业级解决方案,是推动企业数字化变革的理想选择。感兴趣的小伙伴可以前去体验

相关文章:

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

&#x1f36c;引言 &#x1f36c;什么是低代码平台&#xff1f; 低代码平台&#xff08;Low-Code Platform&#xff09;是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比&#xff0c;低代码平台大大简化了开发过程&a…...

网站自动签到

我研究生生涯面临两个问题&#xff0c;一是写毕业论文&#xff0c;二是找工作&#xff0c;这两者又有很大的冲突。怎么解决这两个冲突呢&#xff1f;把python学好是一个路子&#xff0c;因此从今天我要开一个专栏就是学python 其实我的本意不是网站签到&#xff0c;我喜欢在起点…...

C 语言奇幻之旅 - 第16篇:C 语言项目实战

目录 引言1. 项目规划1.1 需求分析与设计1.1.1 项目目标1.1.2 功能需求1.1.3 技术实现方案 2. 代码实现2.1 模块化编程2.1.1 学生信息模块2.1.2 成绩管理模块 2.2 调试与测试2.2.1 调试2.2.2 测试2.2.4 测试结果 3. 项目总结3.1 代码优化与重构3.1.1 代码优化3.1.2 代码重构 3.…...

项目实战——使用python脚本完成指定OTA或者其他功能的自动化断电上电测试

前言 在嵌入式设备的OTA场景测试和其他断电上电测试过程中&#xff0c;有的场景发生在夜晚或者随时可能发生&#xff0c;这个时候不可能24h人工盯着&#xff0c;需要自动化抓取串口日志处罚断电上电操作。 下面的python脚本可以实现自动抓取串口指定关键词&#xff0c;然后触发…...

04、Redis深入数据结构

一、简单动态字符串SDS 无论是Redis中的key还是value&#xff0c;其基础数据类型都是字符串。如&#xff0c;Hash型value的field与value的类型&#xff0c;List型&#xff0c;Set型&#xff0c;ZSet型value的元素的类型等都是字符串。redis没有使用传统C中的字符串而是自定义了…...

【MySQL学习笔记】MySQL的索引

MySQL索引 1、索引概述2、 索引的数据结构2.1 BTree索引结构2.2 Hash索引结构2.3 InnoDB选择BTree的原因 3、索引分类4、索引的语法5、SQL性能分析5.1 SQL执行频率5.2 慢查询日志5.3 profile详情5.4 explain执行计划 6、索引使用规则6.1 最左前缀法则6.2 范围查询6.3索引失效情…...

利用ArcGIS快速准确地统计出地块的现状容积率

研究目的 根据建筑.dwg、建筑.dwg Annotation、建筑.dwg Polygon&#xff0c;地籍边界.shp等数据&#xff0c;利用GIS快速准确地统计出地块的现状容积率。 研究思路 加载数据图层&#xff1a;建筑.dwg Polygon、建筑.dwg Annotation&#xff0c;使用空间连接功能把建筑层数数…...

C++类的引入

C中类的前身 1> 面向对象三大特征&#xff1a;封装、继承、多态 2> 封装&#xff1a;将能够实现某一事物的所有万事万物都封装到一起&#xff0c;包括成员属性&#xff08;成员变量&#xff09;&#xff0c;行为&#xff08;功能函数&#xff09;都封装在一起&#xff…...

【跨域问题】

跨域问题 官方概念&#xff1a; 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域本质来说&#xff0c;是前端请求给到后端时候&#xff0c;请求头里面&#xff0c;有一个 Origin &#xff0c;会带上 协议域名端口号等&#xff1b;后端接受到请求&…...

“深入浅出”系列之FFmpeg:(1)音视频开发基础

我的音视频开发大部分内容是跟着雷霄骅大佬学习的&#xff0c;所以笔记也是跟雷老师的博客写的。 一、音视频相关的基础知识 首先播放一个视频文件的流程如下所示&#xff1a; FFmpeg的作用就是将H.264格式的数据转换成YUV格式的数据&#xff0c;然后SDL将YUV显示到电脑屏幕上…...

Springboot3.4整合jsp

文章目录 环境 springboot3.4 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency> <!--用于编译jsp--> <!-- Tomcat Embed Jasper --> <dependency>…...

CSS:背景样式、盒子模型与文本样式

背景样式 背景样式用于设置网页元素的背景&#xff0c;包括颜色、图片等。 背景颜色 使用 background-color 属性设置背景颜色&#xff0c;支持多种格式&#xff08;颜色英文、十六进制、RGB等&#xff09;。 div {background-color: lightblue; }格式示例十六进制#ff5733R…...

算法:线性查找

线性查找算法是一种简单的查找算法,用于在一个数组或列表中查找一个特定的元素。它从数组的第一个元素开始,逐个检查每个元素,直到找到所需的元素或搜索完整个数组。线性查找的时间复杂度为O(n),其中n是数组中的元素数量。 实现原理 从列表的第一个元素开始,逐个检查每个…...

【计算机网络】什么是网关(Gateway)?

网上冲浪多了&#xff0c;你可以听到过网关&#xff08;Gateway&#xff09;这个词&#xff0c;但是却不太清楚网关&#xff08;Gateway&#xff09;到底是干什么的、负责网络当中的什么任务&#xff0c;本篇文字将会为你介绍网关&#xff08;Gateway&#xff09;的作用&#x…...

20250106面试

rabbitmq如何保证消息不丢失 my&#xff1a; 持久化&#xff0c;包括消息持久化和队列持久化&#xff0c;重启不丢失。持久化到磁盘中的。 消息确认 死信队列&#xff1a;消费失败&#xff08;业务异常/未确认&#xff0c;重试后&#xff0c;会放死信队列&#xff09;&…...

Java 分布式锁:Redisson、Zookeeper、Spring 提供的 Redis 分布式锁封装详解

&#x1f4da; Java 分布式锁&#xff1a;Redisson、Zookeeper、Spring 提供的 Redis 分布式锁封装详解 在分布式系统中&#xff0c;分布式锁 用于解决多个服务实例同时访问共享资源时的 数据一致性 问题。Java 生态中&#xff0c;有多种成熟的框架可以实现分布式锁&#xff0…...

智能汽车的数字钥匙安全

数字钥匙作为汽车智能化变革下的一项创新技术&#xff0c;利用蓝牙定位、NFC等近场通信技术进行钥匙与汽车的匹配继而开锁&#xff0c;可以让车主通过智能手机、可穿戴设备等解锁汽车&#xff0c;并对汽车实施相关的操作&#xff0c;提升用车便利性&#xff0c;受到越来越多车企…...

YangQG 面试题汇总

一、交叉链表 问题&#xff1a; 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 解题思想&#xff1a; 双指针 备注&#xff1a;不是快慢指针&#xff0c;如果两个长度相…...

急速了解什么是GPU服务器

GPU服务器是一种专门配置了高性能图形处理器&#xff08;GPU&#xff09;的服务器&#xff0c;旨在提供高性能计算、深度学习、科学计算等多种场景的计算服务。与传统的CPU服务器相比&#xff0c;GPU服务器在处理并行密集型计算任务时具有显著优势。本文将详细介绍GPU服务器的定…...

用 Python 绘制可爱的招财猫

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​ ​​​​​​​​​ ​​​​ 招财猫&#xff0c;也被称为“幸运猫”&#xff0c;是一种象征财富和好运的吉祥物&#xff0c;经常…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...