生成代碼
完成配置工作,接下來就是見證奇跡的時刻~
返回到實體列表,選中“文件夾”記錄,點擊“生成代碼”按鈕,提示成功后,在項目的output目錄下輸出了平臺基于配置+模板產生的各層代碼,在原有后端的基礎上,新增了前端代碼。
前端之所以在view下加了0,是為了排序時放在最前面與后端項目區分開,方便前后端分別拷貝代碼到不同的目錄下(不這樣做,按字母表順序,view會位于service和vo目錄之間)。
查看后端代碼變動
在配置視圖前,我們將實體文件夾的“上級”屬性的數據類型,由文本調整為了實體。
當時由于未配置視圖,生成代碼時會報錯終止,提示未配置主參照視圖,在視圖配置之后,后端代碼會有部分相應的變動,變化的是視圖對象類和控制器類。
視圖對象類會自動增加一個實體編碼+name后綴的屬性,在控制類中會調用實體服務,根據id拿到名稱后填充,用于前端顯示。
這里也看到了服務定義的getNameMap的作用,即將某頁數據關聯的外部屬性標識,通過一次sql查詢獲取到名稱,將1+N查詢問題優化為1+1。
復制前端代碼
將前端代碼復制到新建的前端模塊edoc的view視圖下
前端不像后端那么規范,比較自由靈活,通過代碼模板產生的代碼,往往因為空格、縮進、換行等原因,直接運行會因為未通過eslint檢查而報錯,點開后保存一下就好了。但多個視圖文件逐個點開保存也比較繁瑣,更快捷的方式是執行如下腳本,由eslint自動格式化代碼。
因為處理的是整個項目,執行速度略慢,但可以省去逐個打開和保存的麻煩。
配置權限
上面完成了開發層面的配置、代碼生成、編譯與運行,接下來就是最后一步,配置權限。
使用系統管理模塊下的權限項管理功能,在根目錄下新建模塊。
功能菜單和按鈕雖然也可以一個個創建,但更高效率的實現方式,是找一個現有的權限項,有基本的增刪改查功能,例如接口平臺模塊下的應用數據權限,通過復制新增的方式,批量創建菜單和下屬按鈕,再修改上級和編碼。
因為是樹狀層級結構,記得把上圖中的視圖編碼,由list修改為treeList,平臺通過該方式來加載菜單對應的vue頁面。
平臺會自動處理從屬按鈕的權限編碼問題,修改后效果如下:
最后,通過系統管理模塊下的用戶組功能,給當前開發測試用的用戶組admin添加對新建實體文件夾的權限。
查看運行效果
因為是新增的權限,需要重新登錄系統。
這里沒顯示模塊名,直接顯示文件夾,是因為前端框架當模塊下只有一個業務菜單時會進行這樣的處理。
可以看到,左樹右表的標準結構已經出來了。
添加根節點
對于樹狀數據,出于邏輯處理的需要,需要特定的根節點。這里我們可以通過新增功能,加一條數據
然后進入數據庫表,將id手工修改為1,parent_id手工修改為0,這兩個值是平臺約定,在系統常量里定義的。
package tech.abc.platform.common.constant;import lombok.experimental.UtilityClass;/*** 樹型數據默認值常量類** @author wqliu* @date 2023-03-06*/
@UtilityClass
public class TreeDefaultConstant {/*** 默認樹根節點*/public static final String DEFAULT_TREE_ROOT_ID = "1";/*** 默認樹型數據根節點父ID*/public static final String DEFAULT_TREE_ROOT_PARENT_ID = "0";}
更新完后,刷新頁面,可以看到左側樹已經可以正常顯示根節點了。
功能測試
使用新增功能,添加幾條示例數據,如下圖
查詢、修改、刪除、切換樹節點,均能正常執行。
以上整個過程中,幾乎完全通過配置產生,幾乎沒有需要手工調整的地方。
總結
通過以上操作,全程通過配置,實現了一個樹狀層次結構的實體增刪改查。
步驟寫的比較細,特別是說明了一些注意的事項以及最佳實踐。
如果是熟練操作的話,估算5-10分鐘能配置完(單個實體的配置,不包括創建模塊的耗時)。
開發平臺資料
平臺名稱:一二三應用開發平臺
平臺簡介:企業級通用低代碼應用開發平臺,免費全開源可商用
設計資料:csdn專欄
開源地址:Gitee
開源協議:MIT
應用系統資料
應用名稱:一二三文檔管理系統
應用簡介: 企事業單位一站式文檔管理系統,讓組織內文檔管理有序,協作高效、安全可控
設計文檔:csdn專欄
開源地址:Gitee
開源協議:MIT
如果您在閱讀本文時獲得了幫助或受到了啟發,希望您能夠喜歡并收藏這篇文章,為它點贊~
請在評論區與我分享您的想法和心得,一起交流學習,不斷進步,遇見更加優秀的自己!