国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

從零開發可視化大屏制作平臺

開發 前端
幾個月前開源的H5頁面制作平臺H5-Dooring 收到了很多熱心的反饋和交流, 順著筆者之前的規劃, 我們又做了一款可視化大屏編輯器V6.Dooring. 接下來筆者就來帶大家一起看看我們的方案設計和技術實現.

[[386231]]

幾個月前開源的H5頁面制作平臺H5-Dooring 收到了很多熱心的反饋和交流, 順著筆者之前的規劃, 我們又做了一款可視化大屏編輯器V6.Dooring. 接下來筆者就來帶大家一起看看我們的方案設計和技術實現.

你將收獲

  • 可視化大屏產品設計思路
  • 主流可視化圖表庫技術選型
  • 大屏編輯器設計思路
  • 大屏可視化編輯器Schema設計
  • 用戶數據自治探索

在介紹之前, 我們先看看實現的效果展示.

效果預覽

方案實現

可視化大屏產品設計思路

目前很多企業或多或少的面臨“信息孤島”問題,各個系統平臺之間的數據無法實現互通共享,難以實現一體化的數據分析和實時呈現。

相比于傳統手工定制的圖表與數據儀表盤,可視化大屏制作平臺的出現,可以打破抵消的定制開發, 數據分散的問題,通過數據采集、清洗、分析到直觀實時的數據可視化展現,能夠多方位、多角度、全景展現各項指標,實時監控,動態一目了然。

針對以上需求, 我們設計了一套可視化大屏解決方案, 具體包含如下幾點:


上圖是筆者4個月前設計的基本草圖, 后期會持續更新. 通過以上的設計分解, 我們基本可以搭建一個可自己定制的數據大屏.

主流可視化圖表庫技術選型

目前筆者調研的已知主流可視化庫有:

  • echart 一個基于 JavaScript 的老牌開源可視化圖表庫
  • D3.js 一個數據驅動的可視化庫, 可以不需要其他任何框架獨立運行在現代瀏覽器中,它結合強大的可視化組件來驅動 DOM 操作
  • antv 包含一套完整的可視化組件體系
  • Chart.js 基于 HTML5 的 簡單易用的 JavaScript 圖表庫
  • metrics-graphics 建立在D3之上的可視化庫, 針對可視化和布置時間序列數據進行了優化
  • C3.js 通過包裝構造整個圖表所需的代碼,使生成基于D3的圖表變得容易

我們使用以上任何一個庫都可以實現我們的可視化大屏搭建的需求, 各位可以根據喜好來選擇.

大屏編輯器設計思路

在上面的分析中我們知道一個大屏編輯器需要有個編輯器核心, 主要包含以下部分:

  • 組件庫
  • 拖拽(自由拖拽, 參考線, 自動提示)
  • 畫布渲染器
  • 屬性編輯器

如下圖所示:

 

組件庫我們可以用任何組件封裝方式(react/vue等), 這里沿用H5-Dooring的可視化組件設計方式, 對組件模型進行優化和設計.

