最近要做一个大屏 没有使用echarts 使用了更适合vue封装的v-charts组件库,第一次使用 期间踩了不少坑,记录下来和大家分享一下。

废话不多说 开始搞起来!

一、安装 引入什么的大家自行百度

百度一下,你就知道​www.baidu.com

二、

2.1 echarts 支持按需引入 每种图表组件,都已经单独打包到lib文件夹下了 大家可以根据需要单独在项目中引入

import Vue from "vue";
import VeLine from "v-charts/lib/line.common";
// 柱状图
import VeHistogram from "v-charts/lib/histogram.common";
// 圆环
import VeRing from "v-charts/lib/ring.common";
import VeBar from "v-charts/lib/bar.common";
// import VeBmap from "v-charts/lib/bmap.common";
//饼状图
import VePie from "v-charts/lib/pie.common";
//注册全局组件
Vue.component(VeLine.name, VeLine);
Vue.component(VeHistogram.name, VeHistogram);
Vue.component(VeRing.name, VeRing);
Vue.component(VeBar.name, VeBar);//项目中使用<ve-line :data="chartData"></ve-line>

2.2 组件库引入之后参数设置完成 第一次进来 图不会显示 当页面宽高发生改变的时候 图才能显示出来 这边有两种解决方式 。

2.2.1.应用v-charts官网的一句话 就是 “在一个初始宽度未知的容器内绘制图表时,因为无法获取宽度,所以图表会绘制失败,解决的办法是在容器宽度已知后, 调用echarts的resize方法。”

