世界上唯一不變的東西就是變化,我們通過總結變化的規律,以規律來應付變化,一切事情處理起來事半功倍。我們在開發后端服務代碼,前端界面代碼的時候,界面都是依照一定的規律進行變化的,我們通過抽取數據庫信息,以變化規律擁抱變化的內容。如對於服務端來說,后端代碼中類的繼承關系和特殊的接口名稱規律,我們可以根據用戶選中的表,獲取表之間的字段和關系信息,生成各種DTO和接口類等代碼文件;而前端界面來說,也是依照數據庫的表信息、字段信息等內容,實現查詢區域、查詢列表、新增界面、編輯界面、查看界面、導入導出界面等內容進行相應的生成,並整合相關的界面事件關系,可以實現相關處理的按鈕動作處理。本篇隨筆介紹如何使用代碼生成工具快速生成基於ABP框架的Vue+Element的前端界面。
1、ABP框架架構及前端代碼生成分析
ABP框架是基於最新.net core 的技術方向,應用非常廣泛的一個技術框架系列,它整合了很多.net core 領域相關開發技術,后端主要是發布Web API方式實現數據和前端的交互的,因此前端可以基於Web API基礎上實現多種平台的對接,可以是常規的BS框架,如Vue+Element 前端路線,也可以是Winform/WPF的前端框架接入等。ABP框架的大概架構如下所示,頂端是展示層的各種前端的接入方式。
后端內容,我在前面一些隨筆介紹比較多了,而且也在較早的時候,提供了ABP框架的快速代碼生成《利用代碼生成工具生成基於ABP框架的代碼》,前端部分,Winform的代碼生成也在前面隨筆進行了使用介紹《ABP開發框架前后端開發系列---(8)ABP框架之Winform界面的開發過程》,本篇隨筆主要介紹ABP框架的Vue+Element前端界面的快速生成操作。
和ABP框架的Winform界面生成類似,在實現代碼生成之前,我們需要有一套成熟的界面組織方式,也就是我們常規的界面布局處理,依照這些為基准,我們使用代碼生成工具的模板引擎,編寫對應的模板,然后結合代碼工具內核提供的數據庫信息,整合生成對應的代碼文件夾和文件即可。
前面介紹過ABP后端框架,ABP+Swagger UI 負責API接口的開發和公布,如下是API接口的管理界面。
ABP框架后端接口的常規處理,如增刪改查等接口命名都一致,參數方面也比較一致,因此給我們提供更好的API客戶端類的封裝提供更好的抽象模式,我們把常規的增刪改查等常規接口封裝在基類,子類只需要有繼承關系即可,除非自定義接口函數,一般不需要額外增加前端的js代碼。
如有DIctType、DictData等業務類,那么這些類繼承BaseApi,就會具有相關的接口了,如下所示繼承關系。
而視圖是Vue +Element的組合體,一般為常規的表格列表,包含查詢條件,以及整合增刪改查的功能入口,如下視圖界面所示。
如果帶有樹列表的需求,最好能夠整合樹列表的生成處理界面,以及SplitPanel的風格區域管理。
對於列表視圖界面來說,我們一般整合新增、編輯、查看、導入導出等常規界面在一起,通過不同的彈出對話框處理即可實現各種業務處理的界面入口。
基於上面的介紹,我們只需要提供兩個部分,一個是Api類的繼承子類,一個是視圖界面的內容,整合多個對話框和對應按鈕操作入口的處理界面,如下所示包含Api封裝類文件和Vue + Element界面視圖。
2、 使用代碼生成工具快速生成基於ABP框架的Vue+Element的前端界面
有了上面的介紹,我們已經知道需要生成那些文件了,因此在代碼生成工具Database2Sharp上增加一個功能入口,編寫好對應的模板代碼,然后整合規則生成對應文件即可,這里進行相關使用功能的介紹。
首先,我們打開代碼生成工具,展開對應數據庫的表信息,如下界面所示。
然后在表或者數據庫上右鍵 出現菜單,選擇【代碼生成】【ABP的Vue+Element界面代碼】,如下所示。
接着在出來的對話框上選擇對應數據庫和表進行生成,一步步執行即可。
在最后的界面上,會出來選擇生成代碼的表,以及需要選擇對應的布局,包括一個是普通查詢列表的界面,以及一個左側帶有樹形列表的界面兩個布局,我們根據需要選擇即可。
生成的文件里面,包括有JS文件
以及對應目錄下的視圖文件,后綴名為vue
我們把根目錄Src下的文件夾及相關文件復制到VS Code里面,可以默認路徑,也可以把視圖文件歸類自己喜歡的目錄里面(我這里調整路徑menu/index為security/menu了),並調整路由文件,增加對應的視圖入口
前端會根據用戶包含的可訪問菜單列表,自動過濾對應的路由,實現我們菜單入口訪問對應路由了。
整合編譯前端,啟動后端ABP服務,並運行查看我們剛剛創建的前端界面,如下所示。
原始的查看明細界面如下所示
生成界面,無論從整體布局,以及列表的展示,和各個功能按鈕入口,都已經給我們完善好了,我們一般還是需要進行調整一下。
簡化下界面查詢條件,以及整理一下列表展示內容,得到調整界面如下所示。
調整后的查看明細界面如下所示。
使用代碼生成工具快速生成基於ABP框架的Vue+Element的前端界面,能夠是我們提高代碼的開發效率,以及降低出錯的機會,同時可以很好的統一整套界面的界面樣式和做法,事半功倍。
為了方便讀者理解,我列出一下前面幾篇隨筆的連接,供參考:
循序漸進VUE+Element 前端應用開發(1)--- 開發環境的准備工作
循序漸進VUE+Element 前端應用開發(2)--- Vuex中的API、Store和View的使用
循序漸進VUE+Element 前端應用開發(3)--- 動態菜單和路由的關聯處理
循序漸進VUE+Element 前端應用開發(4)--- 獲取后端數據及產品信息頁面的處理
循序漸進VUE+Element 前端應用開發(5)--- 表格列表頁面的查詢,列表展示和字段轉義處理
循序漸進VUE+Element 前端應用開發(6)--- 常規Element 界面組件的使用
循序漸進VUE+Element 前端應用開發(7)--- 介紹一些常規的JS處理函數
循序漸進VUE+Element 前端應用開發(8)--- 樹列表組件的使用
循序漸進VUE+Element 前端應用開發(9)--- 界面語言國際化的處理
循序漸進VUE+Element 前端應用開發(10)--- 基於vue-echarts處理各種圖表展示
循序漸進VUE+Element 前端應用開發(11)--- 圖標的維護和使用
循序漸進VUE+Element 前端應用開發(12)--- 整合ABP框架的前端登錄處理
循序漸進VUE+Element 前端應用開發(13)--- 前端API接口的封裝處理
循序漸進VUE+Element 前端應用開發(14)--- 根據ABP后端接口實現前端界面展示
循序漸進VUE+Element 前端應用開發(15)--- 用戶管理模塊的處理
循序漸進VUE+Element 前端應用開發(16)--- 組織機構和角色管理模塊的處理
循序漸進VUE+Element 前端應用開發(17)--- 菜單管理
循序漸進VUE+Element 前端應用開發(18)--- 功能點管理及權限控制
循序漸進VUE+Element 前端應用開發(19)--- 后端查詢接口和Vue前端的整合
使用代碼生成工具快速生成基於ABP框架的Vue+Element的前端界面
循序漸進VUE+Element 前端應用開發(20)--- 使用組件封裝簡化界面代碼
循序漸進VUE+Element 前端應用開發(21)--- 省市區縣聯動處理的組件使用
循序漸進VUE+Element 前端應用開發(22)--- 簡化main.js處理代碼,抽取過濾器、全局界面函數、組件注冊等處理邏輯到不同的文件中
循序漸進VUE+Element 前端應用開發(23)--- 基於ABP實現前后端的附件上傳,圖片或者附件展示管理
循序漸進VUE+Element 前端應用開發(24)--- 修改密碼的前端界面和ABP后端設置處理
循序漸進VUE+Element 前端應用開發(25)--- 各種界面組件的使用(1)
循序漸進VUE+Element 前端應用開發(26)--- 各種界面組件的使用(2)
循序漸進VUE+Element 前端應用開發(27)--- 數據表的動態表單設計和數據存儲
循序漸進VUE+Element 前端應用開發(28)--- 附件內容的管理
循序漸進VUE+Element 前端應用開發(29)--- 高級查詢條件的界面設計
部署基於.netcore5.0的ABP框架后台Api服務端,以及使用Nginx部署Vue+Element前端應用
循序漸進VUE+Element 前端應用開發(30)--- ABP后端和Vue+Element前端結合的分頁排序處理
循序漸進VUE+Element 前端應用開發(31)--- 系統的日志管理,包括登錄日志、接口訪問日志、實體變化歷史日志
循序漸進VUE+Element 前端應用開發(32)--- 手機短信動態碼登陸處理
循序漸進VUE+Element 前端應用開發(33)--- 郵件參數配置和模板郵件發送處理
使用Vue-TreeSelect組件實現公司-部門-人員級聯下拉列表的處理
使用Vue-TreeSelect組件的時候,用watch變量方式解決彈出編輯對話框界面無法觸發更新的問題