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/map/components/dimension.vue                 |    2 
 src/components/orgNavBar/index.vue                          |  224 +++--
 src/store/modules/popupParams.js                            |   17 
 src/styles/divforms/divForms.scss                           |   89 ++
 src/components/arcNavBar/index.vue                          |  370 +++++----
 src/components/mobileCortrolButtom/index.vue                |    2 
 src/router/axios.js                                         |    6 
 src/store/modules/mobile.js                                 |   25 
 src/components/map/components/mapPopupOther/leftNavsAdd.vue |   25 
 src/components/mobilemap/index.vue                          |  126 ++
 src/components/leftNav/index.vue                            |   99 ++
 src/components/searchDetails/index.vue                      |  561 ++++++++-------
 src/store/getters.js                                        |    3 
 src/components/map/components/mapPopup.vue                  |  411 +++++++++++
 src/App.vue                                                 |   12 
 src/store/modules/pc/leftNavsData.js                        |  131 +++
 src/api/pc/leftNav/index.js                                 |    9 
 17 files changed, 1,517 insertions(+), 595 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index 1ae163c..3b2336b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,5 +1,5 @@
 <template>
-  <div id="app">
+  <div id="app" :class="{ cantdoit: cantdoits }">
     <router-view></router-view>
   </div>
 </template>
@@ -12,6 +12,7 @@
     return {
       //   consoles: 1,
       //   consoles1: 1,
+      cantdoits: false,
     };
   },
   mounted() {
@@ -61,6 +62,7 @@
     //     JSON.stringify(d)
     // );
     if (this._isMobile()) {
+      this.cantdoits = true;
       // 手机端
       this.$router.replace("/mobileLayout");
 
@@ -156,4 +158,12 @@
   width: 100%;
   height: 100%;
 }
+.cantdoit * {
+  -webkit-touch-callout: none !important; /*系统默认菜单被禁用*/
+  -webkit-user-select: none !important; /*webkit浏览器*/
+  -khtml-user-select: none !important; /*早期浏览器*/
+  -moz-user-select: none !important; /*火狐*/
+  -ms-user-select: none !important; /*IE10*/
+  user-select: none !important;
+}
 </style>
diff --git a/src/api/pc/leftNav/index.js b/src/api/pc/leftNav/index.js
index e94cec4..728cc37 100644
--- a/src/api/pc/leftNav/index.js
+++ b/src/api/pc/leftNav/index.js
@@ -46,3 +46,12 @@
         params: params
     })
 }
+
+
+export const add = (row) => {
+    return request({
+        url: '/blade-architecture/architecture/save',
+        method: 'post',
+        data: row
+    })
+}
\ No newline at end of file
diff --git a/src/components/arcNavBar/index.vue b/src/components/arcNavBar/index.vue
index a20fda2..85fe83c 100644
--- a/src/components/arcNavBar/index.vue
+++ b/src/components/arcNavBar/index.vue
@@ -1,188 +1,212 @@
 <template>
