Skip to content
当前页大纲

历史更新记录

v4.0.0 - 重要更新 - 2024-10-21
js
Microi v4.0

microi v3.x版本已应用数百套产品,因此仍然长期持续维护,新增v4分支
Vue2升级为Vue3
.NET6升级到.NET8
node14升级为node18
Webpack更换为Vite
Element-UI更换为Element-Plus
Vuex更换为Pinia
经典系统界面更换为Web操作系统界面
v4对应数据库、后端接口系统向下兼容v3
表单属性、字段属性、模块引擎等等定制页面现在全部由diy表单引擎驱动了,万物皆表单引擎。
新增壁纸管理
新增多语言管理
新增图标管理
新增个人设置
系统设置新增操作系统相关各种配置
V8.FormEngine新增用法,无需再手写FormEngineKey、_RowModel参数名,见平台文档。
现在树形表格、树形控件支持懒加载了
表格模板引擎现在支持V8.Result = false;来取消模板渲染了。
v3.17.1 - 重要更新 - 2024-08-01
js
【必须】手动去数据库管理工具给【diy_field】表新增字段:【AppVisible、bit、可为空】。

然后去【表单引擎】—>【diy_field】表—>【异常字段 选择 AppVisible 修复】。

执行SQL:update diy_field set AppVisible=1 where Visible=1

【必须】手动去数据库管理工具给【sys_menu】新增字段:【AppDisplay、bit、可为空】。

然后去【表单引擎】—>【sys_menu】表—>【异常字段 选择 AppDisplay 修复】。

执行SQL:update sys_menu set AppDisplay=1 where Display=1

现在阿里云私有桶文件也支持返回绑定域名的https地址了,并且支持在线预览而不是直接下载

接口引擎新增V8.Office工具类,支持读取excel里面的数据内容了

接口引擎现在支持Payload=Form Data方式调用了(之前只支持Paylowd=JSON方式请求,即raw json)

接口引擎自定义接口地址现在支持接收文件了(可以直接上传文件到接口引擎),使用V8.FilesByteBase64访问文件列表

接口引擎现在在代码中支持下载文件、上传文件(同时支持上传到第三方接口)了,用法见平台文档

接口引擎现在支持直接响应文件了(可以通过get请求接口引擎自定义地址返回任何类型的文件,需在Sys_ApiEngine表新增开关组件:响应文件[ResponseFile])

平台的默认Upload上传接口现在多文件上传时,可以不再必传Multiple参数了,会自动识别(但如果本身想多文件上传,但又只选择了1个文件,建议传入Multiple=true
v3.16.20 - 2024-05-01
js
现在表内编辑也能正确的触发表单属性里面的数据修改接口替换了。

表单引擎、模块引擎新增V8代码加密传输功能,但这导致必须要在sys_menu的表单设计-表单属性-【服务器端数据处理V8事件】和【服务器端表单提交前V8事件】均需要添加这段相同的代码:

var base64ToStringArr = ["SqlWhere", "SqlJoin", "MoreBtns", "FormBtns", "ExportMoreBtns", "BatchSelectMoreBtns", "PageBtns", "PageTabs"];
base64ToStringArr.forEach(item => {
  if(V8.Form[item]){
    V8.Form[item] = V8.Base64.Base64ToString(V8.Form[item]);
  }
})

V8代码编辑器新增代码折叠、代码搜索、代码缩略图、高级高亮、代码提示、代码补全

修复V8代码编辑器二次开发不高亮的问题

数据源引擎的DataSourceKey现在支持传入DataSourceId值了。

接口引擎以get访问时,支持给V8.Result指定RedirectUrl参数后自动跳转页面

接口引擎现在V8.Param可以访问到Url参数了

接口引擎现在支持GET请求了

数据源引擎现在支持SQL数据源、JSON数据源了

兼容oracle 11g一些特性,现在oracle11g可以正常做为saas从库、扩展数据库、V8.Dbs访问oracle11g

sys_osclients新增DbVersion字段(值可为:空、12c[oracle为空时默认为12c]、11g),用于判断数据库为oracle11g时的兼容处理.
v3.16.0 - 2023-11-01
js
现在支持多字段排序了

修复MinIO上传过大或过小的图片报错的bug。

系统设置、接口引擎现在不再从数据库查询,而是从redis缓存。

后端更新v1.9.4.5时(若不更新,将导致即使修改了系统设置和接口引擎后仍然使用老数据redis缓存):

1)表单设计(Sys_Config)服务器端表单提交后V8事件必须添加以下V8代码(可参考标准库):

