基于Metronic的Bootstrap開發框架是我們稍早一點的框架產品,界面部分采用較新的Bootstrap技術,框架后臺資料庫支持Oracle、SqlServer、MySql、PostgreSQL、DB2、Sqlite、Access等常規資料庫,可通過配置進行自由切換,使用Enterprise Library模塊進行資料訪問的控制的,Bootstrap開發框架的頁面以及后臺代碼,通過代碼生成工具Database2Sharp進行快速開發,實作整體性開發的最大效率提高,
Bootstrap開發框架已經應用在很多客戶的BS架構的軟體管理系統中,基于底層代碼的重用,應客戶的需要,我們在這個基礎上擴展增加了Vue&Element的前端,由于Vue&Element的前端需要采用Web API的介面,我們在這個基礎上借鑒了ABP框架的Web API介面處理及前端管理界面的內容,在Bootstrap開發框架基礎上增加WebApi+Vue&Element的前端,
1、Bootstrap框架的架構及增加Web API + Vue&Element前端的處理
Bootstrap框架架構:
在之前Bootstrap開發框架的架構如下所示,其UI層是各種應用功能模塊,而底層是和Winform框架、混合框架公用的BLL業務邏輯層等分層,并通過物體層實作資料的傳遞處理,

資料訪問層通過微軟企業庫,較好統一了資料處理的模型,很容易實作了 Oracle、SqlServer、MySql、PostgreSQL、DB2、Sqlite、達夢、Access等常規資料庫的支持操作,
控制器設計:
Bootstrap開發框架沿用了我的《Winform開發框架》和《基于EasyUI的Web框架》的很多架構設計思路和特點,對Controller進行了封裝,使得控制器能夠獲得很好的繼承關系,并能以更少的代碼,更高效的開發效率,實作Web專案的開發作業,整個控制器的設計思路如下所示,

增加WebApi+Vue&Element前端后的架構設計:
Web API后端的架構設計:
這個是屬于前端、后端完全分離的架構設計,后端采用基于Asp.net的Web API技術,并提供按域來管理API的分類,Web API如下架構所示,

通過上面的架構設計,可以看出,底層BLL、DAL、Entity、IDAL、公用類別庫等分層都是完全通用的,不同的是,我們后端只是提供Web API的介面服務給前端,這個和我們的《ABP框架使用》的理念一致,前后端分離,
為了更好的進行后端Web API控制器的相關方法的封裝處理,我們把一些常規的介面處理放在BaseApiController里面,而把基于業務表的操作介面放在BusinessController里面定義,如下所示,

在BaseApiController里面,我們使用了結果封裝和例外處理的過濾器統一處理,
/// <summary> /// 所有介面基類 /// </summary> [ExceptionHandling] [WrapResult] public class BaseApiController : ApiController
其中ExceptionHandling 和WrapResult的過濾器處理,可以參考我的隨筆《利用過濾器Filter和特性Attribute實作對Web API回傳結果的封裝和統一例外處理》進行詳細了解,
而業務類的介面通用封裝,則放在了BusinessController控制器里面,其中使用了泛型定義,包括物體類,業務操作類,分頁條件類等內容作為約束引數,如下所示,
/// <summary> /// 本控制器基類專門為訪問資料業務物件而設的基類 /// </summary> /// <typeparam name="B">業務物件型別</typeparam> /// <typeparam name="T">物體型別別</typeparam> [ApiAuthorize] public class BusinessController<B, T, TGetAllInput> : BaseApiController where B : class where TGetAllInput : IPagedAndSortedResultRequest where T : BaseEntity, new()
通過Web API介面回傳結果的統一封裝處理,我們定義了相關的格式如下所示,

其中result是回傳對應的物件資訊,如果沒有則回傳null.
如果是分頁查詢回傳結果集合,其結果如下所示,

展開單條記錄明細如下所示,

Vue&Element的前端的架構設計:
而Vue&Element的前端的架構設計,也借鑒了我們ABP框架的前端管理部分,詳細也可以了解下我的相關隨筆《循序漸進VUE+Element》,
Vue&Element的前端的架構設計如下所示,

引入了前后端分離的Vue + Element 作為前端技術路線,那么前后端的邊界則非常清晰,前端可以在通過網路獲取對應的JSON就可以構建前端的應用了,
一般來說,我們頁面模塊可能會涉及到Store模塊,用來存盤對應的狀態資訊,也可能是直接訪問API模塊,實作資料的呼叫并展示,在頁面開發程序中,多數情況下,不需要Store模塊進行互動,一般只需要存盤對應頁面資料為全域資料狀態的情況下,才可能啟用Store模塊的處理,
通過WebProxy代理的處理,我們可以很容易在前端中實作跨域的處理,不同的路徑呼叫不同的域名地址API都可以,最終轉換為本地的API呼叫,這就是跨域的處理操作,

前端根據ABP后端的介面進行前端JS端的類的封裝處理,引入了ES6類的概念實作業務基類介面的統一封裝,簡化代碼,
權限模塊我們涉及到的用戶管理、機構管理、角色管理、選單管理、功能管理、操作日志、登錄日志等業務類,那么這些類繼承BaseApi,就會具有相關的介面了,如下所示繼承關系,

2、WebApi+Vue&Element的前端界面展示
主體框架界面采用的是基于后臺配置的選單動態生成,左側是選單,右邊頂部是特定導航條和內容區,這個和我們ABP框架的前端界面是一致的,
系統主界面的開發,基本上都是標準的界面,在系統左側放置系統選單,右側中間區域則放置串列展示內容,但是在系統選單比較多的時候,就需要把選單分為幾級處理,系統選單在左側放置一個自定義選單組件串列,這樣通過樹形串列的收縮折疊,就可以放置非常多的選單功能了,

用戶管理界面,沿襲Bootstrap框架的布局進行管理,通過用戶機構方式,快速展示用戶分頁串列,如下界面所示,

機構管理界面如下所示,

角色管理界面如下所示,

其角色的編輯界面如下所示,包括了基礎資訊、用戶、選單、權限等專案,

整個系統的選單,既可以通過默認Mock的初始選單,也可以通過后端API獲得的選單資源,動態在界面上進行展示,系統界面左側的選單是動態獲取并展示出來的,結合路由的判斷可以限制用戶訪問的選單權限,
選單管理界面如下所示,

選單資源在角色管理中分配給具體角色,即可實作對選單的動態控制管理了,
前端的界面管理,依舊可以通過分拆模塊的方式,完成更加方便的組合處理

利用模塊化的處理方式,我們可以把界面部分內容作為一個組件進行封裝處理,如在權限管理中,我們定義了一部分重用的組件界面,如下所示,

定義好各種界面的自定義組件后,在主界面中進行Import匯入使用即可,非常方便重用,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/280904.html
標籤:JavaScript
上一篇:JavaScript 03 陣列 ,陣列倒序,陣列遍歷,提取非零元素,求大小值,陣列增刪改查
下一篇:如何使用CSS將文本垂直居中?
