Code Monkey home page Code Monkey logo

datav-react's Introduction

ENGLISH

DataV-React

LICENSE LICENSE

DataV-React 是干什么的?

  • DataV-React 是一个基于React的数据可视化组件库(当然也有Vue 版本)
  • 提供用于提升页面视觉效果的SVG边框和装饰
  • 提供常用的图表如折线图等
  • 飞线图/轮播表等其他组件

注意事项

使用了 React Hooks, 简化了许多内部工作。您需要 React 版本 16.8.0 及以上

npm 安装

$ npm install @jiaminghi/data-view-react

使用

import * as datav from "@jiaminghi/data-view-react";

datav.BorderBox1;

// 或者
import { BorderBox1 } from "@jiaminghi/data-view-react";

// 按需引入
import BorderBox1 from "@jiaminghi/data-view-react/es/borderBox1";

详细文档及示例请移步HomePage.

UMD 版

UMD版可直接使用script标签引入,引入后通过datav命名空间使用对应的组件,引入data-view-react前请确保已引入react 和 react-dom

UMD 版使用示例

TODO

  • 地图组件
  • TS重构组件库底层依赖

致谢

组件库的开发基于个人学习和兴趣,由于技术水平及经验的限制,组件尚有许多不完善之处,如有 BUG 可及时提交issue或添加反馈群进行反馈,也欢迎提供指正和建议,感谢各位的支持。

反馈

Feedback

Demo

Demo 页面使用了全屏组件,请 F11 全屏后查看。

construction-data

manage-desk

electronic-file

datav-react's People

Contributors

dadanliu avatar drl990114 avatar jiaming743 avatar sdutwsl avatar yizhiyuyou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

datav-react's Issues

轮播表显示或者隐藏行号的时候,显示异常,拖动或者修改轮播表宽度可以恢复

Bug report

轮播表显示或者隐藏行号的时候,显示异常,拖动或者修改轮播表宽度可以恢复

出现Bug的组件?

轮播表

组件配置数据?

控制台错误输出?

期望情况?

显示或者隐藏行号的时候,按照columnWidth显示

实际情况?

切换的时候显示异常
image
image

其他相关信息

大佬,我又来了,如果不是bug能请教下应该怎么做吗,现在在二次开发davinci数据大屏,需要把行号变成可配置的 可复现demo链接 https://github.com/XueMeijing/dataV-test.git

  • DataV版本
  • 浏览器版本
  • 其他

飞线图增强版 开启dev 打印台返回的数据异常

Bug report

出现Bug的组件?

FlylineChartEnhanced

组件配置数据?

  <div style={{ width: "35vw", height: "35vw" }}>
    <FlylineChartEnhanced config={config} dev={true} style={{ width: '100%', height: '100%' }} />
  </div>

控制台错误输出?

image

期望情况?

应该是坐标值

实际情况?

其他相关信息

  • DataV版本
  • 浏览器版本
  • 其他

fullScreenContainer 组件在 1920x1080 分辨率,缩放比例不是 100% 的屏幕上,也能正常显示。

场景描述:
使用 fullScreenContainer 作为最外层的节点,没有对它做长宽的css设置。
页面内排版使用像素进行布局。
这种情况下,在1920x1080分辨率,然后缩放比例为 100% 的屏幕上显示正常。
但是,在缩放比例为 150% 的屏幕上布局会错乱。ps. 戴尔电脑出厂推荐(默认)的缩放比例是 150%。
如果手工将缩放比例调整为 100% 是正常的。

新特征建议:
希望 fullScreenContainer 能兼容缩放比例不是 100% 的情况,谢谢!

rem情况 ScrollBoard组件第一次刷新加载 无法计算宽高

Bug report

出现Bug的组件?

ScrollBoard 轮播表

组件配置数据?

控制台错误输出?

image
image

大屏适配用的rem,每次刷新时候组件没法计算宽高,通过控制台调整下显示窗口大小则正常识别。

期望情况?

刷新时候也能正常计算宽高

实际情况?

其他相关信息

  • DataV版本
    1.25
  • 浏览器版本
    chrome 87
  • 其他

给 scrollBoard 组件的每行增加自定义类名的功能

Feature request

这个特性解决了什么问题?

部分场景下, 需要自定义奇数行或偶数行的样式, 如渐变背景色, 背景图片.

这个特性的实现形式?

