全部產品
Search
文件中心

:基本概念

更新時間:Jan 21, 2025

本文將介紹 Quick BI 自訂群組件的基本概念。

自訂群組件

在 Quick BI 中,自訂群組件 (CustomComponent) 定義是一個包含了bootstrapmountunmountupdate屬性的對象,包含了自訂群組件具體的實現的邏輯。詳細資料請參考Lifecycle

舉例

// 這是一個自訂群組件
const CustomComponent = {
    bootstrap: (props) => {},
  mount: (props) => {},
  unmount: (props) => {},
  update: (props) => {},
}
說明

在大多數情況下,您無需關心自訂群組件的生命週期,bi-open-sdkbi-open-react-sdk提供了建立自訂群組件的createBIComponent函數,直接調用即可。

自訂群組件元資訊

自訂群組件元資訊(ComponentMeta) 是一個包含了propsSchema等屬性的對象。通過元資訊可以定製 Quick BI 自訂群組件的資料面板/樣式面板/進階面板等功能,詳細資料請參考ComponentMeta

舉例

const meta = {
    propsSchema: {
      dataSchema: {
        schema: {}
    },
    styleSchema: {
        schema: {}
    },
  }
}

專案結構

建立Quick BI自訂群組件的最佳方式是使用create-qbi-app命令建立種子專案。通過npm init qbi-app <project name>命令建立,請參見快速開始

  • 檔案目錄

    產生好種子專案後,檔案目錄結構如下:

    ├── build                # 構建產出目錄
    ├── node_modules         # 專案相關包依賴
    ├── public               # 本地調試入口
    │    └──index.html
    ├── src                  # 源碼
    │    ├──index.tsx        # 組件入口
    │    ├──index.scss       # 組件樣式檔案
    │    └──meta.ts          # 組件屬性配置,包括資料、樣式以及資料到視圖的映射關係等。
    ├── .eslintrc            # eslint外掛程式的設定檔
    ├── config-overrides.js  # webpack設定檔
    ├── package.json         # 依賴包管理
    ├── README.md            # 專案說明文檔
    └── tsconfig.json        # typescript設定檔
  • 相關命令

    • npm run start:啟動本地調試

    • npm run build :構建專案

    • npm run pack:將構建結果打包為Quick BI開發包,會預設先執行npm run build

  • src目錄

    該檔案夾包含自訂群組件的原始碼。包含:

    • meta.ts:自訂群組件元資訊, 用於配置資料面板和樣式面板。

    • index.tsx:自訂群組件。

    • index.scss:自訂群組件樣式檔案。

  • public目錄

    該檔案夾包含了devserver的html模板和mock資料。

  • build目錄

    該檔案夾包含了構建產出以及打包的結果。

    執行npm run build後,會產出如下模組:

    檔案名稱

    模組類型

    模組名稱

    main.js

    umd

    BIComponent

    meta.js

    umd

    BIComponentMeta

    main.css

    -

    -

    說明

    為了確保產出結果的正確性,請不要隨意更改webpack的配置。

自訂群組件狀態

Quick BI 自訂群組件有運行狀態顯隱狀態兩種維度狀態。

運行狀態

運行狀態是描述自訂群組件從建立到銷毀的一系列狀態, 根據組件的開發模式的不同而有所不同。通過自訂群組件管理平台可以維護組件的運行狀態, 其路徑為開放平台>自訂群組件

線上編輯

  • 待發布 - 剛註冊, 或發行且資訊有修改, 但未同步到線上的狀態。

  • 發行 - 線上運行中的狀態。

image.png

專業模式

  • 開發中 - 剛註冊但未上傳開發包的狀態。

  • 待發布 - 上傳了開發包, 或發行且資訊有調整, 但未同步到線上的狀態。

  • 發行 - 線上運行中的狀態。

image.png

註冊組件

點擊註冊組件, 填好資訊後點擊確定按鈕。

image

提示註冊組件成功後, 會在頁面中顯示該組件的卡片。

image

開發模式會影響自訂群組件後續的開發流程且不可修改, 請按需選擇。

  • 線上編輯:在頁面中編輯調試, 難易度更低、便捷性更強。具體請參見模式一. 線上編輯

  • 專業模式:使用 SDK 本地調試,適合複雜組件的開發情境。具體請參見模式二. 專業模式

