本章以搭建可视化大屏为例,为您讲解如何使用BIMVision来制作一个可视化项目。
制作一个BIMVision可视化大屏,您需要完成以下几个步骤:
1、数据准备
2、创建项目
3、上传并分组数据
4、创建可视化大屏
5、添加并配置可视化组件
6、预览并分享可视化大屏
7、设计大屏轮播
BIMVision目前支持的数据类型包括:CSV 和 自定义API









目前BIMVision支持以下类型的组件

| 组件类型 | 组件 |
|---|---|
| 图表 | 柱状图、折线图、环饼图、散点图、组合图、雷达图、漏斗图、水球图 |
| 组件 | 单行文本、富文本编辑器、统计、翻牌器、数字翻牌器、表格、时间选择器、时间轴、下拉菜单、选项卡、时间、天气、导航 |
| 地图 | 2D地图 |
| 素材 | 边框、装饰 |
| 媒体 | 单图、iframe、轮播图、视频 |
样式配置:

您可以通过组件列表选择您想要的组件,并根据需要配置完成各组件的不同样式配置
如:全局样式、基础样式、坐标轴等...
数据配置:
数据配置流程如下

配置项:
| 配置项 | 说明 |
|---|---|
| 数据组 | 选择设定好的相应大屏的数据组 |
| 数据源 | 可在数据源下拉框中选择上传的数据源 |
| 字段映射 | 将数据进行维度和指标的匹配 |
| 头部 | 用于提供关于请求、响应或者其他的发送实体的信息 |
| 代理 | 当浏览器无法访问接口时,可以选择使用代理,从Aecore平台后台访问 |
| 参数 | 通过数据回调,完成图表的数据联动 |


完成大屏配置与位置调整后,您可以在两个地方对大屏进行预览:
如您需要分享大屏,在大屏管理页面,鼠标移动到该大屏上,点击分享按钮,即可完成操作
轮播管理为该项目创建和管理轮播效果,通过点击某项目后进入到轮播管理菜单,包括新建轮播和轮播管理功能。


v1.0.2
基于React 的插件开发环境
npm install gvp -g
gvp create hello //hello是自定义名称
cd hello
npm install
请确保项目有权限访问当前的系统目录
cd hello
npm run dev //开发调试React组件
//or
npm run dev:chart //开发调试Chart组件
.
├── babel.config.js
├── dist #插件输出目录
├── node_modules
├── package-lock.json
├── package.json
├── props.json
├── readme.md
├── src
│ ├── app.js #插件调试入口
│ ├── index.js #插件、打包的时候已此文件为入口
│ ├── index.less
│ ├── lib #插件调试组件
│ └── template.html
└── webpack.config.js
props
每次参数变化、组件都会接收到的props
| 参数名称 | 参数类型 | 说明 | 默认值 |
|---|---|---|---|
| option | object | 整个组件配置对象!详细查看下面option配置 | {} |
| echarts | object | Echarts对象 | |
| Chart | React Component | Chart组件对象 | |
| events | object | 事件对象;onAction,onLocation |
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| uuid | string | 组件UUID | |
| name | string | 组件名称 | |
| rect | object | 组件位置信息{x,y,width,height} | |
| mode | string | 组件当前的环境:view 预览模式,edit 编辑模式 | |
| config | object | 组件属性配置! | |
| config.props | object | 当组件定义了自定义属性配置时、这个值才有效 | |
| config.targets | object | 组件交互目标 | |
| config.style | Object | 组件基础样式配置:{background} | |
| fetch | object | 组件数据配置对象!详细查看下面fetch配置 |
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| type | string | 数据源类型:api, local | |
| url | string | 当数据源类型为api时表示接口路径 | |
| sourceData | array | 当数据源类型为local表示静态数据 | |
| keyMap | object | 字段映射关系 | |
| interval | number | api 定时刷新频率 | |
| param | object | api 查询查询 | |
| string | 过滤器; |
由于插件上下文和主环境隔离了!为了可以进行通信、现在开放了俩个事件接口
onAction 用于组件之间的交互现在支持插件与平台组件的交互、不支持插件与插件的交互
onLocation 用于页面切换
onAction(param1,option)
| 参数 | 参数类型 | 说明 |
|---|---|---|
| param1 | Object | 必须为对象、需要传出来的数据 |
| option | object | 整个插件的配置对象、原样返回 |
onLocation(url)
| 参数 | 参数类型 | 说明 |
|---|---|---|
| url | string | 要跳转的地址 |
export default ({ option, echarts, Chart, events }) => {
let { fetch, uuid, version, rect, config, mode } = option;
let { onAction, onLocation } = events;
return (
<div style={{ background: config.style.background, ...rect }}>
<h1>ID:{uuid}</h1>
<h1>版本:{version}</h1>
<h1>模式:{mode}</h1>
<h1>尺寸:{JSON.stringify(rect)}</h1>
<h1>动态属性:{JSON.stringify(config.props)}</h1>
<h1>交互对象:{JSON.stringify(config.targets)}</h1>
<button
onClick={() => {
onLocation("http://www.baidu.com");
onAction({ value: "123", name: "123" }, option);
}}>
按钮、测试事件
</button>
</div>
);
};
export default ({ option, echarts, Chart, events }) => {
let { fetch, uuid, version, rect, config, mode } = option;
let intance = useRef();
let [chart, setChart] = useState({});
const onRef = useCallback((e) => {
intance.current = e;
}, []);
useEffect(() => {
setChart(config);
}, []);
return <Chart onRef={onRef} style={rect} option={chart}></Chart>;
};
请确保项目有权限访问当前的系统目录
cd hello
npm run build
组件输出目录 /hello/dist
注意
1 、组件现在不支持图片地址引用、建议通过base64来引用、或者配置url-loader
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url-loader',
options: {
name: './images/[name].[ext]',
limit: 8192
}
}
2、默认打包不会生成预览图、建议手动添加预览图到打包输出目录
/hello/dist/demo.png3、尽量减少第三js库的引用
打开可视化平台、登录账户、创建项目、大屏、打开编辑器、快键键cmd/ctrl+u打开插件上传入口
填写插件名称就行!
然后选中插件打包目录、记住、是插件打包后的输入目录/hello/dist
上传!

选中组件、其他、自定义组件!选择刚刚上传的插件!这样就可以直接使用刚刚上传的插件了!
