|
@@ -10,7 +10,7 @@
|
|
|
@mouseup="moveOff" @mousemove="dragMove" @mouseleave="moveOff" @wheel.prevent="wheel">
|
|
|
<div id="labelMap" :style="mapStyle">
|
|
|
<div :key="index" class="labelItem "
|
|
|
- :style="{left: item.mapX+'px',top:item.mapY+'px',backgroundColor:setMarkStyle(item)?.backGround,width:item.mapSize+'px',height:item.mapSize+'px',fontSize:item.mapSize/3+'px'}"
|
|
|
+ :style="{left: item.mapX*width/item.mapInitWidth+'px',top:item.mapY*width/item.mapInitWidth+'px',backgroundColor:setMarkStyle(item)?.backGround,width:item.mapSize+'px',height:item.mapSize+'px',fontSize:item.mapSize/3+'px'}"
|
|
|
v-for="(item,index) in props.value">
|
|
|
<span :style="{color:setMarkStyle(item)?.color}">{{ setMarkStyle(item)?.label }}</span>
|
|
|
</div>
|
|
@@ -73,30 +73,29 @@ let labelMap;
|
|
|
|
|
|
onMounted(() => {
|
|
|
labelMap = document.getElementById("labelMap");
|
|
|
- setImgSize();
|
|
|
+ setTimeout(()=>{
|
|
|
+ setImgSize(props.imgUrl);
|
|
|
+ },100)
|
|
|
});
|
|
|
|
|
|
|
|
|
//根据容器宽度和原始图片长宽比例设置图层高度
|
|
|
-function setImgSize() {
|
|
|
+function setImgSize(url) {
|
|
|
const m = document.getElementById("mapContainer");
|
|
|
let img = new Image();
|
|
|
- img.src = props.imgUrl;
|
|
|
- setTimeout(()=>{
|
|
|
- console.log(img);
|
|
|
+ img.onload=function (){
|
|
|
width.value = m.clientWidth;
|
|
|
- height.value = m.clientWidth * (img.height / img.width);
|
|
|
- },0)
|
|
|
-
|
|
|
+ height.value = m.clientWidth * (img.naturalHeight / img.naturalWidth);
|
|
|
+ }
|
|
|
+ img.src = url;
|
|
|
}
|
|
|
|
|
|
-watch(() => props.imgUrl, () => {
|
|
|
- console.log(props.imgUrl);
|
|
|
- setImgSize();
|
|
|
+watch(() => props.imgUrl, (newValue, oldValue) => {
|
|
|
+ console.log(newValue);
|
|
|
+ setImgSize(newValue);
|
|
|
});
|
|
|
|
|
|
|
|
|
-
|
|
|
//拖拽参数
|
|
|
let dragOption = reactive({
|
|
|
x1: 0,
|
|
@@ -133,8 +132,6 @@ function dragMove(event) {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
let statusList = [
|
|
|
{ label: "可售", backGround: "#0bc933", color: "#000000" },
|
|
|
{ label: "已售", backGround: "#fd0002", color: "#ffffff" },
|
|
@@ -156,9 +153,6 @@ function setMarkStyle(row) {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
let size = 1;
|
|
|
|
|
|
//缩小
|
|
@@ -210,6 +204,8 @@ function wheel(event) {
|
|
|
top: 0;
|
|
|
min-width: 100px;
|
|
|
min-height: 100px;
|
|
|
+ //width: 100%;
|
|
|
+ //height: 100%;
|
|
|
}
|
|
|
|
|
|
:deep(.labelItem) {
|