-    <public-box class="public-org-nav-bar">
-        <template slot="public-box-header">
-            <div class="title">
-                <img class="icon deblurring" src="/img/icon/xyjz.png" alt />
-                <span>{{arcNavBarTitle}}</span>
-            </div>
-            <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
-        </template>
-        <template slot="public-box-content">
-            <div class="tab" v-show="false">
-                <ul>
-                    <li
-                        :class="{'on': item.flag}"
-                        v-for="(item, index) in titleList"
-                        :key="index"
-                        @click="topNavClick(item, index)"
-                    >{{ item.title }}</li>
-                </ul>
-            </div>
-            <ul>
-                <li v-for="(item, index) in itemNavList" :key="index" @click="mapPopup(item)">
-                    <img :src="item.icon" alt />
-                    <span>{{item.navTitle}}</span>
-                </li>
-            </ul>
-        </template>
-    </public-box>
+  <public-box class="public-org-nav-bar">
+    <template slot="public-box-header">
+      <div class="title">
+        <img class="icon deblurring" src="/img/icon/xyjz.png" alt />
+        <span>{{ arcNavBarTitle }}</span>
+      </div>
+      <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
+    </template>
+    <template slot="public-box-content">
+      <div class="tab" v-show="false">
+        <ul>
+          <li
+            :class="{ on: item.flag }"
+            v-for="(item, index) in titleList"
+            :key="index"
+            @click="topNavClick(item, index)"
+          >
+            {{ item.title }}
+          </li>
+        </ul>
+      </div>
+      <ul>
+        <li
+          v-for="(item, index) in itemNavList"
+          :key="index"
+          @click="mapPopup(item)"
+        >
+          <img :src="item.icon" alt />
+          <span>{{ item.navTitle }}</span>
+        </li>
+      </ul>
+    </template>
+  </public-box>
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
-import { getList, getChildNavList, getChildNavDetail } from '@/api/pc/public/arc'
+import { mapGetters } from "vuex";
+import {
+  getList,
+  getChildNavList,
+  getChildNavDetail,
+} from "@/api/pc/public/arc";
 
 export default {
-    name: 'ArcNavBar',
-    data () {
-        return {
-            itemNavList: [],
-            titleList: [],
-            DC: null
+  name: "ArcNavBar",
+  data() {
+    return {
+      itemNavList: [],
+      titleList: [],
+      DC: null,
+    };
+  },
+  props: {},
+  computed: {
+    ...mapGetters([
+      "viewer",
+      "popupBgUrl",
+      "pupupQRUrl",
+      // 点信息
+      "pointPosition",
+      // 点名称
+      "stateName",
+      // 地址
+      "siteName",
+      // 介绍
+      "introduceText",
+      // 全景地址
+      "panoramaUrl",
+      "arcNavBarTitle",
+      "arcNavBarCode",
+    ]),
+  },
+  created() {
+    this.DC = global.DC;
+  },
+  mounted() {},
+  watch: {
+    arcNavBarCode: {
+      immediate: true,
+      handler(newCode, oldCode) {
+        this.titleList = [];
+        getList().then((res) => {
+          res.data.data.forEach((item) => {
+            this.titleList.push({
+              title: item.dictValue,
+              flag: false,
+              key: item.dictKey,
+            });
+          });
+
+          this.titleList[0].flag = true;
+
+          this.getChilsNavs(this.titleList[0].key);
+        });
+      },
+    },
+  },
+  methods: {
+    topNavClick(item, index) {
+      this.titleList.forEach((item) => {
+        item.flag = false;
+      });
+
+      this.titleList[index].flag = true;
+
+      this.getChilsNavs(item.key);
+    },
+
+    getChilsNavs(campus) {
+      this.itemNavList = [];
+
+      getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(
+        (res) => {
+          res.data.data.forEach((item) => {
+            this.itemNavList.push({
+              navTitle: item.mechanismname,
+              icon: "/img/navicon/tag.png",
+              id: item.id,
+            });
+          });
         }
+      );
     },
-    props: {
 
-    },
-    computed: {
-        ...mapGetters([
-            'viewer',
-            'popupBgUrl',
-            'pupupQRUrl',
-            // 点信息
-            'pointPosition',
-            // 点名称
-            'stateName',
-            // 地址
-            'siteName',
-            // 介绍
-            'introduceText',
-            // 全景地址
-            'panoramaUrl',
-            'arcNavBarTitle',
-            'arcNavBarCode'
-        ])
-    },
-    created () {
-        this.DC = global.DC
-    },
-    mounted () {
+    mapPopup(param) {
+      getChildNavDetail({ id: param.id }).then((res) => {
+        var result = res.data.data[0].list;
+        this.$store.commit("CLEAR_ALL", null);
 
-    },
-    watch: {
-        arcNavBarCode: {
-            immediate: true,
-            handler (newCode, oldCode) {
-                this.titleList = []
-                getList().then(res => {
-                    res.data.data.forEach(item => {
-                        this.titleList.push({ title: item.dictValue, flag: false, key: item.dictKey })
-                    })
+        var imgArr = result.tpurl.split(",");
 
-                    this.titleList[0].flag = true
-
-                    this.getChilsNavs(this.titleList[0].key)
-                })
-            }
+        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_PANORAMAURL", result.panoramaurl);
+        this.$store.commit("SET_POPUPIMGATLAS", imgArr);
+        if (result.videourl && result.videourl != "") {
+          this.$store.commit("SET_MONITORURL", result.videourl);
         }
-    },
-    methods: {
-        topNavClick (item, index) {
-            this.titleList.forEach(item => {
-                item.flag = false
-            })
-
-            this.titleList[index].flag = true
-
-            this.getChilsNavs(item.key)
-        },
-
-        getChilsNavs (campus) {
-            this.itemNavList = []
-
-            getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(res => {
-                res.data.data.forEach(item => {
-                    this.itemNavList.push({
-                        navTitle: item.mechanismname,
-                        icon: '/img/navicon/tag.png',
-                        id: item.id
-                    })
-                })
-            })
-        },
-
-        mapPopup (param) {
-            getChildNavDetail({ id: param.id }).then(res => {
-                var result = res.data.data[0].list
-                this.$store.commit('CLEAR_ALL', null)
-
-                var imgArr = result.tpurl.split(',')
-
-                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_PANORAMAURL', result.panoramaurl)
-                this.$store.commit('SET_POPUPIMGATLAS', imgArr)
-                if (result.videourl && result.videourl != '') {
-                    this.$store.commit('SET_MONITORURL', result.videourl)
-                }
-                if (res.data.data[0].jx != undefined && res.data.data[0].jx != '') {
-                    var tabOne = res.data.data[0].jx.split(',')
-                    this.$store.commit('SET_TEACHLIST', tabOne)
-                } else {
-                    this.$store.commit('SET_TEACHLIST', [])
-                }
-
-                if (res.data.data[0].sh != undefined && res.data.data[0].sh != '') {
-                    var tabTwo = res.data.data[0].sh.split(',')
-                    this.$store.commit('SET_LIVELIST', tabTwo)
-                } else {
-                    this.$store.commit('SET_LIVELIST', [])
-                }
-
-                this.newPopup(result)
-                this.viewer.flyToPosition(
-                    new this.DC.Position(Number(result.jd), Number(result.wd), 300, Number(result.heading), Number(result.pitch), Number(result.roll)),
-                    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
-                ]
-            })
-
-            this.$store.commit('SET_PANORAMAPOPUP', false)
-            this.$store.commit('SET_MONITORPOPUP', false)
-            this.$store.commit('SET_DETAILSPOPUP', true)
-        },
-
-        closeModel () {
-            var path = this.$route.path
-            if (path.indexOf('/arc') != -1) {
-                this.$store.dispatch('delVisitedViews', this.$route)
-                this.$router.push('/pcLayout/default')
-            }
-
-            this.$store.commit('SET_ARCNAVBARTITLE', '')
-            this.$store.commit('SET_ARCNAVBARCODE', '')
-            this.$store.commit('SET_ARCNAVBARFLAG', false)
+        if (res.data.data[0].jx != undefined && res.data.data[0].jx != "") {
+          var tabOne = res.data.data[0].jx.split(",");
+          this.$store.commit("SET_TEACHLIST", tabOne);
+        } else {
+          this.$store.commit("SET_TEACHLIST", []);
         }
-    }
-}
+
+        if (res.data.data[0].sh != undefined && res.data.data[0].sh != "") {
+          var tabTwo = res.data.data[0].sh.split(",");
+          this.$store.commit("SET_LIVELIST", tabTwo);
+        } else {
+          this.$store.commit("SET_LIVELIST", []);
+        }
+
+        this.newPopup(result);
+        this.viewer.flyToPosition(
+          new this.DC.Position(
+            Number(result.jd),
+            Number(result.wd),
+            300,
+            Number(result.heading),
+            Number(result.pitch),
+            Number(result.roll)
+          ),
+          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],
+      });
+
+      this.$store.commit("SET_PANORAMAPOPUP", false);
+      this.$store.commit("SET_MONITORPOPUP", false);
+      this.$store.commit("SET_DETAILSPOPUP", true);
+    },
+
+    closeModel() {
+      var path = this.$route.path;
+      if (path.indexOf("/arc") != -1) {
+        this.$store.dispatch("delVisitedViews", this.$route);
+        this.$router.push("/pcLayout/default");
+      }
+
+      this.$store.commit("SET_ARCNAVBARTITLE", "");
+      this.$store.commit("SET_ARCNAVBARCODE", "");
+      this.$store.commit("SET_ARCNAVBARFLAG", false);
+    },
+  },
+};
 </script>
 
-<style scoped lang='scss'>
-</style>
+<style scoped lang="scss"></style>
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>
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index cea1467..11319a6 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -178,7 +178,7 @@
               }).then((res) => {
                 if (res && JSON.stringify(res.data.data) != "{}") {
                   var result = res.data.data;
-
+                  console.log("see9994");
                   var imgArr = result.tpurl.split(",");
                   this.$store.commit("SET_POPUPBGURL", imgArr[0]);
                   this.$store.commit("SET_POPUPQRURL", result.codeurl);
diff --git a/src/components/map/components/mapPopup.vue b/src/components/map/components/mapPopup.vue
index f1a6e25..c29b7c8 100644
--- a/src/components/map/components/mapPopup.vue
+++ b/src/components/map/components/mapPopup.vue
@@ -301,6 +301,116 @@
           </div>
         </div>
       </div>
+      <!-- 新增编辑标签 -->
+      <div v-if="addIconsLayerIconPopup" class="monitor-dom" id="leftNavsAdd">
+        <div style="width: 100%; height: 100%">
+          <div class="divForms divForms-theme">
+            <div class="divForms-wrap">
+              <div class="area">
+                <div class="arrow-lt"></div>
+                <div class="b-t"></div>
+                <div class="b-r"></div>
+                <div class="b-b"></div>
+                <div class="b-l"></div>
+                <div class="arrow-rb"></div>
+                <div class="label-wrap">
+                  <div class="title">
+                    <el-input
+                      v-model="addIconFromcolumn[0].value"
+                      placeholder="请输入标签名称"
+                      class="addIconFromInput"
+                    >
+                      <template slot="prepend">标题:</template
+                      ><i
+                        slot="suffix"
+                        class="el-icon-edit el-input__icon addIconFromInputicon"
+                      ></i>
+                    </el-input>
+                    <img
+                      @click="closeaddIconsLayerIconPopup"
+                      class="close-box"
+                      src="/img/navicon/close.png"
+                      alt
+                    />
+                  </div>
+                  <div class="add-tag-content">
+                    <div class="addIconsLayer">
+                      <div
+                        :class="[
+                          'addIconsLayerinimgs',
+                          ourImages.length > 3 ? 'isOverImgs' : '',
+                        ]"
+                      >
+                        <!-- action="https://jsonplaceholder.typicode.com/posts/" -->
+                        <el-upload
+                          :action="
+                            apiUrls +
+                            '/blade-resource/oss/endpoint/put-files-talk'
+                          "
+                          list-type="picture-card"
+                          :on-preview="handlePictureCardPreview"
+                          :on-remove="handleRemove"
+                          :on-success="onsuccess"
+                        >
+                          <i class="el-icon-plus"></i>
+                        </el-upload>
+                        <el-dialog
+                          :visible.sync="dialogVisible"
+                          :modal-append-to-body="false"
+                          :append-to-body="true"
+                        >
+                          <img width="100%" :src="dialogImageUrl" alt="" />
+                        </el-dialog>
+                      </div>
+                      <div
+                        class="addIconsLayerin"
+                        v-for="(item, index) in addIconFromcolumn"
+                        :key="index"
+                        v-show="index != 0"
+                      >
+                        <el-input
+                          v-model="item.value"
+                          :placeholder="'请输入' + item.label"
+                          class="addIconFromInput"
+                          :disabled="index == 2 || index == 3"
+                        >
+                          <template slot="prepend">{{ item.label }}:</template>
+                        </el-input>
+
+                        <el-dropdown
+                          v-show="index == 2 || index == 3"
+                          @command="chouseAddicon"
+                        >
+                          <span class="el-dropdown-link">
+                            <i class="el-icon-arrow-down el-icon--right"></i>
+                          </span>
+                          <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item
+                              v-for="(itemc, indexc) in item.chouse"
+                              :key="indexc"
+                              :command="{ index: index, indexc: indexc }"
+                              >{{ itemc.value }}</el-dropdown-item
+                            >
+                            <!-- @click="chouseAddicon(index, indexc)" -->
+                          </el-dropdown-menu>
+                        </el-dropdown>
+                      </div>
+                    </div>
+                    <div class="addIconsLayerBut">
+                      <el-button type="primary" @click="saveIconsLayer"
+                        >保存标签</el-button
+                      >
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <div class="b-t-l"></div>
+              <div class="b-b-r"></div>
+            </div>
+            <div class="arrow"></div>
+          </div>
+        </div>
+      </div>
     </div>
 
     <!-- 二维码弹框相关 -->
@@ -353,11 +463,22 @@
 import { mapGetters } from "vuex";
 import { getMechanismDetail } from "@/api/pc/public/arc";
 import { setlabel } from "@/api/pc/label";
+import { add } from "@/api/pc/leftNav/index";
+
+import leftNavsAdd from "./mapPopupOther/leftNavsAdd.vue";
 
 export default {
   name: "mapPopup",
+  components: {
+    leftNavsAdd,
+  },
   data() {
+    let apiUrls = window.$apiUrls;
     return {
+      ourImages: [],
+      dialogImageUrl: "",
+      dialogVisible: false,
+      apiUrls: $apiUrls,
       DC: null,
       tabBtnFlag: "教学科研行政",
       QRCodeFlag: false,
@@ -370,6 +491,212 @@
       fullScreenUrl: "/img/icon/bigScreen.png",
       addTagName: "",
       addTagLayer: null,
+      addIconFromcolumn: [
+        //顺序不要随便换
+        {
+          label: "名称",
+          prop: "mechanismname",
+          value: "",
+        },
+        {
+          label: "电话",
+          prop: "telephone",
+          value: "",
+        },
+        {
+          label: "所属建筑",
+          prop: "type",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=building",
+          props: {
+            label: "dictValue",
+            value: "dictKey",
+          },
+          value: "红旗校区",
+          valueid: "1",
+          chouse: [
+            {
+              id: "1",
+              value: "红旗校区",
+            },
+            {
+              id: "2",
+              value: "黄河路",
+            },
+            {
+              id: "3",
+              value: "科学园",
+            },
+            {
+              id: "4",
+              value: "土木楼",
+            },
+            {
+              id: "5",
+              value: "三江校区",
+            },
+          ],
+        },
+        {
+          label: "所属社区",
+          searchLabelWidth: "110",
+          value: "行政办公",
+          valueid: "1",
+          prop: "campus",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=campus",
+          chouse: [
+            {
+              id: "1",
+              value: "行政办公",
+            },
+            {
+              id: "2",
+              value: "教学科研",
+            },
+            {
+              id: "3",
+              value: "社区场馆",
+            },
+            {
+              id: "4",
+              value: "学生宿舍",
+            },
+            {
+              id: "5",
+              value: "文化风景",
+            },
+            {
+              id: "6",
+              value: "家属住宅",
+            },
+            {
+              id: "7",
+              value: "主要楼宇",
+            },
+          ],
+        },
+
+        {
+          label: "介绍",
+          prop: "introduce",
+          value: "",
+          component: "AvueUeditor",
+          options: {
+            action: "/api/blade-resource/oss/endpoint/put-file",
+            props: {
+              res: "data",
+              url: "link",
+            },
+          },
+          hide: true,
+          minRows: 5,
+          span: 24,
+        },
+        {
+          label: "地址",
+          hide: true,
+          prop: "address",
+          value: "",
+        },
+        {
+          label: "全景地址",
+          prop: "panoramaurl",
+          value: "",
+        },
+        {
+          label: "监控地址",
+          hide: true,
+          prop: "videourl",
+          value: "",
+        },
+        {
+          label: "网站地址",
+          prop: "websiteurl",
+          value: "",
+        },
+        {
+          label: "经度",
+          prop: "jd",
+          value: "",
+          rules: [
+            {
+              required: true,
+              message: "请输入经度",
+              trigger: "blur",
+            },
+          ],
+        },
+        {
+          label: "纬度",
+          prop: "wd",
+          value: "",
+          rules: [
+            {
+              required: true,
+              message: "请输入纬度",
+              trigger: "blur",
+            },
+          ],
+        },
+        {
+          label: "偏航角",
+          addDisplay: false,
+          hide: true,
+          prop: "heading",
+          value: 0,
+        },
+        {
+          label: "俯仰角",
+          addDisplay: false,
+          hide: true,
+          prop: "pitch",
+          value: -90,
+        },
+        {
+          label: "翻转角",
+          addDisplay: false,
+          hide: true,
+          prop: "roll",
+          value: 0,
+        },
+
+        {
+          label: "高度",
+          hide: true,
+          addDisplay: false,
+          prop: "gd",
+          value: 0,
+        },
+
+        // {
+        //   label: "图片",
+        //   prop: "tpurl",
+        //   value: "",
+        //   // dataType: 'string',
+        //   type: "upload",
+        //   propsHttp: {
+        //     res: "data",
+        //     url: "link",
+        //   },
+        //   span: 10,
+        //   listType: "picture-card",
+        //   tip: "只能上传jpg/png文件,且不超过500kb",
+        //   action: "/api/blade-resource/oss/endpoint/put-file",
+        // },
+        // {
+        //   label: "二维码",
+        //   prop: "codeurl",
+        //   value: "",
+        //   type: "upload",
+        //   listType: "picture-card",
+        //   //dataType: 'string',
+        //   action: "/api/blade-resource/oss/endpoint/put-file",
+        //   propsHttp: {
+        //     res: "data",
+        //     url: "link",
+        //   },
+        //   span: 10,
+        // },
+      ],
     };
   },
   computed: {
@@ -414,6 +741,8 @@
       //自定义标签弹窗
       "labelLayerDataShow",
       "nowlabelLayerData",
+      "addIconsLayerIconPopup", //自定义标签编辑窗口
+      "addIconsLayerIconPosition", //自定义标签坐标
     ]),
   },
   created() {
@@ -430,6 +759,28 @@
   },
   mounted() {},
   watch: {
+    addIconsLayerIconPopup() {
+      if (this.addIconsLayerIconPopup) {
+        this.addIconFromcolumn[9].value = this.addIconsLayerIconPosition[0];
+        this.addIconFromcolumn[10].value = this.addIconsLayerIconPosition[1];
+      } else {
+        for (let k in this.addIconFromcolumn) {
+          if (k == 2) {
+            this.addIconFromcolumn[k].value = "红旗校区";
+            this.addIconFromcolumn[k].valueid = "1";
+            continue;
+          }
+          if (k == 3) {
+            this.addIconFromcolumn[k].value = "行政办公";
+            this.addIconFromcolumn[k].valueid = "1";
+            continue;
+          }
+          this.addIconFromcolumn[k].value = "";
+        }
+        this.ourImages = [];
+        this.$store.commit("set_closeMapClick", false); //开启其他操作
+      }
+    },
     addTagPopup() {
       if (!this.addTagPopup) {
         // console.log("取消", "see");
@@ -481,6 +832,66 @@
     },
   },
   methods: {
+    onsuccess(response, file, fileList) {
+      this.ourImages = fileList;
+    },
+    handleRemove(file, fileList) {
+      this.ourImages = fileList;
+    },
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+    },
+    chouseAddicon(item) {
+      this.addIconFromcolumn[item.index].value =
+        this.addIconFromcolumn[item.index].chouse[item.indexc].value;
+      this.addIconFromcolumn[item.index].valueid =
+        this.addIconFromcolumn[item.index].chouse[item.indexc].id;
+    },
+    closeaddIconsLayerIconPopup() {
+      this.$store.commit("SET_addIconsLayerIconPopup", false);
+    },
+    saveIconsLayer() {
+      var imgs = [];
+      // console.log("see", this.ourImages);
+      // return;
+      for (var k in this.ourImages) {
+        imgs.push(this.ourImages[k].response);
+      }
+      let d = {
+        tpurl: imgs.join(","),
+        mechanismname: this.addIconFromcolumn[0].value,
+        telephone: this.addIconFromcolumn[1].value,
+        type: this.addIconFromcolumn[2].valueid,
+        campus: this.addIconFromcolumn[3].valueid,
+        introduce: this.addIconFromcolumn[4].value,
+        address: this.addIconFromcolumn[5].value,
+        panoramaurl: this.addIconFromcolumn[6].value,
+        videourl: this.addIconFromcolumn[7].value,
+        websiteurl: this.addIconFromcolumn[8].value,
+        jd: this.addIconFromcolumn[9].value,
+        wd: this.addIconFromcolumn[10].value,
+        heading: this.addIconFromcolumn[11].value,
+        pitch: this.addIconFromcolumn[12].value,
+        roll: this.addIconFromcolumn[13].value,
+        gd: this.addIconFromcolumn[14].value,
+      };
+      // console.log(d, "see3");
+      // return;
+      // this.$store.commit("set_closeMapClick", false); //开启其他操作
+      add(d).then(
+        () => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.closeaddIconsLayerIconPopup();
+        },
+        (error) => {
+          window.console.log(error);
+        }
+      );
+    },
     screen() {
       if (this.fullscreen) {
         this.fullScreenUrl = "/img/icon/bigScreen.png";
diff --git a/src/components/map/components/mapPopupOther/leftNavsAdd.vue b/src/components/map/components/mapPopupOther/leftNavsAdd.vue
new file mode 100644
index 0000000..a261e40
--- /dev/null
+++ b/src/components/map/components/mapPopupOther/leftNavsAdd.vue
@@ -0,0 +1,25 @@
+<template>
+  <div style="width: 100%; height: 100%">
+    <div class="monitor-container">
+      <div class="monitor-wrap">
+        <div class="content-wrap">
+          <div class="title">
+            <!-- {{ stateName }} -->
+            <!-- @click="closeMonitorPopupBox" -->
+            <img class="close-box" src="/img/navicon/close.png" alt />
+          </div>
+          <div class="content">123</div>
+        </div>
+      </div>
+      <div class="arrow"></div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "leftNavsAdd",
+};
+</script>
+
+<style></style>
diff --git a/src/components/mobileCortrolButtom/index.vue b/src/components/mobileCortrolButtom/index.vue
index 8f91546..5381441 100644
--- a/src/components/mobileCortrolButtom/index.vue
+++ b/src/components/mobileCortrolButtom/index.vue
@@ -63,7 +63,7 @@
   },
   created() {
     this.DC = global.DC;
-    this.getStreet();
+    // this.getStreet();
   },
   mounted() {},
   methods: {
diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index 7a3821e..4d2bb22 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -93,7 +93,14 @@
       towlayerNum: 120,
       threelayerNum: 160,
       forlayerNum: 200,
+      intervallayerNum: 20,
       frislayertHeight: 160, //默认高度
+      // onelayerNum: 80,
+      // towlayerNum: 200,
+      // threelayerNum: 320,
+      // forlayerNum: 440,
+      // intervallayerNum: 60,
+      // frislayertHeight: 320, //默认高度
     };
   },
   computed: {
@@ -333,7 +340,7 @@
           },
           duration: 0.5, // 定位的时间间隔
         });