V8.Cache.Remove(`SysConfig:${V8.OsClient}`);

2)表单设计(Sys_ApiEngine)服务器端表单提交后V8事件必须添加以下V8代码(可参考标准库):

var cacheKey = `FormData:${V8.OsClient}:sys_apiengine:${V8.Form.ApiEngineKey.toLowerCase()}`;
V8.Cache.Remove(cacheKey);
if(V8.Form.ApiAddress){
  var id2 = V8.Form.ApiAddress.replace(/\//g, '___').toLowerCase();
  var cacheKey2 = `FormData:${V8.OsClient}:sys_apiengine:${id2}`;
  V8.Cache.Remove(cacheKey2);
}

日期时间控件新增[时分]、[时分秒]的显示格式。

后端V8引擎新增V8.Sms.Send()发送阿里云短信(其它常规短信平台也可使用接口引擎实现)。

用户登陆、修改密码现在会将密码base64传输(之所以不采用其它加密方式是要考虑到密码解密)

前端OS系统新增FileServer可配置环境变量。

修复关联表单不显示tab页面的bug。

修复表单控件过多时,可能存在排列不准确的样式问题。

修复下拉框动态赋值后,第二次选择会将数据源还原到上次的bug。

修复弹出表格动态赋值查询条件后,需要打开第二次才会刷新的bug。

V8.HideFormBtn 新增可隐藏Save保存按钮。

系统引擎新增数据库管理(扩展数据库,与数据库级别的saas模式不一样),支持新建表以及数据CRUD时对应到扩展数据库,支持MySql、Oracle。已知问题:新增扩展数据库后需重启api接口系统。

系统设置新增是否开启用户注册功能。

抽象了Microi.Cache分布式缓存,现在数据库级别saas模式支持独立redis实例了。

验证码规则现在支持在系统设置中配置了。

开发配置新增开启上传文件名称重命名为guid名称配置。

新增大功能模块:本地自定义word模板打印。

新增Microi.HDFS分布式存储类库,抽象阿里云、MinIO、Amazon S3的实现。

现在后台异常等错误提示也支持多语言了。

修复流程引擎节点过多点击保存报参数错误的bug。

修复流程引擎修改节点名称后立即点击第二个节点会导致第二个节点名称变为上个节点名称的bug。

现在平台分布式存储支持Amazon S3私有存储桶的CDN鉴权配置了。

新增V8.ClientType常量,可能的值:PCIOS、Android、H5、WeChat

修复移动端表单详情页面所有控件控制台均报错的问题导致只读等配置不生效的bug。

现在平台分布式存储完全兼容亚马逊云S3存储桶以及亚马逊云CDN了。

富文本控件上传功能重新实现,现在可以上传图片了。

现在服务器端V8事件或接口引擎调用接口引擎,可以不用再手动传入_CurrentUser对象了,即修复接口引擎或服务器端V8事件调用接口引擎报无权限错误的bug。

修复表单以新开页面时,V8更多按钮的显隐不支持异步调用、以及一些函数不生效的bug。

UptFormData、UptFormDataByWhere新增_NoLineAdd参数(bool类型),当传入true时,修改的结果若数据为0受影响行数,则执行新增操作。

修复V8.FormSubmit、V8.ReloadForm里面的SavedType参数在当前表单是View的情况下不生效的bug。

现在登陆界面验证码输入框也能敲击Enter键进行登陆了。

现在number(10,0)是对应int类型,number(10,3)是decimal类型。

现在当V8.Http.Post()出现timeout等异常时,会正确的返回异常信息了。

现在自动编号字段即使前端V8或服务器端V8在新增时未传入该字段也会生成值了。

现在服务器端表单提交后V8事件中也能通过V8.Form获取到自动编号字段值、以及表单Id值(之前是若前端未传入Id则无法获取)。

现在当字段类型设置为int时,前端若传入浮点数值,会正确的抛出异常提示到具体字段错误信息。

修复数字控件当配置了小数点为0或非0后,修改字段类型并不会成功的bug。

修复以抽屉形式打开表单后,点击右上角删除成功后抽屉并没有被关闭的bug。

完善V8事件的名称。

前端V8引擎代码新增V8.TableModel、V8.TableName属性。

服务器端V8引擎代码新增V8.TableModel对象。

前端、服务器端V8均增加V8.EventName属性,可在全局V8中进行判断执行的哪一个事件,参照表见平台文档。

接口引擎V8.Cache新增HashGet、HashSet、HashRemove

现在表单属性-服务器端数据处理V8事件只在前端调用数据时触发,后台级开发或接口引擎等服务器端口V8内部调用不再触发(若触发,会影响开发者获取预期之外的数据,且可能会出现死循环)

现在所有服务器端V8事件都能获取到V8.SysConfig系统配置了。

现在表单属性-服务器端表单提交前/提交后V8事件只在前端调用增、删、改接口时触发,后台级开发或接口引擎等服务器端V8内部调用不再触发(若触发,会影响开发者得到预期之外的操作)

现在V8.Post的回调函数可以接收第二个参数了:headers

修复某些特殊情况下,单个表单字段单独配置了绑定角色当不可见时保存仍然校验必填的问题。

修复更新新功能后导致接口引擎开启分布式锁后无法获取V8.Result结果的bug。

系统设置新增是否显示隐私政策以及内容编辑,启用后登陆界面会显示隐私政策勾选项,不勾选禁止登陆。

修复_InvokeType默认值为Client导致一些请求不传此参数都被系统误认为是客户端请求的bug,现在默认值为null。

修复特殊情况下V8.Cache.Set时也会将字符串再次序列化的bug。
v3.15.10 - 重要更新 - 2023-08-08
js
平台文档进行了大量更新

修复Oracle下获取部门机构报错的bug

修复Oracle多处数据排序无效的bug

修复Oracle修改表单名未生效的bug

修复V8设计器下拉框显示被遮住的bug

表单引擎新增复制整表功能,通过接口引擎实现。

表单引擎-自动编号控件固定前缀现在支持日期变量,写法:$yyyyMMddHHmmssfff$。双$里面支持任意分隔符。

流程引擎新增节点开始V8服务器端代码、节点结束V8服务器端代码

节点开始/结束V8服务器端代码新增V8.WF可访问对象。

流程引擎新增自动结束节点,实现某些非结束节点审批完毕后可能立即结束流程(核心逻辑处理很复杂)。

流程引擎现在支持后端传入LineValue值,而不用通过条件判断V8执行获得。

修复SAAS模式租户系统组织机构数据维护存在的bug。

修复独立组织机构V8强制指定非独立机构人审批报错的bug。

表单引擎—子表控件新增支持关闭分页功能。

表单引擎--多行文本控件新增默认行数功能。

修复表关联后相同字段名称搜索异常的bug。

流程引擎-修复开始节点服务器端V8代码执行V8.WF.ForceSelectUsers报错的bug。

流程引擎-现在退回到开始节点时可以由发起人作废流程了。

修复表单提交前事件出现代码错误仍会提交表单数据的bug。

修复接口引擎的自定义地址保存后调用偶尔会出现404的bug。

修复接口引擎匿名调用存在的一些bug。

修复我的工作经过翻页或搜索后数据显示错乱的bug。

调用接口引擎现在可在header中传入osclient、apiengine=1,以提高路径判断性能。

现在调用getFormData和getTableData接口可以加上-FormEngineKey或任意后缀,方便开发者更方便直观的查看接口地址。

现在sys_user表的Id不再校验是否是guid格式。

后端二次开发开放[获取token、身份认证过滤器]源代码。

服务器端V8引擎新增V8.Http,支持Get/Post请求、支持请求时传入header、支持请求后获取header等。

_Where条件现在支持AND、OR,并且支持括号分组条件。

修复Oracle仅修改字段类型时没有生效的bug

修复匿名通过FormEngine新增数据时可能会报错的bug。

修复服务器端V8.Http传入TimeOut、Encoding不生效的bug。

现在数据库级别的saas模式下,接口引擎自定义接口地址即使不传入header也能正常匿名调用。

现在DIY表格在翻页或设置线每页X条数据时,会将滚动条自动置顶。

现在不同控件在某些必填情况不再是始终提示【请输入】,而可能是【请选择、请上传、请输入】。

修复表单引擎-下拉多选组件在远程搜索和前端搜索时,直接失去焦点后,下拉数据没有还原到初始状态的bug。

新增RefreshLoginUser接口和方法,用于刷新用户的登陆缓存信息。

服务器端V8引擎新增V8.Method内置方法/函数,详情见平台文档。

修复表单设计大量开关开启保存后刷新均默认显示未开启的bug。

表单设计—字段属性—控件类型 现在可以搜索了。

现在sys_osclient开发配置的域名支持多域名配置匹配osclient了,格式:$a.microi.net$b.microi.net$(修改了/api/os/GetOsClientByDomain接口)。

修复Oracle无法隐藏系统左下侧Copyright信息的bug。

修复Oracle接口引擎自定义地址不生效的bug。

移动端新增支持V8打开扫一扫(扫二维码、条形码,支持闪光灯、扫本地相册)并回传结果执行回调函数。

移动端现在支持部分V8事件了。

系统设置新增【获取私有文件前事件】、【获取私有文件后事件】

表单引擎—代码组件新增【高度】配置项。

获取私有文件临时访问地址现在会带FormEngineKey等参数,并且可以在服务器端V8事件访问,详情见平台文档。

服务器端V8.Method新增GetPrivateFileUrl函数。

GetPrivateFileUrl函数/接口现在支持多文件同时获取。

现在Oracle在未修改字段类型的时候不会再执行修改字段类型的逻辑。

修复服务器端表单提交后事件不执行的bug(包括增、删、改、根据条件删除、根据条件修改),并且会在表单提交成功后才会执行。

现在服务器端表单提交前/后事件均支持V8.DbTrans了。

现在表单引擎列表数据、以及创建表、修改表也由表单引擎驱动。

接口引擎现在可以使用V8.Header访问到前端提交过来的报文了。

修复V8.Http接收xml数据报错的bug,现在会正确的返回xml字符串。

修复以弹窗弹出表单报错的bug。

字段属性默认值配置项现在只在新增时生效。

现在服务器端V8引擎代码也支持写await了。

服务器端V8引擎代码新增V8.Cache对象,包含一些对分布式缓存的操作,用法见平台文档。

优化身份认证系统存储的扩展信息。

新增验证码组件,可在系统设置中开启。默认关闭,开启后,注册、登陆接口均需要传入验证码Id和值才能调用成功。

修复更新新功能后导致下拉选择框普通数据第二次选择数据为空的bug。

修复更新新功能后导致下拉选择框普通数据无法搜索的bug。

修复swagger又报错的bug。

现在表单字段的必填验证在表单提交前V8事件之前执行,并且未验证通过不会再执行表单提交前V8事件。

修复更新新功能后导致删除接口未提交事务的bug。

删除DIY表格的单元格title属性,保留tooltip。

现在除第1页之外的最后一页如果只有一条数据在被删除后,会自动跳转到上一页,而不是显示空数据。

修复表单以新页面打开后,在添加数据里子表关联未生效的bug。
v3.13.13 - 重要更新 - 2023-06-15
js
由于最近半年项目繁忙,所以半年内未上传更新日志。

本次更新前需要做的重要操作:

1、表单设计 -->  搜索Sys_OsClient:
    a)【非必须】建议对配置项进行分类[Base、Aliyun、MinIO、Cache],如图:WX20230615-191027@2x.png
    b)MinIO配置新增字段:MinIOEndPointInternet(单行文本控件、varchar(50))
    c)MinIO配置新增字段:MinIOEndPointSSL(开关控件、int或bit类型均可、)