增加 oddRowCLSevenRowCLS 两个属性, 给奇数行与偶数行添加自定义类名.

是否愿意为此特性提交PR?

愿意

Decoration10在第一次进入的时候 会出现样式错误

Bug report

在第一次进入的时候 会出现样式错误

出现Bug的组件?

Decoration10

组件配置数据?

控制台错误输出?

期望情况?

正常显示如vue版本

实际情况?

右侧进度条会先点亮 待左侧进度条走到右侧才会恢复正常
DShhuR.png

其他相关信息

  • DataV版本
  • 浏览器版本
  • 其他

fullScreenContainer 组件在火狐浏览器展示异常

Bug report

出现Bug的组件?

fullScreenContainer

组件配置数据?

控制台错误输出?

期望情况?

实际情况?

页面内容错乱

其他相关信息

  • DataV版本 最新
  • 浏览器版本 Firefox 95.0.2 (64 位
  • 其他

引入@jiaminghi/data-view-react报错,提示需要新增.d.ts文件 declare module @jiaminghi/data-view-react

Bug report

出现Bug的组件?

组件配置数据?

控制台错误输出?

期望情况?

实际情况?

尝试新增.d.ts文件并定义如下
declare module '@jiaminghi/data-view-react' {
export const BorderBox1: any
export const BorderBox2: any
}

使用import * as datav from '@jiaminghi/data-view-react'不再报错
if(true){
return <datav.Decoration1 />
}
报错提示,Error:(11, 19) TS2694: Namespace '"@jiaminghi/data-view-react"' has no exported member 'BorderBox1'.

其他相关信息

  • DataV版本 1.2.1
  • 浏览器版本 chrome 83.0.4103.106
  • 其他

滚动表组件 设置 rowNum 超过10后 组件中 rowsData 会重复一遍

Bug report

滚动表组件 设置 rowNum 超过10后 组件中 rowsData 会重复一遍

dataV 版本号 2.10.0

出现Bug的组件?

滚动表

组件配置数据?

欢迎使用运营数据平台系统

<script> export default { data() { return { config: { header: ["列1", "列2", "列3"], data: [ ["行1列1", "行1列2", "行1列3"], ["行2列1", "行2列2", "行2列3"], ["行3列1", "行3列2", "行3列3"], ["行4列1", "行4列2", "行4列3"], ["行5列1", "行5列2", "行5列3"], ["行6列1", "行6列2", "行6列3"], ["行7列1", "行7列2", "行7列3"], ["行8列1", "行8列2", "行8列3"], ["行9列1", "行9列2", "行9列3"], ["行10列1", "行10列2", "行10列3"], ["行6列1", "行6列2", "行6列3"], ["行7列1", "行7列2", "行7列3"], ["行8列1", "行8列2", "行8列3"], ["行9列1", "行9列2", "行9列3"], ["行10列1", "行10列2", "行10列3"], ["行6列1", "行6列2", "行6列3"], ["行7列1", "行7列2", "行7列3"], ["行8列1", "行8列2", "行8列3"], ["行9列1", "行9列2", "行9列3"], ["行10列1", "行10列2", "行10列3"] ], index: true, rowNum: 10, columnWidth: [50], align: ["center"] } }; } }; </script>

控制台错误输出?

期望情况?

行数设置超过10会导致数据重复,如果需要全部展示数据的话,会重复数据。

实际情况?

需要全部展示数据的话不需要滚动,会重复数据。展示数据重复

其他相关信息

  • DataV版本
  • 浏览器版本
  • 其他

DEMO显示的问题

这个demo我在自己的电脑上显示的时候和效果图展示的不一样,主要是有的地方的文字堆叠在一起,还有的地方好像被覆盖了。请问这是屏幕宽高比的问题吗,有没有能自适应屏幕的方法。
图片

饼图增加percentToFixed精度属性计算百分比异常

Bug report

pie新增percentToFixed:2,在特定数据下百分比计算错误

出现Bug的组件?

Charts

组件配置数据?

option: {
color: ['#19aef2', '#4bdbc6', '#f87421'],
title: {
text: '本日***',
style: {
fill: 'white',
},
show: false
},
series: [
{
type: 'pie',
data: [
{ name: 'test1', value: 20000 },
{ name: 'test2', value: 3000 },
],
insideLabel: {
show: true
},
percentToFixed: 2
}
]
}

控制台错误输出?

期望情况?

百分比显示正常

实际情况?

image

其他相关信息

  • DataV版本 1.0.7
  • 浏览器版本 谷歌
  • 其他

在手机模式下不能缩放

Bug report

出现Bug的组件?

《FullScreenContainer》

组件配置数据?

控制台错误输出?

期望情况?

在浏览器窗口模式改变为平板或者手机模式的时候变化transform

实际情况?

在浏览器模拟手机模式下transform 始终是1

其他相关信息

  • DataV版本
  • 浏览器版本
  • 其他

ScrollBoard 数据不满一页出错

  • 组件: ScrollBoard
  • 版本: 1.2.5
  • 场景: rowNum:10 但是实际数据只有5条(不足10条都可以)
  • 错误:
Uncaught TypeError: resume is not a function
    at handleHover (index.js:381)
    at onMouseEnter (index.js:522)
    at HTMLUnknownElement.callCallback (react-dom.development.js:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
    at invokeGuardedCallback (react-dom.development.js:292)
    at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:306)
    at executeDispatch (react-dom.development.js:389)
    at executeDispatchesInOrder (react-dom.development.js:414)
    at executeDispatchesAndRelease (react-dom.development.js:3278)
    at executeDispatchesAndReleaseTopLevel (react-dom.development.js:3287)
    at Array.forEach (<anonymous>)
    at forEachAccumulated (react-dom.development.js:3257)
    at runEventsInBatch (react-dom.development.js:3304)
    at runExtractedPluginEventsInBatch (react-dom.development.js:3514)
    at handleTopLevel (react-dom.development.js:3558)
    at batchedEventUpdates$1 (react-dom.development.js:21871)
    at batchedEventUpdates (react-dom.development.js:795)
    at dispatchEventForLegacyPluginEventSystem (react-dom.development.js:3568)
    at attemptToDispatchEvent (react-dom.development.js:4267)
    at dispatchEvent (react-dom.development.js:4189)
    at unstable_runWithPriority (scheduler.development.js:653)
    at dispatchUserBlockingUpdate (react-dom.development.js:4172)

在BorderBox8中使用svg会自动absolute定位

Bug report

在BorderBox8中使用svg会自动absolute定位

出现Bug的组件

BorderBox8

组件的less样式源码

.dv-border-box-8 {
  position: relative;
  width: 100%;
  height: 100%;

  svg {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0px;
    top: 0px;
  }

  .border-box-content {
    position: relative;
    width: 100%;
    height: 100%;
  }
}

期望情况

svg不自动abosolute定位

实际情况

svg被.dv-border-box-8 svg 选中了

其他相关信息

  • DataV版本:DataV-React最新版
  • 浏览器版本:Chrome 86

The ScrollBoard would trigger error when rowNum is bigger than data's length

Bug report

config = { rowNum: 5, data: [ [1], [2], [3] ] }
<ScrollBoard config={config} style={{width: '500px', height: '220px'}} />

控制台错误输出?

caught TypeError: resume is not a function
    at handleHover (index.js:381)
    at onMouseLeave (index.js:525)
    at HTMLUnknownElement.callCallback (react-dom.development.js:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
    at invokeGuardedCallback (react-dom.development.js:292)
    at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:306)
    at executeDispatch (react-dom.development.js:389)
    at executeDispatchesInOrder (react-dom.development.js:414)
    at executeDispatchesAndRelease (react-dom.development.js:3278)
    at executeDispatchesAndReleaseTopLevel (react-dom.development.js:3287)
    at Array.forEach (<anonymous>)
    at forEachAccumulated (react-dom.development.js:3257)
    at runEventsInBatch (react-dom.development.js:3304)
    at runExtractedPluginEventsInBatch (react-dom.development.js:3514)
    at handleTopLevel (react-dom.development.js:3558)
    at batchedEventUpdates$1 (react-dom.development.js:21871)
    at batchedEventUpdates (react-dom.development.js:795)
    at dispatchEventForLegacyPluginEventSystem (react-dom.development.js:3568)
    at attemptToDispatchEvent (react-dom.development.js:4267)
    at dispatchEvent (react-dom.development.js:4189)
    at unstable_runWithPriority (scheduler.development.js:653)
    at dispatchUserBlockingUpdate (react-dom.development.js:4172)

期望情况?

The rowNum would be the data.length when it's bigger than data.length

  • DataV版本: 1.2.5
  • 浏览器版本: Microsoft Edge 96.0.1054.34

部分组件支持多种送参

锥形柱图ConicalColumnChart能否支持svg送参,现在只是img的
胶囊柱图CapsuleChart支持文字颜色修改

期待地图包含藏南和阿克赛钦

大神们你们好,我在使用该组件和国企的人对接时,对方说地图没有包含标题中的两个地区,恰逢近期台海局势紧张,对方让包含进去,不然无法验收通过。期待大佬们包含一下,感激不尽。

动态环图里翻牌器和名称的宽高可以加配置吗

Feature request

宽度只有100,名称或者数据过长显示不全,我在CRender里找不到设置宽度的地方
image

这个特性解决了什么问题?

如果动态环图某项属性过长,显示不全

这个特性的实现形式?

能否加个宽高配置

是否愿意为此特性提交PR?

声明文件

请问该项目有声明文件的安装包吗,我在npm上似乎找不到相关的@types

y轴数据很大时显示不全、x轴数据很多时会重叠

Bug report

下面2个问题没有做文档和示例中找到解答,怀疑说bug:
1、当y轴的数据较大时会有很多0,有没有办法控制y轴上数据的展示成*万这样?
2、x轴的数据较多时,能否只显示一部分?
如果可以,该怎么设置?有例子最好,

出现Bug的组件?

各个统计图形都会有这里描述的问题

组件配置数据?

控制台错误输出?

期望情况?

1、y轴的数据很大时,例如100000,可以显示成10万,这样需要的空间就小了,单位可以自己设置
2、x轴数据很多时,建议能只显示部分数据

实际情况?

1、当y轴数据比较大时,UI上会有数据显示不全的情况
2、当x轴数据比较多时,数据会重叠,导致看不清楚数据

其他相关信息

  • DataV版本
  • data-view-react v1.2.5
  • 浏览器版本
  • Chrome v90.0.4430.212
  • 其他

添加<style>标签插入位置可控,以支持TailwindCSS

Feature request

当前组件样式<style>标签在页面中的引入位置不可控,导致与其他使用class作为样式控制的库冲突,比如Tailwind CSS的宽高直接设置到Decoration1组件上会被 .decoration1 自身的宽高100%覆盖,必须在Decoration1组件外面再套一层div来设置tailwindcss的class属性

希望能手动控制样式覆盖顺序

使用过程中控制台报错,并且动画卡顿

Uncaught TypeError: pause is not a function

Uncaught TypeError: resume is not a function
这两个错误

Uncaught TypeError: pause is not a function
at handleHover (index.js:378)
at onMouseEnter (index.js:519)
at HTMLUnknownElement.callCallback (react-dom.development.js:188)
at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
at invokeGuardedCallback (react-dom.development.js:292)
at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:306)
at executeDispatch (react-dom.development.js:389)
at executeDispatchesInOrder (react-dom.development.js:414)
at executeDispatchesAndRelease (react-dom.development.js:3278)
at executeDispatchesAndReleaseTopLevel (react-dom.development.js:3287)
at Array.forEach ()
at forEachAccumulated (react-dom.development.js:3257)
at runEventsInBatch (react-dom.development.js:3304)
at runExtractedPluginEventsInBatch (react-dom.development.js:3514)
at handleTopLevel (react-dom.development.js:3558)
at batchedEventUpdates$1 (react-dom.development.js:21902)
at batchedEventUpdates (react-dom.development.js:1060)
at dispatchEventForLegacyPluginEventSystem (react-dom.development.js:3568)
at attemptToDispatchEvent (react-dom.development.js:4267)
at dispatchEvent (react-dom.development.js:4189)
at unstable_runWithPriority (scheduler.development.js:653)
at dispatchUserBlockingUpdate (react-dom.development.js:4172)