-        overii();
+        // overii();
       };
       that.butbut = function () {
         //放大
@@ -356,18 +363,18 @@
               // if (height > 100) {
               //   butSetViews(80);
               // }
-              if (height > 180) {
-                butSetViews(160);
+              if (height > that.forlayerNum - that.intervallayerNum) {
+                butSetViews(that.threelayerNum);
                 return;
               }
 
-              if (height > 140) {
-                butSetViews(120);
+              if (height > that.threelayerNum - that.intervallayerNum) {
+                butSetViews(that.towlayerNum);
                 return;
               }
 
-              if (height > 100) {
-                butSetViews(80);
+              if (height > that.towlayerNum - that.intervallayerNum) {
+                butSetViews(that.onelayerNum);
               }
             }
           };
@@ -380,16 +387,34 @@
               );
               console.log(height);
 
-              if (height <= 100) {
-                butSetViews(120);
+              // if (height <= 100) {
+              //   butSetViews(120);
+              // }
+
+              // if (height > 100 && height <= 140) {
+              //   butSetViews(160);
+              // }
+
+              // if (height > 140 && height < 180) {
+              //   butSetViews(200);
+              // }
+
+              if (height <= that.towlayerNum - that.intervallayerNum) {
+                butSetViews(that.towlayerNum);
               }
 
-              if (height > 100 && height <= 140) {
-                butSetViews(160);
+              if (
+                height > that.towlayerNum - that.intervallayerNum &&
+                height <= that.threelayerNum - that.intervallayerNum
+              ) {
+                butSetViews(that.threelayerNum);
               }
 
-              if (height > 140 && height < 180) {
-                butSetViews(200);
+              if (
+                height > that.threelayerNum - that.intervallayerNum &&
+                height < that.forlayerNum - that.intervallayerNum
+              ) {
+                butSetViews(that.forlayerNum);
               }
             }
           };
@@ -432,7 +457,7 @@
             ii++;
             cutHeight = height - startHeight;
             // console.log(cutHeight);
-            // console.log(height);
+            console.log(height, "see");
             that.heights = height;
             that.heights1 = cutHeight;
             // return;
@@ -451,29 +476,66 @@
             let takes = () => {
               if (ii != 1) {
                 if (cutHeight >= 0) {
-                  if (cutHeight > 3) {
-                    if (height >= 83 && height < 120) {
-                      setViews(120);
+                  if (cutHeight > 2) {
+                    // if (height >= 83 && height < 120) {
+                    //   setViews(120);
+                    // }
+                    // if (height >= 123 && height < 160) {
+                    //   setViews(160);
+                    // }
+                    // if (height >= 163 && height < 200) {
+                    //   setViews(200);
+                    // }
+                    if (
+                      height >= that.onelayerNum + 2 &&
+                      height < that.towlayerNum
+                    ) {
+                      setViews(that.towlayerNum);
                     }
-                    if (height >= 123 && height < 160) {
-                      setViews(160);
+                    if (
+                      height >= that.towlayerNum + 2 &&
+                      height < that.threelayerNum
+                    ) {
+                      setViews(that.threelayerNum);
                     }
-                    if (height >= 163 && height < 200) {
-                      setViews(200);
+                    if (
+                      height >= that.threelayerNum + 2 &&
+                      height < that.forlayerNum
+                    ) {
+                      setViews(that.forlayerNum);
                     }
                   }
                   //放大
                 } else {
                   //缩小
-                  if (cutHeight < -3) {
-                    if (height <= 200 && height > 157) {
-                      setViews(160);
+                  // if (cutHeight < -3) {
+                  //   if (height <= 200 && height > 157) {
+                  //     setViews(160);
+                  //   }
+                  //   if (height <= 157 && height > 117) {
+                  //     setViews(120);
+                  //   }
+                  //   if (height <= 117 && height > 80) {
+                  //     setViews(80);
+                  //   }
+                  if (cutHeight < -2) {
+                    if (
+                      height <= that.forlayerNum &&
+                      height > that.threelayerNum - 2
+                    ) {
+                      setViews(that.threelayerNum);
                     }
-                    if (height <= 157 && height > 117) {
-                      setViews(120);
+                    if (
+                      height <= that.threelayerNum - 2 &&
+                      height > that.towlayerNum - 2
+                    ) {
+                      setViews(that.towlayerNum);
                     }
-                    if (height <= 117 && height > 80) {
-                      setViews(80);
+                    if (
+                      height <= that.towlayerNum - 2 &&
+                      height > that.onelayerNum
+                    ) {
+                      setViews(that.onelayerNum);
                     }
                   }
                 }
@@ -969,6 +1031,11 @@
       //判断默认维度
       //原本默认是2.5d  改为3d默认时做出改变
       if (that.dimension == "2.5D") {
+        that.$store.commit("set_frislayertHeight", that.frislayertHeight); //送入默认弹窗高度
+        that.$store.commit("set_zoomRange", [
+          that.onelayerNum,
+          that.forlayerNum,
+        ]); //送入移动端缩放范围
         that.$store.commit("MSET_DIMENSION", "2.5D"); //切换2.5D设置
       } else if (that.dimension == "3D") {
         // setTimeout((res) => {
@@ -1082,8 +1149,9 @@
       that.$store.dispatch("setMobileWindows", d);
     },
     flytos(jd, wd) {
+      let height = this.frislayertHeight;
       this.$store.dispatch("mapFlyTo", {
-        lntLat: [jd, wd, 120], //114.04020791, 27.62934732
+        lntLat: [jd, wd, height], //114.04020791, 27.62934732
         heading: 0,
         pitch: -90,
         roll: 0,
diff --git a/src/components/orgNavBar/index.vue b/src/components/orgNavBar/index.vue
index 2b58e5b..41dfded 100644
--- a/src/components/orgNavBar/index.vue
+++ b/src/components/orgNavBar/index.vue
@@ -1,113 +1,133 @@
 <template>
-    <public-box class="public-org-nav-bar">
-        <template slot="public-box-header">
-            <div class="title">
-                <img class="icon deblurring" src="/img/icon/jg.png" alt />
-                <span>{{orgNavBarTitle}}</span>
-            </div>
-            <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
-        </template>
-        <template slot="public-box-content">
-            <ul>
-                <li v-for="(item, index) in orgNavBarList" :key="index" @click="mapPopup(item)">
-                    <img :src="item.icon" alt />
-                    <span>{{item.navTitle}}</span>
-                </li>
-            </ul>
-        </template>
-    </public-box>
+  <public-box class="public-org-nav-bar">
+    <template slot="public-box-header">
+      <div class="title">
+        <img class="icon deblurring" src="/img/icon/jg.png" alt />
+        <span>{{ orgNavBarTitle }}</span>
+      </div>
+      <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
+    </template>
+    <template slot="public-box-content">
+      <ul>
+        <li
+          v-for="(item, index) in orgNavBarList"
+          :key="index"
+          @click="mapPopup(item)"
+        >
+          <img :src="item.icon" alt />
+          <span>{{ item.navTitle }}</span>
+        </li>
+      </ul>
+    </template>
+  </public-box>
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
+import { mapGetters } from "vuex";
 
 export default {
-    name: 'OrgNavBar',
-    data () {
-        return {
-            DC: null
-        }
+  name: "OrgNavBar",
+  data() {
+    return {
+      DC: null,
+    };
+  },
+  created() {
+    this.DC = global.DC;
+  },
+  computed: {
+    ...mapGetters([
+      "viewer",
+      "popupBgUrl",
+      "pupupQRUrl",
+      // 点信息
+      "pointPosition",
+      // 点名称
+      "stateName",
+      // 地址
+      "siteName",
+      // 介绍
+      "introduceText",
+      // 全景地址
+      "panoramaUrl",
+      "orgNavBarList",
+      "orgNavBarTitle",
+    ]),
+  },
+  methods: {
+    mapPopup(item) {
+      this.$store.commit("CLEAR_ALL", null);
+
+      var imgArr = item.bgImg.split(",");
+
+      this.$store.commit("SET_POPUPBGURL", imgArr[0]);
+      this.$store.commit("SET_POPUPQRURL", item.QRImg);
+      this.$store.commit("SET_POINTPOSITION", [
+        Number(item.longitude),
+        Number(item.latitude),
+        Number(item.alt),
+        Number(item.heading),
+        Number(item.pitch),
+        Number(item.roll),
+      ]);
+      this.$store.commit("SET_STATENAME", item.navTitle);
+      this.$store.commit("SET_SITENAME", item.address);
+      this.$store.commit("SET_TELEPHONE", item.telephone);
+      this.$store.commit("SET_INTRODUCETEXT", item.introduce);
+      this.$store.commit("SET_POPUPIMGATLAS", imgArr);
+      if (item.videourl && item.videourl != "") {
+        this.$store.commit("SET_MONITORURL", item.videourl);
+      }
+
+      this.newPopup(item);
+      this.viewer.flyToPosition(
+        new this.DC.Position(
+          Number(item.longitude),
+          Number(item.latitude),
+          300,
+          Number(item.heading),
+          Number(item.pitch),
+          Number(item.roll)
+        ),
+        function () {},
+        3
+      );
     },
-    created () {
-        this.DC = global.DC
+
+    newPopup(item) {
+      const position = this.DC.Transform.transformWGS84ToCartesian(
+        new this.DC.Position(
+          Number(item.longitude),
+          Number(item.latitude),
+          Number(item.alt)
+        )
+      );
+      // eslint-disable-next-line no-unused-vars
+      var popup = new this.DC.DivForms(this.viewer, {
+        domId: "divFormsDomBox",
+        position: [position],
+      });
+
+      this.$store.commit("SET_PANORAMAPOPUP", false);
+      this.$store.commit("SET_MONITORPOPUP", false);
+      this.$store.commit("SET_DETAILSPOPUP", true);
     },
-    computed: {
-        ...mapGetters([
-            'viewer',
-            'popupBgUrl',
-            'pupupQRUrl',
-            // 点信息
-            'pointPosition',
-            // 点名称
-            'stateName',
-            // 地址
-            'siteName',
-            // 介绍
-            'introduceText',
-            // 全景地址
-            'panoramaUrl',
-            'orgNavBarList',
-            'orgNavBarTitle'
-        ])
+
+    closeModel() {
+      var path = this.$route.path;
+      if (path.indexOf("/orgnav") != -1) {
+        this.$store.dispatch("delVisitedViews", this.$route);
+        this.$router.push("/pcLayout/default");
+      }
+
+      this.$store.commit("SET_ORGNAVBARTITLE", "");
+
+      this.$store.commit("SET_ORGNAVBARFLAG", false);
+
+      this.$store.commit("SET_ORGNAVBARLIST", []);
     },
-    methods: {
-        mapPopup (item) {
-            this.$store.commit('CLEAR_ALL', null)
-
-            var imgArr = item.bgImg.split(',')
-
-            this.$store.commit('SET_POPUPBGURL', imgArr[0])
-            this.$store.commit('SET_POPUPQRURL', item.QRImg)
-            this.$store.commit('SET_POINTPOSITION', [Number(item.longitude), Number(item.latitude), Number(item.alt), Number(item.heading), Number(item.pitch), Number(item.roll)])
-            this.$store.commit('SET_STATENAME', item.navTitle)
-            this.$store.commit('SET_SITENAME', item.address)
-            this.$store.commit('SET_TELEPHONE', item.telephone)
-            this.$store.commit('SET_INTRODUCETEXT', item.introduce)
-            this.$store.commit('SET_POPUPIMGATLAS', imgArr)
-            if (item.videourl && item.videourl != '') {
-                this.$store.commit('SET_MONITORURL', item.videourl)
-            }
-
-            this.newPopup(item)
-            this.viewer.flyToPosition(
-                new this.DC.Position(Number(item.longitude), Number(item.latitude), 300, Number(item.heading), Number(item.pitch), Number(item.roll)),
-                function () {
-                },
-                3
-            )
-        },
-
-        newPopup (item) {
-            const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.longitude), Number(item.latitude), Number(item.alt)))
-            // eslint-disable-next-line no-unused-vars
-            var popup = new this.DC.DivForms(this.viewer, {
-                domId: 'divFormsDomBox',
-                position: [
-                    position
-                ]
-            })
-
-            this.$store.commit('SET_PANORAMAPOPUP', false)
-            this.$store.commit('SET_MONITORPOPUP', false)
-            this.$store.commit('SET_DETAILSPOPUP', true)
-        },
-
-        closeModel () {
-            var path = this.$route.path
-            if (path.indexOf('/orgnav') != -1) {
-                this.$store.dispatch('delVisitedViews', this.$route)
-                this.$router.push('/pcLayout/default')
-            }
-
-            this.$store.commit('SET_ORGNAVBARTITLE', '')
-
-            this.$store.commit('SET_ORGNAVBARFLAG', false)
-
-            this.$store.commit('SET_ORGNAVBARLIST', [])
-        }
-    }
-}
+  },
+};
 </script>
 
-<style scoped lang='scss'>
-</style>
+<style scoped lang="scss"></style>
diff --git a/src/components/searchDetails/index.vue b/src/components/searchDetails/index.vue
index 0beb881..cea0c09 100644
--- a/src/components/searchDetails/index.vue
+++ b/src/components/searchDetails/index.vue
@@ -1,292 +1,317 @@
 <template>
-    <div class="search-nav-bar" ref="searchNavBar">
-        <div class="container">
-            <div class="header" @mousedown="move" :class="{'move': moveFlag}">
-                <div class="title">
-                    <img class="icon deblurring" src="/img/icon/search.png" alt />
-                    <span>查询结果</span>
-                </div>
-                <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
-            </div>
-            <div class="content">
-                <ul>
-                    <li
-                        v-for="(item, index) in searchPopupList"
-                        :key="index"
-                        @click="mapPopup(item)"
-                    >
-                        <img src="/img/navicon/tag.png" alt />
-                        <span>{{item.mechanismname}}</span>
-                    </li>
-                </ul>
-            </div>
+  <div class="search-nav-bar" ref="searchNavBar">
+    <div class="container">
+      <div class="header" @mousedown="move" :class="{ move: moveFlag }">
+        <div class="title">
+          <img class="icon deblurring" src="/img/icon/search.png" alt />
+          <span>查询结果</span>
         </div>
+        <img
+          class="close"
+          src="/img/navicon/close.png"
+          alt
+          @click="closeModel"
+        />
+      </div>
+      <div class="content">
+        <ul>
+          <li
+            v-for="(item, index) in searchPopupList"
+            :key="index"
+            @click="mapPopup(item)"
+          >
+            <img src="/img/navicon/tag.png" alt />
+            <span>{{ item.mechanismname }}</span>
+          </li>
+        </ul>
+      </div>
     </div>
+  </div>
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
+import { mapGetters } from "vuex";
 
 export default {
-    name: 'searchDetails',
-    data () {
-        return {
-            moveFlag: false,
-            DC: null
+  name: "searchDetails",
+  data() {
+    return {
+      moveFlag: false,
+      DC: null,
+    };
+  },
+  created() {
+    this.DC = global.DC;
+  },
+  computed: {
+    ...mapGetters([
+      "viewer",
+      "popupBgUrl",
+      "pupupQRUrl",
+      // 点信息
+      "pointPosition",
+      // 点名称
+      "stateName",
+      // 地址
+      "siteName",
+      // 介绍
+      "introduceText",
+      // 全景地址
+      "panoramaUrl",
+      "searchPopupList",
+    ]),
+  },
+  methods: {
+    move(e) {
+      const that = this;
+      const odiv = this.$refs.searchNavBar; // 获取目标元素
+      // 算出鼠标相对元素的位置
+      const disX = e.clientX - odiv.offsetLeft;
+      const disY = e.clientY - odiv.offsetTop;
+
+      const disH = odiv.offsetHeight;
+      const disW = odiv.offsetWidth;
+
+      document.onmousemove = (e) => {
+        that.moveFlag = true;
+        // 鼠标按下并移动的事件
+        // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
+        let left = e.clientX - disX;
+        let top = e.clientY - disY;
+
+        // 绑定元素位置到positionX和positionY上面
+
+        if (left >= window.innerWidth - disW) {
+          left = window.innerWidth - disW;
         }
-    },
-    created () {
-        this.DC = global.DC
-    },
-    computed: {
-        ...mapGetters([
-            'viewer',
-            'popupBgUrl',
-            'pupupQRUrl',
-            // 点信息
-            'pointPosition',
-            // 点名称
-            'stateName',
-            // 地址
-            'siteName',
-            // 介绍
-            'introduceText',
-            // 全景地址
-            'panoramaUrl',
-            'searchPopupList'
-        ])
-    },
-    methods: {
-        move (e) {
-            const that = this
-            const odiv = this.$refs.searchNavBar // 获取目标元素
-            // 算出鼠标相对元素的位置
-            const disX = e.clientX - odiv.offsetLeft
-            const disY = e.clientY - odiv.offsetTop
 
-            const disH = odiv.offsetHeight
-            const disW = odiv.offsetWidth
-
-            document.onmousemove = (e) => {
-                that.moveFlag = true
-                // 鼠标按下并移动的事件
-                // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
-                let left = e.clientX - disX
-                let top = e.clientY - disY
-
-                // 绑定元素位置到positionX和positionY上面
-
-                if (left >= window.innerWidth - disW) {
-                    left = window.innerWidth - disW
-                }
-
-                if (left <= 0) {
-                    left = 0
-                }
-
-                if (top >= window.innerHeight - disH) {
-                    top = window.innerHeight - disH
-                }
-
-                if (top <= 60) {
-                    top = 60
-                }
-
-                // 移动当前元素
-                odiv.style.left = (left) + 'px'
-                odiv.style.top = (top) + 'px'
-                odiv.style.bottom = 'auto'
-            }
-            document.onmouseup = (e) => {
-                that.moveFlag = false
-                document.onmousemove = null
-                document.onmouseup = null
-            }
-        },
-
-        mapPopup (item) {
-            this.$store.commit('CLEAR_ALL', null)
-
-            var imgArr = item.tpurl.split(',')
-
-            this.$store.commit('SET_POPUPBGURL', imgArr[0])
-            this.$store.commit('SET_POPUPQRURL', item.codeurl)
-            this.$store.commit('SET_POINTPOSITION', [Number(item.jd), Number(item.wd), Number(item.gd), Number(item.heading), Number(item.pitch), Number(item.roll)])
-            this.$store.commit('SET_STATENAME', item.mechanismname)
-            this.$store.commit('SET_SITENAME', item.address)
-            this.$store.commit('SET_TELEPHONE', item.telephone)
-            this.$store.commit('SET_INTRODUCETEXT', item.introduce)
-            this.$store.commit('SET_PANORAMAURL', item.panoramaurl)
-            this.$store.commit('SET_POPUPIMGATLAS', imgArr)
-            if (item.videourl && item.videourl != '') {
-                this.$store.commit('SET_MONITORURL', item.videourl)
-            }
-            if (item.jx != undefined && item.jx != '') {
-                var tabOne = item.jx.split(',')
-                this.$store.commit('SET_TEACHLIST', tabOne)
-            } else {
-                this.$store.commit('SET_TEACHLIST', [])
-            }
-
-            if (item.sh != undefined && item.sh != '') {
-                var tabTwo = item.sh.split(',')
-                this.$store.commit('SET_LIVELIST', tabTwo)
-            } else {
-                this.$store.commit('SET_LIVELIST', [])
-            }
-
-            this.newPopup(item)
-            this.viewer.flyToPosition(
-                new this.DC.Position(Number(item.jd), Number(item.wd), Number(300), Number(item.heading), Number(item.pitch), Number(item.roll)),
-                function () {
-                },
-                3
-            )
-        },
-
-        newPopup (item) {
-            const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.jd), Number(item.wd), Number(item.gd), Number(item.heading), Number(item.pitch), Number(item.roll)))
-            // eslint-disable-next-line no-unused-vars
-            var popup = new this.DC.DivForms(this.viewer, {
-                domId: 'divFormsDomBox',
-                position: [
-                    position
-                ]
-            })
-
-            this.$store.commit('SET_PANORAMAPOPUP', false)
-            this.$store.commit('SET_MONITORPOPUP', false)
-            this.$store.commit('SET_DETAILSPOPUP', true)
-        },
-
-        closeModel () {
-            this.$store.commit('SET_SEARCHPOPUPFLAG', false)
-
-            this.$store.commit('SET_SEARCHPOPUPLIST', [])
+        if (left <= 0) {
+          left = 0;
         }
-    }
-}
+
+        if (top >= window.innerHeight - disH) {
+          top = window.innerHeight - disH;
+        }
+
+        if (top <= 60) {
+          top = 60;
+        }
+
+        // 移动当前元素
+        odiv.style.left = left + "px";
+        odiv.style.top = top + "px";
+        odiv.style.bottom = "auto";
+      };
+      document.onmouseup = (e) => {
+        that.moveFlag = false;
+        document.onmousemove = null;
+        document.onmouseup = null;
+      };
+    },
+
+    mapPopup(item) {
+      this.$store.commit("CLEAR_ALL", null);
+
+      var imgArr = item.tpurl.split(",");
+
+      this.$store.commit("SET_POPUPBGURL", imgArr[0]);
+      this.$store.commit("SET_POPUPQRURL", item.codeurl);
+      this.$store.commit("SET_POINTPOSITION", [
+        Number(item.jd),
+        Number(item.wd),
+        Number(item.gd),
+        Number(item.heading),
+        Number(item.pitch),
+        Number(item.roll),
+      ]);
+      this.$store.commit("SET_STATENAME", item.mechanismname);
+      this.$store.commit("SET_SITENAME", item.address);
+      this.$store.commit("SET_TELEPHONE", item.telephone);
+      this.$store.commit("SET_INTRODUCETEXT", item.introduce);
+      this.$store.commit("SET_PANORAMAURL", item.panoramaurl);
+      this.$store.commit("SET_POPUPIMGATLAS", imgArr);
+      if (item.videourl && item.videourl != "") {
+        this.$store.commit("SET_MONITORURL", item.videourl);
+      }
+      if (item.jx != undefined && item.jx != "") {
+        var tabOne = item.jx.split(",");
+        this.$store.commit("SET_TEACHLIST", tabOne);
+      } else {
+        this.$store.commit("SET_TEACHLIST", []);
+      }
+
+      if (item.sh != undefined && item.sh != "") {
+        var tabTwo = item.sh.split(",");
+        this.$store.commit("SET_LIVELIST", tabTwo);
+      } else {
+        this.$store.commit("SET_LIVELIST", []);
+      }
+
+      this.newPopup(item);
+      this.viewer.flyToPosition(
+        new this.DC.Position(
+          Number(item.jd),
+          Number(item.wd),
+          Number(300),
+          Number(item.heading),
+          Number(item.pitch),
+          Number(item.roll)
+        ),
+        function () {},
+        3
+      );
+    },
+
+    newPopup(item) {
+      const position = this.DC.Transform.transformWGS84ToCartesian(
+        new this.DC.Position(
+          Number(item.jd),
+          Number(item.wd),
+          Number(item.gd),
+          Number(item.heading),
+          Number(item.pitch),
+          Number(item.roll)
+        )
+      );
+      // eslint-disable-next-line no-unused-vars
+      var popup = new this.DC.DivForms(this.viewer, {
+        domId: "divFormsDomBox",
+        position: [position],
+      });
+
+      this.$store.commit("SET_PANORAMAPOPUP", false);
+      this.$store.commit("SET_MONITORPOPUP", false);
+      this.$store.commit("SET_DETAILSPOPUP", true);
+    },
+
+    closeModel() {
+      this.$store.commit("SET_SEARCHPOPUPFLAG", false);
+
+      this.$store.commit("SET_SEARCHPOPUPLIST", []);
+    },
+  },
+};
 </script>
 
-<style scoped lang='scss'>
+<style scoped lang="scss">
 .search-nav-bar {
-    position: fixed;
-    width: 322px;
-    height: auto;
-    border-radius: 8px;
-    top: 140px;
-    left: 140px;
-    background-color: transparent;
-    z-index: 999;
-    font-size: 14px;
+  position: fixed;
+  width: 322px;
+  height: auto;
+  border-radius: 8px;
+  top: 140px;
+  left: 140px;
+  background-color: transparent;
+  z-index: 999;
+  font-size: 14px;
 
-    .container {
-        .header {
-            position: relative;
-            border-radius: 8px 8px 0 0;
-            width: 100%;
-            height: 36px;
-            line-height: 36px;
-            background: rgba(0, 131, 176, 0.7); /* fallback for old browsers */
-            background: -webkit-linear-gradient(
-                to left,
-                rgba(0, 180, 219, 0.7),
-                rgba(0, 131, 176, 0.7)
-            ); /* Chrome 10-25, Safari 5.1-6 */
-            background: linear-gradient(
-                to left,
-                rgba(0, 180, 219, 0.7),
-                rgba(0, 131, 176, 0.7)
-            ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+  .container {
+    .header {
+      position: relative;
+      border-radius: 8px 8px 0 0;
+      width: 100%;
+      height: 36px;
+      line-height: 36px;
+      background: rgba(0, 131, 176, 0.7); /* fallback for old browsers */
+      background: -webkit-linear-gradient(
+        to left,
+        rgba(0, 180, 219, 0.7),
+        rgba(0, 131, 176, 0.7)
+      ); /* Chrome 10-25, Safari 5.1-6 */
+      background: linear-gradient(
+        to left,
+        rgba(0, 180, 219, 0.7),
+        rgba(0, 131, 176, 0.7)
+      ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
 
-            .title {
-                padding-left: 10px;
+      .title {
+        padding-left: 10px;
 
-                img {
-                    width: 20px;
-                    height: 20px;
-                    vertical-align: middle;
-                }
-
-                span {
-                    margin-left: 6px;
-                    display: inline-block;
-                    vertical-align: middle;
-                    color: #fff;
-                }
-            }
-
-            .close {
-                position: absolute;
-                right: 6px;
-                top: 0;
-                left: auto;
-                bottom: 0;
-                margin: auto;
-                width: 14px;
-                height: 14px;
-                cursor: pointer;
-            }
+        img {
+          width: 20px;
+          height: 20px;
+          vertical-align: middle;
         }
 
-        .move {
-            cursor: move;
+        span {
+          margin-left: 6px;
+          display: inline-block;
+          vertical-align: middle;
+          color: #fff;
         }
+      }
 
-        .content {
-            clear: both;
-            width: 100%;
-            height: 440px;
-            margin-top: 0px;
-            text-align: center;
-            overflow-y: auto;
-            background: rgba(0, 131, 176, 0.7); /* fallback for old browsers */
-            background: -webkit-linear-gradient(
-                to left,
-                rgba(0, 180, 219, 0.7),
-                rgba(0, 131, 176, 0.7)
-            ); /* Chrome 10-25, Safari 5.1-6 */
-            background: linear-gradient(
-                to left,
-                rgba(0, 180, 219, 0.7),
-                rgba(0, 131, 176, 0.7)
-            ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
-            border-radius: 0 0 8px 8px;
-
-            ul {
-                padding: 15px;
-                padding-top: 4px;
-
-                li {
-                    padding-left: 24px;
-                    position: relative;
-                    height: 40px;
-                    line-height: 40px;
-                    list-style: none;
-                    border-bottom: 1px dashed #ccc;
-                    text-align: left;
-
-                    img {
-                        position: absolute;
-                        left: 0;
-                        right: auto;
-                        top: 0;
-                        bottom: 0;
-                        margin: auto;
-                        width: 14px;
-                    }
-
-                    span {
-                        color: #fff;
-                        cursor: pointer;
-                    }
-
-                    span:hover {
-                        text-decoration: underline;
-                    }
-                }
-            }
-        }
+      .close {
+        position: absolute;
+        right: 6px;
+        top: 0;
+        left: auto;
+        bottom: 0;
+        margin: auto;
+        width: 14px;
+        height: 14px;
+        cursor: pointer;
+      }
     }
+
+    .move {
+      cursor: move;
+    }
+
+    .content {
+      clear: both;
+      width: 100%;
+      height: 440px;
+      margin-top: 0px;
+      text-align: center;
+      overflow-y: auto;
+      background: rgba(0, 131, 176, 0.7); /* fallback for old browsers */
+      background: -webkit-linear-gradient(
+        to left,
+        rgba(0, 180, 219, 0.7),
+        rgba(0, 131, 176, 0.7)
+      ); /* Chrome 10-25, Safari 5.1-6 */
+      background: linear-gradient(
+        to left,
+        rgba(0, 180, 219, 0.7),
+        rgba(0, 131, 176, 0.7)
+      ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+      border-radius: 0 0 8px 8px;
+
+      ul {
+        padding: 15px;
+        padding-top: 4px;
+
+        li {
+          padding-left: 24px;
+          position: relative;
+          height: 40px;
+          line-height: 40px;
+          list-style: none;
+          border-bottom: 1px dashed #ccc;
+          text-align: left;
+
+          img {
+            position: absolute;
+            left: 0;
+            right: auto;
+            top: 0;
+            bottom: 0;
+            margin: auto;
+            width: 14px;
+          }
+
+          span {
+            color: #fff;
+            cursor: pointer;
+          }
+
+          span:hover {
+            text-decoration: underline;
+          }
+        }
+      }
+    }
+  }
 }
 </style>
diff --git a/src/router/axios.js b/src/router/axios.js
index 758ab14..41557a7 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -12,14 +12,18 @@
 //   console.log(window.location);
 //   console.log(url);
 // }, 3000);
+// window.$apiUrls = "http://171.34.197.243:782";
+window.$apiUrls = "http://192.168.0.110:82";
 const service = axios.create({
   //   baseURL: 'http://192.168.0.107:83',
 
   // baseURL: "http://localhost:82",
   // baseURL: "http://192.168.0.107:82",
   // baseURL: "http://192.168.0.107:80",
-  baseURL: "http://192.168.0.110:82", //唐
+  // baseURL: "http://192.168.0.110:82", //唐
   // baseURL: "http://171.34.197.243:790", //正常接口
+  baseURL: window.$apiUrls, //2
+  // baseURL: "http://171.34.197.243:82", //3
   // baseURL: "http://171.34.197.243:82/api", //验收
   // baseURL: "https://6e78efa6.cpolar.io/apis", //https接口
   // baseURL: url, //https接口
diff --git a/src/store/getters.js b/src/store/getters.js
index c8a71bc..ea7b2b6 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -89,5 +89,8 @@
     labelLayerDataShow: (state) => state.popupParams.labelLayerDataShow, // 自定义标签弹窗显示
     closeMapClick: (state) => state.popupParams.closeMapClick, // 关闭地图点击,防止新增标签误触
 
+
+    addIconsLayerIconPopup: (state) => state.popupParams.addIconsLayerIconPopup, // 自定义标签编辑窗口
+    addIconsLayerIconPosition: (state) => state.popupParams.addIconsLayerIconPosition, // 自定义标签编辑窗口
 }
 export default getters
\ No newline at end of file
diff --git a/src/store/modules/mobile.js b/src/store/modules/mobile.js
index eaa7fb9..9af0c5d 100644
--- a/src/store/modules/mobile.js
+++ b/src/store/modules/mobile.js
@@ -41,6 +41,8 @@
       pitch: -90,
       roll: 0,
     },
+    zoomRange: [80, 200], //缩放程度
+    frislayertHeight: 160, //默认弹窗高度
     perspectiveControl: "", //视角控制:高度、角度  ()=>{}
     perspectiveControls: "", //视角控制:高度、角度  ()=>{}
 
@@ -143,6 +145,14 @@
     //         state[state.pointLayerData.layer].show = false
     //     }
     // },
+    //送入移动端缩放范围
+    set_zoomRange(state, data) {
+      state.zoomRange = data;
+    },
+    //送入默认弹窗高度
+    set_frislayertHeight(state, data) {
+      state.frislayertHeight = data;
+    },
     //切换2D和2.5D
     MSET_DIMENSION(state, data) {
       //关闭弹窗
@@ -254,9 +264,9 @@
         state.startPointFn(); //移动默认视角
         state.areaLayer.show = true; //绿布
         //2.5D视角限制
-        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 80;
+        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = state.zoomRange[0];
         // 最大
-        state.mviewer.scene.screenSpaceCameraController.maximumZoomDistance = 200;
+        state.mviewer.scene.screenSpaceCameraController.maximumZoomDistance = state.zoomRange[1];
         // 设置相机缩小时的速率
         state.mviewer.scene.screenSpaceCameraController._minimumZoomRate = 2000;
         // 设置相机放大时的速率
@@ -389,6 +399,8 @@
       const nowHeight = Math.ceil(
         state.mviewer.camera.positionCartographic.height
       );
+      // 传递响应数据
+      commit("MSET_QUERY", data);
       // console.log(data);
       if (state.dimension == "3D") {
         Flys = [
@@ -411,7 +423,7 @@
           +data.lntLat[1] + 0.00048,
           // +data.lntLat[1] - 0.0022,
           // nowHeight,
-          360,
+          state.frislayertHeight,
         ];
         // console.log(nowHeight);
         clas = [
@@ -434,8 +446,7 @@
         );
         data.position = ellipsoid.cartographicToCartesian(cartographic);
       }
-      // 传递响应数据
-      commit("MSET_QUERY", data);
+
       // 定制化窗体
       const popupsDom = new global.DC.mobileDivForms(state.mviewer, {
         domId: "mobilePopup",
@@ -505,7 +516,7 @@
       } else {
         dispatch("mapFlyTo", {
           //飞入
-          lntLat: [Position.lng, +Position.lat - 0.0003, 160],
+          lntLat: [Position.lng, +Position.lat - 0.0003, Position.alt],
           heading: Position.heading,
           pitch: Position.pitch,
           roll: Position.roll,
@@ -632,7 +643,7 @@
               // dispatch("MSET_POINTDATA", data.lntLat);//传入标记点
               !state.MobileWindowsHide ||
                 commit("MSET_MOBILEWINDOWSHIDE", false); // 显示弹窗
-            }, 0);
+            }, 100);
           }
         },
       });
diff --git a/src/store/modules/pc/leftNavsData.js b/src/store/modules/pc/leftNavsData.js
new file mode 100644
index 0000000..825804b
--- /dev/null
+++ b/src/store/modules/pc/leftNavsData.js
@@ -0,0 +1,131 @@
+let leftNavsData = {
+    state: {
+        addIconsLayerIconstate: false,
+        addIconsLayerIconLayer: null,
+        addIconsLayerIconPopup: false, //控制编辑窗口显影
+        addIconsLayerIconPosition: [], //发送坐标
+    },
+    actions: {
+        chouseAddIconsLayerIcon({
+            state,
+            commit,
+            dispatch
+        }, val) {
+            //加载图层
+            commit("createAddIconsLayerIconLayer", {
+                viewer: val.viewer
+            })
+            //重置事件
+            state.addIconsLayerIconstate = false;
+            commit("set_closeMapClick", true); //关闭其他操作
+            //监听鼠标移动
+            val.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => {
+                if (state.addIconsLayerIconstate) { //事件完成
+                    return;
+                }
+                commit("addIconsLayerIconmoveMessage", {
+                    e: e,
+                    b: "点击确认标注位置",
+                    viewer: val.viewer
+                })
+            });
+            val.viewer.once(global.DC.MouseEventType.CLICK, (e) => {
+                commit("addIconsLayerIconmoveMessage", { //取消tip
+                    e: e,
+                    b: "",
+                    viewer: val.viewer
+                })
+                dispatch("pcFlyView", { //飞入位置
+                    jd: e.wgs84SurfacePosition.lng,
+                    wd: +e.wgs84SurfacePosition.lat + 0.0002,
+                    viewer: val.viewer,
+                });
+                //完成选点操作
+                state.addIconsLayerIconstate = true;
+                // commit("set_closeMapClick", false); //开启其他操作
+                if (val.fn) {
+                    let lnglat = [e.wgs84SurfacePosition.lng,
+                        e.wgs84SurfacePosition.lat
+                    ]
+                    val.fn(lnglat)
+                }
+            });
+
+        },
+        addIconsLayerIcon({
+            state,
+            commit,
+            dispatch
+        }, val) {
+            const divIcon = new global.DC.DivIcon(
+                new global.DC.Position(
+                    Number(val.lnglat[0]),
+                    Number(val.lnglat[1]),
+                    0
+                ),
+                `
+                          <div class="tag-entitys-box">
+                              <div class="tag-content">
+                                  ${val.name || "我的标签"}
+                              </div>
+                              <div class="tag-angle-content">
+                                  <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                              </div>
+                          </div>
+                      `
+            );
+            state.addIconsLayerIconLayer.addOverlay(divIcon);
+            //打开编辑窗口弹窗
+            new global.DC.DivForms(val.viewer, {
+                domId: "leftNavsAdd",
+                position: [
+                    global.DC.Transform.transformWGS84ToCartesian(
+                        new global.DC.Position(
+                            Number(val.lnglat[0]),
+                            Number(val.lnglat[1]),
+                            Number(0)
+                        )
+                    ),
+                ],
+            });
+            commit("SET_addIconsLayerIconPosition", val.lnglat)
+            commit("SET_addIconsLayerIconPopup", true);
+        }
+    },
+    mutations: {
+        createAddIconsLayerIconLayer(state, val) {
+            if (state.addIconsLayerIconLayer == null) {
+                state.addIconsLayerIconLayer = new global.DC.HtmlLayer("addIconsLayerIconLayer");
+                val.viewer.addLayer(state.addIconsLayerIconLayer);
+            }
+            if (val.clear) {
+                state.addIconsLayerIconLayer.clear();
+            }
+            console.log(state.addIconsLayerIconLayer, "see")
+        },
+        addIconsLayerIconmoveMessage(state, val) {
+            console.log(val)
+            if (val.b == "") {
+                val.viewer.tooltip.enable = false;
+            } else {
+                val.viewer.tooltip.enable = true;
+                val.viewer.tooltip.showAt(val.e.windowPosition, val.b);
+            }
+        },
+        SET_addIconsLayerIconPopup(state, addIconsLayerIconPopup) {
+            state.addIconsLayerIconPopup = addIconsLayerIconPopup
+            if (!state.addIconsLayerIconPopup) { //关闭即关闭图层 并刷新标签
+                if (state.addIconsLayerIconLayer) {
+                    state.addIconsLayerIconLayer.clear();
+                    state.addIconsLayerIconLayer.remove();
+                    state.addIconsLayerIconLayer = null;
+                }
+            }
+        },
+        SET_addIconsLayerIconPosition(state, addIconsLayerIconPosition) {
+            state.addIconsLayerIconPosition = addIconsLayerIconPosition
+        },
+    }
+}
+
+export default leftNavsData
\ No newline at end of file
diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 218580c..edbfa68 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -1,5 +1,7 @@
+import leftNavsData from './pc/leftNavsData'
 const popupParams = {
     state: {
+        ...leftNavsData.state,
         popupBgUrl: null,
         pupupQRUrl: null,
         terminus: null,
@@ -30,8 +32,13 @@
         closeMapClick: false, //关闭地图点击,防止新增标签误触
     },
     mutations: {
+        ...leftNavsData.mutations,
         SET_POPUPBGURL(state, popupBgUrl) {
-            state.popupBgUrl = popupBgUrl
+            // console.log(popupBgUrl, "see33333")
+            if (!popupBgUrl) {
+                return;
+            }
+            state.popupBgUrl = popupBgUrl;
         },
         SET_POPUPQRURL(state, pupupQRUrl) {
             state.pupupQRUrl = pupupQRUrl
@@ -127,6 +134,7 @@
         }
     },
     actions: {
+        ...leftNavsData.actions,
         openPopups({
             state,
             commit,
@@ -173,8 +181,12 @@
             commit("SET_STATENAME", value.item.mechanismname);
             commit("SET_PANORAMAURL", value.item.panoramaurl);
             commit("SET_INTRODUCETEXT", value.item.introduce);
-            var imgArr = value.item.tpurl.split(",");
+            var imgArr = [];
+            if (value.item.tpurl) {
+                imgArr = value.item.tpurl.split(",");
+            }
             commit("SET_POPUPBGURL", imgArr[0]);
+            commit('SET_POPUPIMGATLAS', imgArr)
             commit("SET_POPUPQRURL", value.item.codeurl);
             commit("SET_POINTPOSITION", [
                 Number(value.lng),
@@ -184,7 +196,6 @@
                 Number(-90),
                 Number(0),
             ]);
-            commit('SET_POPUPIMGATLAS', imgArr)
             commit("SET_DETAILSPOPUP", true);
         },
         pcMoveView({
diff --git a/src/styles/divforms/divForms.scss b/src/styles/divforms/divForms.scss
index 2171d9b..d242196 100644
--- a/src/styles/divforms/divForms.scss
+++ b/src/styles/divforms/divForms.scss
@@ -15,7 +15,8 @@
 }
 
 .divForms-theme .area {
-    background-image: linear-gradient(135deg, transparent 30px, #28bbf06c 30px, #28bbf06c 50%, transparent 50%), linear-gradient(-45deg, transparent 30px, #28bbf06c 30px, #28bbf06c 50.1%, transparent 50%);
+    background-image: linear-gradient(135deg, transparent 30px, #28bbf06c 30px, #28bbf06c 50%, transparent 50%),
+        linear-gradient(-45deg, transparent 30px, #28bbf06c 30px, #28bbf06c 50.1%, transparent 50%);
 }
 
 .divForms .area {
@@ -125,7 +126,7 @@
 }
 
 .divForms .title::before {
-    content: '';
+    content: "";
     position: absolute;
     bottom: -4px;
     left: 0;
@@ -177,7 +178,7 @@
     background-color: #333;
     border-radius: 3px;
     opacity: 0;
-    transition: all .3s ease-in;
+    transition: all 0.3s ease-in;
 }
 
 .divForms .data-value-status-1 {
@@ -213,9 +214,87 @@
         height: 120px;
         text-align: center;
 
-        &>div {
+        & > div {
             line-height: 48px;
         }
     }
+}
 
-}
\ No newline at end of file
+//编辑自定义标签样式
+.addIconsLayer {
+    margin-top: 5px;
+    width: 100%;
+    height: 300px;
+    overflow-x: hidden;
+    overflow-y: scroll;
+    .addIconsLayerin {
+        margin: 5px 0;
+        background-color: #29baf1;
+        .el-icon--right {
+            color: #fff !important;
+        }
+    }
+}
+.addIconsLayerBut {
+    width: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding: 5px 0;
+    .el-button--primary {
+        background-color: #29baf1 !important;
+        border: 1px solid #29baf1 !important;
+    }
+}
+.addIconFromInput {
+    width: 90%;
+    background-color: transparent !important;
+    color: #fff !important;
+    input {
+        background-color: transparent !important;
+        color: #fff !important;
+        border: 1px solid transparent !important;
+        border-bottom: 2px solid #fff !important;
+        &::-webkit-input-placeholder {
+            color: #0378d6;
+        }
+    }
+    .addIconFromInputicon {
+        color: #fff !important;
+    }
+    .el-input-group__prepend {
+        padding-left: 5px;
+        width: 60px !important;
+        background-color: transparent !important;
+        color: #fff !important;
+        border: 1px solid transparent !important;
+        padding: 0 !important;
+        cursor: default !important;
+    }
+}
+
+.el-dropdown-menu.el-popper {
+    background-color: #29baf1 !important;
+    border: 1px solid #29baf1 !important;
+    li {
+        color: #fff !important;
+        &:hover {
+            color: #0378d6 !important;
+            background-color: #fff !important;
+        }
+    }
+}
+
+.addIconsLayerinimgs {
+    width: 100%;
+    max-width: 625px;
+    //     height: auto;
+    display: flex;
+
+    justify-content: center;
+    flex-wrap: wrap;
+}
+
+.isOverImgs .el-upload--picture-card {
+    display: none;
+}

--
Gitblit v1.9.3