企業級自定義表單引擎解決方案(十四)–表單模板2
- .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文檔地址://gitee.com/kuangqifu/sprite/wikis/pages
後端開源地址://gitee.com/kuangqifu/sprite
前端開源地址://gitee.com/kuangqifu/spritefronts
體驗地址://47.108.141.193:8031 (首次載入可能有點慢,用的阿里雲最差的伺服器)
自定義表單文章地址://www.cnblogs.com/spritekuang/
流程引擎文章地址://www.cnblogs.com/spritekuang/category/834975.html (採用WWF開發,已過時,已改用Elsa實現,//www.cnblogs.com/spritekuang/p/14970992.html )