<template>
|
<div class="modelBox" v-drag>
|
<div>
|
<div class="modleTitle">
|
<div>模型添加</div>
|
<el-button size="mini" @click="batchAdd">批量添加</el-button>
|
<div class="modelClose" @click="$store.state.showModelFlag = false">
|
X
|
</div>
|
</div>
|
</div>
|
<div class="modelContent">
|
<div
|
class="modelType"
|
v-for="(item, index) in modelOption"
|
:key="index"
|
@click="setModelAddLayer(item)"
|
>
|
<img
|
class="imgIcon"
|
:src="require('../../../assets/img/model/' + item.imgUrl)"
|
/>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import model from "../../../assets/js/Layer/model";
|
import batchAddGrid from "../../../assets/js/Layer/batchAddGrid";
|
|
export default {
|
name: "modelLayer",
|
components: {},
|
|
data() {
|
return {
|
modelOption: [],
|
};
|
},
|
mounted() {
|
this.setLayerStart();
|
},
|
destroyed() {},
|
methods: {
|
setLayerStart() {
|
this.modelOption = layerData.modelData;
|
},
|
setModelAddLayer(item) {
|
if (this.$store.state.batchGridArr == []) {
|
// model
|
model.changeLayer(item, true);
|
} else {
|
model.changeBatchLayer(item, true);
|
this.$store.state.isBatchGridArr =false;
|
let coordinates = this.$store.state.batchGridArr;
|
let shape = this.$store.state.batchShape;
|
Viewer.entities.remove(shape);
|
coordinates.forEach((element) => {
|
let coordinate = {
|
longitude: Number(element[0].toFixed(6)),
|
latitude: Number(element[1].toFixed(6)),
|
altitude: 0,
|
heading: 0,
|
pitch: 0,
|
roll: 0,
|
scale: 1,
|
};
|
model.setModelCoord(coordinate);
|
});
|
}
|
},
|
batchAdd() {
|
batchAddGrid.drawRect();
|
},
|
},
|
};
|
</script>
|
|
<style scoped lang="less">
|
.modelBox {
|
width: 360px;
|
height: 60%;
|
border: 1px solid white;
|
top: 70px;
|
right: 20px;
|
background-color: rgba(0, 0, 0, 0.6); // #0048fd69 !important
|
z-index: 9999;
|
position: absolute;
|
.el-button {
|
background-color: #0051e9;
|
color: #fff;
|
|
}
|
.modleTitle {
|
height: 42px;
|
width: 90%;
|
background: #0048fd69 !important;
|
border-bottom: 1px solid white;
|
color: white;
|
font-weight: 700px;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
padding: 0% 5%;
|
|
.modelClose {
|
height: 16px;
|
width: 16px;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
background: rgba(128, 128, 128, 0.6);
|
font-size: 14x;
|
}
|
}
|
|
.modelContent {
|
width: 90%;
|
height: calc(95% - 42px);
|
margin: 5%;
|
display: flex;
|
justify-content: space-between;
|
flex-flow: row wrap;
|
|
.modelType {
|
width: 47.5%;
|
height: 20%;
|
border: 1px solid #909399;
|
|
.imgIcon {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
|
.modelType :hover {
|
border: 1px solid #409eff;
|
}
|
}
|
}
|
</style>
|