2、表单设计 --> 搜索Sys_User
    服务器端表单提交前事件一定要加:

if(V8.Form.Pwd){
//密码加密
var decodePwd = '';
try{
//尝试解密
decodePwd = V8.EncryptHelper.DESDecode(V8.Form.Pwd);
}catch(e){
//如果解密失败,就是明文
decodePwd = V8.Form.Pwd;
}
//DES加密
V8.Form.Pwd = V8.EncryptHelper.DESEncode(decodePwd);
}

近半年内部分做了记录的更新日志:

FormEngine新增GetFormDataAnonymous、GetFormDataAnonymousDefault等匿名访问接口。

工作流审批记录接收人现在会完整显示头像+名称。

修复后端Microi.net二次开发一些方法报OsClient为空的bug。

修复一些表格、表单样式问题。

工作流引擎现在支持传入自定义FlowTitle。

修复统计列不显示的bug。

部门机构新增【是否独立机构】配置,为分公司/子公司的组织机构开启【独立机构】后,该机构下面的所有帐号登陆系统,访问到的组织机构模块、系统帐号模块 ,只会返回该独立机构下所有部门相关的数据。

修复表单设计-字段保存后再次保存会存在数据丢失的bug。

现在Sys_OsClient中的DbReadnConn不配置时会默认读取DbConn。