image

調試組件

在組件列表中, 點擊組件卡片的調試按鈕。

image

會彈出調試組件的對話方塊。

image.png

線上編輯下, 組件調試環境有3種:

  • 線上開發環境 - 組件源碼可以線上編輯,其他配置使用待發布包配置。

  • 待發布環境 - 組件資源會從待發布包讀取,其他配置使用待發布配置。

  • 線上環境 - 組件資源會從發行包讀取,其他配置使用發行配置。

專業模式下, 組件調試環境有3種:

  • 本地開發環境 - 組件資源會從本地服務中讀取,其他配置使用待發布包配置。

  • 待發布環境 - 組件資源會從待發布包讀取,其他配置使用待發布配置。

  • 線上環境 - 組件資源會從發行包讀取,其他配置使用發行配置。

在調試組件的對話方塊中, 選擇要調試的調試範圍工作空間和對應的儀表板,單擊前往調試, 會跳轉到對應的儀表板頁面。

線上編輯

線上編輯模式下, 頁面物料欄中會顯示組件的icon, 頁面下方會出現代碼編輯器, 可以選擇左側src下的檔案進行編輯, 修改代碼後, 點擊運行按鈕可以即時運行代碼。

image.png

代碼編輯面板可以手動關閉, 如果想再次進入編輯, 可以點擊自訂群組件卡片右上方的下拉式功能表, 點擊編輯自訂群組件喚出代碼編輯面板。

image.png

說明

需要注意:

  • 偵錯模式下,儀表板自訂群組件總是會在物料欄中顯示, 即組件的顯隱狀態失效。

  • 偵錯模式下,儀表板可以儲存但無法發布。

線上編輯下組件開發完成後, 點擊儲存按鈕即可儲存自訂群組件代碼, 組件會進入待發布狀態。

image.png

專業模式

專業模式下, 儀表板頁面點擊添加圖表->自訂,會顯示組件的icon, 將其拖動到儀表板中, 配置好資料面板並進行取數, 本地修改代碼後, 通過重新整理頁面的方式進行開發調試。

image.png

說明

需要注意:

  • 專業模式下請確保組件本地服務已經啟動。

  • 偵錯模式下, 儀表板自訂群組件總是會在物料欄中顯示, 即組件的顯隱狀態失效。

  • 偵錯模式下, 儀表板可以儲存但無法發布。

專業模式下組件開發完成後, 需要將組件打包並上傳, 路徑是 開放平台 > 自訂群組件。

image

點擊修改按鈕, 會彈出修改組件資訊的對話方塊。

image.png

修改好相應資訊後, 點擊確定按鈕。完成修改後, 組件會進入待發布狀態。

開發可以通過種子專案中執行 yarn run pack 產出。

發布組件

當組件處於待發布狀態時, 組件卡片上的發布按鈕會變成可點擊狀態。

image

點擊發布按鈕, 會彈出組件變更詳情, 有變更的屬性會標紅。

image

如果是線上編輯模式, 點擊查看代碼比對查看具體的代碼變動。

image.png

點擊確認發布, 組件就正式發布到生產環境, 並進入發行狀態。

刪除群組件

在組件列表中, 點擊組件卡片的刪除按鈕, 可以刪除自訂群組件。

image

刪除後:

  • 自訂群組件將無法新增

  • 先前已經儲存過該自訂群組件的圖表也將不能顯示改組件, 並在原來的該組件的位置提示 "該圖表元資訊異常或已被刪除"。

image.png

顯隱狀態

顯隱狀態原因自訂群組件是否在儀表板中展示出來,共有兩種:

  • 隱藏:隱藏狀態下,自訂群組件不展示在儀表板編輯頁的添加圖表->自訂中, 也無法切換圖表, 但可以顯示之前儲存過的圖表。

  • 顯示:顯示狀態下,自訂群組件展示在儀表板編輯頁的添加圖表->自訂中,支援切換圖表。

說明

需要注意:

  • 修改組件顯示狀態不會讓組件進入待發布狀態, 而是直接線上生效。

  • 在開發模式下, 組件將會一直顯示。

在自訂群組件平台中點擊隱藏顯示按鈕即可修改組件顯示狀態。

image

體現在儀表板上則是該組件的入口顯示或者隱藏。

image