按部就班VUE+Element 前端應用開發的系列文章中,前面介紹了系統各個功能的處理實現,本篇隨筆從一個主線上介紹先後端開發的整合,讓咱們從ABP框架後端的查詢接口的處理,前端API接口調用的封裝,以及前端Element界面的整個調用過程進行一個完整的介紹。html
咱們前面介紹了Vue+Element前端的接口是調用後端的ABP框架發佈的API接口服務,API接口服務經過Swagger公佈對應的接口信息供咱們前端開發使用,提供很是好的便利;而咱們使用Vue+Element的前端框架,也是須要對後端接口API的調用進行一個簡單的抽象基類封裝,使得常規的增刪改查等常規接口繼承基類便可使用,而不須要累贅、重複的代碼;另外Vue+Element經過頁面進行獲取數據的過程當中,能夠傳入對應的API參數條件,如分頁信息和查詢條件信息,這樣就基本知足了一個常規的查詢獲取數據列表的操做,得到的數據綁定在界面的Table控件上便可。前端
我根據項目之間的關係,整理了一個架構的圖形,以下所示。vue
上圖中,其中橘紅色部分就是咱們爲各個層添加的類或者接口,分層上的序號是咱們須要逐步處理的內容,咱們來逐一解讀一下各個類或者接口的內容。後端
ABP框架後端項目解決方案視圖以下所示。跨域
其中在Web.Host中整合了Swagger,ABP+Swagger負責API接口的發佈展現管理,以下是API接口的管理界面。前端框架
進一步查看GetAll的API接口說明,咱們能夠看到對應的條件參數,以下所示。服務器
這些是做爲查詢條件的處理,用來給後端獲取對應的條件信息,從而過濾返回的數據記錄的。網絡
那麼咱們前端界面也須要根據這些參數來構造查詢界面,咱們能夠經過部分條件進行處理便可,其中MaxResultCount和SkipCount是用於分頁定位的參數。架構
在應用服務層接口類裏面,重寫CreateFilteredQuery能夠設置GetAll的查詢規則,重寫ApplySorting則能夠指定列表的排序順序。echarts
或者菜單模塊的處理以下所示。
子類通常就是實現這些函數重寫便可,由於在基類處理函數裏面,已經整合了各自的調用邏輯,整合了條件處理、分頁、排序等條件函數。
如下是基類CrudAppService的GetAll函數實現。
引入了先後端分離的Vue + Element 做爲前端技術路線,那麼先後端的邊界則很是清晰,前端能夠在經過網絡獲取對應的JSON就能夠構建前端的應用了。
通常來講,咱們頁面模塊可能會涉及到Store模塊,用來存儲對應的狀態信息,也多是直接訪問API模塊,實現數據的調用並展現。在頁面開發過程當中,多數狀況下,不須要Store模塊進行交互,通常只須要存儲對應頁面數據爲全局數據狀態的狀況下,纔可能啓用Store模塊的處理。
經過WebProxy代理的處理,咱們能夠很容易在前端中實現跨域的處理,不一樣的路徑調用不一樣的域名地址API均可以,最終轉換爲本地的API調用,這就是跨域的處理操做。
前端根據ABP後端的接口進行前端JS端的類的封裝處理,引入了ES6類的概念實現業務基類接口的統一封裝,簡化代碼。
權限模塊咱們涉及到的用戶管理、機構管理、角色管理、菜單管理、功能管理、審計日誌、登陸日誌等業務類,那麼這些類繼承BaseApi,就會具備相關的接口了,以下所示繼承關係。
其中JS類的BaseApi具備常規的增刪改查接口,以下所示。
主體框架界面採用的是基於後臺配置的菜單動態生成,左側是菜單,右邊頂部是特定導航條和內容區。
系統主界面的開發,基本上都是標準的界面,在系統左側放置系統菜單,右側中間區域則放置列表展現內容,可是在系統菜單比較多的時候,就須要把菜單分爲幾級處理。系統菜單在左側放置一個自定義菜單組件列表,這樣經過樹形列表的收縮摺疊,就能夠放置很是多的菜單功能了。
在ABP + Vue + Element 快速開發框架裏面,咱們BS前端的菜單和其CS的菜單是各自分開的,咱們在後臺的權限模塊系統中維護菜單內容並分配給對應角色用戶,在用戶登陸系統後,動態加載菜單展現,並經過菜單的配置信息,跳轉到對應的路由上去進行頁面展現處理。
菜單資源管理的列表界面界面以下所示
用戶列表包括分頁查詢及列表展現、以及能夠利用按鈕進行新增、編輯、查看用戶記錄,或者對指定用戶進行重置密碼操做。
如對於菜單管理列表來講,咱們前端定義了一個表單用於查詢處理,能夠根據顯示名稱和建立時間進行查詢,以下代碼所示。
前面咱們介紹了前端API調用的封裝類,以下結構所示。
那麼咱們前端頁面須要引入對應的菜單Api類,以下引用便可。
咱們在頁面模塊的JS裏面定義了data屬性包括用於承載數據列表的list和分頁信息pageinfo,以下代碼所示。
根據頁面輸入的條件和data裏面存儲的分頁信息,那麼咱們就能夠根據條件進行服務器端的數據請求了。
上面構造了條件,而後根據條件,直接調用menuApi的類進行處理獲取列表便可。
爲了方便讀者理解,我列出一下前面幾篇隨筆的鏈接,供參考:
按部就班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)--- 菜單管理