修复MongoDB连接不上会导致程序挂掉的稳定性问题。

修复将Microi.net平台以SAAS模式运行且租户数据库较多时,程序首次启动时间长达10秒以上,现在仅需1秒以内。

修复在模板引擎中使用V8.FormSet对自身赋值出现死循环的bug。

图片/文件上传控件新增上传前事件,可使用V8.Result阻止上传,使用V8.ThisValue访问当前文件信息。

修复角色无详情、无搜索无效的bug。

新增Oracle数据库支持。

弹出表格控件现在提交按钮会有前端Loading效果及防止重复提交了。

V8.OpenAnyForm()在打开的表单V8中,现在能获取V8.ParentV8对象了。

修复流程审批找不到本部门领导人的bug。

移除SysUserFk表的使用。

现在默认首页支持iframe和http地址登陆跳转了,且支持单点登陆。

修复MinIO私有文件上传失败会触发死循环获取文件url的bug。

修复特殊情况下部分字段保存时true/false与int之间的转换bug。

修复保存一次字段后,再次保存不生效的bug.

DIY底层通用新增、修改接口代码优化。

修复表单设计-异常字段列表错误的bug。

修复树形结构的表格列表总数显示为0的bug。

现在租户用户在通用导入数据时,会自动赋值TenantId、TenantName,且仅超级管理员有权限在excel中添加TenantId、TenantName字段为租户导入数据。