<template> <!-- [_ https://cdn.jsdelivr.net/npm/element-ui@1.4.0/lib/index.js,https://cdn.jsdelivr.net/npm/element-ui@1.4.0/lib/theme-default/index.css _] --><el-tabs type="border-card" v-model="activeName"><el-tab-pane label="用户管理" name="1"> <!-- name 中的数字对应chart的ref --><ve-line :data="chartData" ref="chart1"></ve-line></el-tab-pane><el-tab-pane label="配置管理" name="2"><ve-line :data="chartData" ref="chart2"></ve-line></el-tab-pane> </el-tabs>
</template><script>export default {data () {return {activeName: '1',chartData: {columns: ['日期', '销售额-1季度'],rows: [{ '日期': '1月1日', '销售额-1季度': 1523 },{ '日期': '1月2日', '销售额-1季度': 1223 },{ '日期': '1月3日', '销售额-1季度': 2123 },]}}},
//监听尺寸的变化watch: {activeName (v) {this.$nextTick(_ => {this.$refs[`chart${v}`].echarts.resize()})}}}
</script>

2.2.2 第二种方式就是在标签上设置固定的宽度 比较简单实用 宽度的话我一般设置为父级宽度的100%

<ve-linestyle="width: 100%;":height="'11vh'":settings="inandoutcount.chartSettings":colors="inandoutcount.chartData.colors":judge-height="true":data="inandoutcount.chartData":extend="inandoutcount.extend"></ve-line>

2.2.3 图例太多 宽度有限的情况下 我采用了左右滚动的方式来点击图例 图例的设置都是在legend对象中配置的

效果图

 legend: {type: "scroll",  //设置为滚动类型pageIconColor: '#6495ed', //翻页下一页的三角按钮颜色 pageIconInactiveColor: '#aaa', //翻页(即翻页到头时)pageIconSize: 10, //翻页按钮大小pageFormatter: '', //隐藏翻页的数字pageButtonItemGap: -8, // 翻页按钮的两个之间的间距tooltip: {show: false}, //隐藏legend文字的不显示,开启true itemWidth: 8,itemHeight: 8,show: true,textStyle: {color: "#FFFFFF",},itemGap: 3,fontSize: 8,x: "center", //可设定图例在左、右、居中y: "bottom", //可设定图例在上、下、居中padding: [0, 5, 15, 25], //可设定图例[距上方距离,距右方距离,距下方距离,距左方距离]},

三、

3.1 折线图

修改折线图的图例为自定义图片 折线图上面的拐点样式

//引入自定义图片
import entryLegend from "../../../../public/static/images/22.png"  //图例样式
import entry from "../../../../public/static/images/19.png"  //拐点样式//在legend属性中修改样式
legend: {show: true,//是否显示图例textStyle: {color: "#FFFFFF",},itemGap: 8,//每个图例的间隔itemWidth: 10,itemHeight: 10,icon: "rect",x: "center", //可设定图例在左、右、居中y: "bottom", //可设定图例在上、下、居中padding: [0, 0, 0, 0], //可设定图例[距上方距离,距右方距离,距下方距离,距左方距离]//data用来设置图例中的样式  name的值必须和chartData中的值相同data: [{name: "进出人次",icon: "react"},{name: "进入人数",icon: `image://${entryLegend}`  //自定义图例},{name: "离开人数",icon: `image://${outLegend}`  //自定义图例}],},

3.2 柱状图

柱状图的渐变效果 分为单个柱状图渐变 和多个柱状图 多个颜色渐变 主要通过series来控制每个柱状图 series:{} 代表着所有的柱状图 如果要单个控制 就需要 "series.0.itemStyle":{},用 0、1、2、3 来代表要控制的哪一个柱状图 0,1,2,3,就是chartData中所对应的数据的下标

下面代码两种写法都可以

 "series.0.itemStyle": {normal: {color: {type: "linear",x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: "rgba(98,249,208,1)", // 100% 处的颜色},{offset: 1,color: "rgba(98,249,208,0.1)", // 0% 处的颜色},],global: false, // 缺省为 false},},},"series.1.color": {type: "linear",x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: "rgba(255,97,89,1)", // 100% 处的颜色},{offset: 1,color: "rgba(255,97,89,0.1)", // 0% 处的颜色},],global: false, // 缺省为 false},

3.3 环形图

好像没什么好说的 文档上面都要写的听清楚的 使用的时候看着文档来的 忘记的再进去复习一下

v-charts​v-charts.js.org

3.4 胶囊图 暂且这样命名吧

先看效果

百度了之后发现只有在阿里的组件库上看到了 没有打算再引一个组件库 所以就用v-charts的条形图做基础 做了一个胶囊图

let sex = {extend: {color: ["#FCAE00", "#2D7EFD"],//胶囊图的颜色legend: {itemWidth: 8,itemHeight: 8,show: true,textStyle: {color: "#FFFFFF",},fontSize: 8,x: "center", //可设定图例在左、右、居中y: "bottom", //可设定图例在上、下、居中padding: [0, 0, 15, 0], //可设定图例[距上方距离,距右方距离,距下方距离,距左方距离]},"series.0.itemStyle": {normal: {barBorderRadius: [10, 0, 0, 10, ]//两头扁圆形状}},"series.1.itemStyle": {normal: {barBorderRadius: [0, 10, 10, 0, ]    //两头扁圆形状}},series: {barGap: 0,symbol: "none",smooth: false,barWidth: 16, },grid: {top: "5%",bootom: "5%",left: "15%",right: "5%",height: "80%",}, xAxis: {show: false,//隐藏掉横坐标axisLine: {show: false,lineStyle: {color: "#fff",},},axisLabel: {color: "#fff",},boundaryGap: [0, 0.01]},yAxis: {axisLine: {show: false,  //隐藏掉纵坐标lineStyle: {color: "#fff",},},axisLabel: {color: "rgba(45, 126, 253, 1)",fontSize: 10,show: false},splitLine: {lineStyle: {color: "#FFFFFF",opacity: 0.2,},},}, },chartSettings: {stack: {'得得得': ['男性', '女性', ]},},chartData: {columns: ['类型', '男性', '女性', ],rows: [{'类型': '常住居民','男性': 393,'女性': 93, }, ]}
};

在组件中使用 就ok了

<ve-bar:height="'9.5vh'":extend="sex.extend":settings="sex.chartSettings":judge-height="true":data="sex.chartData"></ve-bar>

欢乐的时光总是短暂的 我要学(da)习(you)了(xi) 总结就暂时先这样 菜鸟第一次用 第一次写 瑕疵很多 希望大家留言指出 一定虚心学习。

拜拜了您!!!

charts引入icon图片_v-charts 踩坑之路相关推荐

  1. WangEditor富文本编辑器图片上传踩坑之路

    最近由于业务需求,需要用到富文本编辑器,找寻了好久,起初想使用百度的ueditor,但在使用的过程中实在是遇到了太多的坑,于是另外锁定了一款富文本编辑器--wangEditor.这是一款轻量级的富文本 ...

  2. webpack踩坑之路 (2)——图片的路径与打包

    webpack踩坑之路 (2)--图片的路径与打包 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我 ...

  3. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务

    1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...

  4. 2021-11-01 富文本编辑器Vue-Quill-Editor 踩坑之路

    Vue-Quill-Editor 基于 Quill.适用于 Vue 的富文本编辑器,支持服务端渲染和单页应用. 相对于ssr,spa是通过component进行工作 ssr和spa的区别 1 踩坑之路 ...

  5. jmeter 3版本到5版本踩坑之路

    jmeter 3-5版本升级踩坑路 新版本下载安装 踩坑之路 新版本下载安装 下载新版本软件 ,链接: https://jmeter.apache.org/download_jmeter.cgi: 配 ...

  6. 微信小程序实现大转盘抽奖----踩坑之路

    微信小程序实现大转盘抽奖----踩坑之路 需求:现在有一个小程序抽奖页面如下,此类抽奖方式为大转盘 思路:由服务端获取抽奖次数和奖品,根据服务端的中奖概率来决定是否中奖,最后利用小程序动画将转盘转起来 ...

  7. contentprovider踩坑之路之Failed to find provider info for com.example.app.provider和cursor=null空指针问题

    目录 bug1.Failed to find provider info for com.example.app.provider bug2:cursor=null bug1.Failed to fi ...

  8. [Java灵信LED] -- 踩坑之路

    灵信led -T8 控制板卡 --踩坑之路 下载lv_led.dll 动态库链接 https://pan.baidu.com/s/11ZO-M6kllsq2AyhVW4AKoA 提取码:unsb 提取 ...

  9. 基于dx11的动作游戏踩坑之路--1

    基于dx11的动作游戏踩坑之路--1 首先要声明所有的博客都是学习博客,不是技术博,只是用来记录.整理自己的学习路线,以及日后可以回顾一下.本人也只是一个小菜鸡,可能会有很多错误与纰漏,有大佬愿意指出 ...

最新文章

  1. 数据分析之CE找数据大法
  2. Cobbler部署指南之Cobbler安装操作系统篇
  3. linux登录界面主题,Ubuntu 12.10登录界面主题:Butterfly
  4. 如何在mac上编写java程序_在mac系统上安装Eclipse,编写java程序
  5. Lua程序设计--全局变量
  6. devc++不兼容_Mac压缩文件Win不支持?BetterZip帮你解决!
  7. 服务器中修改项目端口,c#-在Visual Studio 2013中更改项目端口号
  8. 《Python程序设计基础与应用》课后习题答案
  9. [转载][工具]Eclipse Console 加大显示的行数,禁止弹出
  10. win10任务栏设置——高效、美观!
  11. 软件工程——数据流图(DFD)
  12. 大话私服虚拟服务器,大话西游私服服务器
  13. HBuilder X 连接逍遥Android模拟器
  14. 数学速算法_新初一】七年级上册数学几何图形初步知识点梳理+例题详解!
  15. 高中英语完形填空同义词90%选项
  16. 云ERP和本地ERP的区别是什么
  17. sketch生成android布局,Sketch一键生成自适应按钮及布局Compo
  18. avogadro_Avogadro分子编辑器(Avogadro软件)下载
  19. C++新手入门学习教程
  20. python3网络请求_使用Python3和请求发送XMLHttpRequest并获取响应

热门文章

  1. “约见”面试官系列之常见面试题之第一百零三篇之vue-router实现路由懒加载(建议收藏)
  2. “约见”面试官系列之常见面试题第三十五篇之轮循机制(建议收藏)
  3. 前端学习(2133):前端代码复杂带来的问题
  4. 前端学习(1325):await关键字
  5. 前端学习(1002):简洁版滑动下拉菜单问题解决
  6. java面试题39 给定includel.isp文件代码片段,如下
  7. java面试题6 牛客:哪个关键字可以对对象加互斥锁?
  8. 如何使用Chrome的Network面板分析HTTP报文
  9. 信号量与令牌桶_限流的4种方式令牌桶实战
  10. python函数复用_【python学习-4】可复用函数与模块