From 722dbde665a8e335bccaa9d984cd02eb22333e54 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Sat, 05 Mar 2022 17:49:13 +0800
Subject: [PATCH] +新增标签,可编辑,可加图片
---
src/components/leftNav/index.vue | 99 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 95 insertions(+), 4 deletions(-)
diff --git a/src/components/leftNav/index.vue b/src/components/leftNav/index.vue
index 0997990..b15babd 100644
--- a/src/components/leftNav/index.vue
+++ b/src/components/leftNav/index.vue
@@ -9,6 +9,10 @@
<img :src="item.img" alt="" />
<span>{{ item.label }}</span>
</li>
+ <li class="addIcons" @click="addIcons">
+ <!-- <img :style="[imgStyle]" :src="item.img" alt="" /> -->
+ <span>+</span>
+ </li>
</ul>
</div>
</template>
@@ -21,10 +25,16 @@
getWayList,
getTagList,
} from "@/api/pc/leftNav/index";
-
+import { mapGetters } from "vuex";
export default {
name: "leftNav",
- computed: {},
+ computed: {
+ ...mapGetters([
+ "viewer",
+ "closeMapClick", // 关闭地图点击,防止新增标签误触
+ "addIconsLayerIconPopup", //传送关闭编辑窗口,刷新标签数据
+ ]),
+ },
data() {
return {
leftNavData: [
@@ -108,8 +118,77 @@
created() {
this.DC = global.DC;
},
- mounted() {},
+ mounted() {
+ //初始化新增标签图层
+ // this.$store.commit("createAddIconsLayerIconLayer", { viewer: this.viewer });
+ },
+ watch: {
+ addIconsLayerIconPopup() {
+ if (!this.addIconsLayerIconPopup) {
+ this.reself();
+ }
+ },
+ },
methods: {
+ reself() {
+ let that = this;
+ if (this.tagLayer) {
+ this.tagLayer.clear();
+ }
+ getTagList().then((res) => {
+ res.data.data.forEach((item) => {
+ const divIcon = new this.DC.DivIcon(
+ new that.DC.Position(Number(item.jd), Number(item.wd), 0),
+ `
+ <div class="tag-entitys-box">
+ <div class="tag-content">
+ ${item.mechanismname}
+ </div>
+ <div class="tag-angle-content">
+ <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+ </div>
+ </div>
+ `
+ );
+ //订阅事件
+ divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+ if (that.closeMapClick) {
+ return;
+ }
+ that.openPopups({
+ lng: e.overlay.position.lng,
+ lat: e.overlay.position.lat,
+ item: item,
+ });
+ });
+ this.tagLayer.addOverlay(divIcon);
+ if (!this.leftNavData[0].flag) {
+ this.tagLayer.show = false;
+ }
+ });
+ });
+ },
+ addIcons() {
+ if (this.closeMapClick) {
+ //若正在加标签,退出
+ return;
+ }
+ //加标签
+ console.log("addIcons", "see");
+ this.$store.dispatch("chouseAddIconsLayerIcon", {
+ //新增标签 选定位置
+ viewer: this.viewer,
+ fn: (lnglat) => {
+ //返回选定坐标
+ console.log(lnglat, "see");
+ //添加空白标签
+ this.$store.dispatch("addIconsLayerIcon", {
+ lnglat: lnglat,
+ viewer: this.viewer,
+ });
+ },
+ });
+ },
generatePosition(num) {
const list = [];
for (let i = 0; i < num; i++) {
@@ -165,7 +244,10 @@
);
//订阅事件
divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
- console.log(item);
+ if (that.closeMapClick) {
+ return;
+ }
+ // console.log(item, "see11111");
that.openPopups({
lng: e.overlay.position.lng,
lat: e.overlay.position.lat,
@@ -388,6 +470,7 @@
),
],
});
+ // console.log(value, "see");
this.$store.dispatch("setOurDataInPoput", value);
this.$store.dispatch("pcFlyView", {
jd: value.lng,
@@ -444,4 +527,12 @@
}
}
}
+.addIcons {
+ span {
+ font-size: 25px !important;
+ }
+}
+.avtiveAddIcons {
+ background-color: aqua;
+}
</style>
--
Gitblit v1.9.3