修复导入数据会给UpdateTime字段默认当前时间的bug,现在为null。

表单引擎新增Sys_ConfigTenant租户系统设置表,可设置系统Logo、短标题等。

修复DIY表格开启批量选择后,行高样式太高、复选框位置不垂直居中的问题。

优化前端主框架源码。

修复表单属性[默认值]的配置项设置无效的bug。

修复新增其它功能后导致单选框、日期等组件使用V8赋值无效的bug。

现在图片/文件上传后会触发相应值变更V8事件了。

完善工作流引擎中本部门领导审批、以及兼职部门领导审批的业务逻辑。

现在岗位角色绑定部门后,也会参与到工作流引擎本部门领导审批逻辑判断。

新增微信公众号配置。支持多公众号、多小程序、多模板消息配置,不同帐号可绑定不同公众号,支持小程序H5版本帐号绑定微信OpenId。

新增MinIO两项配置,解决MinIO配置问题。

新增Nuget依赖注入组件:Microi.WeChat,与Microi.net组件完全解耦,二次开发人员可选择是否引用此包。

MySql数据库编码以及连接字符串从utf8全部修改为utf8mb4。
v3.12.15 - 2022-12-16
js
DIY底层通用新增、修改接口代码优化。

修复表单设计-异常字段列表错误的bug。

修复树形结构的表格列表总数显示为0的bug。

现在租户用户在通用导入数据时,会自动赋值TenantId、TenantName,且仅超级管理员有权限在excel中添加TenantId、TenantName字段为租户导入数据。

修复导入数据会给UpdateTime字段默认当前时间的bug,现在为null。

表单引擎新增Sys_ConfigTenant租户系统设置表,可设置系统Logo、短标题等。

修复DIY表格开启批量选择后,行高样式太高、复选框位置不垂直居中的问题。

优化前端主框架源码。

修复表单属性[默认值]的配置项设置无效的bug。

修复新增其它功能后导致单选框、日期等组件使用V8赋值无效的bug。

现在图片/文件上传后会触发相应值变更V8事件了。
v3.11.23 - 2022-11-23
js
现在服务器端执行的工作流引擎条件V8代码时,V8.Form.下拉框获取到的值是正确的最终存储的值,而不是object。

