实现效果:
实现图表的二次封装以及表格的自由拖动,缩放功能
先贴出两个组件的地址:
vue-draggable-resizable-gorkys
图标的二次封装
这里我们先做一个简单的封装
比如标题+图表的形式📈
<div class="chartcontainer">
<div>{{diyposition.title}}</div>
<ve-line :data="chartData[0]" width="100%" height="100%" :judge-width="true" ref="mychart" :colors="colors"></ve-line>
</div>
尤其说明一下这里的:judge-width="true"属性
如果不设置这个属性值为true的话 表格很有可能没有办法获取到初始宽度
另外,如果要实现表格宽度根据父组件的宽度自适应的话
我们要使用vue的ref属性
在父组件中监听父组件宽度的变化
一旦监听到宽度发生了变化,就调用子组件的方法
this.$refs.mychart.echarts.resize();
这样就能结合我们的vue-draggable-resizable-gorkys组件
实现图表的宽高自适应
关于图表的配色
我们可以自己定义一个颜色组:
colors: [
"#61a0a8",
"#d48265",
"#91c7ae",
"#749f83",
"#ca8622",
"#bda29a",
"#6e7074",
"#546570",
"#c4ccd3"
]
:colors="colors"
这样就可以完成图表的配色了
vue-draggable-resizable-gorkys组件的使用
<vdr
:active="false" //确定组件是否应处于活动状态。
:w="200px"
:h="200px"
:resizable="ifresizable"//定义组件应该可以调整大小。
:draggable="ifdraggable"//定义组件应该是否可拖动。
v-on:dragging="onDrag"//每当拖动组件时调用。
v-on:resizing="onResize"//每当组件调整大小时调用。
@resizestop="onResizstop(index)"
@dragstop="onDragstop(index)"//每当组件停止拖动时调用。
>
<LineChartBlock
:chartData="charts.blockdata[index].chartdata"
:diyposition="item"
:changesizewidth="width"
:changesizeheight="height"
:colors="colors"
v-if="charts.blockdata[index].type==1"
></LineChartBlock>
</vdr>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。