類似的代碼如下:

  1. import { Chart } from '@antv/f2'
  2. import React, { memo, useEffect, useRef } from 'react'
  3.  
  4. import styles from './index.less'
  5. import { IChartConfig } from './schema'
  6.  
  7. const XChart = (props:IChartConfig) => { 
  8.   const { data, color, size, paddingTop, title } = props; 
  9.   const chartRef = useRef(null); 
  10.   useEffect(() => { 
  11.       const chart = new Chart({ 
  12.         el: chartRef.current || undefined, 
  13.         pixelRatio: window.devicePixelRatio, // 指定分辨率 
  14.       }); 
  15.  
  16.       // step 2: 處理數據 
  17.       const dataX = data.map(item => ({ ...item, value: Number(item.value) })); 
  18.  
  19.       // Step 2: 載入數據源 
  20.       chart.source(dataX); 
  21.  
  22.       // Step 3:創建圖形語法,繪制柱狀圖,由 genre 和 sold 兩個屬性決定圖形位置,genre 映射至 x 軸,sold 映射至 y 軸 
  23.       chart 
  24.         .interval() 
  25.         .position('name*value'
  26.         .color('name'); 
  27.  
  28.       // Step 4: 渲染圖表 
  29.       chart.render(); 
  30.   }, [data]); 
  31.   return ( 
  32.     <div className={styles.chartWrap}> 
  33.       <div className={styles.chartTitle} style={{ color, fontSize: size, paddingTop }}> 
  34.         {title} 
  35.       </div> 
  36.       <canvas ref={chartRef}></canvas> 
  37.     </div> 
  38.   ); 
  39. }; 
  40.  
  41. export default memo(XChart); 

以上只是一個簡單的例子, 更具業務需求的復雜度我們往往會做更多的控制, 比如動畫(animation), 事件(event), 數據獲取(data inject)等.

組件拖拽可以采用市面已有的Dragable等插件, 也可以采用H5-Dooring的智能網格拖拽. 這里筆者選擇自由拖拽來實現. 已有的有:

  • rc-drag
  • sortablejs
  • react-dnd
  • react-dragable
  • vue-dragable

等等. 具體拖拽呈現流程如下:


具體拖拽流程就是:

  1. 使用H5 dragable API拖拽左側組件(component data)進入目標容器(targetBox)
  2. 監聽拖拽結束事件拿到拖拽事件傳遞的data來渲染真實的可視化組件
  3. 可視化組件掛載, schema注入編輯面板, 編輯面板渲染組件屬性編輯器
  4. 拖拽, 屬性修改, 更新
  5. 預覽, 發布

組件的schema參考Dooring DSL設計

可視化大屏數據自治探索

目前我們實現的搭建平臺可以靜態的設計數據源, 也可以注入第三方接口, 如下:


我們可以調用內部接口來實時獲取數據, 這塊在可視化監控平臺用的場景比較多, 方式如下:


參數(params)編輯區可以自定義接口參數. 代碼編輯器筆者這里推薦兩款, 大家可以選用:

  • react-monaco-editor
  • react-codemirror2

使用以上之一可以實現mini版vscode, 大家也可以嘗試一下.

輔助功能

可視化大屏一鍵截圖 一鍵截圖功能還是沿用H5-Dooring 的快捷截圖方案, 主要用于對大屏的分享, 海報制作等需求, 我們可以使用以下任何一個組件實現:

  • dom-to-image
  • html2canvas

撤銷重做

撤銷重做功能我們可以使用已有的庫比如react-undo, 也可以自己實現, 實現原理:


有點鏈表的意思, 我們將每一個狀態存儲到數組中, 通過指針來實現撤銷重做的功能, 如果要想更健壯一點, 我們可以設計一套“狀態淘汰機制”, 設置可保留的最大狀態數, 之前的自動淘汰(刪除, 更高大上一點的叫出棧). 這樣可以避免復雜操作中的大量狀態存儲, 節約瀏覽器內存.

標尺參考線 標尺和參考線這里我們自己實現, 通過動態dom渲染來實現參考線在縮放后的動態收縮, 實現方案核心如下:

  1. arr.forEach(el => { 
  2.   let dom = [...Array.from(el.querySelectorAll('.calibrationNumber'))][0] as HTMLElement; 
  3.   if (dom) { 
  4.     dom.style.transform = `translate3d(-4px, -8px, 0px) scale(${(multiple + 0.1).toFixed( 
  5.       1, 
  6.     )})`; 
  7.   } 
  8. }); 

詳細源碼可參考: H5-Dooring | 參考線設計源碼

后期規劃

最近我們的主要方向是H5-Dooring編輯器2.0的開發和可視化大屏搭建平臺的升級和優化, 后面會出線上版demo, 歡迎大家把玩.

下期精彩

  • 3D可視化組件設計方案
  • 數據可視化監控平臺設計
  • 可視化大屏的數據治理和實時數據呈現
  •  H5-Dooring 2.0版本技術分享

 

責任編輯:姜華 來源: 趣談前端
相關推薦

2022-02-28 08:34:42

開發可視化大屏

2023-09-26 08:01:16

2024-03-11 08:32:02

2021-07-12 17:23:47

零設計可視化引擎

2023-12-27 10:47:45

Flask數據可視化開發

2021-12-30 12:02:52

Python可視化代碼

2022-08-26 10:26:16

前端開發

2023-10-12 08:02:36

2021-09-26 16:20:04

Sentry Dashboards 數據可視化

2023-03-19 22:51:11

可視化項目可視化圖表

2021-04-14 16:20:39

可視化大數據工具

2021-09-11 21:03:09

可視化搭建框架

2022-09-08 11:19:53

Vue可視化插件

2024-01-23 10:42:58

2017-12-26 14:05:21

潤乾大屏可視化

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2021-10-28 08:42:31

Dooring表單設計器數據可視化

2022-08-17 09:01:16

數據可視化大數據

2022-06-29 08:28:58

數據可視化數據可視化平臺

2018-05-31 08:25:13

誤區工具可視化
點贊
收藏

51CTO技術棧公眾號

年轻的保姆91精品| 国产性猛交xxxx免费看久久| 国产福利免费在线观看| 精品亚洲国产成av人片传媒| 国产suv精品一区二区四区视频| 电影午夜精品一区二区三区| 国产精品亚洲第一| 能在线观看av网站| 亚洲日本成人女熟在线观看| 国产精品91一区二区三区| 综合网五月天| 污片在线观看一区二区| 日本在线中文字幕一区二区三区 | 精精国产xxxx视频在线动漫| 精品日韩av| 欧美激情视频免费观看| 久久av在线| 美女av在线免费观看| 亚洲精品www久久久| 久久国产精品亚洲人一区二区三区 | 97人人爽人人澡人人精品| 日本在线观看天堂男亚洲| 韩国三级中文字幕hd久久精品| 美女网站在线观看| 九九九热精品免费视频观看网站| 日本欧美在线观看| 亚洲大胆精品| 日韩av免费看| 欧美激情在线一区二区| 欧美xxxxxx| 欧美二区三区在线| 色狠狠综合天天综合综合| 亚洲免费专区| 男女爽爽爽视频| 亚洲日本欧美中文幕| 久久精品导航| 丁香在线视频| 成人性生交大片免费看小说| 日韩一区二区三区精品| 日韩高清av| 欧美性淫爽ww久久久久无| 精品久久久亚洲| 激情五月俺来也| 久久精品久久久久| 成人在线综合网站| 91av亚洲| 手机在线观看国产精品| 欧美日韩国产美女| 国产尤物精品| www亚洲人| 国产精品久久精品国产| 欧美日韩一区二区免费视频| 成人亚洲一区| 久草在.com| 国产精品草莓在线免费观看 | 日韩精品久久久久久久电影99爱| 另类小说第一页| 久久久久久久国产精品视频| www国产精品av| 天天综合91| 免费男同深夜夜行网站| 久久久久日韩精品久久久男男| 欧美日韩爱爱| 97碰碰碰免费公开在线视频| 欧美日本国产在线| 中文字幕欧美国产| 婷婷精品在线| 国产传媒视频在线观看| 国产精品免费一区豆花| 亚洲大片免费看| 999视频精品| 国产对白叫床清晰在线播放| 国产精品一区在线播放| 黄在线观看免费网站ktv| 999福利在线视频| 国产不卡一区二区三区在线观看| 国产精品情趣视频| 国产精品18| 国产亚洲黄色片| 在线看福利67194| 大白屁股一区二区视频| 素人啪啪色综合| 国产视频一视频二| 中文字幕日韩欧美精品在线观看| 国产精品久久久久久久龚玥菲| 国产精品久久久久久久久久ktv| 亚洲欧洲国产专区| 蜜桃视频欧美| 香蕉av在线| 国产自产在线视频一区| 91精品国产美女浴室洗澡无遮挡| 久久夜色精品| 国产极品在线观看| 亚洲精品无码国产| 久久欧美在线电影| 亚洲mv在线观看| 在线一区欧美| 狼人综合视频| 91av资源网| 久久久久久综合网天天| 亚洲美女少妇撒尿| 亚洲欧美伊人| 国产91足控脚交在线观看| 久久精品xxx| 欧美高清性猛交| 午夜精品福利一区二区三区av| 欧美精品三区| 国产区在线观看| 免费在线黄网站| 色悠悠久久久久| 亚洲欧美日韩在线| 亚洲啪啪91| 国产精品无码专区av在线播放 | 先锋影音日韩| 不卡av在线网站| 色综合久久久网| 国产酒店精品激情| 成人影欧美片| 爱看av在线| 91麻豆蜜桃一区二区三区| 欧美一级三级| 日韩大陆毛片av| 日韩欧美亚洲国产精品字幕久久久| 亚洲最大中文字幕| 日韩欧美电影一二三| 亚洲成人激情视频| 欧美精品久久久久久久久老牛影院| 亚洲精品成人免费| 精品日韩一区二区三区免费视频| 91精品国产综合久久婷婷香蕉| 中文字幕日韩视频| 99国产精品久久久久久久| 少妇精品视频在线观看| 在线观看av中文| 黄网站欧美内射| 成人精品一二区| 欧美插天视频在线播放| 884aa四虎影成人精品一区| 中文一区一区三区高中清不卡| 国产欧美综合一区二区三区| 91欧美极品| 韩日毛片在线观看| 男男电影完整版在线观看| 成人免费无码av| 色狠狠久久av五月综合|| 国产精品久久久久久久久粉嫩av| 亚洲人成电影在线播放| 欧美无乱码久久久免费午夜一区| 国产香蕉久久精品综合网| 免费成人在线观看| 综合天堂av久久久久久久| 99re91这里只有精品| 97成人资源| 免费在线看a| 在线观看视频你懂的| 国产一区二区在线免费播放| 久久久久久久久久久久久国产| 国产精品免费一区二区三区四区| 青青草原成人在线视频| xxx一区二区| 日韩国产精品视频| 欧美一级国产精品| 色婷婷亚洲综合| 亚洲男女一区二区三区| 99久久精品国产麻豆演员表| 蜜臀av一级做a爰片久久| 亚洲免费大片| 亚洲第一偷拍| 日韩在线高清| 九九视频免费观看视频精品| 一区二区在线视频观看| 韩日精品一区| 欧美黑人粗大| 日韩影院在线| 国产伦理精品| 国产91足控脚交在线观看| av在线女优影院| 国产午夜视频在线观看| 一级视频在线观看视频在线啦啦| 成人福利资源| 国产黄视频网站| 369你懂的电影天堂| 三级短视频在线| 奇米影视四色在线| 亚洲精品午夜在线观看| 黄www在线观看| 欧美极品欧美精品欧美图片| 男女激情无遮挡| 日韩av一二三四区| 大陆极品少妇内射aaaaa| 日日摸日日碰夜夜爽无码| 国产真实老熟女无套内射| 蜜桃网站在线观看| 在线视频一二三区| 国产人妻互换一区二区| 艳母动漫在线观看| 国产色一区二区三区| 日本男人操女人| 高潮白浆视频| 欧美一区二区三区少妇|