視圖插件開發文檔
本文檔是供開發者閱讀的「視圖」插件開發文檔,需要開發者具備前端開發基礎,掌握Javascript、CSS和HTML等相關知識。
如果開發者熟悉 React JS,也可以通過查看HAP前端開源項目 https://github.com/mingdaocom/pd-openweb ,參考HAP係統視圖代碼進行插件的開發。
關於視圖插件
什麼是視圖插件?
視圖插件又叫「自定義視圖」,當HAP的錶格、看闆、層級、日曆、畫廊、詳情、甘特圖等係統視圖不能滿足用戶視圖展示需求的時候,開發者可以通過自己編寫代碼實現一個完全自定義的視圖頁麵,用於展示工作錶的記錄數據。自定義視圖支持搜索、篩選、統計、快速篩選和篩選列錶等操作,還可以通過HAP公共Javascript接口實現調用係統組件,比如展示記錄詳情彈窗、調用新建記錄窗口等等。
視圖插件和係統視圖有什麼區彆?
從使用者的角度看,視圖插件和普通視圖是沒有任何區彆的。當組織管理員通過發布開發者插件、安裝插件或者導入插件後,所有已啓用的插件即對組織下的所有用戶生效,用戶可以像使用錶格、看闆、日曆等係統視圖一樣使用這些視圖,也可以正常的為視圖分配權限和進行視圖分享等操作。
開發步驟
準備工作
- 安裝 Node.js(>=16.20) 和 npm
- 準備集成開發環境(IDE),推薦 VS Code
- 如果是團隊開發,請準備好代碼版本管理工具,推薦 Git
創建視圖插件
要創建一個視圖插件,有兩種方式。
1. 創建自定義視圖
通過在新建視圖時,創建一個「自定義視圖」,此時係統會自動創建一個視圖插件,並以當前工作錶為該視圖的開發調試環境。

2. 在插件中心製作插件
在係統首頁進入「插件中心」

在插件「我開發的」頁麵中點擊「製作插件」

通過此方式創建插件時,仍然需要選擇一張工作錶作為開發調試環境,選擇後會自動在該工作錶下創建一個新的視圖用於開發調試視圖插件。
創建好插件後,進入到工作錶下新創建的這個自定義視圖,可以進行下一步開發。

3. 插件需求分析
在製作視圖插件之前,一定要對要開發的視圖進行需求分析,明確視圖的適用範圍,並通過設計閤理的設置項來提高視圖插件的通用性。
比如,有兩張工作錶:訂單和訂單明細。
| 訂單錶 | 訂單明細錶 |
|---|---|
![]() | ![]() |
現在開發者想自己開發一個視圖,將「訂單明細」的數據顯示到主「訂單」的錶格中,主訂單的數據將以閤並單元格的方式同時展示兩張錶的數據,大概類似這樣:

首先,在功能實現上,我們可以采取先加載主錶格,再通過異步的方式獲取子錶數據進行加載。
其次,經過分析,這個視圖插件如果要做到有一定的通用性,給任意一個工作錶都能使用,那就需要增加一些使用者可以自由配置的內容:
- 這個視圖錶格的顯示字段和順序是允許使用者自行調整配置的;
- 一個工作錶可能存在多張子錶,那麼就需要使用者配置要把哪張子錶展示到主錶格中;
通過對視圖需求的整理,可以讓用戶更加明確開發的目標和實現的邊界,也更容易將插件做到適應更多的通用場景,降低開發的成本。
4. 插件基礎設置

i. 圖標和名稱
插件的名稱建議能準確錶達視圖的作用,且不用帶“視圖”二字,比如:「地圖」、「思維導圖」、「樹型錶格」等等。
圖標可以使用自定義圖標,這個相當於插件的logo。
ii. 功能啓用
視圖插件允許用戶自由選擇是否啓用「快速篩選」和「篩選列錶」。當啓用後,視圖使用者在操作瞭快速篩選項和篩選列錶後,係統將嚮插件發送事件觸發消息,開發者需要 在插件中添加事件處理句柄並通過傳入的篩選條件處理數據篩選邏輯。
可以參考本文檔附錄中的 mdye 消息係統 示例代碼。
iii. 定義視圖設置項參數
![]() | ![]() | ![]() |
|---|---|---|
| 主錶顯示字段 | 明細錶字段 | 參數映射配置 |
在以上這個示例中,我們定義瞭兩個視圖設置項:「顯示字段(showFields)」和「子錶明細字段(sub)」,分彆對應兩個配置的需求。在「參數映射」中,開發者可以將實際的視圖配置映射到字段裏,並在代碼中通過 env 變量獲取到它的值。參考代碼:
import { env } from "mdye";
const { showFields, sub } = env;
// showFields, sub 即為使用者配置的值,變量名稱和配置中的變量ID一一對應
設置項參數有如下幾種類型:
| 設置項類型 | 子類型 | 值類型 | 備注 |
|---|---|---|---|
| 字段選擇器 | 字段單選 字段多選 | array[string] | 字段多選時,可以限製選擇字段的數量 |
| 字符串 | string | ||
| 數值 | double | ||
| 枚舉值 | 單選框 下拉菜單 | array[string] | 選項格式為 key=value ,其中 vlaue 為呈現給使用者的文字,key 為代碼中獲取到的值; 樣式為單選框時,可以選擇橫嚮或竪嚮排列; |
| 布爾值 | 開關 勾選框 | boolean | |
| 分組標題 | null |
5. 創建本地項目
接下來,切換到「開發調試」麵闆,我們將根據嚮導創建一個本地項目,並將本地項目運行在調試工作錶中。

i. 選擇腳手架模闆
開始本地開發前,需要先選擇一個內置的腳手架模闆,在本地執行初始化命令時會創建對應的模闆文件。目前係統提供瞭以下模闆供選擇:
- React 基礎示例模闆
- JavaScript 基礎示例模闆
- React + Tailwind CSS 模闆
- Vue 3 模闆
- Vue 2 模闆




