1.项目描述
根据奔跑吧面条的**vue-big-screen**开源框架基础上进行修改。
项目需要全屏展示(按 F11)。
项目部分区域使用了全局注册方式,增加了打包体积,在实际运用中请使用 按需引入。
项目环境:Vue-cli、DataV、Echarts、Webpack、Npm、Node,axios,mock。
请拉取 master 分支的代码,其余分支是开发分支。
在项目public目录下存放地图数据合集,根据地市编存放。
2.主要文件介绍
文件 |
作用/功能 |
main.js |
主目录文件,引入 Echart/DataV 等文件 |
utils |
工具函数与 mixins 函数等 |
views/ home.vue |
项目主结构 |
views/其余文件 |
界面各个区域组件(按照位置来命名) |
assets |
静态资源目录,放置 logo 与背景图片 |
assets / css/ |
通用 CSS 文件,全局项目快捷样式调节 |
components/echart |
所有 echart 图表(按照位置来命名) |
common/... |
全局封装的 ECharts 和 flexible 插件代码(适配屏幕尺寸,可定制化修改) |
api/api.js |
接口封装文件 |
mock |
模拟数据接口地址 |
3.使用介绍
点击poackage.json中的调试,初次导入应先安装依赖,先把node_modules删除再通过npm i安装依赖,笔者在初次导入mapbox遇到less loader报错,卸载less loader重新安装5.0.0即可正常运行,依赖版本如下:
4.取消mock模拟数据
// src\main.js文件
把下面这句话注释掉就可以了。
require('./mock/mock')//是否使用mock
除了mock.js模拟数据以外,还可采用fake-data.json
5.自适应缩放组件
注意
采用Scale方式,会自动给组件父元素添加overflow:hidden
使用
<template>
<scale-screen width="1920" height="1080">
<div>
<v-chart>....</v-chart>
<v-chart>....</v-chart>
<v-chart>....</v-chart>
<v-chart>....</v-chart>
<v-chart>....</v-chart>
</div>
</scale-screen>
</template>
<script>
import ScaleScreen from 'scale-screen'
export default {
name:'Demo',
components:{
VScaleScreen
}
}
</script>
6.API
属性 |
说明 |
类型 |
默认值 |
selfAdaption |
是否进行自适应 |
Boolean |
true |
width |
大屏宽度 |
Number or String |
1920 |
height |
大屏高度 |
Number or String |
1080 |
autoScale |
自适应配置,配置为boolean类型时,为启动或者关闭自适应,配置为对象时,若x为true,x轴产生边距,y为true时,y轴产生边距,启用fullScreen时此配置失效 |
Boolean or {x:boolean,y:boolean} |
true |
delay |
窗口变化防抖延迟时间 |
Number |
500 |
fullScreen |
全屏自适应,启用此配置项时会存在拉伸效果,同时autoScale失效,非必要情况下不建议开启 |
Boolean |
false |
boxStyle |
修改容器样式,如居中展示时侧边背景色,符合Vue双向绑定style标准格式 |
Object |
null |
wrapperStyle |
修改自适应区域样式,符合Vue双向绑定style标准格式 |
Object |
|
公用组件
封装了除面条外个别用到的组件
5.1 message消息提示
因为刚开始没想着用第三方提示库,自己简单封装了一个。
注:组件内部目前只有warning,类型,如果需要其他类型自己组件内添加。
因在main.js注册全局可以直接使用,不需要引入
this.$Message({ text: res.msg, type: 'warning' })//也可以这样this.$Message.warning(res.msg)
参数 |
描述 |
默认值 |
类型 |
可选值 |
text |
提示文字 |
- |
string |
- |
type |
弹窗类型 |
warning |
string |
warning |
5.2 外边框
根据需求更改,更换外边框(src\components\item-wrap\item-wrap.vue)下更换。
<ItemWrap title="我是title" > <div>我是谁?</div></ItemWrap>
参数 |
描述 |
默认值 |
类型 |
可选值 |
title |
标头 |
- |
string |
- |
5.3中间地图
导入mapbox
Mapbox地图容器必须声明style,否则无法正常渲染
我试了一下,id跟class两种方式渲染条件还不一样,用id少了高度也能渲染,class少了高度就不能渲染了
右侧两个边框通过mapbox(监听弹窗)传递信息,因笔者编码能力较弱,没能妥善处理好click监听事件,故采用监听弹窗open,使用事件总线传递信息(echarts数据等),具体实现方法如下:
数据仅作测试用,无理论依据
5.4左侧组件
Mock.Js数据可视化(echarts)
总览
文件结构
标签:....,js,warning,master,mapbox,组件,mock From: https://www.cnblogs.com/xtfz/p/17541242.html