工作流引擎现在在节点开始V8代码中,可以使用V8.FieldSet了。

修复通用导入功能报错的bug。

修复更新程序添加字段后会进入异常字段列表的bug。

修复新增数据后,返回的数据带引号的bug。

修复字段Label显示错误的bug。

修复通用导入功能在特殊情况下文件流读取报错的bug。

系统设置-界面风格新增[框架顶部宽度铺满]配置、优化框架部分界面。

现在表单更多按钮在加载的过程中,默认是不显示,而不是显示一个不可点击的Loading按钮。

表单引擎—打开方式为新页面时,现在会正确的显示表单更多V8按钮了。

角色权限勾选管理新增联动、批量选择功能,勾选主菜单权限会联动勾选子菜单权限、勾选子菜单权限会联动勾选主菜单。

修复特殊情况下HideFormBtn报错的bug。

修复表单设计—表单属性[树形结构]等复选框数据加载错误的bug。

现在V8代码支持实现完善的同步创建帐号、修改帐号名称、密码、角色等。

修复通过diy删除的系统帐号仍然可以登陆的bug。

现在角色管理、组织机构等模板,已经完美支持SaaS模式。

现在系统框架会强制保留最后一个页签。

现在admin超级管理员也能正常的配置哪些业务模块菜单不再显示(系统引擎、系统管理部分模块会强制显示)

现在只要是权限大于等于999的角色帐号,在角色模块配置处可以看到所有菜单模块。

修复表单引擎新开窗口的表单更多按钮不显示的bug。

修复系统模块diy驱动后,部分角色权限混乱的bug。

框架界面优化。

现在退出登陆会有确认提示。

修复一些特殊情况下,字段大小写不一致导致无法匹配、出错的bug。
v3.10.19 - 2022-10-19
js
修复旧的DiyTable相关接口不支持获取V8.CurrenUser的DIY扩展字段的bug

修复部分老的字符串’null‘脏数据导致流程发起失败的bug

修复表单引擎—地址控件手动赋值后DOM不刷新的bug。

修复导出功能严重bug。

接口引擎新增允许匿名调用功能

接口引擎现在支持自定义接口地址

新增Microi.net.Grpc.Server(.net服务端)、Microi.net.Grpc.Client(.net客户端)、Grpc.Client.Java.Mvc(Java客户端)三套demo源码

分布式锁新增AsyncActionLock方法,现在支持锁的内部代码使用await了。

工作流引擎新增【移交】功能。

工作流引擎现在在撤回、移交后也会正确的显示在【我处理的】工作列表中了。

修复特殊情况下获取字段列表错误缓存的bug。

工作流引擎节点属性的开始V8、结束V8现在支持V8.OldForm了。

工作流引擎节点属性增加允许移交、隐藏移交选择人配置项。

修复Base64组件在前端microi.net组件引用中的版本号问题导致加解密失败的bug。

修复流程设计时,流程属性修改后并不会保存成功的bug。
v3.9.15 - 2022-09-15
js
修复_Where条件参数的StartLike、EndLike查询报错的bug

现在附件上传后会正确的显示文件体积KB、MB、GB等单位。

获取我的工作接口新增FlowState流程状态返回。

WF_Flow表新增HandlerUsers(处理过工作的人,包括同意、不同意、撤回、发起工作)、CopyUsers(抄送过的人)、NotHandlerUsers(收到过待办但未处理过的人)。

现在获取【我处理的】工作不再从WF_Work表获取(会出现重复),从WF_Flow表获取。

现在前端主框架在访问任意页面时带上token url参数均可以自动登陆,并且在已登陆状态下再次传入token url参数也会刷新登陆。

我发起的、我处理的、抄送我的、我相关的现在全部从WF_Flow表获取数据

我的工作界面优化以及修复数据显示错误bug

代码编辑器控件新增全屏切换功能,特别是在流程设计处编写V8代码更方便。

修复数据源引擎V8.CurrentUser无法访问DIY扩展字段信息的bug。

修复表单引擎字段搜索、异常字段部分bug

修复FormEngine.AddFormData时,数字类型字段赋值空值、开启加密存储报错的bug

修复前端microi.net核心获取OsClicent、ApiBase特殊情况下会出错的bug
更早更新记录

更早更新记录请查看:更新记录

MIT License.