初试vue写echarts可视化布局

项目初始化

创建全局样式表并导入iconfont字体文件

在src下面的assets里新建css文件夹,创建global.less全局样式文件,然后在main.js中引入。
在src下面的assets里新建font文件夹用于存放iconfont字体库文件,一样在main.js中引入。

// 引入字体文件
import './assets/font/iconfont.css'
// 引入全局css
import './assets/css/global.less'

全局挂载echarts对象

在main.js中

// 将全局的echarts对象挂载到vue的原型对象上
Vue.prototype.$echarts = window.echarts

初始化ScreenPage主体视图页面和各个组件

配置路由

在router/index.js中

import ScreenPage from '@/views/ScreenPage.vue'
const routes = [
  { path: '/', redirect: '/screen' },
  { path: '/screen', component: ScreenPage },
]

主屏幕的布局分析

期望最终效果图

在这里插入图片描述

修改全局样式global.less

html,body,#app{
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    overflow: hidden;
}

页面布局分析

从原型图可以看出页面主要分头部标题screen-header区域以及存放各个图表的内容screen-body区域,而图表内容区域又分成了左screen-left,中screen-middle,右screen-right三个中等区域,每个中等区域又另分上下俩块小区域。
于是便确定了ScreenPage主体视图页面的整体布局以及各个图表组件所要摆放的区域。

@jiaminghi/data-view大屏数据可视化开源组件的使用

DataV组件库是基于Vue编写的,主要用于构建大屏数据展示页面的开发组件
官方文档

安装并引入

npm install @jiaminghi/data-view

在main.js中

// 将自动注册所有组件为全局组件
import dataV from '@jiaminghi/data-view';
// 全局注册
Vue.use(dataV);

边框组件的使用

效果图

在这里插入图片描述

如何使用

以最右侧的screen-right为例

 <section class="screen-right">
        <div id="right-top">
        </div>
        <div id="right-bottom">
        </div>
</section>

css样式为

.screen-right {
    height: 100%;
    width: 20%;
    #right-top {
      height: 45%;
      position: relative;
    }
    #right-bottom {
      height: 45%;
      position: relative;
      margin-top: 10px;
    }
  }

如果在父组件里面,俩个小容器外面设置边框组件,如下图可以看出边框组件是以父组件screen-right的宽高来渲染的

 <section class="screen-right">
 <dv-border-box-13>
        <div id="right-top">
        </div>
        <div id="right-bottom">
        </div>
 </dv-border-box-13>
</section>

在这里插入图片描述
接下来把边框组件分别放置到俩个小容器里边,效果如下图,因此可知道边框组件是相对于其父元素来进行边框的美化渲染

 <section class="screen-right">
        <div id="right-top">
         	<dv-border-box-13>
         	</dv-border-box-13>
        </div>
        <div id="right-bottom">
         	<dv-border-box-13>
         	</dv-border-box-13>
        </div>
</section>

在这里插入图片描述
因此,待会的各个echarts图表组件直接放置于dataV边框组件内部即可。

echarts组件

template代码

<template>
	// 外部容器
  <div class="com-container">
 	 // 存放图表的容器
    <div class="com-chart" ref="devLineRef"></div>
  </div>
</template>

在global.less中增加

.com-container{
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.com-chart{
    width: 100%;
    height: 100%;
    overflow: hidden;
}

生成echarts图表

包括初始化图表initChart(),获取数据getData(),更新图表updateChart()和屏幕大小适配screenAdapter()四个方法

为了更方便操作echarts,将echarts的option配置进行拆分

涉及到数据的option配置放到updateChart()中进行配置,涉及到屏幕适配的例如标题字体的大小放到screenAdapter()中进行配置,其余配置就正常初始化的时候进行配置。在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值