應用展示交互
應用集市展示應用時會與儀表盤、圖表進行交互操作,主要包括去分析、保存當前過濾快照、字段設置、刷新、全屏、嵌入、導出等功能。
保存當前過濾快照
儀表盤展示數據時往往使用過濾器來查看不同場景下的分析數據。用戶從一種場景切換到另一種場景,需要調整對應的過濾器選項值。當過濾器較多或用戶展示場景不停變換時,需要頻繁地操作過濾器。
儀表盤保存過濾快照功能可以將不同業務場景篩選條件進行保存,展示時只需要導入對應場景的快照即可,無需再次操作過濾器,快速地實現不同業務場景的切換。如圖所示,用戶 A 是負責東北、華北地區的銷售信息。在查看儀表盤時希望過濾器展示的是東北、華北地區的信息,于是將東北、華北的過濾配置保存下來,每次只需要導入快照信息就能看到相應的信息,不需要進行篩選。
保存當前過濾快照操作比較簡單,用戶在進行過濾器篩選時如果遇到需要保存的快照,點擊過濾快照存到臨時存放區,當快照窗口關閉時臨時區的快照會丟失。在臨時區點擊保存,可將快照保存到用戶系統中(永久區)。再次打開儀表盤時可以在永久存放區找到保存的快照信息。
保存到系統中的快照可以支持設置默認、導入、重命名、刪除等操作。
- 設為默認:將快照中過濾器選項作為過濾器的默認選項值,每次打開儀表盤都會讀取快照中的信息,而不是儀表盤初始設置的信息。用戶可以通過該功能定制儀表盤展示的業務場景。
- 導入:儀表盤展示過程中導入快照中的過濾信息,展示相應的數據。
- 重命名:對過濾快照進行重命名。
- 刪除:刪除快照信息。
請注意
- 登錄狀態時,用戶保存了過濾快照,則按用戶永久保存,下次打開按默認過濾記錄進行數據加載。
- 未登錄狀態時,如公開鏈接、嵌入場景,用戶保存了過濾快照,則按瀏覽器設備進行本地緩存,清除瀏覽器緩存或更換瀏覽器或更換電腦再打開儀表盤,則按儀表盤默認狀態展示,無過濾快照記錄。
字段設置
查看者查看報表時,會將表格中有些不常查看的字段通過字段設置進行隱藏,同時又期望下次打開報表時字段設置就是配置好的狀態,當前版本可在表格進行字段設置后使用保存過濾快照功能來保存表格快照。
- 字段設置入口
- 設置字段是否顯示
- 調整字段顯示順序
- 保存當前字段設置快照
提示
- 應用集市中的表格、畫布表格、數據集表格,字段設置的字段和排序結果都可以進行保存快照;交叉表不支持字段設置功能。
- 移動端表格不支持字段設置功能。
刷新
不使用圖表緩存數據,而直接刷新圖表數據。
全屏
儀表盤全屏展示。在全屏模式下可設置自動輪播。
嵌入
應用中的儀表盤、圖表及應用本身都支持進行嵌入,用戶可以根據展示需要進行不同層級的嵌入操作。 應用集市、應用創作中的應用都支持嵌入。
Iframe 嵌入指導
以應用嵌入為例介紹如何進行 Iframe 嵌入,儀表盤、圖表嵌入分享過程與應用嵌入類似,這里不詳細展開。
-
點擊應用右上角的嵌入按鈕,選擇嵌入本應用。
-
顯示嵌入窗口,包含嵌入的 URL 和 iframe 示例。
-
嵌入窗口中的 URL 可以直接分享,用戶可直接用該鏈接在瀏覽器中展示。如圖所示為使用 URL 在瀏覽器展示的效果。可以看出嵌入頁面只有刷新、全屏、導出按鈕,沒有其他功能操作按鈕。
-
嵌入窗口中 iframe 提供了在代碼中嵌入示例,支持使用各種自定義參數,用戶可以通過參數調整嵌入后的展示樣式。下圖示例是設置嵌入大小為800*600的 iframe 嵌入后的展示效果。
說明
- 應用、儀表盤嵌入時僅展示刷新、全屏、導出等按鈕,不展示 PC 端等功能按鈕。
- 圖表嵌入時需要先打開圖表,然后點擊嵌入按鈕獲取鏈接內容。
- 嵌入時不帶入過濾條件。
嵌入場景自定義參數
應用、儀表盤、圖表在嵌入時支持多種自定義參數,用戶根據需要設定嵌入參數從而影響嵌入后的展示效果。
嵌入圖表參數
參數名稱 | 使用方法示例 | 描述 |
---|---|---|
noTitle | 1.?noTitle=true 2.?noTitle=false 3. 默認設置 | 設置是否顯示標題: true 不顯示標題 false 顯示標題 默認設置,顯示標題 |
titleColor | 1.titleColor=rgb(0, 0, 0) 2.titleColor=rgba(0, 0, 0, 1) 3.titleColor=red 4.titleColor=hsl(0,0,0) | 設置圖表的標題顏色,不支持 RGB 十六進制顏色設置 |
chartBackground | 1.chartBackground=rgb(0, 0, 0) 2.chartBackground=rgba(0, 0, 0, 1) 3.chartBackground=red 4.chartBackground=hsl(0,0,0) 5.chartBackground=transparent | 設置圖表的背景顏色,不支持 RGB 十六進制顏色設置 參數為“transparent”時,圖表顯示透明背景色 |
嵌入儀表盤參數
參數名稱 | 使用方法示例 | 描述 |
---|---|---|
copyright | 1.?copyright=true 2.?copyright=false 3.?copyright=其他值時 | 是否顯示頭部底部: true 顯示 false 不顯示 默認設置顯示 |
background | 1.background=rgb(0, 0, 0) 2.background=rgba(0, 0, 0, 1) 3.background=red 4.background=hsl(0,0,0) | 儀表盤背景顏色,不支持 RGB 十六進制顏色設置 |
padding | padding=5 | 設置邊距,單位是像素 px |
scrollable | 1.?scrollable=true 2.?scrollable=false 3.?scrollable=其他值時 | 儀表盤豎軸滾動條設置: true,可以滾動 false,不能滾動 其他值,默認設置可以 |
chartBackground | 1.chartBackground=rgb(0, 0, 0) 2.chartBackground=rgba(0, 0, 0, 1) 3.chartBackground=red 4.chartBackground=hsl(0,0,0) chartBackground=transparent | 設置圖表背景顏色,不支持 RGB 十六進制顏色設置 參數為“transparent”時,為透明背景色 |
chartGap | chartGap=5 | 設置圖表間距,單位是像素 px |
chartTitleColor | 1.chartTitleColor=rgb(0, 0, 0) 2.chartTitleColor=rgba(0, 0, 0, 1) 3.chartTitleColor=red 4.chartTitleColor=hsl(0,0,0) | 設置圖表標題顏色,不支持 RGB 十六進制顏色設置 |
chartAccessible | 1.?chartAccessible=true 2.?chartAccessible=false 3.?chartAccessible=其他值時 | true 可以打開 false 不可以打開 其他時,默認設置可打開 |
isMobile | name="isMobile" | 使用該參數時,表示儀表盤按照移動端樣式展示。注意如果儀表盤沒有對應的移動端展示樣式時,使用該參數會報404錯誤。 |
JS SDK 嵌入
Iframe 嵌入過程中在瀏覽器會進行兩次渲染,頁面加載時間變長。當一個頁面嵌入多個圖表時,每個圖表都要進行兩次渲染,導致整個頁面加載速度變得很慢,影響頁面展示效果。
為了更好地解決儀表盤和圖表的嵌入性能問題,系統推出了 JS SDK 嵌入方式,直接在嵌入頁面內繪制儀表盤和圖表。當同一頁面嵌入多個儀表盤或者圖表時,每個嵌入頁面只加載一次靜態資源,相比 iframe 嵌入,大大提升了渲染速度。JS SDK 嵌入時支持動態調整嵌入頁面的樣式和交互,嵌入方式更加靈活。JS SDK 使用門檻比 iframe 高,需要嵌入人員熟悉 JavaScript。
JS SDK 嵌入示例如下,可分為引入 sdk.js 文件、初始化 sdk、嵌入三部分。
<div id="hst__embed"></div>
<script src="https://develop.hengshi.org/assets/sdk.4.3.0.js"></script>
<script>window.HsEmbedSDK.init({baseUrl: 'https://develop.hengshi.org',}, onReady);function onReady(loginSuccess) {if (!loginSuccess) return;window.HsEmbedSDK.EmbedChart(document.querySelector('#hst__embed'), {width: "1573",height: "948",params: {app: 126457,dashboard: 5,chart: 37,},});}
</script>
引用 SDK 的 js 文件
下面示例是引用 SDK 的 js 文件,每個環境的 SDK 的 js 文件不同。 引用的目的是在嵌入頁面的 windows 域上包含全局變量 HsEmbedSDK,為后續繪制嵌入的儀表盤或圖表做準備。
<script src="https://develop.hengshi.org/assets/sdk.4.3.0.js"></script>
初始化 SDK
使用 HsEmbedSDK.init 函數初始化 SDK,示例如下。
<script>window.HsEmbedSDK.init({baseUrl: 'https://develop.hengshi.org',}, onReady);function onReady(loginSuccess) {if (!loginSuccess) return;window.HsEmbedSDK.EmbedChart(document.querySelector('#hst__embed'), {width: "1573",height: "948",params: {app: 126457,dashboard: 5,chart: 37,},});}
</script>
初始化時,需要傳入兩個參數
- 參數1是 object,結構如下。其中 baseUrl 是系統部署的地址,示例中的
https://develop.hengshi.org
是一級地址,也支持二級地址。 noAuth 表示是否開啟認證,默認為 true 表示開啟認證,設置為 false 時表示跳過認證。
interface SDKConfig {baseUrl: string;noAuth?: boolean;
}
- 參數2是回調函數,示例中的 onReady 是回調函數。
提示
如果使用 jwt 認證 noAuth 需要配置為 true,并且在嵌入的儀表盤或圖表中傳入 jwt 參數。示例如下:
window.HsEmbedSDK.init({noAuth: true,baseUrl: 'https://develop.hengshi.org',}, onReady);function onReady(loginSuccess) {if (!loginSuccess) return;window.HsEmbedSDK.EmbedDashboard(document.querySelector('#hst__embed'), {width: window.innerWidth,height: window.innerHeight,params: {app: 125396,dashboard: 1,},location: {query: {activeAuth: 'jwt-param',jwtParam: 'c3MiOiLlj5HooYzogIU6emhlbmdjaHVueGkiLCJzdWIiOiJtYXJzaGFsbCJ9.cCX2yMcMpJYnE4mU7xDewD22uCyj-o'},},});}
嵌入儀表盤/圖表
在引用 SDK 的 js 文件、初始化 SDK 后,開始嵌入應用的儀表盤和圖表。
提示
嵌入多個儀表盤和圖表時,只需要在第一次嵌入時引用 SDK 的 js 文件、初始化 SDK。 應用、儀表盤嵌入時僅展示刷新、全屏、導出等按鈕,不展示 PC 端等功能按鈕。 圖表嵌入時需要先打開圖表,然后點擊嵌入按鈕獲取鏈接內容。 嵌入時不帶入過濾條件。 JS SDK 初步支持分析應用中儀表盤和圖表的嵌入,后續版本會不斷擴充支持的嵌入范圍。
嵌入儀表盤
使用 HsEmbedSDK.EmbedDashboard(Element, DashboardOptions)函數進行儀表盤嵌入,需要傳入 Element 和 DashboardOptions 兩個參數。在儀表盤中點擊嵌入圖標,選擇嵌入本儀表盤,查看嵌入示例。
-
Element 為嵌入的 DOM 元素,可以從嵌入示例中獲取。示例中傳入的 Element 為
document.querySelector('#hst__embed')
。 -
DashboardOptions 為儀表盤相關參數,結構體如下。
- useshadowDom:使用 shadow DOM 來做樣式隔離,布爾類型,默認為 true,該項為非必填項。
- width :儀表盤嵌入后的寬度,數值類型,單位是 px,該項為必填項。
- height:儀表盤嵌入后的高度,數值類型,單位是 px,該項為必填項。
- params: 儀表盤所在應用 ID 和儀表盤 ID,可以從嵌入示例中獲取,該項為必填項。
- location:需要在 url 添加過濾器參數時,可以通過 location.query 來傳入參數,該項為非必填項。
interface Dashboardoptions {useshadowDom?: boolean;width: number;height:number;params:{app: number | string;dashboard: number | string;};location?:{query?: string | Record<string, any>;},
}
嵌入圖表
使用 HsEmbedSDK.EmbedChart(Element, ChartOptions)函數進行圖表嵌入,需要傳入 Element 和 ChartOptions 兩個參數。打開圖表點擊嵌入圖標,查看圖表嵌入參考示例。
-
Element 為嵌入的 DOM 元素,可以從嵌入示例中獲取。 示例中傳入的 Element 為
document.querySelector('#hst__embed')
。 -
Chartoptions 為圖表相關參數,結構體如下。
- useshadowDom:使用 shadow DOM 來做樣式隔離,布爾類型,默認為 true,該項為非必填項。
- width :圖表嵌入后的寬度,數值類型,單位是 px,該項為必填項。
- height:圖表嵌入后的高度,數值類型,單位是 px,該項為必填項。
- params:圖表所在應用 ID、儀表盤 ID、圖表 ID,可以從系統提供的嵌入參考示例中獲取,該項為必填項。
- location:需要在 url 添加過濾器參數時,可以通過 location.query 來傳入參數,該項為非必填項。
interface Chartoptions{useShadowDom?: boolean;width: number;heiqht:number;params:{app: number | string;dashboard: number | string;chart: number | string;};location?:{query?:string | Record<string, any>;}, }
清除聯動過濾
JS SDK 支持使用函數 HsEmbedSDK.clearFilters()清除圖表之間的聯動過濾。調用該函數后,圖中所示的聯動過濾將清除,圖表之間不會產生聯動。