步骤四、添加UI界面
资源获取
注意
场景中涉及到的图片、模型、第三方库、源码等资源,点击下载获取。
步骤
1、创建组件
- 在 src 文件夹中新建 layout 文件夹。
- 我们按照结构将界面分成了上下左右四个部分,所以需要在 layout 文件夹中创建4个vue文件。
- LyBottom.vue
- LyLeft.vue
- LyRight.vue
- LyTop.vue
- 在 src 文件夹中新建 style.css 文件,该文件主要存放全局的样式。
2、安装 SCSS
- 在终端输入如下命令,安装 SCSS。
npm install -D sass-embedded
笔记SCSS 是 CSS 的一个预处理工具,它提供了许多 CSS 本身不具备的功能,如变量、嵌套规则、混合(Mixins)、继承、函数等,这些功能可以大大提高编写 CSS 的效率,想要了解更多信息,请访问官网。
3、界面编写
- 因为界面不是我们这款SDK产品的功能,所以大家可以直接从源码库中复制过来。
- 关于场景的功能触发都写在了LyBottom.vue里,可以先把里面关于MapApi的方法先隐藏。
4、引用组件
在 src->App.vue 中引用界面组件。
<script setup>
// 导入组件
import Map from './components/Map.vue'
import LyTop from './layout/LyTop.vue';
import LyLeft from './layout/LyLeft.vue';
import LyRight from './layout/LyRight.vue';
import LyBottom from './layout/LyBottom.vue';
</script>
<template>
<div class="container">
<Map></Map>
<div class="layout">
<div class="layout_img">
<ly-top></ly-top>
<div class="center_wapper">
<ly-left></ly-left>
<ly-right></ly-right>
</div>
<ly-bottom></ly-bottom>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.container {
width: 100%;
height: 100%;
overflow: hidden;
.layout {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 10;
pointer-events: none;
background: url(./assets/images/pure-mask3.png) no-repeat;
background-size: 110% 140%;
background-position: center 50%;
}
.layout_img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 11;
pointer-events: none;
background: url(./assets/images/pure-mask.png) no-repeat;
background-size: 100% 110%;
}
.center_wapper {
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
}
}
</style>
5、引用样式文件
在 src->main.js 中引用样式文件。
import { createApp } from 'vue';
import './style.css';
import App from './App.vue';
import mapmost from '@mapmost/mapmost-webgl';
window.mapmost = mapmost;
createApp(App).mount('#app');
注意
这里为了示意,除了按钮,别的数据都是图片,如果想要替换为真实的图表,可以使用echarts图表。
6、查看效果
运行,查看效果,这时场景中就可以看见面板了。
npm run dev