Uncaught TypeError: resume is not a function
at handleHover (index.js:378)
at onMouseLeave (index.js:522)
at HTMLUnknownElement.callCallback (react-dom.development.js:188)
at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
at invokeGuardedCallback (react-dom.development.js:292)
at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:306)
at executeDispatch (react-dom.development.js:389)
at executeDispatchesInOrder (react-dom.development.js:414)
at executeDispatchesAndRelease (react-dom.development.js:3278)
at executeDispatchesAndReleaseTopLevel (react-dom.development.js:3287)
at Array.forEach ()
at forEachAccumulated (react-dom.development.js:3257)
at runEventsInBatch (react-dom.development.js:3304)
at runExtractedPluginEventsInBatch (react-dom.development.js:3514)
at handleTopLevel (react-dom.development.js:3558)
at batchedEventUpdates$1 (react-dom.development.js:21902)
at batchedEventUpdates (react-dom.development.js:1060)
at dispatchEventForLegacyPluginEventSystem (react-dom.development.js:3568)
at attemptToDispatchEvent (react-dom.development.js:4267)
at dispatchEvent (react-dom.development.js:4189)
at unstable_runWithPriority (scheduler.development.js:653)
at dispatchUserBlockingUpdate (react-dom.development.js:4172)

请教个问题技术问题~

