liuyg
2022-03-02 e7c6c4eecddae9515b0cd1be68335690843df3d1
+自定义标签的添加和删除
6 files modified
1 files added
629 ■■■■■ changed files
src/api/pc/label.js 33 ●●●●● patch | view | raw | blame | history
src/components/map/components/mapPopup.vue 412 ●●●●● patch | view | raw | blame | history
src/components/mobileActivity/index.vue 2 ●●● patch | view | raw | blame | history
src/pcviews/tool/sign.vue 130 ●●●●● patch | view | raw | blame | history
src/router/axios.js 1 ●●●● patch | view | raw | blame | history
src/store/getters.js 4 ●●● patch | view | raw | blame | history
src/store/modules/popupParams.js 47 ●●●●● patch | view | raw | blame | history
src/api/pc/label.js
New file
@@ -0,0 +1,33 @@
/*
 * @Author: Morpheus
 * @Date: 2021-05-09 15:17:44
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-12-14 08:58:30
 */
// 党群机构
import request from '@/router/axios'
export const setlabel = (data) => {
    return request({
        url: 'tagging/tagging/save',
        method: 'post',
        data: data
    })
}
export const getlabel = () => {
    return request({
        url: 'tagging/tagging/list',
        method: 'get',
    })
}
export const deletelabel = (id) => {
    return request({
        url: 'tagging/tagging/remove',
        method: 'post',
        params: {
            ids: id
        }
    })
}
src/components/map/components/mapPopup.vue
@@ -2,7 +2,7 @@
    <div>
        <div id="map_popup_content">
            <div v-if="detailsPopup" class="divForms-dom" id="divFormsDomBox">
                <div style="width: 100%; height: 100%;">
        <div style="width: 100%; height: 100%">
                    <div class="divForms divForms-theme">
                        <div class="divForms-wrap">
                            <div class="area">
@@ -78,9 +78,7 @@
                                                    v-show="panoramaUrl != null && panoramaUrl != ''"
                                                    @click="panoramaClick"
                                                >
                                                    <i
                                                        class="popup-icon live-action-nav deblurring"
                                                    ></i>
                          <i class="popup-icon live-action-nav deblurring"></i>
                                                    实景
                                                </li>
                                                <!-- v-show="panoramaUrl != null && panoramaUrl != ''" -->
@@ -99,12 +97,16 @@
                                                    v-show="teachList.length > 0"
                                                    :class="{ on: tabBtnFlag == '教学科研行政' }"
                                                    @click="tabBtnClick('教学科研行政')"
                                                >教学科研行政</li>
                        >
                          教学科研行政
                        </li>
                                                <li
                                                    v-show="liveList.length > 0"
                                                    :class="{ on: tabBtnFlag == '生活服务' }"
                                                    @click="tabBtnClick('生活服务')"
                                                >生活服务</li>
                        >
                          生活服务
                        </li>
                                            </ul>
                                            <div class="btm-content">
                                                <div :class="{ on: tabBtnFlag == '教学科研行政' }">
@@ -155,7 +157,7 @@
                :class="{'change-full': fullscreen}"
                id="PanoramaBox"
            >
                <div style="width: 100%; height: 100%;">
        <div style="width: 100%; height: 100%">
                    <div class="panorama-container">
                        <div class="panorama-wrap">
                            <div
@@ -193,7 +195,7 @@
            </div>
            <div v-if="monitorPopup" class="monitor-dom" id="MonitorBox">
                <div style="width: 100%; height: 100%;">
        <div style="width: 100%; height: 100%">
                    <div class="monitor-container">
                        <div class="monitor-wrap">
                            <div class="content-wrap">
@@ -217,7 +219,7 @@
            </div>
            <div v-if="addTagPopup" class="divForms-dom" id="AddTagBox">
                <div style="width: 100%; height: 100%;">
        <div style="width: 100%; height: 100%">
                    <div class="divForms divForms-theme">
                        <div class="divForms-wrap">
                            <div class="area">
@@ -239,10 +241,15 @@
                                    </div>
                                    <div class="add-tag-content">
                                        <div>
                                            <el-input v-model="addTagName" placeholder="请输入标签名称"></el-input>
                      <el-input
                        v-model="addTagName"
                        placeholder="请输入标签名称"
                      ></el-input>
                                        </div>
                                        <div>
                                            <el-button type="primary" @click="createTag">生成标记</el-button>
                      <el-button type="primary" @click="createTag"
                        >生成标记</el-button
                      >
                                        </div>
                                    </div>
                                </div>
