[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`屬性,識別對軟刪除模型的同步刪除

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

目前除了固定默認值以后,支持配置回調方法用于獲取動態默認值,配置格式:`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)

`callback:LoginField`:動態獲取登錄者指定字段為默認值(默認username)
`callback:LoginField.mobile`:動態或者登錄者mobile字段為默認值
非通用性的動態默認值處理,比如某個控制器一個簡單單獨的動態默認值處理需求,不建議使用上面的方式反而麻煩了,直接在控制器的create方法處理即可,比如:

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`

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不用擔心突然停更。歷史版本升級日志:http://www.hmoore.net/laowu199/e_dev/408412