[TOC] ## 2024-12-17 V3.0.16 1、改进表格默认选中(使用`setRowChecked`方法,之前是触发点击事件) 2、改进表格列表项按钮,支持模板语法解析 3、layui升级到2.9.20版本 4、改进表单构建器异步提交成功后的回调支持 5、表单构建器新增`gradient`渐变色取值组件 6、表单构建器新增`colors`多颜色取值组件,支持`data-max`定义最多取几个颜色,其他用法和`color`一致 7、表格构建器新增`woo_select_export`用于用户都自行勾选的行进行导出,右上角导出已默认集成 8、改进表单组件`slider`对小数的支持 9、改进`Excel::numberToSecond`方法 10、改进表格构建器,搜索支持配置`tooltip`属性(字符串),用于定义鼠标移入后显示的文本 11、改进表格构建器,搜索支持配置`help`属性(json对象,url、icon、class、attrs),用于配置搜索右上角显示一个帮助的图标 ## 2024-11-18 V3.0.15 1、ThinkPHP核心升级到8.0.4,thinkORM升级到3.0.27 2、Str助手新增`replaceCharacters`方法用于做字符串替换任务 3、Str助手新增`replaceSubstring`方法用于做字符串位置替换任务 4、改进`table`初始化渲染 5、修复`time`类型不能写入null的情况 6、修复模型导入时有二级目录的模型trait文件路径错误的问题 7、改进`table`字符串搜索支持regexp 8、表单`cropper`新增支持删除图片 9、修正JWT可能导致的类型错误问题 10、layui升级到2.9.17版本 11、新增`XlsWriter`助手,用于高效率的对`xlxs`文件进行导入、导出 12、改进`Excel`助手,如果是`xlsx`格式的且安装了扩展自动使用`XlsWriter`完成导入、导出 13、`Str`助手新增`trimAll`、`toNumber`2个方法 14、模型字段的表单项属性支持`Str::方法名`格式去调用Str助手的某个单函数方法 15、列表构建器中侧边栏支持不显示清除按钮 16、改进表格关联relation列表中,如果无关联,支持`relation_empty`设置默认的显示文字 17、改进`new-tab`新选项卡打开页面 18、系统新增112个图标(系统已捐赠作者授权,只能用于后台装饰) 19、优化`menu`组件,改进`new-tab`如果是一个目录菜单的处理 ## 2024-09-02 V3.0.14 1、表格构建器,当列表支持拖拽排序时,新增支持在`表格基础属性`中配置`cancelSortReset`为`true`取消`重置排序`按钮的显示 2、改进表格构建器支持监听和自定义回调所有layui自带的监听事件 3、表格构建器新增`beforeResponse`回调,后台或中台用`afterData`一样的,主要用于特殊情况下的回调 4、改进`Excel`助手导出功能循环数据时使用`generator`,提高导出性能 5、改进表单组件`format`对`belongsToJoin`关联的支持 6、修复关联选择多选分页切换时不能记忆的问题、修复关联选择双击不自动选中的问题 7、改进`.javascript`事件绑定,`rel`支持`test(1,2,3)`格式给参数传递参数 8、优化了快速填写项空字符串不能显示的问题 9、优化快速填写布局;当选项数大于等于8个时显示搜索框支持搜索;改进新增防抖自动搜索;改进支持中文输入时,输入完成才自动搜索 10、layui升级到2.9.14版本 11、优化列表中点击`checker`并取消时,状态异常的问题 12、列表`checker`新增`checker.open`方式,用于实现列表开关操作只能开、不能关 13、改进`excel`助手,新增`getHighestRow`用于获取excel文件包含多少行数据 14、表格构建器新增列宽拖拽记忆(需系统设置中开启),开启以后拖拽列宽以后自动记忆,下次打开页面仍然是该宽度 15、改进表格构建器默认的导出功能以支持csv和xls格式导出(layui新一点版本默认只有csv导出了) 16、修复`relation2`回调没有判断回调的问题 17、修复因layui菜单的一些调整,刷新以后当前菜单父辈节点不自动展开的问题 18、改进表格构建器`checker`,支持自定义接口url 19、改进表格构建器拖拽排序支持自定义接口url 20、修复系统设置,自定义按钮条件js渲染报错的问题 ## 2024-07-24 V3.0.13 1、表单构建器的`text`组件新增`auto_quick_empty`属性,用于给`auto_quick`传递没有选项时的默认选项 2、表单构建器的`text`组件新增`auto_quick_where`属性,用于给`auto_quick`传递查询的额外where条件 3、改进导入,支持通过中文名称识别对应字段名 4、修复`orderitem`特殊情况下`layDropdown`不存在的问题 5、改进`Excel`的`download`方法支持传递第5个参数设置生成路径,而不提供下载 6、改进`tree`助手库,新增`getCascaderDisplay`方法,用于某字段的级联列表值 7、新增`$this->local['static_alert']`以解决因`$this->message()`消息提示单独模板和url,导致特殊需求需要无法保持住当前页面的情况 8、修正`Table`列表中的`checker`因关闭、取消等还原状态时,状态文本不能还原正确的问题 9、表单构建器新增`photocut`组件,实现调用摄像头+`video`+`canvas`的自定义"拍照"和局部截取上传功能(我们的使用场景是需要识别汽车里程数,由于仪表盘上有很多数字、不同车型仪表盘不一样、拍照位置等因素很难确定里程数在图片上位置;因此开发的该组件,直接调用摄像头+video实时显示仪表盘图像,将里程数标入指定框内,从而自定义实现的拍照+图片指定区域位置的快速确定来实现了仪表台里程数的识别) 10、改进`dragMove`组件,防止移动端拖拽移动时浏览器被认为是下拉刷新导致页面刷新;自己的其他元素也可以新增`.forbid-pull-refresh`类名(特别是可安卓下的可拖拽元素),当触摸该元素时不会触发浏览器下拉刷新 11、改进表单`text`组件的快速输入方式由`select`下拉选择,调整为弹框选择 12、优化表单构建器,新增`window.beforeSubmitCall`提交前回调;新增`window.form_submit_confirm`用于提交前自定义提交确认文本内容 13、layui升级到2.9.13;修复最新版的table把lay-id改为了lay-table-id,系统自行把lay-id加进去了;修复新版table数据完成done回调函数多一个参数后照成的一系列问题 14、表单构建器删除高德地图组件(由于新申请的key已不能使用、容易产生5W费用),需要的自行开发和系统无关 15、优化css样式,改进json编辑器被遮挡问题 16、安装了`mobile`插件后可以在模型的`表格基础属性`中添加`isForceTableCard`属性,让当前模型列表强制使用卡片式渲染方式(之前是强制判断在移动端的下自动渲染),实现部分希望PC端列表页快速使用卡片列表的功能 17、修复"经典"菜单模式下,一级菜单不能使用事件菜单类型的问题 18、表格构建器侧边栏支持,新增支持每个侧边栏支持传递`titleCallback`传递一个闭包用于自定义标题返回内容 ## 2024-07-09 V3.0.12 1、layui升级到2.9.9 2、修复中台不能通过`$this->local['cancelCheckAdmin']`取消数据权限条件的问题 3、模型中新增了2个工作流引擎回退的回调事件 4、改进列表`counter`显示方式,图标默认调整为"眼睛",可通过`icon`列表属性自定义;点击以后默认新Tab打开(之前是当前页跳转),可通过`openType`自定义类名,比如: `woo-layer-load` :使用系统配置切换打开方式 `woo-layer-load load-default`:当前页面跳转 `woo-layer-load load-layer`:layer弹窗 `woo-layer-load load-drawer`:抽屉打开 `woo-layer-load load-open`:open新窗口 5、新增`stdevp`函数用于计算一组数字的总体标准偏差或样本标准偏差 6、新增`score_standardization`函数用于打分标准化处理公式 7、优化定时任务`cron`任务判断时间,防止某任务执行执行时间过长,导致后面的任务被判断不是本轮的任务 8、优化定时任务`cron`如果是workerman的启动方式,新增一个异步任务配置(任务多、耗时建议使用,但是需多开一个命令) 9、优化`url`函数,防止中台多商家绑定到business应用以后,url不能自己定位当前域名,从而导致跨域的问题 10、修复`Table`构建器`counter`统计部分特殊条件没有加入的问题 11、优化表单`cascader`支持传递`data-maxlevel`表示最大现实多少级,比如Region的设置为2,就只可选择省、市了 12、`mqtt`插件新增异步任务调用(需要安装`cron`且开启异步任务),针对耗时任务有用,比如我们得卷帘门自动开门(特殊原因,整个任务做完需要30s): ~~~ mqtt_manage_send([ 'action' => 'async', 'method' => '\app\common\task\RollingDoor::allClose', 'params' => [ 'id' => $door, 'business_id' => $bid ] ]); ~~~ 13、`mqtt`插件消息日志新增任务执行时间;优化针对消息是二进制数据导致保存报错的问题 14、`mqtt`插件设备新增自定义属性配置,可以通过`model('mqtt.device')->getCustom(id) `获取全部数据,`model('mqtt.device')->getCustom(id,变量名)`或者某个自定义属性值 15、优化表构建器异步提交时的错误提示处理;优化错误提示自动滚动位置获取,针对特殊布局支持自定义滚动容器选择器 16、改进异步请求未登录时的url跳转地址 17、改进`Table`构建器数据异步请求未登录时的提示和自动跳转 18、优化`Table`的搜索渲染,防止多tab下浏览器刷新非当前tab的搜索容器不显示的问题 ## 2024-07-03 V3.0.11 1、改进RSA加密,支持单独传入公钥和私钥;和自定义填充模式(默认`OPENSSL_PKCS1_OAEP_PADDING`) 2、改进`curl_send`,新增对Cookie的传入 3、新增`Str::aesEncrypt`和`Str::aesDecrypt`用于对AES加解密 4、改进表单多属性组件下的input输入框样式,获取焦点以后宽度增大,方便输入 5、改进模型关联父模型`deleteWith`属性,识别对软删除模型的同步删除 ![](https://img.kancloud.cn/f9/09/f9099a061f2101fd7af639f5baa5db7b_818x433.png) 6、新增软删除模型`deleteWith`(父、子模型都是软删除),当父模型恢复数据时,子模型数据也同步恢复 7、显示后台授权页面滚动条 8、改进模型导入升级时的判别,大大降低多个模型同时导入且存在关联依赖关系时的出差概率 9、改进表单场景按钮生成,支持自动生成到当前模型列表的其他tab 10、修复模型直接指定搜索字段时,选择由系统默认处理时报错和处理错误的问题 11、debug开发模式下,如使用了redis缓存引擎,将强制检测缓存配置,如果是默认的将强制要求修改 12、`Excel`助手库,导出时新增`data_type`属性,有哪些格式参考`PhpOffice\PhpSpreadsheet\Cell\DataType`最前面的几个常量,比如`s` 13、`Excel`助手库,导出时新增数据处理回调,可通过`setCallback`方法传递一个函数,用于自定义处理行数据 14、表单组件`multiattrs`新增`align`属性 15、表单组件`relation`如果是人员选择,默认只能选择状态为正常的人 16、`config/woo`新增配置项`rsa_default_padding => 4`(有使用unicms需要改为1,不然不能解密) 17、改进表单组件`ueditor`宽度属性 18、调整应用中心url,避免宝塔环境的拦截,每次还要手动修改配置(新安装项目有效) ## 2024-03-14 V3.0.10 1、改进`WOO.photos`方法,避免移动端手指撑放大/小时,旋转被还原的问题 2、表格构建器的图片查看全局由`layer.photos`调整为`WOO.photos`(移动端支持手指拖拽移动、手指撑放大/小、双击还原大小) 3、表格构建器新增`mobiles`列表显示方式(用于一个字段保存多个手机号码中间逗号分隔的格式) 4、layui升级为2.9.7 5、优化表单组件`select`,支持配置`lay-creatable`标签属性,用于自动开启开启搜索,并在搜索时允许创建新选项 6、改进表单构建器`default`属性,让无表单类型的字段也支持设置默认值了 7、改进表单构建器`default`属性,之前是用于字段固定默认值的设置,比如`default=>5`,默认的初始默认值为5 ![](https://img.kancloud.cn/76/81/768189e6e0e0e4a219959a1cdf9a93bd_772x125.png) 目前除了固定默认值以后,支持配置回调方法用于获取动态默认值,配置格式:`default=>callback:回调方法名.参数值.参数值`(支持多个参数,该方法是在get请求的时候执行即POST数据提交之前,所以你不要指望在这里面动态获取POST提交值再处理默认值;当然如果你的表单没有使用系统的表单构建器也无效),比如:`callback:test.5`,你就应该在`app\common\builder\form\traits\CustomCallback`定义一个方法叫`function setTestDefault($a)`(方法命名规则`set回调函数名驼峰Default`)使用该方法返回默认值,5会作为参数传入。 系统内置默认值回调方法定义文件在`woo\common\builder\form\traits\SystemCallback`(你可以参考该文件中方法定义你的默认值回调方法,如果有你觉得通用点的方法,可以提供代码加入到系统内置中)。 系统内置默认值回调方法: `callback:datetime`:动态获取当前日期(Y-m-d)为默认值 `callback:datetime.Y-m-d H:i:s`:支持一个参数自定义日期格式 `callback:Increment`:针对整型自动自增 `callback:Increment.2`:自增进步值为2 `callback:IncrementFormat.aa.4`:格式化自增,aa是必须的一个隐藏int类型字段名,4表示4位长度(0001) `callback:IncrementFormat.aa.4.2024`:统一加上2024的前缀(20240001) `callback:IncrementFormat.aa.4.2024.test `:统一再加上test的后缀(20240001test) ![](https://img.kancloud.cn/6a/b7/6ab781837aca453688899fe02a19fb5e_707x70.png) `callback:LoginField`:动态获取登录者指定字段为默认值(默认username) `callback:LoginField.mobile`:动态或者登录者mobile字段为默认值 非通用性的动态默认值处理,比如某个控制器一个简单单独的动态默认值处理需求,不建议使用上面的方式反而麻烦了,直接在控制器的create方法处理即可,比如: ![](https://img.kancloud.cn/cc/ca/ccca201ee66c9a466777396c8bf4e977_1276x649.png) 8、改进模型数据写入验证前时的`filter`属性,用于对值写入前的处理(当然你也可以用TP的修改器处理),比如`filter=>trim`写入前去除前后空格;现新增`filter=>callback:回调方法名.参数值.参数值`的回调格式(支持多个参数,模型数据写入前,非系统表单构建器的数据提交也可用,但Db写入由于不进过模型不可用),比如:`callback:test.5`,你可以在当前模型的trait文件,如果是通用的可以在`app\common\model\App`中定义一个方法叫`function getTestFilter($value, $data, $field, $a)`(方法命名规则`get回调函数名驼峰Filter`) 前三个参数是固定的表示当前字段值,全部值,当前字段,你的自定义参数从第四个参数开始接收。 系统内置该方式回调方法(定义在`woo\common\model\traits\Validate`文件中,你可以自行参考,如果有你觉得通用点的方法,可以提供代码加入到系统内置中): `callback:getSexByIdcard.sfz`:通过身份证返回性别,sfz是你的身份证字段名,默认是`idcard` `callback:getBirthByIdcard.sfz`:通过身份证返回生日日期,sfz是你的身份证字段名,默认是`idcard` ![](https://img.kancloud.cn/28/25/282555b4a2467d075b59f86a7406975d_603x140.png) callback方式的filter回调,如果字段已有值默认就不会再调用filter回调了,如果你希望有值也强制调用回调可以加`forceFilter=>true`属性 非通用的提交数据时业务处理、多个字段交互业务的处理,不建议使用上面方式处理,建议使用模型事件(模型事件很重要,很好用的),总之不要生搬硬套。 9、新增`Str::getWeekDate`字符串助手方法,用于获取指定日期所在周的周一(几)日期 10、针对`disk=>private`的上传,新增`download_url`上传属性用于自定义下载地址(针对特殊情况,你要自己写下载业务用的) 11、优化统一弹窗的自定义尺寸,如果大于窗口宽度,自动调整为窗口大小-20 12、新增`ignoreImport`属性用于配置自动查找导入字段时,忽略当前字段 13、新增`importTips`属性用于配置自动查找导入字段时,当前字段的说明文本 13、模型新增自定义导入字段配置 14、导入新增导入模板文件下载(表头和字段说明) 15、模型允许导入以后,对应模型列表将自动添加导入按钮(之前所有导入在统一页面,现在支持到当前列表页面) 16、改进`Excel`助手导出时超过26列,列号获取错误的问题 17、新增`isChineseIdCard`自定义验证规则,用于校验18位身份证有效性 ## 2024-03-02 V3.0.9 1、`Word`助手新增对pdf文件读取的支持 2、woo.js新增`WOO.startSerial({baudRate:xxx}, function(value) { //...消息回调 })`用于开始一个串口通信和`WOO.stopSerial()`停止通讯,用于实现物联网USB的串口通信 3、新增`office`预览插件,支持`word/excel/pdf`预览(文档参考:插件/office) 4、新增`websocket`即时通讯插件,用于在主业务中快速实现即时通讯需求(文档参考:插件/websocket) 5、优化模型`counterCache`,避免当关联id由0修改成其他id时不能正确更新统计计数的问题 6、修复`orderitem`在某些情况下,不能提交值的问题 7、改进`time`保存类型,避免无值情况下报错 8、改进relation弹窗的关闭层 9、改进抽屉,点击遮罩防止特殊第三方页面无jquery而报错 10、后台多tab,新增`currentTabShow`函数回调,当切换至当前Tab时执行 11、改进后台多tab下的全屏按钮,实现多个tab的全屏按钮同步 12、改进layer弹窗加载,支持通过`data-width`和`data-height`自定义宽度和高度 13、改进关联选择弹窗,支持通过`data-width`和`data-height`自定义宽度和高度 14、优化`WOO.url`方法,以'/'打头的url不再自动追加应用名 15、优化表格生成器,表单提交后表单重新渲染由`reload`调整为`reloadData` 16、改进详情图片点击效果 17、改进软删除的恢复动作,修复软删除恢复时模型不能获取到数据的的问题 18、改进软删除的恢复动作,修复软删除恢复时`counterCache`不会重新统计的问题 19、改进`relation`和`relation2`支持通过`data-callback`自定义回调函数 20、修复表单类型`datetime`有因为值类型而导致出错的概率 21、修复`relation2`不能识别到自定义关联键的问题 ## 2024-02-09除夕 V3.0.8 1、新增封装word文件(只支持.docx)的读取和写入的助手类,支持读取文件、写入文件、模板生成、根据html模板生成word文件、word转换为html内容(文档参考:开发平台/助手/Word)。 2、新增自定义模型关联`belongsToJoin`类型,用于多对多时不使用中间表;而是存一个字段,多个关联id用逗号分隔的关联存储方式 3、改进表单`relation`和`xmtree`关联选择,如果是`belongsToJoin`类型自动为多选模式; 4、改进表格构建器,新增对`belongsToJoin`关联类型的查询支持、列表显示支持、搜索支持、侧边栏支持、数据导出支持 5、改进模型创建时,如果存在`belongsToJoin`类型会自动创建关联字段 6、改进字典功能,自动记录上一次所选字典类型,下一次添加字典项时自动选中该值 7、改进字典操作,菜单默认可见由字典分类修改为字典项 8、模型字段中新增"导出"和"导入"功能,以便于多个模型之间有相似字段,可以快速的将A模型中已设置好的字段属性快速的添加到B模型中 9、修复列表`file`和表单`upload`因特殊情况导致文件不存在时报错的问题,对该2处进行去空判断处理 10、改进`relation`选择支持双击行自动切换选中状态;支持自定义回调 11、改进后台"复制"动作,数据调整为全局变量 12、改进表格生成器,二级按钮支持排序 13、改进模型对工作流的接入,解决如果列表有单独自定义`list_fields`以后,工作流相关字段不能被查询的问题 14、改进上传完成回调,第二个参数传入当前文件的File对象 15、详情新增`nl2br`显示模板,用于将文本中换行符替换为换行标签 16、改进表格列表多行模式下的显示样式 17、改进列表`whereOr`的处理,改为在where的闭包中再使用whereOr 18、改进`ajax`函数,如果是集合或模型数据自动`toArray` 19、layui升级为2.9.4 20、新增`utterance`layui模块,用于实现文字转语音,实现朗读、速度、音量、暂停、继续、取消等封装 ## 2024-01-22 V3.0.7 1、新增20个内置图标(已支付授权,只允许在本系统的后台、中台进行界面装饰使用;其他开发场景如需要使用,需自行联系作者进行授权使用,产生的一切版权纠纷、法律责任和系统无关) 2、layui升级为 2.9.3,建议升级,该版本对移动端体验有增强 3、修正详情渲染函数因为深拷贝问题,而不能获取当前字段属性的问题 4、修正详情`checker`不能正确显示勾选状态的问题 5、优化表单`rate`组件,支持传递`data-half`属性和`data-callback`自定义回调 6、模型字段管理中心中`复制`操作,用于一些相似字段的快速创建 7、改进表格列表`text`类型,支持`prefix`和`suffix`属性,用于单元格输出时追加前缀和后缀 8、改进`laydate`中时间选择在移动端难以滚动的问题 9、改进表单`relation`类型,新增`foreign_list_fields` 属性用于快速指定关联选择字段列表(可以是json数组,也可以是true 表示全字段列表),兼容以前的方式 10、改进表单`relation`类型,新增支持在关联模型的自定义数据中通过`foreign_list_fields` 属性全局定义所有该模型的关联选择字段列表(可以是json数组,也可以是true 表示全字段列表) 11、列表新增`numberShowTime`单元格显示方式,用于将一个时间秒数显示出对应的时间 12、改进图片上传,点击图片链接时取消直接打开,改为layer.photos进行图片预览 13、改进图片上传,点击图片链接后如果是移动端支持图片拖拽移动 14、改进图片上传,点击图片链接后如果是移动端支持手势放大、缩小(需要自行addJs出hammer.min.js;你可以考虑判断是否是手机,如果是就全局传出) 15、改进单文件上传,默认取消文件删除图标(多文件上传默认不影响,如果确认需要删除图标可以通过字段标签属性'data-remove'为1来改变默认) 16、优化系统设置js变量中值的获取 17、优化开启列表页码缓存以后,表单中使用`relation`存在缓存的问题,导致多个`relation`表单共享的问题 18、修复因表单数据缓存,当多人同时添加同一个表单时当前用户ID被覆盖的问题 19、woo.js新增WOO.nl2br方法 20、修复系统设置按钮自定义条件js中报错的问题 ## 2023-12-28 V3.0.6 1、表单类型新增`scan`扫二维码输入组件,需要安装`scan`插件 2、新增`scan`扫码服务插件(必须https下可用) 3、改进`scan`表单组件支持`data-callback`标签属性用于传递扫码而已的回调 4、表单类型新增`cropper`图片上传带裁剪输入组件(比如头像等需特定尺寸的自定义图片裁剪),目前只支持单图 5、改进`relation`表单组件当多选时,支持`data-sort`为true传递是否支持拖拽调整已选值的顺序 6、`Table`取消了导出会自动获取单元格文本内容作为导出文本的方式,默认还是导出原始数据值;如需对导出文本做处理,需自行通过`exportTemplet`定义导出回调函数,由该函数返回值决定导出文本格式(原因是导出大量数据时,会执行大量DOM操作导致JS无法执行) 7、新增`WOOExport`对常用列表单元格的导出格式进行处理 8、新增自定义`Redis`缓存引擎,支持断线重连 9、移除`wooadmin/tp-jwt-auth`扩展,换回`thans/tp-jwt-auth`(之前是因为该扩展不支持TP8,我们先自己改的一个;目前已支持TP8,因此换回来) 10、改进`beforeValidate`方法对待检字段进行去重处理 11、去除模型升级最多导出500条数据的限制(数据量大的模型仍然不建议使用模型升级同步数据) 12、`WOO.strap_tags`方法名修正为`WOO.strip_tags` 13、改进请求登录验证,会时时验证用户状态 14、改进顶部提示区域输出,支持带html结构 15、改进上传验证 16、列表新增4种单元格显示方式,用于4种隐私字段的显示加*处理 `mobile`用于手机字段的隐私方式显示,移动端支持点击拨号 `email`用于邮箱字段的隐私方式显示 `idcard`用于卡号字段的隐私方式显示 `truename`用于姓名字段的隐私方式显示 (如果我希望后台不加*(或指定控制器不加),前台才隐私显示?可以在后台控制器传递变量`$this->assign->ignorePrivacy = true`将不做隐私处理,如果整个后台都不需要可以在公共代码中传递变量) 17、layui升级为2.9.0-rc.1版本 18、修复layui升级为2.8.18-beta版本以后菜单产生的相关兼容问题 19、改进字符串、数字搜索方式,必须明确的搜索属性`sign`为true才会显示符号选择,默认将不显示(之前是默认显示) 20、改进RSA加密,采用 OAEP(最优非对称加密填充模式) 21、改进弹出回调,避免自动关闭没有回调 22、新增`Excel::numberToTime`用于将excel文件中的日期格式数据导入以后的数字转换为php环境下的时间戳整数 23、表单`text`新增`auto_quick_all`属性配合`auto_quick`使用 24、修复模型有软删除时,`deleteWith`关联属性在软删除时就删除子模型数据的问题 25、优化列表中不能获取到软删除的父模型数据 26、优化回收站(软删除)中序号显示问题 27、优化系统自带回收站(软删除)强制显示删除日期 28、优化上传框图片上链接,避免手机端不可见 29、模型新建时新增头像字段(cropper),`Admin`模型头像表单类型调整为cropper 30、TP核心由开发版本(8.0.x-dev)调整为最新发布版本(8.0.3) 31、jquery版本升级到`jquery-3.7.1.min.js` ## 2023-09-18 V3.0.5 1、新增20个系统内置图标(已捐赠图标作者,仅可后台、中台使用) 2、优化`WOO.copy`方法,支持内容有换行 3、新增图片上传前端JS压缩,用于大图片文件上传减少图片文件大小,提升传输速度。 在后台`系统设置`->`上传配置`中开启全局上传前压缩(默认关闭,其他配置自行在相同地方查看,有提示)。 也支持每个图片上传字段单独开/关,在字段的`上传配置`中单独配置: `isCompress` :是否开启上传前压缩图片 `compressSize`:上传前压缩图片的起始大小(文件大小超过了该值才会上传前压缩,单位:KB) `compressQuality`:上传前压缩图片的质量(请填写0-100之间的数字,默认100) `compressWidth`:上传前图片会压缩到该宽度,高度等比例;单位:像素px(建议和图片`resizeWidth`搭配,所以该配置可以不用写,而写`resizeWidth`) `compressHeight`:上传前压缩图片的高度,传前图片会压缩到该高度,宽度等比例;如有设置宽度,该值无效;单位:像素px(建议和图片`resizeHeight`搭配,所以该配置可以不用写,而写`resizeHeight`) 以上属性如果没有,将自动读取`系统设置`->`上传配置`中的全局配置。 4、新增`layer`的提示,可以系统设置中选择 5、改进移动端日历点击遮罩可能不关闭的问题 6、修复“个人信息”页不能保存的问题 7、改进侧边栏的数据查询,自动带上数据权限条件(非tree模型时) 8、layui升级为2.8.17版本 9、兼容优化部分浏览器拖拽排序可能会新窗口打开新页面的问题 10、表单`text`新增支持`auto_quick`属性,用于一些较为固定的输入值的表单,再下一次填写可以用快速选择填入 11、改进`Table`中工具按钮`power`的识别,支持到二级按钮(之前只支持一级按钮) 12、改进模型升级导入 13、改进表单初始化方法回调,会传入当前表单的初始化数据 ## 2023-08-15 V3.0.4 1、修复`curl_send`请求结果函数可能会乱码的问题 2、优化模型自动清除缓存对商家ID的获取,针对CLI模式下请求中无商家ID,仍能识别商家ID的判断 3、优化列表日期相关模板,增加值为空的判断 4、改进表格列当没有自定义`width`或`minWidth`时对列宽默认宽的获取(自动根据列标题字数来计算) 5、layui升级到2.8.13版本 6、改进抽屉不是"right"的时候,关闭按钮定位不准的问题 7、更新TP版本到8.0.2 ## 2023-08-04 V3.0.3 1、改进消息提示时是否跳转的判断处理 2、详情新增`json`输出模板,属于table对json属性进行展示 3、调整模型、字段中部分字段详细为`json`模板 4、修复`select`的选项如果是二维码数组(下拉分组)时,列表不能获取到对应展示值的问题 5、表格列表项新增`base64`模板,对base64图片的显示支持 6、layui升级到2.8.12版本 7、发布`mqtt`物联网建设插件、`queue`队列插件 ## 2023-07-24 V3.0.2 1、修复自定义列表模板,静态数据不渲染的问题;静态数据渲染支持分页和排序了 2、改进自定义列表模板渲染代码 3、layui升级为2.8.11 4、新增`int`,`float`表单输入组件,自动使用layui2.8.9新增的数字输入框组件,且手机上自动使用数字键盘;`number`表单数字组件,调整为layui数字输入框组件 5、改进列表数字、数字区间、数字比较搜索,调整为layui的数字输入框组件 6、改进头部"返回首页"按钮样式 7、验证增加更多内置规则 8、新增`get_sex_by_id`函数,通过身份证获取性别 9、改进上传,单文件上传图片上传异常以后不能删除预览图的问题 10、改进本地图片上传,解决手机(iPhone)上传图片时图片会翻转的问题(前提需安装和打开`exif`扩展) 11、修复3.0.1动态获取创建者字段时,插件中获取插件名失败的问题 12、改进`treetable`,自动记忆"展开状态",刷新以后将保持该状态 13、修复列表缓存页码后,表格`table.page.layout`属性被覆盖的问题 14、改进列表`icon`的显示样式 15、列表新增`color`列显示方式 16、改进表单`color`表单组件,如果有选项,自动将选项作为预设颜色 17、新增表单异步提交,系统生成的表单(非自定义布局)支持异步提交(需在config/woo.php中进行配置开启,每个表单也看通过$this->local['ajax_submit']=bool单独设置),*建议特殊情况必须使用异步提交的时候使用* 18、优化`together2`表单组件中label标签中for属性值的替换 19、改进登录成功以后的跳转方式 20、更新TP版本到8.0.1 21、修复数据备份时,有null值处理出错的问题 22、修复模型批量升级,只能升级一个的问题 23、新增`between`数字区间表单输入组件;默认文本输入框,如果带有选项自动变为下拉选择;数据格式`小值-大值` 24、新增`between`配套的列表显示模板;如果是文本输入框(没有选项),可通过列表属性`between_prefix`和`between_suffix`配置前后缀 25、列表新增`only_query`配置用于查询字段但列表不显示的配置;和`hide`配置类似,但`hide`会在右上角"晒系列"中显示出来只是不打勾而已,而`only_query`不会 26、优化详情页,显示关联模型数据时如果无数据时给与提示 ## 2023-07-03 V3.0.1 1、改进商家系统设置缓存,避免无独立数据时查询数据库 2、改进layui2.8.7版本以后,表格列表hover背景颜色不一致的问题 3、调整子表验证规则,只验证表单里面拥有的字段,没有在父表单显示的字段不再进行验证 4、模型事件中,新增固定工作流引擎配套的事件 5、改进business中间件,改进系统设置对商家的系统设置的获取 6、修复模型在无流程配置的应用中对流程关键自动自动加关联模型时报错的问题 7、修复非流程应用因为检测流程是否自动发起而报错的问题 8、调整操作判断对工作流的识别 9、调整父表单中关联同时提交子表单,因有相同字段名导致赋值错误的问题 10、上传新增`unified`属性(由于开启以后参数有问题,暂时关闭) 11、layui升级为2.8.8版本 12、改进系统设置,支持实例化时传入商家id;新增Setting的facade类 13、优化表单生成文件,支持通过`$this->assign->submitClassName='is-confirm'`传入提交按钮的自定义类名,如果含有`is-confirm`类名将在提交之前做confirm提交确认 14、改进数据权限,支持传入自定义的数据权限规则 15、woo.js中动态加载的css和js文件追加版本号 16、改进应用和插件的读取,便于获取最新版本的版本号 17、整理验证规则,新增了部分TP8新增内置规则 18、修复选项通过模型自动获取时,key获取失败的问题 19、改进列表模型查询 20、改进对权限节点的查询获取,减少数据库查询次数 21、改进自定义验证规则,新增系统内置自定义规则的快速选择(之前手写) 22、新增商家唯一验证的自定义验证规则 23、新增2个日期字段比较的自定义验证规则 24、改进获取创建者字段,模型可通过`$this->getCreatorId()` 获取创建者ID;可在模型自定义数据中通过`应用名_creator_id`来指定当前应用的创建者字段,可以通过`creator_id`统一设置当前模型的创建者字段(之前后台只能是admin_id,中台只能是business_member_id) 25、新增`single_switch`功能,在模型自定义数据中配置`single_switch=>字段名|字段名`,它对应的字段应该是开关类型的(0,1值);用于实现某个打开以后,其他数据都关闭的效果;可通过`single_switch_where=>{字段名:[[条件]]}`给某个字段做关闭时的条件;这些字段的列表显示用`checker.refresh`才会刷新,体验好一点 26、自定义表格checkbox布局新增半选状态 27、重写表格自定义布局的数据导出 28、新增表格自定义布局的`customDefaultToolbar`的渲染(之前是写死的2个,现在动态了) 29、改进表格搜索布局,超大屏幕(>1330)默认一排放4个搜索字段(之前3个);支持搜索配置`grid`属性自定义某个搜索字段的栅格宽度 30、对于字符串和数字比较搜索类型,支持配置`sign=>false`来隐藏前面的搜索符号选择 ## 2023-06-17 V3.0.0测试版 1、系统底层基于ThinkPHP8.0,PHP最低运行版本调整为8.1 2、layui升级为2.8.6 3、新开发插件`mobile`移动端增强,用于适配移动端视觉和体验;具体升级内容到"插件升级"对应插件查看;后期移动端新增体验和功能,都将更新到该插件中 4、新开发插件`flow`工作流引擎,用于流程审核;也是后期重点维护的一个插件 5、新开发插件`dev`模型增强,用于低代码的开发增加;后期模型、开发辅助的相关新增功能将更新到该插件中(未发布) 6、插件、应用的安装新增新的模型安装方式 7、改进模型升级操作 8、改进弹窗、抽屉页面加载,支持移动端强制使用弹窗或抽屉了(之前会判断,如果小屏幕自动改跳转) 9、改进抽屉加载的宽度识别 10、改进详情`detail`方法 11、重构详情页面布局 12、新增表单组件`radiobutton`,按钮式的单选、多选表单组件;可通过标签属性`data-type='checkbox'`配置为多选 13、本地上传支持配置非公开文件上传,在上传配置中配置`disk => 'private'`文件将不会上传到`public/uploads`中,这样就算知道文件路径也没法通过url对文件进行访问和下载(必须自行实现接口对文件提供下载或访问);可运用于文件有严格下载权限判定业务中 14、改进文件上传存储目录,如果有二级目录的模型会再多一级目录 15、插件`addons`中类调整为通过`psr-4`自动加载(2.x版本通过`spl_autoload_register`单独实现的加载);调整以后便于cli模式下也可以调用`addons`下的类 16、插件的common.php函数库支持配置为全局函数库了 17、改进本地上传,支持图片上传成功以后将格式转换为'webp'实现文件大小的压缩;可以在配置文件`wooupload`全局开启,也可以给字段上传配置`toWebp`局部开启;可以在配置文件全局配置`quality`也可以给字段上传配置`webpQuality`来指导压缩质量 18、首页菜单新增收藏功能,Tab支持右键收藏 19、统一调整webkit滚动条原生样式 20、移出最早版本的登录页面和css样式文件 21、主页皮肤新增"菜单通色",让页面配色更加自由化 22、优化了皮肤菜单"彩标"显示细节 23、主页皮肤新增"菜单圆角"设置 24、优化表单组件页面,让表单示例更丰富和参考 25、优化表单组件`radio`、`checkbox`,支持配置字段属性`is_row`让每个选项独占一行显示 26、优化表单组件`radio`、`checkbox`、`select`、`xmselect`、`radiobutton`,支持配置字段属性`options_attrs`给每个选项再单独指定标签属性(其中`radio`、`checkbox`、`radiobutton`,还支持选项值直接是一个数组来配置当前选项标签属性,具体可以查看表单组件示例),从而实现如"禁用"等更多选项配置 27、优化表单日期相关组件,以支持layui2.8以后的一些新特性 28、优化表单生成,底部按钮支持自定义html结构了,控制器中自行assign了`$this->assign->form_bottom_html ='html'`即可,从而实现动态按钮组的需求(比如工作流的审批按钮组就是通过这个实现的) 29、改进表格列表中图片缩略图,点击以后进入图片展示弹层 30、改进`Table`列表生成,支持自动计算表格高度了(系统设置中开启,默认关闭) 31、优化`Table`列表生成,默认给操作列加上`ignoreExport`熟悉用于设置不导出;其他列如果有需要忽略导出,可自行在列表属性中加上`ignoreExport:true` 32、修复`Table`列表不显示的字段也被查询出来的问题(可以给表格配置`full_fields`会查询全部字段(不影响显示字段);也可以控制器` $this->local['field'] = true`) 33、优化`treeTable`,展开、折叠按钮合并为一个按钮,现在支持展开全部了 34、修复`treeTable`多选选择以后,没有获取到部分选中数据的问题 35、修复`treeTable`不能获取缓存数据的问题 36、优化列表`checker`,列表支持配置`checker.refresh`,用于请求成功以后请求数据(默认不会请求) 37、表格生成器列表新增`status`单元格显示方式,分别用于对状态(支持不同状态定义不同背景色,可通过`status_colors`列表属性配置每个状态的背景色,可通过`status_click`列表属性配置定义点击以后回调函数) 38、表格生成器列表新增`progress`单元格显示方式,用于显示进度条(需自行计算到百分比值) 39、表格生成器列表新增`pastTime`单元格显示方式,用于对时间值进行计算,如:10 秒前;比如创建日期、修改时间就可以用这个显示多久前了 40、表格生成器的`relation`搜索,支持配置`only_use=>true`属性实现关联搜索接口中只返回当前表已使用过的关联记录(比如:admin表有100个用户,A表中admin_id关联它,但A表只使用了2个不同的admin_id;在列表搜索查询时会返回该100个用户,但配置了only_use搜索属性以后就只返回2个用户了) 41、调整表格生成器列表样式 42、关联选择下的表格取消了表格头部的固定,工具栏改为固定,方便选中以后点击按钮 43、字段名新增自动获取名称拼音功能,当字段名为空,字段名称失去焦点时将自动获取名称拼音填充到字段名中 44、优化弹窗表单,取消了layui的按钮,调整为使用表单自己的按钮 45、新增`Arr::findIndex`、`Arr::find`和ES6的findIndex、find类似 46、新增`Arr::pathJoin` 将数组转换为路径字符串 47、操作成功后,新增自定义刷新函数调用`custom_refresh`;用于特殊情况的刷新操作[举例:比如在详情页中发起审批以后,不光详情页需要刷新(因为想看最新状态),详情页的上级页面列表页也希望重新加载数据(保证了数据状态的同步,不然关闭详情以后数据还是未发起状态,需手动刷新才会改变)] 48、新增函数`get_model_by_id`传入模型id,返回模型名,比如`model(get_model_by_id(36))`用于获取id为36的模型对象 49、新增js函数,可通过 `WOO.getThemeColor()` 获取当前主题颜色 50、新增js函数`WOO.empty`和php的empty一致,'0' [] {} 都将判断为空 51、改进主题样式,新增自定义主题样式回调,当主题颜色改变时,如果你也有需要跟随改变的css样式,可以通过该回调返回你的样式申明。全局定义该js函数`customColorSet(color, second)`返回你的样式 52、改进主题样式,在css可以可以通过`--theme-color`变量获取当前主题颜色;`--theme-second-color`获取次主题颜色;然后css中可`div{ color: var(--theme-color);}` 53、优化模型添加时对基础字段进行分类和提示说明 54、模型基础字段中新增“雪花ID”的自动生成,完成配套的生成算法、模型对应获取器的生成 55、模型基础字段中新增了几个常用字段的快速选择 56、取消了woo自己的Cache类,不再在`think\Cache`下多封装一层 57、将普通工具和开发工具类分开 58、更换animate.css到最新版本 59、重新整理按钮示例页面,新增了部分按钮,新增按钮动画,新增了虚心边框按钮,新增按钮防抖、节流点击事件绑定 60、抽屉新增关闭时回调 61、解决缩略图生成时识别上传引擎错误的问题 62、解决移动端表单可以左右滑动的问题 ## 历史更多版本 系统1.0.0版本发布于2017-10-08,目前已近6年;经历了基于TP5.0、5.1、6.0、6.1、8.0各大版本的重要升级或重构;期间耗费了我们大量心血,因此使用我们WOOAdmin不用担心突然停更。历史版本升级日志:https://www.kancloud.cn/laowu199/e_dev/408412