gis/src/views/dashboard/components/maptools/ToolBar.vue

92 lines
2.2 KiB
Vue
Raw Normal View History

2023-08-02 09:27:32 +08:00
<!--
* @Author: lixin
* @Date: 2023-5-27
* @Description: 地图上半部分工具栏包括: 图层漫游量测在线标绘卷帘出图等
-->
<template>
<div class="tool-list">
<div v-for="(item, index) in toolList" :key="index" class="tool-bar">
<img :src="item.id === selectedTool ? getImgUrl(item.id + '_press') : getImgUrl(item.id)">
<span class="tool-text" :class="item.id === selectedTool ? 'press': ''" @click="handleTool(item)">{{ item.label }}</span>
<b v-if="index !==(toolList.length -1)" />
</div>
</div>
</template>
<script>
import { reactive, toRefs } from 'vue'
export default {
emits: ['tool'],
setup(props, { emit }) {
const data = reactive({
toolList: [
{ id: 'tuceng', label: '图层' },
{ id: 'liangce', label: '量测' }
],
selectedTool: null
})
const getImgUrl = (src) => {
return new URL(`../../../../assets/basemap/toolbar/${src}.png`, import.meta.url).href
}
const handleTool = (info) => {
if (info?.id !== data.selectedTool) {
data.selectedTool = info?.id
} else {
data.selectedTool = null
}
emit('tool', data.selectedTool)
}
return {
...toRefs(data),
getImgUrl,
handleTool
}
}
}
</script>
<style lang="scss" scoped>
.tool-list{
// width: 592px;
height: 40px;
position: absolute;
top: 60px;
right: 20px;
cursor: pointer;
background: url("../../../../assets/basemap/toolbar/caozuo_bg.png") no-repeat;
background-size: 100% 100%;
display: flex;
.tool-bar{
display: flex;
align-items: center;
margin-left: 15px;
.tool-text{
font-size:14px;
font-family:Microsoft YaHei;
font-weight:400;
/*color:rgba(78,253,255,1);*/
color: #FFFFFF;
margin: 0 15px;
}
.tool-text.press{
color: rgb(98,223,255);
}
b {
height: 20px;
display: inline-block;
border-right: 2px solid rgb(98,223,255);
// border-right: 1px solid #eee;
position: relative;
}
}
}
</style>