20分鐘能幹嘛?帶你玩轉智慧園區應用框架MainPortal
導讀:攻城獅們現在基於平臺開發時,已不需要寫很多原生程式碼了,取而代之的是在專案中使用各類平臺框架,如:智慧園區應用框架MainPortal,基於它能夠快速的將園區中各個子應用/子系統進行選單整合,並在統一入口進行設定和展示,如智慧設施、資產管理…
文末福利:新使用者專享園區開發者帳號免費試用
場景概述
在智慧園區的業務場景中有多個模組,例如智慧設施等。各個模組都有對應的管理頁面和大屏頁面,統一門戶可以根據業務需要,在多個大屏介面或管理頁面中進行切換,以提升操作體驗。在智慧園區的業務場景中,也需要一個統一的門戶來呈現智慧園區各模組的業務功能。
統一門戶可用於整合現有業務系統的訪問控制,透過統一入口登入實現對各業務的集中訪問,登入使用者可以透過統一的門戶在桌面上進行各項業務的處理,減少系統的使用複雜度。
統一門戶實現的功能包括統一入口登入、個性化導航配置、系統導航、使用者資訊管理等功能,從而降低使用者進入系統和獲取各模組資訊的難度,使用和獲取資訊更直接、方便。MainPortal即為實現統一門戶功能的應用框架。
功能解讀
統一門戶的功能非常豐富,以“顯示使用者選單”為例,部分功能如下:
除了選單配置等功能外,統一門戶還提供了個人桌面設定的能力,在這裡可以設定導航欄的展示風格,個人主頁面等資訊,下面幾張圖為統一門戶的實際效果圖:
個人桌面設定預覽
導航欄展示風格設定
個人首頁設定
元件解讀
MainPortal基於AppCube的高階頁面開發,由smartcampus_mainframe_widget元件構成,元件支援線上編輯,也可以下載後,在本地離線編輯。元件構成如下:
其中:
audio:音訊檔案的存放目錄
image:元件內圖示的存放目錄
messages-en.json:當語言切換為英文時,元件英文展示資訊
messages-zh.json:當語言切換為中文時,元件中文展示資訊
packageinfo.json:該元件的名稱,描述,依賴等基本資訊
smartcampus_mainframe_widget.css:元件的樣式程式碼
smartcampus_mainframe_widget.editor.js:元件的配置資訊檔案
smartcampus_mainframe_widget.ftl:元件的DOM檔案
smartcampus_mainframe_widget.js:元件的JavaScript檔案
smartcampus_mainframe_widget.png:元件的展示圖示
程式碼解讀
(一)讓我們從顯示使用者選單的邏輯流程圖開始
(二)選單展示的DOM結構程式碼解讀
透過檢視Smartcampus_mainframe_widget.ftl檔案,可以看到選單的展示繫結在Menulist上,其中DOM是透過VUE-ELEMENT實現的:
(三)選單的查詢邏輯程式碼解讀:
透過檢視Smartcampus_mainframe_widget.js檔案,首先可以看到元件的js程式碼結構樹:
·Init:元件初始化
·Render:元件例項化渲染
其中,可以在render函式中,new一個Vue例項,掛載在DOM元素上: unified-portal。Vue例項的整個生命週期函式,可以在此實現。
然後,從created函式,找到選單初始化的入口函式start():
Start函式的邏輯:
·先校驗當前使用者是否已登入
·如果已登入,判斷是否跳轉到第三方應用中
·透過getParams函式獲取統一門戶展示需要的引數資訊和使用者選單
GetParams函式的邏輯:
·查詢統一門戶展示需要的系統引數,例如:運營臺圖示等資訊
·再呼叫renderPage函式查詢當前使用者的個人桌面選單資訊,例如:選單資訊,快捷方式,資訊欄展示等
RenderPage函式的邏輯:
·判斷當前的頁面是否為預覽模式
· 透過queryPortalProfile查詢使用者的個人桌面資訊
·再呼叫getPortalProfile函式,將個人桌面資訊展示在統一門戶上
·非同步呼叫getCurrentOperatorMenuList查詢使用者能查詢最新選單資訊
·比對2,4的選單資訊,如果不一致則呼叫compareMenu函式,重新整理個人桌面
getPortalProfile函式的邏輯:
·將個人桌面的dockProfile賦值給MenuList,用於門戶選單導航的展示
·展示個人主頁面,如果找不到則查詢選單樹的第一個選單
CompareMenu函式的邏輯:
·查詢當前使用者對應角色能檢視的選單列表:this.sysMenuList
·查詢使用者當前能檢視的選單列表的:this.portalProfile.originDockProfile
·比對1和2的選單列表資訊,如果不一致,則呼叫函式,更新個人桌面設定資訊:setPortalProfile
至此,我們已經瞭解了“顯示使用者選單”的基本程式碼結構。
在實際的園區智慧化專案中,只需要搭載此份應用框架MainPortal就可完成各個子應用/子系統的選單整合,大幅提升開發效率。怎麼樣?快來試試吧。
新使用者專享園區開發者帳號免費試用,請戳:
https://bbs.huaweicloud.com/forum/thread-51478-1-1.html
作為華為ICT基礎設施業務面向全球開發者的年度盛會,華為開發者大會2021(Cloud)將於2021年4月24日-26日在深圳舉行。本屆大會以#每一個開發者都了不起#為主題,將匯聚業界大咖、華為科學家、頂級技術專家、天才少年和眾多開發者,共同探討和分享雲、計算、人工智慧等最新ICT技術在行業的深度創新和應用。智慧時代,每一個開發者都在創造一往無前的奔騰時代。世界有你,了不起!
瞭解更多華為智慧園區開發者資訊,歡迎訪問:
https://bbs.huaweicloud.com/forum/forum-1013-1.html
原文作者:華為雲;連結:http://blog.itpub.net/69925873/viewspace-2766295/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java到底能幹嘛?Java
- HTAP 還可以這麼玩?丨TiDB 在 IoT 智慧園區的應用TiDB
- 學python培訓到底能幹嘛Python
- 用萬能命令工具玩轉IT智慧運維運維
- Python是啥呢?能拿來幹嘛?Python
- 參加Python培訓後能幹嘛Python
- 帶你重新“玩轉”FlutterFlutter
- 帶新手玩轉MVC——不講道理就是幹(上)MVC
- 帶新手玩轉MVC——不講道理就是幹(下)MVC
- 賦能未來園區:TSINGSEE影片AI智慧管理平臺如何引領園區管理智慧化轉型GseAI
- 帶你玩轉OpenHarmony AI:打造智慧語音子系統AI
- 如何將智慧園區移動應用成為超級應用?
- 智慧園區三維視覺化應用,如何繪製智慧園區的電子地圖?視覺化地圖
- NODE process.env幹嘛用的
- 手摸手帶你玩轉Xcode ExtensionsXCode
- CryptAssist-帶你玩轉幣圈
- 手把手帶你玩轉LinuxLinux
- RabbitMQ裡面的routingkey是幹嘛用的????????MQ
- Web GIS 航拍——智慧園區數字孿生應用Web
- 純乾貨:21天帶你玩轉容器
- 老司機帶你玩轉Radare2
- 架構師帶你玩轉分散式鎖架構分散式
- EasyNLP帶你玩轉CLIP圖文檢索
- 帶你玩轉RabbitMQ的五種佇列MQ佇列
- 千年後,邂逅屬於你的遊園夢:華為帶給智慧園區的生態鼎新
- 學 python 都用來幹嘛?Python
- Java是幹嘛的呢?Java
- java主要用來幹嘛?Java
- 五分鐘帶你瞭解Django框架設計思想!Django框架
- 轉型策略對打造智慧園區的影響
- Spring AI 搶先體驗,5 分鐘玩轉 Java AI 應用開發SpringAIJava
- 智慧園區智慧用電,助力城市綠色發展
- steam點數有什麼用 steam購買遊戲獲得的點數能幹嘛遊戲
- 三步帶你玩轉前端裝飾器前端
- 什麼叫智慧園區?智慧園區的社會價值
- 玩轉 PHP 網路程式設計全套之 libevent 框架多人聊天應用PHP程式設計框架
- 智慧園區管理系統,園區管理軟體
- 智慧斷路器應用方案之產業園智慧用電產業