边框组件我看了下你是通过svg实现的,涉及到宽度改变时线宽跟着更改,装饰元素不变的逻辑是自己找到所有线手写的逻辑么?还是有什么工具可以自动生成?

通过Redux更新ActiveRingChart的data,数据展示不全

"@jiaminghi/data-view-react": "^1.2.3",

redux 异步更新数据,部分图不展示
image

如下代码,故障那个圈圈就没有动


function MaintenanceInfo(props) {
  const { maintenanceInfo } = props;
  const activeStatusData = {
    digitalFlopStyle: {
      fontSize: 14,
      fill: '#fff',
    },
    lineWidth: 13,
    showOriginValue: true,
    activeRadius: '80%',
    color: ['#0abab5', '#fc1217', '#fcea0f'],
    data: [
      { name: '正常', value: maintenanceInfo.normalCount },
      { name: '异常', value: 2},
      { name: '故障', value: 3 },
    ],
  };

  return (
    <div className={styles.container}>
      <ActiveRingChart config={activeStatusData} style={{ width: '100%', height: '160px' }} />
    </div>
  );
}

export default connect(({ global }) => ({ maintenanceInfo: global.maintenanceInfo }))(MaintenanceInfo);



ScollBoard CPU 爆了

Bug report

每次滚动时,CPU就会飙升到100%

