企業級自定義表單引擎解決方案(十四)--表單模板2

2022-10-26 15:03:39
  • .net core研發的自定義表單引擎,採用強大的規則引擎將所有的業務串聯起來的,和其他低程式碼平臺是有本質的區別的,目標是完全解放繁瑣的CRUD工作。
  • 常規的業務,在需求以及資料庫設計完成之後,可能就僅僅在介面上幾分鐘的設定就能夠完成所有的開發、測試、部署工作,完全解放繁瑣的CRUD工作。
  • 表單模板能夠快速建立常規的業務模組,系統儘量將常規的業務功能做成模板,方便快速的建立業務模組功能,選擇一個模板之後,會將模板對應的表單、子表單、子檢視、控制元件等所有自定義表單相關的定義全部自動建立出來。

前段時間一直在搞QT方向的研發,想在QT這條路上有所突破,再將資源引流到自定義表單方面,自定義表單進度基本出於停滯狀態,結果由於疫情原因和大環境影響,QT基本沒什麼專案資源。QT方面也是做了一套開發框架,很多低程式碼的思想在裡面,唉,欲哭無淚,後面計劃開源出來。接下來精力應該全部轉向到自定義表單的研發上面來,不斷的進行迭代優化。

樹相信每個專案都會遇到,除了常見的樹之外,還有樹型列表,在這裡我把常見的情況做成的模板,可以方便的生成對應的功能表單。
模板二:TreeListFormTree_ts(單樹_模板列表表單)

此模板為一棵樹型列表,樹列表為樹型結構,沒有分頁,沒有匯入匯出功能,包括增刪改查以及高階查詢,後臺自動處理關於樹特性的業務邏輯。
範例演示

  •  步驟一,新建物件

 

 

 Object物件「是否為樹」需要勾選,勾選之後,系統自動在資料庫增加PId、TreeCode、Path、Title等欄位,且執行時動態維護這幾個欄位的值,具體生成邏輯可檢視後臺原始碼。

下面是Mysql自動生成的資料庫表:

CREATE TABLE `Tree_t` (
`Id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`StringField` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`DateTimeField` datetime(6) DEFAULT NULL,
`DictField` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`IntField` int DEFAULT NULL,
`TextField` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`AutoNoField` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`DecimalField` decimal(10,2) DEFAULT NULL,
`DateField` date DEFAULT NULL,
`PId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`TreeCode` varchar(767) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`Path` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`Icon` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`Title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`CreatorId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`CreationTime` datetime(6) NOT NULL,
`CreatorDept` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`Id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

  • 步驟二,快速建立表單

 

 快速建立表單大致邏輯: 將模組裡面的表單、檢視、規則等所有設定資料從資料庫裡面查詢到記憶體中,將列表檢視裡面的列、查詢、匯入匯出Excel設定以及編輯檢視裡面的行、列資料全部刪除,將資料庫裡的所有資料的Id提取出來,並構造出IdMap資料字典,字典Key為原Id,Value為新生成的Id(所有資料都包含主鍵,且主鍵型別為Guid),按照設定,根據新的物件的欄位型別生成列表檢視裡面的列、匯入匯出Excle以及編輯檢視裡的行、列資料,其他資料全部保留,用新的Id替換原始Id值,再一起儲存到資料庫,同時重新整理快取,這樣,一個新的業務表單就完成了。具體邏輯可查詢開源的原始碼。

  • 步驟三,設定選單

 

將最外層表單Id值拷貝過來,填寫對應的欄位即可。

 模板三:TreeListFormTree_ts(單樹Tree_模板列表表單)

傳統的一棵樹,在很多地方都可以使用

範例演示:

 

 

  •  步驟一,新建物件

步驟同上,用的同一張表

  • 步驟二,快速建立表單

 

 

  • 步驟三,設定選單

將生成的表單Id設定到選單中。

 


 

wike檔案地址:https://gitee.com/kuangqifu/sprite/wikis/pages
後端開源地址:https://gitee.com/kuangqifu/sprite

前端開源地址:https://gitee.com/kuangqifu/spritefronts
體驗地址:http://47.108.141.193:8031 (首次載入可能有點慢,用的阿里雲最差的伺服器)
自定義表單文章地址:https://www.cnblogs.com/spritekuang/
流程引擎文章地址:https://www.cnblogs.com/spritekuang/category/834975.html (採用WWF開發,已過時,已改用Elsa實現,https://www.cnblogs.com/spritekuang/p/14970992.html )