# ByteVCharts

###### 打包及发布说明见开发者阅读

一个基于echarts和JavaScript及ES6封装，可以直接调用的图表组件库，内置多套主题设计，支持一键换肤，简单快捷，且支持用户自定义配置；      

#
##### 本产品适用于 ES6 和 vue的npm


[comment]: <> (实时更新版/最新版本/测试版本 - bytev-charts-beta)

[comment]: <> (稳定版本 : bytev-charts@版本号（如：bytev-charts@1.0.0）)

[comment]: <> (目前发布的版本只有 bytev-charts)

npm版本: bytev-charts
npm地址: https://www.npmjs.com/package/bytev-charts

### 

原生js(ES6)版本地址: http://bytevcharts.bwk.ddns.net:90/

    原生 - 实时版本: beta
    原生 - 历史版本: version


#### 示例和基础使用文档参考：http://bytevcharts.bwk.ddns.net:90/Beta/bytevcharts.min/example/
#

### 各版本更新内容：

    1.0.2版: 

        新增“横向圆角堆叠柱状图”，“横向菱形堆叠柱状图”

####
    1.0.3版: 

            1. echarts的柱状图折线图-增加了 支持调用setData()方法时一起设置样式的功能, 
                每个对象里面可以写echarts的官方属性,则对应组件会以用户写的样式为准来覆盖组件默认内置样式;

            2. 新增组件-堆叠柱线图


####
    1.0.4版：

            1. 柱状图 饼状图 的x y 轴调整为数组结构, 方便用户自己在setData时手动自定义使用哪个轴线;

            2. 细阴影环形图的数据data中,为每个对象增加了parent属性, parent属性为string类型, 
                有该属性则插件自动求和该parent的值并显示到环形中间;


####
    1.0.5 - 1.0.6版：

            1. 拆分出横向柱状图和柱线图组件类，规范横向柱状图和柱线图命名，新增几种横向柱状图图表;\

            2. 结构代码优化整理:
                将所有的series抽成独立的js管理; 

            3. 基本饼状图/基本环形图优化调整:
                3.1 调整默认center位置
                3.2 基本环形图增加支持每个数据的parent属性, parent属性为string类型, 
                    有该属性则插件自动求和该parent的值并显示到环形中间;
                3.3 option下新增自定义属性center和radius,如果用户定义了这两个属性,则拼接的series直接以这两个属性动态计算

            4. 环形图(环星阴影图和环形十字准星图及玉珏图)优化调整:
                4.1 抽成环形图左右结构分类统一管理,并抽出拼接换算图例、parent的功能到父类js统一管理
                4.2 新增根据容器宽高比自动设置环图center位置,和自动设置图例展现方式(普通图例or可滚动翻页的图例/)
                4.3 图例新增unitType属性,支持根据用户设置来动态切换图例的三种单位文字显示方式:
                    option.legend.unitType: 默认'none';
                        '' 或 'none' 或 null - 只显示名称, 
                        'value' - 显示名称+数值, 
                        'per' 或 '%' - 显示名称+百分比)；
                4.4 图例的icon属性新增自定义属性: '竖线' - 'verticalBar'
                        - option.legend.icon: (默认rect)
                        支持属性: 除echarts的('circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'),
                        还新增了自定义属性'竖线' - 'verticalBar'
                4.5 优化环形图parent有无时label的动态样式和优化选中效果;
                4.6 option下新增自定义属性center和radius,如果用户定义了这两个属性,则拼接的series直接以这两个属性动态计算

            5. 命名调整(之前版本不受影响):
                5.1 横向菱形堆叠柱状图(v1.0.05版前BarHorizontalStackDiamond)    变更为=> 'HorizontalBarStackDiamond'
                5.2 横向圆角堆叠柱状图(v1.0.05版前BarHorizontalStackFillet)     变更为=> 'HorizontalBarStackFillet' 
                5.3 柱装饰折线图(v1.0.5版前LineBar)                            变更为=> 'LineDecorateBar'



#
#### 使用方式和常用方法:
####
##### npm 安装方式:
    npm install bytev-charts

[comment]: <> (    或)

[comment]: <> (    npm install bytev-charts-beta)

[comment]: <> (    或)

[comment]: <> (    npm install bytev-charts-v)
若启动提示还需install其余插件, 则运行npm install @babel/runtime-corejs2即可;

    npm install @babel/runtime-corejs2 
    
    
    调用方式和原生js一致，可以main.js中自定义设置为vue的属性

###
##### 原生js ES6:

```js
	<script src="js/index.js" type="module">
	
		import ByteV from './ByteV.js'
		
                //后续代码及调用
                ByteV.
    
	</script>
```

###
##### 使用方法和常用方法


```js
		
    /*
     * 初始化主题	(每个主题的ID 可参见example示例)
     * 执行后则后续所有init的图表都自动使用此套主题
     * 不调用此方法则使用默认主题-加勒比蓝
     */
    
     ByteV.initTheme('主题ID')
    
    
    
    /*
     * 切换主题
     * 	图表实例.setTheme('主题ID'),则只修改该图表的主题
     * 	ByteV.setTheme('主题ID'),则修改全部图表主题,并且后续图表也使用修改后的主题
     */
    
     //切换指定图表主题
     实例.setTheme('主题ID')
     
     //切换全部图表主题
     ByteV.setTheme('主题ID')
     
     
     
    /*
     * 创建图表
     * 	创建图表实例(每个图表ID 可参见example示例)
     *  参数:	  element - dom对象(应该是唯一且不重复的)
     *  		图表ID - 可不传,不传默认返回空echarts对象
     *  		data - 图表数据,可不传,传则自动渲染数据,
     * 				   不传可后续用返回的实例调用.setData(data)来更新数据
     *  
     * 	返回值: 返回该图表的实例对象, 
     *	       实例对象有通用属性option, 和通用方法 setData()、setOption()
     */
    
     ByteV.init( element, '图表ID', data)
    
    
     
    /*
     * 修改更新图表option设置项的方法
     * 用户可通过 实例.option 获取其设置项,并自定义修改其中的值,
     * 修改后调用 实例.setOption() 即可刷新页面图表,也可与不调用,而是等setData()时一并更新,
     * 调用 实例.setData() 也会自动刷更新option和刷新该图表
     */
     图表实例.setOption()
    
    

    /*
    * 动画效果
    * 使用'ByteV'调用则是操作全部图表的动画
    * 使用'图表实例'调用只操作对应该图表的动画
    */
    //播放：
    ByteV.playAnimation()
    实例.playAnimation()
    
    //停止：
    ByteV.stopAnimation()
    实例.stopAnimation()
    
    //关闭：
    ByteV.offAnimation()
    实例.offAnimation()
    
    
    
    /*
    * 自动轮播
    * 使用'ByteV'调用则是操作全部图表的自动轮播
    * 使用'图表实例'调用只操作对应该图表的自动轮播
    */
    //开启：
    ByteV.openLoopTooltip()
    实例.openLoopTooltip()
    
    //关闭：
    ByteV.offLoopTooltip()
    实例.offLoopTooltip()
```

###
#