出现Bug的组件?

ScrollBoard

组件配置数据?

其它配置没加入,只加入了图表的header 和数据

控制台错误输出?

期望情况?

实际情况?

image

其他相关信息

  • DataV版本
  • 浏览器版本
  • 其他

scrollBoard 增加 onScroll 事件

Feature request

这个特性解决了什么问题?

如果不是单纯的数据轮播,想去控制根据滚动的数据和序号配合数据去动态控制轮播的暂停和继续,现在没有这个事件;
比如我是一个websocket 持续推送实时消息的来保证每次有新数据则滚动,如果没有新数据则不滚动,这个场景需要类似监听这个scroll的事件,并暴露pause 和resume的方法

这个特性的实现形式?

在 scrollBoard/index 中的 animation 函数中加入这一句代码,task.current里有pause 和 resume if (onScroll) { onScroll({ animationIndex, task }) }

是否愿意为此特性提交PR?

轮播表提示key重复

Bug report

轮播表的key是如何确定的? data: [[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0]]这样会报错,提示有重复的key,显示异常,并且每次轮播都会新增一列数据。把data中的number 1变成string 1,data: [['1',0],['1',0],['1',0],['1',0],['1',0],['1',0],['1',0],['1',0],['1',0],['1',0],['1',0]],就正常了

出现Bug的组件?

轮播表

组件配置数据?

config = {
header,
data: [[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0]],
rowNum: 8,
headerBGC: 'rgba(0,0,0,.3)', // #00BA66
oddRowBGC: 'transparent', // '#609bdf', 'transparent'
evenRowBGC: 'transparent', // '#ffa324', 'transparent'
index: true,
}

控制台错误输出?

warning: Encountered two children with the same key, 4. Keys should be unique so that components maintain their identity across updates.

期望情况?

image

实际情况?

image

其他相关信息

  • DataV版本
    "^1.2.1"
  • 浏览器版本
    chrome83
  • 其他

debounce

Component request

新组件的类型?

  • 边框
  • 装饰
  • 图表
  • 其他

这个组件的功能描述 (边框及装饰类,请提供样图)?

@jiaminghi/data-view-react/src/util/index.js
在使用过程中,发现在组件销毁后,仍然调用setWH方法,导致报错;所以是否应该在debounce方法上提供一个cancel方法

是否愿意为此组件提交PR?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.