@@ -264,21 +271,31 @@
            :modal-append-to-body="false"
            width="44%"
        >
            <div style="margin: 0; position: relative; width: 100%; height: 352px;">
      <div style="margin: 0; position: relative; width: 100%; height: 352px">
                <img
                    width="260"
                    :src="pupupQRUrl"
                    alt
                    style="position: absolute;
          style="
            position: absolute;
                    top: 0;
                    left: 0;
                    right: 0;
                    bottom: 0;
                    margin: auto"
            margin: auto;
          "
                />
                <div
                    style="position: absolute; bottom: 0; width: 100%; line-height: 36px; text-align: center;"
                >(右键另存为图片)</div>
          style="
            position: absolute;
            bottom: 0;
            width: 100%;
            line-height: 36px;
            text-align: center;
          "
        >
          (右键另存为图片)
        </div>
            </div>
        </el-dialog>
@@ -293,322 +310,349 @@
</template>
<script>
import { mapGetters } from 'vuex'
import { getMechanismDetail } from '@/api/pc/public/arc'
import { mapGetters } from "vuex";
import { getMechanismDetail } from "@/api/pc/public/arc";
import { setlabel } from "@/api/pc/label";
export default {
    name: 'mapPopup',
  name: "mapPopup",
    data () {
        return {
            DC: null,
            tabBtnFlag: '教学科研行政',
      tabBtnFlag: "教学科研行政",
            QRCodeFlag: false,
            audioSource: '',
      audioSource: "",
            audioFlag: false,
            audioCourse: false,
            audioSynth: null,
            audioMsg: null,
            fullscreen: false,
            fullScreenUrl: '/img/icon/bigScreen.png',
            addTagName: '',
            addTagLayer: null
        }
      fullScreenUrl: "/img/icon/bigScreen.png",
      addTagName: "",
      addTagLayer: null,
    };
    },
    computed: {
        ...mapGetters([
            'viewer',
            'popupBgUrl',
            'pupupQRUrl',
      "viewer",
      "popupBgUrl",
      "pupupQRUrl",
            // 终点
            'terminus',
      "terminus",
            // 起点
            'startingPoint',
      "startingPoint",
            // 点信息
            'pointPosition',
      "pointPosition",
            // 点名称
            'stateName',
      "stateName",
            // 地址
            'siteName',
      "siteName",
            // 电话
            'telephone',
      "telephone",
            // 介绍
            'introduceText',
      "introduceText",
            // 详情弹框显示关闭
            'detailsPopup',
      "detailsPopup",
            // 全景地址
            'panoramaUrl',
      "panoramaUrl",
            // 全景弹框显示关闭
            'panoramaPopup',
      "panoramaPopup",
            // 监控地址
            'monitorUrl',
      "monitorUrl",
            // 监控弹框显示关闭
            'monitorPopup',
      "monitorPopup",
            'popupImgAtlas',
      "popupImgAtlas",
            // 教学
            'teachList',
      "teachList",
            // 科研
            'liveList',
      "liveList",
            // 社区内导航的显示关闭
            'campusNavFlag',
            'addTagPopup',
            'addTagPosition'
        ])
      "campusNavFlag",
      "addTagPopup",
      "addTagPosition",
    ]),
    },
    created () {
        this.DC = global.DC
    this.DC = global.DC;
        this.audioSynth = window.speechSynthesis
        this.audioMsg = new window.SpeechSynthesisUtterance()
    this.audioSynth = window.speechSynthesis;
    this.audioMsg = new window.SpeechSynthesisUtterance();
        this.audioMsg.onend = function () {
            this.audioSynth.cancel()
            this.audioFlag = false
            this.audioCourse = false
        }
      this.audioSynth.cancel();
      this.audioFlag = false;
      this.audioCourse = false;
    };
    },
    mounted () {
    },
  mounted() {},
    watch: {
        introduceText: {
            immediate: true,
            handler (newQuestion, oldQuestion) {
                this.audioSource = newQuestion
        this.audioSource = newQuestion;
                if (this.audioFlag == true) {
                    this.audioSynth.cancel()
                    this.audioFlag = false
                    this.audioCourse = false
          this.audioSynth.cancel();
          this.audioFlag = false;
          this.audioCourse = false;
                }
            }
      },
        },
        teachList: {
            immediate: true,
            handler (newCode, oldCode) {
                if (newCode.length > 0) {
                    this.tabBtnFlag = '教学科研行政'
          this.tabBtnFlag = "教学科研行政";
                }
            }
      },
        },
        liveList: {
            immediate: true,
            handler (newCode, oldCode) {
                if (newCode.length > 0 && this.teachList.length == 0) {
                    this.tabBtnFlag = '生活服务'
          this.tabBtnFlag = "生活服务";
                }
            }
      },
        },
        detailsPopup: {
            immediate: true,
            handler (newCode, oldCode) {
                if (newCode == false) {
                    this.audioSynth.cancel()
                    this.audioFlag = false
                    this.audioCourse = false
          this.audioSynth.cancel();
          this.audioFlag = false;
          this.audioCourse = false;
                } else {
                    if (this.audioFlag == true) {
                        this.audioSynth.cancel()
                        this.audioFlag = false
                        this.audioCourse = false
            this.audioSynth.cancel();
            this.audioFlag = false;
            this.audioCourse = false;
                    }
                }
            }
        }
      },
    },
    },
    methods: {
        screen () {
            if (this.fullscreen) {
                this.fullScreenUrl = '/img/icon/bigScreen.png'
                this.fullscreen = !this.fullscreen
        this.fullScreenUrl = "/img/icon/bigScreen.png";
        this.fullscreen = !this.fullscreen;
                document.getElementById('pcElHeader').style.zIndex = 9999
        document.getElementById("pcElHeader").style.zIndex = 9999;
            } else {
                this.fullScreenUrl = '/img/icon/smallScreen.png'
                this.fullscreen = !this.fullscreen
        this.fullScreenUrl = "/img/icon/smallScreen.png";
        this.fullscreen = !this.fullscreen;
                document.getElementById('pcElHeader').style.zIndex = 9
        document.getElementById("pcElHeader").style.zIndex = 9;
            }
        },
        tabBtnClick (param) {
            this.tabBtnFlag = param
      this.tabBtnFlag = param;
        },
        comeHereClick () {
            this.$store.commit('SET_COMENAME', this.stateName)
            this.$store.commit('SET_TERMINUS', this.pointPosition)
      this.$store.commit("SET_COMENAME", this.stateName);
      this.$store.commit("SET_TERMINUS", this.pointPosition);
            if (this.campusNavFlag == false) {
                this.$store.commit('SET_CAMPUSNAVFLAG', true)
        this.$store.commit("SET_CAMPUSNAVFLAG", true);
            }
        },
        getToHereClick () {
            this.$store.commit('SET_GETTONAME', this.stateName)
            this.$store.commit('SET_STARTINGPOINT', this.pointPosition)
      this.$store.commit("SET_GETTONAME", this.stateName);
      this.$store.commit("SET_STARTINGPOINT", this.pointPosition);
            if (this.campusNavFlag == false) {
                this.$store.commit('SET_CAMPUSNAVFLAG', true)
        this.$store.commit("SET_CAMPUSNAVFLAG", true);
            }
        },
        qrCodeClick () {
            this.QRCodeFlag = true
      this.QRCodeFlag = true;
        },
        imgsClick () {
            this.$refs.popupImgs.clickHandler()
      this.$refs.popupImgs.clickHandler();
        },
        panoramaClick () {
            if (this.audioFlag == true) {
                this.audioSynth.cancel()
                this.audioFlag = false
                this.audioCourse = false
        this.audioSynth.cancel();
        this.audioFlag = false;
        this.audioCourse = false;
            }
            // eslint-disable-next-line new-cap
            var positions = this.DC.Transform.transformWGS84ToCartesian(
                // eslint-disable-next-line new-cap
                new this.DC.Position.fromArray(this.pointPosition)
            )
            this.viewer.scene.globe.depthTestAgainstTerrain = false
      );
      this.viewer.scene.globe.depthTestAgainstTerrain = false;
            // eslint-disable-next-line no-unused-vars
            var panorama = new this.DC.PanoramaBox(this.viewer, {
                domId: 'PanoramaBox',
                position: [positions]
            })
        domId: "PanoramaBox",
        position: [positions],
      });
            this.$store.commit('SET_DETAILSPOPUP', false)
            this.$store.commit('SET_MONITORPOPUP', false)
            this.$store.commit('SET_PANORAMAPOPUP', true)
      this.$store.commit("SET_DETAILSPOPUP", false);
      this.$store.commit("SET_MONITORPOPUP", false);
      this.$store.commit("SET_PANORAMAPOPUP", true);
        },
        monitorClick () {
            if (this.audioFlag == true) {
                this.audioSynth.cancel()
                this.audioFlag = false
                this.audioCourse = false
        this.audioSynth.cancel();
        this.audioFlag = false;
        this.audioCourse = false;
            }
            // eslint-disable-next-line new-cap
            var positions = this.DC.Transform.transformWGS84ToCartesian(
                // eslint-disable-next-line new-cap
                new this.DC.Position.fromArray(this.pointPosition)
            )
            this.viewer.scene.globe.depthTestAgainstTerrain = false
      );
      this.viewer.scene.globe.depthTestAgainstTerrain = false;
            // eslint-disable-next-line no-unused-vars
            var monitor = new this.DC.PanoramaBox(this.viewer, {
                domId: 'MonitorBox',
                position: [positions]
            })
            this.$store.commit('SET_PANORAMAPOPUP', false)
            this.$store.commit('SET_DETAILSPOPUP', false)
            this.$store.commit('SET_MONITORPOPUP', true)
        domId: "MonitorBox",
        position: [positions],
      });
      this.$store.commit("SET_PANORAMAPOPUP", false);
      this.$store.commit("SET_DETAILSPOPUP", false);
      this.$store.commit("SET_MONITORPOPUP", true);
        },
        closeMapPopupBox () {
            if (this.audioFlag == true) {
                this.audioSynth.cancel()
                this.audioFlag = false
                this.audioCourse = false
        this.audioSynth.cancel();
        this.audioFlag = false;
        this.audioCourse = false;
            }
            this.$store.commit('SET_DETAILSPOPUP', false)
      this.$store.commit("SET_DETAILSPOPUP", false);
        },
        // 新增标记相关事件
        closeAddTagBox () {
            this.$store.commit('SET_ADDTAGPOPUP', false)
      this.$store.commit("SET_ADDTAGPOPUP", false);
        },
        createTag () {
            var that = this
      var that = this;
            console.log(this.RemoveTheBlank(this.addTagName))
      //   console.log(this.RemoveTheBlank(this.addTagName));
            if (this.RemoveTheBlank(this.addTagName) == '') {
                this.$message('请输入标签名称')
                return
      if (this.RemoveTheBlank(this.addTagName) == "") {
        this.$message("请输入标签名称");
        return;
            }
            this.$store.commit('SET_ADDTAGPOPUP', false)
      this.$store.commit("SET_ADDTAGPOPUP", false);
            if (this.addTagLayer == null) {
                this.addTagLayer = new this.DC.HtmlLayer('addTagLayer')
                this.viewer.addLayer(this.addTagLayer)
      //   if (this.addTagLayer == null) {
      //     this.addTagLayer = new this.DC.HtmlLayer("addTagLayer");
      //     this.viewer.addLayer(this.addTagLayer);
      //   }
      //2022.3.2对接接口
      // 新增标签
      let data = {
        name: this.RemoveTheBlank(this.addTagName),
        jd: this.addTagPosition.lng,
        wd: this.addTagPosition.lat,
      };
      //   console.log(data);
      setlabel(data).then((res) => {
        console.log(res);
        if (res.data.code == 200) {
          doit();
          that.$message({
            message: "新增标签成功",
            type: "success",
          });
        } else {
          that.$message({
            message: "新增标签失败",
            type: "warning",
          });
            }
            const divIcon = new this.DC.DivIcon(
                new that.DC.Position(Number(that.addTagPosition.lng), Number(that.addTagPosition.lat), 0),
                `
                        <div class="tag-entitys-box">
                            <div class="tag-content">
                                ${that.addTagName}
                            </div>
                            <div class="tag-angle-content">
                                <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
                            </div>
                        </div>
                    `
            )
            this.addTagName = ''
            this.addTagLayer.addOverlay(divIcon)
        that.addTagName = "";
      });
      let doit = () => {
        that.$store.commit("addLabelLayerIcon", { list: [data], add: true });
        // const divIcon = new this.DC.DivIcon(
        //   new that.DC.Position(
        //     Number(that.addTagPosition.lng),
        //     Number(that.addTagPosition.lat),
        //     0
        //   ),
        //   `
        //                 <div class="tag-entitys-box">
        //                     <div class="tag-content">
        //                         ${that.addTagName}
        //                     </div>
        //                     <div class="tag-angle-content">
        //                         <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
        //                     </div>
        //                 </div>
        //             `
        // );
        // this.addTagLayer.addOverlay(divIcon);
      };
        },
        closePanoramaPopupBox () {
            this.$store.commit('SET_PANORAMAURL', '')
            this.$store.commit('SET_PANORAMAPOPUP', false)
      this.$store.commit("SET_PANORAMAURL", "");
      this.$store.commit("SET_PANORAMAPOPUP", false);
        },
        closeMonitorPopupBox () {
            this.$store.commit('SET_MONITORURL', '')
            this.$store.commit('SET_MONITORPOPUP', false)
      this.$store.commit("SET_MONITORURL", "");
      this.$store.commit("SET_MONITORPOPUP", false);
        },
        audioPlay () {
            if (this.audioFlag == false) {
                this.audioMsg.text = this.audioSource
                this.audioSynth.speak(this.audioMsg)
                this.audioFlag = true
                this.audioCourse = true
        this.audioMsg.text = this.audioSource;
        this.audioSynth.speak(this.audioMsg);
        this.audioFlag = true;
        this.audioCourse = true;
            } else {
                if (this.audioCourse == true) {
                    this.audioSynth.pause()
                    this.audioCourse = false
          this.audioSynth.pause();
          this.audioCourse = false;
                } else {
                    this.audioSynth.resume()
                    this.audioCourse = true
          this.audioSynth.resume();
          this.audioCourse = true;
                }
            }
        },
        mechanismDetailPopup (num, param) {
            getMechanismDetail({ num: num, mechanismName: param }).then((res) => {
                var result = res.data.data
                this.$store.commit('CLEAR_ALL', null)
        var result = res.data.data;
        this.$store.commit("CLEAR_ALL", null);
                var imgArr = result.tpurl.split(',')
        var imgArr = result.tpurl.split(",");
                this.$store.commit('SET_POPUPBGURL', imgArr[0])
                this.$store.commit('SET_POPUPQRURL', result.codeurl)
                this.$store.commit('SET_POINTPOSITION', [
        this.$store.commit("SET_POPUPBGURL", imgArr[0]);
        this.$store.commit("SET_POPUPQRURL", result.codeurl);
        this.$store.commit("SET_POINTPOSITION", [
                    Number(result.jd),
                    Number(result.wd),
                    Number(result.gd),
                    Number(result.heading),
                    Number(result.pitch),
                    Number(result.roll)
                ])
                this.$store.commit('SET_STATENAME', result.mechanismname)
                this.$store.commit('SET_SITENAME', result.address)
                this.$store.commit('SET_TELEPHONE', result.telephone)
                this.$store.commit('SET_INTRODUCETEXT', result.introduce)
                this.$store.commit('SET_POPUPIMGATLAS', imgArr)
          Number(result.roll),
        ]);
        this.$store.commit("SET_STATENAME", result.mechanismname);
        this.$store.commit("SET_SITENAME", result.address);
        this.$store.commit("SET_TELEPHONE", result.telephone);
        this.$store.commit("SET_INTRODUCETEXT", result.introduce);
        this.$store.commit("SET_POPUPIMGATLAS", imgArr);
                if (result.videourl && result.videourl != '') {
                    this.$store.commit('SET_MONITORURL', result.videourl)
        if (result.videourl && result.videourl != "") {
          this.$store.commit("SET_MONITORURL", result.videourl);
                }
                this.newPopup(result)
        this.newPopup(result);
                this.viewer.flyToPosition(
                    new this.DC.Position(
                        Number(result.jd),
@@ -620,33 +664,33 @@
                    ),
                    function () { },
                    3
                )
            })
        );
      });
        },
        newPopup (item) {
            const position = this.DC.Transform.transformWGS84ToCartesian(
                new this.DC.Position(Number(item.jd), Number(item.wd), Number(item.gd))
            )
      );
            // eslint-disable-next-line no-unused-vars
            var popup = new this.DC.DivForms(this.viewer, {
                domId: 'divFormsDomBox',
                position: [position]
            })
        domId: "divFormsDomBox",
        position: [position],
      });
            this.$store.commit('SET_PANORAMAPOPUP', false)
            this.$store.commit('SET_MONITORPOPUP', false)
            this.$store.commit('SET_DETAILSPOPUP', true)
      this.$store.commit("SET_PANORAMAPOPUP", false);
      this.$store.commit("SET_MONITORPOPUP", false);
      this.$store.commit("SET_DETAILSPOPUP", true);
        },
        /**
        * 删除左右两端的空格
        */
        RemoveTheBlank (str) {
            return str.replace(/(^\s*)|(\s*$)/g, '')
        }
    }
}
      return str.replace(/(^\s*)|(\s*$)/g, "");
    },
  },
};
</script>
<style></style>
src/components/mobileActivity/index.vue
@@ -167,7 +167,7 @@
            fn: function (res) {
              that.height = +res.height;
              that.bottom = +res.height + 15;
              console.log(+res.height, "=======");
              // console.log(+res.height, "=======");
              if (res.state != "on") {
                that.openValue = res.state;
              }
src/pcviews/tool/sign.vue
@@ -12,8 +12,14 @@
                <ul v-show="signList.length > 0">
                    <li v-for="(item, index) in signList" :key="index">
                        <img src="/img/icon/sign-list.png" alt />
                        我得标记
                        <el-button type="danger" size="mini" icon="el-icon-delete" circle></el-button>
            {{ item.name }}
            <el-button
              type="danger"
              size="mini"
              icon="el-icon-delete"
              circle
              @click="deleteIcon(item.id)"
            ></el-button>
                    </li>
                </ul>
                <div v-show="signList.length == 0" class="no-data">
@@ -22,84 +28,126 @@
                </div>
            </div>
            <div class="btn-box">
                <el-button type="primary" size="mini" @click.stop="addSign">新增</el-button>
        <el-button type="primary" size="mini" @click.stop="addSign"
          >新增</el-button
        >
            </div>
        </template>
    </public-box>
</template>
<script>
import { mapGetters } from 'vuex'
import { mapGetters } from "vuex";
import { getlabel, deletelabel } from "@/api/pc/label";
export default {
    data () {
        return {
            DC: null,
            signList: [],
            destroyedFlag: true
        }
      destroyedFlag: true,
    };
    },
    computed: {
        ...mapGetters(['viewer'])
    ...mapGetters(["viewer", "addSignList"]),
    },
    mounted () {
    this.$store.commit("initLabelLayer", this.viewer);
    this.getData();
  },
  watch: {
    addSignList() {
      this.getData();
    },
    },
    methods: {
        moveMessage (e, b) {
            if (b == '') {
                this.viewer.tooltip.enable = false
    deleteIcon(id) {
      let that = this;
      deletelabel(id).then((res) => {
        console.log(res);
        if (res.data.code == 200) {
          that.$message({
            message: "删除标签成功",
            type: "success",
          });
            } else {
                this.viewer.tooltip.enable = true
                this.viewer.tooltip.showAt(e.windowPosition, b)
          that.$message({
            message: "删除标签失败",
            type: "warning",
          });
        }
        that.getData();
      });
    },
    getData() {
      let that = this;
      getlabel().then((res) => {
        console.log(res);
        const data = res.data.data.records;
        that.signList = data;
        // that.$store.commit("clearLabelLayerIcon");
        that.$store.commit("addLabelLayerIcon", { list: data, clear: true });
      });
    },
    moveMessage(e, b) {
      if (b == "") {
        this.viewer.tooltip.enable = false;
      } else {
        this.viewer.tooltip.enable = true;
        this.viewer.tooltip.showAt(e.windowPosition, b);
            }
        },
        addSign () {
            var that = this
            that.DC = global.DC
      var that = this;
      that.DC = global.DC;
            that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) => that.moveMessage(e, '点击确认标注位置'))
      that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) =>
        that.moveMessage(e, "点击确认标注位置")
      );
            that.viewer.once(that.DC.MouseEventType.CLICK, (e) => {
                if (that.destroyedFlag == false) return
        if (that.destroyedFlag == false) return;
                that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) => that.moveMessage(e, ''))
        that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) =>
          that.moveMessage(e, "")
        );
                // eslint-disable-next-line no-unused-vars
                const popup = new this.DC.DivForms(this.viewer, {
                    domId: 'AddTagBox',
                    position: [that.DC.Transform.transformWGS84ToCartesian(
          domId: "AddTagBox",
          position: [
            that.DC.Transform.transformWGS84ToCartesian(
                        new that.DC.Position(
                            Number(
                                e.wgs84SurfacePosition.lng
                            ),
                            Number(
                                e.wgs84SurfacePosition.lat
                            ),
                            Number(
                                e.wgs84SurfacePosition.alt
                Number(e.wgs84SurfacePosition.lng),
                Number(e.wgs84SurfacePosition.lat),
                Number(e.wgs84SurfacePosition.alt)
                            )
                        )
                    )]
                })
            ),
          ],
        });
                that.$store.commit('SET_ADDTAGPOSITION', e.wgs84SurfacePosition)
                that.$store.commit('SET_ADDTAGPOPUP', true)
            })
        that.$store.commit("SET_ADDTAGPOSITION", e.wgs84SurfacePosition);
        that.$store.commit("SET_ADDTAGPOPUP", true);
      });
        },
        closeModel () {
            this.$store.dispatch('delVisitedViews', this.$route)
            this.$router.push('/pcLayout/default')
        }
      this.$store.dispatch("delVisitedViews", this.$route);
      this.$router.push("/pcLayout/default");
      this.$store.commit("clearLabelLayerIcon");
    },
    },
    destroyed () {
        var that = this
        that.destroyedFlag = false
        that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) => that.moveMessage(e, ''))
    var that = this;
    that.destroyedFlag = false;
    if (that.DC) {
      that.viewer.on(that.DC.MouseEventType.MOUSE_MOVE, (e) =>
        that.moveMessage(e, "")
      );
    }
}
  },
};
</script>
<style lang="scss" scoped>
src/router/axios.js
@@ -15,6 +15,7 @@
const service = axios.create({
  //   baseURL: 'http://192.168.0.107:83',
  // baseURL: "http://192.168.0.107:80",
  // baseURL: "http://192.168.0.110:80", //唐
  baseURL: "http://171.34.197.243:790", //正常接口
  // baseURL: "https://6e78efa6.cpolar.io/apis", //https接口
  // baseURL: url, //https接口
src/store/getters.js
@@ -77,7 +77,9 @@
    teachList: (state) => state.popupParams.teachList,
    liveList: (state) => state.popupParams.liveList,
    addTagPopup: (state) => state.popupParams.addTagPopup,
    addTagPosition: (state) => state.popupParams.addTagPosition
    addTagPosition: (state) => state.popupParams.addTagPosition,
    addSignList: (state) => state.popupParams.addSignList
}
export default getters
src/store/modules/popupParams.js
@@ -19,7 +19,10 @@
        teachList: [],
        liveList: [],
        addTagPopup: false,
        addTagPosition: null
        addTagPosition: null,
        labelLayer: null, //自定义标签图层
        addSignList: true,
    },
    mutations: {
        SET_POPUPBGURL (state, popupBgUrl) {
@@ -81,6 +84,48 @@
        SET_ADDTAGPOSITION (state, addTagPosition) {
            state.addTagPosition = addTagPosition
        },
        initLabelLayer(state, val) {
            if (!state.labelLayer) {
                state.labelLayer = new global.DC.HtmlLayer("labelLayer");
                val.addLayer(state.labelLayer);
            }
        },
        addLabelLayerIcon(state, val) {
            let list = val.list;
            if (val.clear) {
                //     state.labelLayer.remove();
                state.labelLayer.clear();
            }
            if (val.add) { //刷新列表
                state.addSignList = !state.addSignList;
            }
            for (let i in list) {
                console.log(list[i], 112233)
                const divIcon = new global.DC.DivIcon(
                    new global.DC.Position(
                        Number(list[i].jd),
                        Number(list[i].wd),
                        0
                    ),
                    `
                              <div class="tag-entitys-box">
                                  <div class="tag-content">
                                      ${list[i].name}
                                  </div>
                                  <div class="tag-angle-content">
                                      <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
                                  </div>
                              </div>
                          `
                );
                state.labelLayer.addOverlay(divIcon);
            }
        },
        clearLabelLayerIcon(state, val) {
            if (state.labelLayer) {
                state.labelLayer.clear();
            }
        },
        CLEAR_ALL (state, param) {
            state.siteName = param