From b7c39e4ccd65249dc385d76d08ed59834f83ad97 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Wed, 15 Dec 2021 17:34:04 +0800
Subject: [PATCH] +

---
 src/position/position.js                     |   60 +++
 src/store/modules/popupParams.js             |    4 
 public/index.html                            |   41 +
 src/api/mobile/ip/index.js                   |   18 +
 src/components/mobileCortrolButtom/index.vue |   75 +++
 src/components/mobilePopupOurAfter/index.vue |  135 +++++++
 public/img/cc/cc.png                         |    0 
 src/components/mobileLeftNav/index.vue       |   64 +++
 src/store/modules/mobile.js                  |   11 
 src/components/mobileCortrol/index.vue       |    2 
 src/components/mobilePopupOurOnce/index.vue  |  112 ++++++
 src/components/mobilemap/index.vue           |   73 +++
 src/styles/mobile/popup.scss                 |   96 ++++-
 src/components/mobilePopupOur/index.vue      |  251 ++++++++++++++
 src/store/getters.js                         |    4 
 src/components/mobileCortrolSearch/index.vue |    7 
 src/mobileDivForms/mobileDivForms.js         |   47 --
 17 files changed, 897 insertions(+), 103 deletions(-)

diff --git a/public/img/cc/cc.png b/public/img/cc/cc.png
new file mode 100644
index 0000000..a75f741
--- /dev/null
+++ b/public/img/cc/cc.png
Binary files differ
diff --git a/public/index.html b/public/index.html
index 85d9755..2c50698 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,18 +1,27 @@
 <!DOCTYPE html>
 <html lang="">
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title>智慧校园大数据三维可视化平台</title>
-    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
-  </head>
-  <body>
-    <noscript>
-      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
-    </noscript>
-    <div id="app"></div>
-    <!-- built files will be auto injected -->
-  </body>
-</html>
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width,initial-scale=1.0">
+  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+  <title>智慧校园大数据三维可视化平台</title>
+  <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
+  <!-- 高德定位 -->
+  <script type="text/javascript"
+    src="https://webapi.amap.com/maps?v=1.4.15&key=4b3e1db3211054ce5b466407cbb9d221"></script>
+  <!-- ip -->
+  <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
+</head>
+
+<body>
+  <noscript>
+    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
+        Please enable it to continue.</strong>
+  </noscript>
+  <div id="app"></div>
+  <!-- built files will be auto injected -->
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/api/mobile/ip/index.js b/src/api/mobile/ip/index.js
new file mode 100644
index 0000000..93f5a6e
--- /dev/null
+++ b/src/api/mobile/ip/index.js
@@ -0,0 +1,18 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-05-09 15:17:44
+ * @Last Modified by: liu
+ * @Last Modified time: 2021-12-15 16:43:48
+ */
+// 党群机构
+import request from '@/router/axios'
+
+export const getIp = (params) => {
+    return request({
+        // url: 'https://apis.map.qq.com/ws/location/v1/ip',
+        // let url = `https://apis.map.qq.com/ws/location/v1/ip?ip=${data.ip}&key=${data.key}`;
+        url: `http://192.168.31.179:9898/ws/location/v1/ip?ip=${params.ip}&key=${params.key}`,
+        method: 'get',
+        // params: params
+    })
+}
diff --git a/src/components/mobileCortrol/index.vue b/src/components/mobileCortrol/index.vue
index f3b8b9c..9e6b016 100644
--- a/src/components/mobileCortrol/index.vue
+++ b/src/components/mobileCortrol/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="m-left-control">
-    <div class="m-l-inbut" @click="zoomIn('+')">+</div>
+    <div class="m-l-inbut zoom-in">+</div>
     <div class="m-l-inbut" @click="zoomIn('-')">-</div>
   </div>
 </template>
diff --git a/src/components/mobileCortrolButtom/index.vue b/src/components/mobileCortrolButtom/index.vue
index ea17825..1f6020a 100644
--- a/src/components/mobileCortrolButtom/index.vue
+++ b/src/components/mobileCortrolButtom/index.vue
@@ -1,30 +1,70 @@
 <template>
   <div class="m-left-mobileCortrolButtom">
     <div class="m-l-inbut"><i class="el-icon-s-help"></i></div>
-    <div class="m-l-inbut"><i class="el-icon-s-flag"></i></div>
-    <div class="m-l-inbut"><i class="el-icon-menu"></i></div>
-    <div class="m-l-inbut"><i class="el-icon-location"></i></div>
+    <div class="m-l-inbut">
+      <!-- <i class="el-icon-s-flag"></i> -->
+      <el-dropdown trigger="click" @command="handleCommand">
+        <span class="el-dropdown-link icons">
+          <i class="el-icon-s-flag icon"></i>
+        </span>
+        <el-dropdown-menu slot="dropdown">
+          <el-dropdown-item command="西东大街">西东大街</el-dropdown-item>
+          <el-dropdown-item command="长江路">长江路</el-dropdown-item>
+          <el-dropdown-item command="科技园">科技园</el-dropdown-item>
+          <el-dropdown-item command="逸夫楼">逸夫楼</el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+    </div>
+    <div class="m-l-inbut" @click="openBigPopupAfter">
+      <i class="el-icon-menu"></i>
+    </div>
+    <div class="m-l-inbut" @click="goOn"><i class="el-icon-location"></i></div>
   </div>
 </template>
 
 <script>
+import { mapGetters } from "vuex";
+import { getIp, getUsers } from "@/api/mobile/ip/index";
 export default {
   name: "mobileCortrolButtom",
-  computed: {},
   data() {
-    return {
-      viewer: null,
-      DC: null,
-    };
+    return {};
+  },
+  computed: {
+    ...mapGetters(["mviewer"]),
   },
   created() {
     this.DC = global.DC;
   },
   mounted() {},
   methods: {
-    initialize(viewer) {
-      viewer.scene.globe.depthTestAgainstTerrain = false;
-      this.viewer = viewer;
+    handleCommand(command) {
+      console.log(command, "定位");
+      // 定位
+      // this.mviewer.zoomToPosition(
+      //     new DC.Position(
+      //       e.wgs84Position.lng,
+      //       e.wgs84Position.lat - 0.016,
+      //       1530,
+      //       0,
+      //       -45
+      //     )
+      //   );
+    },
+    openBigPopupAfter() {
+      this.$store.commit("MSET_BIGPOPUPAFTER", true);
+    },
+    goOn() {
+      console.log(returnCitySN["cip"]);
+      let data = {
+        ip: returnCitySN["cip"],
+        key: "7WKBZ-QDY62-WEEUG-C7KUN-ADAF5-L5BKZ",
+      };
+      console.log("定位", data.ip);
+      // getIp(data).then((res) => {
+      //   // getUsers(data).then((res) => {
+      //   console.log(res);
+      // });
     },
   },
 };
@@ -48,6 +88,19 @@
     font-size: 22px;
     margin-left: 12px;
     border-radius: 5px;
+    .icons {
+      display: inline-block;
+      width: 100%;
+      height: 100%;
+    }
+    .icon {
+      font-size: 20px;
+      color: #fff;
+      &::before {
+        width: 100%;
+        height: 100%;
+      }
+    }
   }
 }
 </style>
diff --git a/src/components/mobileCortrolSearch/index.vue b/src/components/mobileCortrolSearch/index.vue
index 3926498..4b1edab 100644
--- a/src/components/mobileCortrolSearch/index.vue
+++ b/src/components/mobileCortrolSearch/index.vue
@@ -6,6 +6,7 @@
           slot="append"
           class="iconSearch"
           icon="el-icon-search"
+          @click="search"
         ></el-button>
       </el-input>
     </div>
@@ -20,6 +21,7 @@
     return {
       viewer: null,
       DC: null,
+      input: "",
     };
   },
   created() {
@@ -31,6 +33,11 @@
       viewer.scene.globe.depthTestAgainstTerrain = false;
       this.viewer = viewer;
     },
+    search() {
+      let that = this;
+      this.$store.commit("MSET_BIGPOPUP", { search: true, value: that.input });
+      that.input = "";
+    },
   },
 };
 </script>
diff --git a/src/components/mobileLeftNav/index.vue b/src/components/mobileLeftNav/index.vue
index 1247850..2cbf6e6 100644
--- a/src/components/mobileLeftNav/index.vue
+++ b/src/components/mobileLeftNav/index.vue
@@ -14,6 +14,34 @@
         <span>{{ item.label }}</span>
       </li>
     </ul>
+    <div
+      ref="mobile-mapContentContent"
+      v-show="popupWindow1"
+      id="mobile-map_MP1"
+    >
+      <div class="mobile-popup-imgs-heard">
+        <img :src="url1" alt="" />
+        <el-image
+          style="width: 100px; height: 100px"
+          :src="url1"
+          id="mobileBigImgs"
+          v-show="false"
+          :preview-src-list="srcList1"
+        >
+        </el-image>
+        南门口
+      </div>
+      <div class="mobile-popup-control">
+        <el-link icon="el-icon-picture-outline-round" @click="mobileOpenImgs1"
+          >图集</el-link
+        >
+        <el-divider direction="vertical"></el-divider>
+        <el-link icon="el-icon-map-location">实景</el-link>
+        <el-divider direction="vertical"></el-divider>
+        <el-link icon="el-icon-aim" @click="goOn1">去这</el-link>
+      </div>
+    </div>
+    <!-- 地图图标弹窗↑ -->
   </div>
 </template>
 
@@ -36,6 +64,12 @@
   },
   data() {
     return {
+      popupWindow1: false,
+      url1: "/img/job/one.jpg",
+      srcList1: [
+        "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
+        "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg",
+      ],
       icons: "el-icon-d-arrow-right",
       iconHide: false,
       navStyle: {
@@ -142,6 +176,8 @@
       return list;
     },
     leftNavClick(item) {
+      // console.log(item);
+      this.popupWindow1 = false;
       item.flag = !item.flag;
       if (item.flag == true) {
         item.img = item.checked;
@@ -152,6 +188,7 @@
       }
     },
     initialize(viewer) {
+      var that = this;
       viewer.scene.globe.depthTestAgainstTerrain = false;
       this.viewer = viewer;
       this.tagLayer = new this.DC.HtmlLayer("tagLayer");
@@ -185,6 +222,28 @@
                     `
         );
         this.tagLayer.addOverlay(divIcon);
+        //订阅事件1
+        divIcon.on(DC.MouseEventType.CLICK, (e) => {
+          // console.log(e);
+          that.popupWindow1 = true;
+          // 定制化窗体
+          var divForms = new DC.mobileDivForms(viewer, {
+            domId: "mobilePopup",
+            title: "成教楼  ",
+            className: "mobilePopup",
+            content: document.getElementById("mobile-map_MP1"),
+            position: [e.position],
+          });
+          viewer.zoomToPosition(
+            new DC.Position(
+              e.overlay._position._lng,
+              e.overlay._position._lat - 0.012,
+              1530,
+              0,
+              -45
+            )
+          );
+        });
       });
 
       const positions2 = this.generatePosition(50);
@@ -284,6 +343,11 @@
       this.parkLayer.show = false;
       this.comeLayer.show = false;
     },
+    mobileOpenImgs1() {
+      let imgsDom = document.getElementById("mobileBigImgs");
+      imgsDom.click();
+    },
+    goOn1() {},
   },
 };
 </script>
diff --git a/src/components/mobilePopupOur/index.vue b/src/components/mobilePopupOur/index.vue
new file mode 100644
index 0000000..c9e8cc9
--- /dev/null
+++ b/src/components/mobilePopupOur/index.vue
@@ -0,0 +1,251 @@
+<template>
+  <div id="mobilePopupOur" v-loading.fullscreen.lock="fullscreenLoading">
+    <div class="m_p_heard">
+      <div class="m_p_h_break" @click="closeBigPopup">
+        <i class="el-icon-arrow-left icon"></i>
+      </div>
+      <div class="m_p_h_center">
+        <div>
+          <div v-if="mBigPopup.search" style="color: #fff">查询结果</div>
+          <el-dropdown trigger="click" @command="choiceIt" v-else>
+            <span class="el-dropdown-link">
+              {{ choiceValue }}<i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item
+                v-for="(item, index) in choiceData"
+                :key="index"
+                :command="item.name"
+                >{{ item.name }}</el-dropdown-item
+              >
+            </el-dropdown-menu>
+          </el-dropdown>
+        </div>
+      </div>
+    </div>
+    <div class="m_p_center">
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="西东大街" name="first">
+          <div class="m_p_c_tableIn">
+            <mobilePopupOurOnce
+              v-for="(item, index) in tableData1"
+              :key="index"
+              :onceData="item"
+            ></mobilePopupOurOnce>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="长江路" name="second">
+          <div class="m_p_c_tableIn">
+            <mobilePopupOurOnce
+              v-for="(item, index) in tableData2"
+              :key="index"
+              :onceData="item"
+            ></mobilePopupOurOnce>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="科技园" name="third">
+          <div class="m_p_c_tableIn">
+            <mobilePopupOurOnce
+              v-for="(item, index) in tableData3"
+              :key="index"
+              :onceData="item"
+            ></mobilePopupOurOnce>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="逸夫楼" name="fourth">
+          <div class="m_p_c_tableIn">
+            <mobilePopupOurOnce
+              v-for="(item, index) in tableData4"
+              :key="index"
+              :onceData="item"
+            ></mobilePopupOurOnce>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+export default {
+  computed: {
+    ...mapGetters(["mBigPopup"]),
+  },
+  name: "mobilePopupOur",
+  data() {
+    return {
+      choiceValue: "",
+      choiceData: [
+        {
+          name: "党群机构",
+          value: "1",
+        },
+        {
+          name: "职能部门",
+          value: "2",
+        },
+        {
+          name: "其他机构",
+          value: "3",
+        },
+      ],
+      fullscreenLoading: false,
+      activeName: "first",
+      tableData1: [
+        {
+          name: "电力部门",
+          icon: "",
+          buts: ["实景", "图集", "定位"],
+        },
+        {
+          name: "保安部门",
+          icon: "",
+          buts: ["图集", "定位"],
+        },
+        {
+          name: "图书馆",
+          icon: "",
+          buts: ["定位"],
+        },
+      ],
+      tableData2: [
+        {
+          name: "电力部门2",
+          icon: "",
+          buts: ["实景", "图集", "定位"],
+        },
+        {
+          name: "保安部门2",
+          icon: "",
+          buts: ["图集", "定位"],
+        },
+        {
+          name: "图书馆2",
+          icon: "",
+          buts: ["定位"],
+        },
+      ],
+      tableData3: [
+        {
+          name: "电力部门3",
+          icon: "",
+          buts: ["实景", "图集", "定位"],
+        },
+        {
+          name: "保安部门3",
+          icon: "",
+          buts: ["图集", "定位"],
+        },
+        {
+          name: "图书馆3",
+          icon: "",
+          buts: ["定位"],
+        },
+      ],
+      tableData4: [
+        {
+          name: "电力部门4",
+          icon: "",
+          buts: ["实景", "图集", "定位"],
+        },
+        {
+          name: "保安部门4",
+          icon: "",
+          buts: ["图集", "定位"],
+        },
+        {
+          name: "图书馆4",
+          icon: "",
+          buts: ["定位"],
+        },
+      ],
+    };
+  },
+  // watch: {
+  //   mBigPopup() {
+  //     console.log(this.mBigPopup.name);
+  //     this.choiceValue = this.mBigPopup.name;
+  //   },
+  // },
+  mounted() {
+    // this.fullscreenLoading = true;
+    setTimeout(() => {
+      if (this.mBigPopup.search) {
+        console.log("查询搜索结果", this.mBigPopup.value);
+        return;
+      }
+      this.choiceValue = this.mBigPopup.name;
+      this.fullscreenLoading = false;
+      this.$store.commit("MSET_BIGPOPUPAFTER", false);
+      console.log("请求对应街道接口");
+    }, 1000);
+    // this.choiceValue = this.choiceData[0].name;
+  },
+  methods: {
+    handleClick(tab, event) {
+      console.log(tab.name);
+    },
+    choiceIt(name) {
+      this.choiceValue = name;
+    },
+    closeBigPopup() {
+      this.$store.commit("MSET_BIGPOPUP", false);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+#mobilePopupOur {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background-color: #fff;
+  z-index: 300;
+  .m_p_heard {
+    width: 100%;
+    height: 50px;
+    background-color: #a40000;
+    .m_p_h_break {
+      position: absolute;
+      left: 0;
+      top: 0;
+      width: 50px;
+      height: 50px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      .icon {
+        font-size: 22px;
+        color: #fff;
+      }
+    }
+    .m_p_h_center {
+      width: 100%;
+      height: 50px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      .el-dropdown-link {
+        color: #fff;
+      }
+    }
+  }
+  .m_p_center {
+    width: 100%;
+    height: calc(100% - 50px);
+    // border: 1px solid red
+    box-sizing: border-box;
+    .m_p_c_tableIn {
+      width: 100%;
+      height: 100%;
+      box-sizing: border-box;
+      overflow-x: hidden;
+      overflow-y: auto;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/components/mobilePopupOurAfter/index.vue b/src/components/mobilePopupOurAfter/index.vue
new file mode 100644
index 0000000..9847d54
--- /dev/null
+++ b/src/components/mobilePopupOurAfter/index.vue
@@ -0,0 +1,135 @@
+<template>
+  <div id="mobilePopupOurAfter">
+    <div class="m_p_a_heard">
+      <div><i class="el-icon-menu icon"></i></div>
+      <div @click="closeBigPopupAfter"><i class="el-icon-close icon"></i></div>
+    </div>
+    <div class="m_p_a_center">
+      <div class="m_p_a_center_group">
+        <div
+          class="m_p_a_center_once"
+          v-for="(item, index) in choiceDataUp"
+          @click="openBigPopup(item)"
+          :key="index"
+        >
+          <div class="m_p_a_c_o_up"><i :class="[item.icon]"></i></div>
+          <div class="m_p_a_c_o_down">{{ item.name }}</div>
+        </div>
+      </div>
+      <div class="m_p_a_center_group">
+        <div
+          class="m_p_a_center_once"
+          v-for="(item, index) in choiceDataDown"
+          @click="openBigPopup(item)"
+          :key="index"
+        >
+          <div class="m_p_a_c_o_up"><i :class="[item.icon]"></i></div>
+          <div class="m_p_a_c_o_down">{{ item.name }}</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "mobilePopupOurAfter",
+  data() {
+    return {
+      choiceValue: "",
+      choiceDataUp: [
+        {
+          name: "机构单位",
+          icon: "el-icon-s-cooperation",
+        },
+        {
+          name: "校园建筑",
+          icon: "el-icon-s-management",
+        },
+        {
+          name: "生活设施",
+          icon: "el-icon-s-flag",
+        },
+      ],
+      choiceDataDown: [
+        {
+          name: "文化风景",
+          icon: "el-icon-s-opportunity",
+        },
+        {
+          name: "出入口",
+          icon: "el-icon-s-promotion",
+        },
+        {
+          name: "停车场",
+          icon: "el-icon-s-flag",
+        },
+      ],
+    };
+  },
+  mounted() {},
+  methods: {
+    openBigPopup(val) {
+      this.$store.commit("MSET_BIGPOPUP", val);
+    },
+    closeBigPopupAfter() {
+      this.$store.commit("MSET_BIGPOPUPAFTER", false);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.flexCenter {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+#mobilePopupOurAfter {
+  position: fixed;
+  top: 37.5%;
+  left: 13.5%;
+  width: 75%;
+  height: 25%;
+  background-color: #fff;
+  z-index: 300;
+  .m_p_a_heard {
+    width: 100%;
+    height: 35px;
+    box-sizing: border-box;
+    padding: 5px 15px;
+    @extend .flexCenter;
+    justify-content: space-between;
+    background-color: #a40000;
+    div {
+      width: 35px;
+      height: 35px;
+      @extend .flexCenter;
+    }
+    .icon {
+      font-size: 24px;
+      color: #fff;
+    }
+  }
+  .m_p_a_center {
+    width: 100%;
+    height: calc(100% - 35px);
+    @extend .flexCenter;
+    flex-direction: column;
+    .m_p_a_center_group {
+      width: 100%;
+      height: 40%;
+      @extend .flexCenter;
+      .m_p_a_center_once {
+        width: 30%;
+        height: 100%;
+        background-color: #a40000;
+        color: #fff;
+        border: 2px solid rgb(255, 255, 255);
+        @extend .flexCenter;
+        flex-direction: column;
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/components/mobilePopupOurOnce/index.vue b/src/components/mobilePopupOurOnce/index.vue
new file mode 100644
index 0000000..7967a8f
--- /dev/null
+++ b/src/components/mobilePopupOurOnce/index.vue
@@ -0,0 +1,112 @@
+<template>
+  <div class="mobilePopupOurOnce">
+    <div class="mobilePopupOurOnce_center">
+      <div class="mobilePopupOurOnce_left">
+        <img src="img/cc/cc.png" alt="" />
+      </div>
+      <div class="mobilePopupOurOnce_right">
+        <div class="mobilePopupOurOnce_r_up">{{ onceData.name }}</div>
+        <div class="mobilePopupOurOnce_r_down">
+          <div v-for="(item, index) in seebut" :key="index">
+            <el-link
+              icon="el-icon-map-location"
+              class="mobilePopupOurOnce_r_d_in"
+              @click="openOnce(item.name)"
+              >{{ item.name }}</el-link
+            >
+            <el-divider
+              direction="vertical"
+              class="mobilePopupOurOnce_r_d_in"
+              v-if="index != seebut.length - 1"
+            ></el-divider>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+export default {
+  props: ["onceData"],
+  name: "mobilePopupOurOnce",
+  computed: {
+    ...mapGetters(["mviewer"]),
+    seebut() {
+      let buts = this.onceData.buts;
+      let b = [];
+      for (let k in buts) {
+        b.push({
+          name: buts[k],
+        });
+      }
+      return b;
+    },
+  },
+  methods: {
+    openOnce(val) {
+      console.log(val, this.onceData.name);
+      // 定位
+      // this.mviewer.zoomToPosition(
+      //     new DC.Position(
+      //       e.wgs84Position.lng,
+      //       e.wgs84Position.lat - 0.016,
+      //       1530,
+      //       0,
+      //       -45
+      //     )
+      //   );
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+// 继承类
+.flexCenter {
+  display: flex !important;
+  align-items: center !important;
+  justify-content: center !important;
+}
+.mobilePopupOurOnce {
+  padding: 0 0;
+  margin: 0 8px;
+  .mobilePopupOurOnce_center {
+    margin-bottom: 8px;
+    height: 80px;
+    border-bottom: #d4d4d4 dashed 1px;
+    padding-bottom: 8px;
+    @extend .flexCenter;
+    .mobilePopupOurOnce_left {
+      width: 32%;
+      height: 100%;
+      @extend .flexCenter;
+    }
+    .mobilePopupOurOnce_right {
+      width: 68%;
+      height: 100%;
+      @extend .flexCenter;
+      flex-direction: column;
+      .mobilePopupOurOnce_r_up {
+        height: 50%;
+        width: 100%;
+        font-size: 16px;
+        text-indent: 1em;
+        display: flex !important;
+        align-items: center !important;
+      }
+      .mobilePopupOurOnce_r_down {
+        height: 50%;
+        width: 100%;
+        padding-left: 1em;
+        display: flex !important;
+        align-items: center !important;
+        .mobilePopupOurOnce_r_d_in {
+          font-size: 17px;
+        }
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index 1953320..f5b4d9f 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -1,8 +1,8 @@
 /* eslint-disable camelcase */
 <template>
   <div id="mobile-viewer-container">
+    <!-- 地图图标弹窗↓ -->
     <div id="mobile-map_popup_content"></div>
-
     <div
       ref="mobile-mapContentContent"
       v-show="popupWindow"
@@ -25,21 +25,27 @@
           >图集</el-link
         >
         <el-divider direction="vertical"></el-divider>
-
         <el-link icon="el-icon-map-location">实景</el-link>
         <el-divider direction="vertical"></el-divider>
-        <el-link icon="el-icon-aim">去这</el-link>
+        <el-link icon="el-icon-aim" @click="goOn">去这</el-link>
       </div>
     </div>
+    <!-- 地图图标弹窗↑ -->
+    <!-- 控制↓ -->
     <mobileLeftNav ref="mobileLeftNav"></mobileLeftNav>
-    <mobileCortrol ref="mobileCortrol"></mobileCortrol>
+    <!-- <mobileCortrol ref="mobileCortrol"></mobileCortrol> -->
     <mobileCortrolButtom ref="mobileCortrolButtom"></mobileCortrolButtom>
     <mobileCortrolSearch ref="mobileCortrolSearch"></mobileCortrolSearch>
+    <!-- 控制↑ -->
+    <!-- 控制大弹窗的弹窗 -->
+    <mobilePopupOurAfter v-if="mBigPopupAfter"></mobilePopupOurAfter>
+    <!-- 大弹窗 -->
+    <mobilePopupOur :style="[bigPopup]" v-if="mBigPopup"></mobilePopupOur>
   </div>
 </template>
 <script>
 import { mapGetters } from "vuex";
-
+import { location } from "../../position/position";
 export default {
   name: "mobilemapBox",
   data() {
@@ -51,10 +57,28 @@
       ],
       popupFlag: false,
       popupWindow: false,
+      bigPopup: {
+        width: 0,
+        height: 0,
+        transition: "all 3s",
+      },
     };
   },
   computed: {
-    ...mapGetters(["mviewer"]),
+    ...mapGetters(["mviewer", "mBigPopup", "mBigPopupAfter"]),
+  },
+  watch: {
+    mBigPopup() {
+      if (this.mBigPopup) {
+        this.bigPopup.width = "100%";
+        this.bigPopup.height = "100%";
+        this.bigPopup.display = "inline-block";
+      } else {
+        this.bigPopup.width = "0";
+        this.bigPopup.height = "0";
+        this.bigPopup.display = "none";
+      }
+    },
   },
   mounted() {
     var DC = global.DC;
@@ -203,7 +227,7 @@
         viewer.scene.globe.depthTestAgainstTerrain = false;
 
         // console.log(document.getElementById("mobile-map_content_content"));
-        console.log(e.position);
+        // console.log(e.position);
 
         // 定制化窗体
         var divForms = new DC.mobileDivForms(viewer, {
@@ -216,8 +240,8 @@
         viewer.zoomToPosition(
           new DC.Position(
             e.wgs84Position.lng,
-            e.wgs84Position.lat - 0.016,
-            2030,
+            e.wgs84Position.lat - 0.012,
+            1530,
             0,
             -45
           )
@@ -232,7 +256,7 @@
       // )
 
       viewer.compass.enable = false;
-      viewer.zoomController.enable = false;
+      viewer.zoomController.enable = true;
       viewer.locationBar.enable = false;
       viewer.distanceLegend.enable = true;
     }
@@ -244,6 +268,35 @@
       let imgsDom = document.getElementById("mobileBigImgs");
       imgsDom.click();
     },
+    goOn() {
+      // if (navigator.geolocation) {
+      //   navigator.geolocation.watchPosition(backPoint);
+      // }
+      // function backPoint(res) {
+      //   console.log(res);
+      //   let position = [res.coords.longitude, res.coords.latitude];
+      //   console.log(position);
+      // }
+      // this.getLocation();
+      // location((res) => {
+      //   console.log(res);
+      //   alert(res.message);
+      // });
+      // console.log(returnCitySN["cip"]);
+    },
+    getLocation() {
+      // let _that = this;
+      // let geolocation = location.initMap("map-container"); //定位
+      // AMap.event.addListener(geolocation, "complete", (result) => {
+      //   console.log(result);
+      //   // console.log("hhha");
+      //   // _that.lat = result.position.lat;
+      //   // _that.lng = result.position.lng;
+      //   // _that.province = result.addressComponent.province;
+      //   // _that.city = result.addressComponent.city;
+      //   // _that.district = result.addressComponent.district;
+      // });
+    },
   },
 };
 </script>
diff --git a/src/mobileDivForms/mobileDivForms.js b/src/mobileDivForms/mobileDivForms.js
index e26010c..3aa512a 100644
--- a/src/mobileDivForms/mobileDivForms.js
+++ b/src/mobileDivForms/mobileDivForms.js
@@ -70,53 +70,9 @@
 
         var el = $("<div class=''></div>")
 
-        // var divBig = $("<div style='width: 100%; height: 100%;' class=''></div>")
-
-        // var divForms = $("<div class='divForms divForms-theme'></div>")
-
-        // var divFormsWrap = $("<div class='divForms-wrap'></div>")
-
-        // var area = $("<div class='area'></div>")
-
-        // var arrowLt = $("<div class='arrow-lt'></div>")
-        // var bT = $("<div class='b-t'></div>")
-        // var bR = $("<div class='b-r'></div>")
-        // var bB = $("<div class='b-b'></div>")
-        // var bL = $("<div class='b-l'></div>")
-        // var arrowRb = $("<div class='arrow-rb'></div>")
-
-        // var labelWrap = $("<div class='label-wrap'></div>")
         var titleDiv = $("<div class='mobiletitle'></div>").text(this._title)
         var labelContent = $("<div class='mobilelabel-content'></div>").append(this._content)
 
-        // var titleDiv = $("<div class='mobiletitle'>楼</div>")
-        // var labelContent = $("<div class='mobilelabel-content'>内容</div>")
-
-        // labelWrap.append(titleDiv)
-        // labelWrap.append(labelContent)
-
-        // var bTL = $("<div class='b-t-l'></div>")
-        // var bBR = $("<div class='b-b-r'></div>")
-
-        // var arrow = $("<div class='arrow'></div>")
-
-        // area.append(arrowLt)
-        // area.append(bT)
-        // area.append(bR)
-        // area.append(bB)
-        // area.append(bL)
-        // area.append(arrowRb)
-        // area.append(labelWrap)
-
-        // divFormsWrap.append(area)
-        // divFormsWrap.append(bTL)
-        // divFormsWrap.append(bBR)
-
-        // divForms.append(divFormsWrap)
-        // divForms.append(arrow)
-
-        // divBig.append(divForms)
-        // el.append(divBig)
         el.append(titleDiv)
         el.append(labelContent)
 
@@ -137,6 +93,9 @@
     }
 
     positionPopUp(windowCoord, id) {
+        if (!windowCoord) {
+            return;
+        }
         const wx = document.getElementById('app').clientWidth;
         const x = windowCoord.x - (wx / 100 * 35);
         const y = windowCoord.y - document.getElementById(id).offsetHeight - 15;
diff --git a/src/position/position.js b/src/position/position.js
new file mode 100644
index 0000000..1091582
--- /dev/null
+++ b/src/position/position.js
@@ -0,0 +1,60 @@
+/**
+* 高德地图定位
+* 
+*/
+// export const location = {
+// undefined
+// initMap(id) {
+//     // undefined
+//     let mapObj = new AMap.Map(id, {});
+//     let geolocation;
+//     mapObj.plugin(["AMap.Geolocation"], function () {
+//         // undefined
+//         geolocation = new AMap.Geolocation({
+//             // undefined
+//             enableHighAccuracy: true, //  是否使用高精度定位,默认:true
+//             timeout: 10000, //  超过10秒后停止定位,默认:无穷大
+//             maximumAge: 0, // 定位结果缓存0毫秒,默认:0
+//             convert: true, // 自动偏移坐标,偏移后的坐标为高德坐标,默认:true
+//             showButton: true, //  显示定位按钮,默认:true
+//             buttonPosition: "LB", // 定位按钮停靠位置,默认:'LB',左下角
+//             buttonOffset: new AMap.Pixel(10, 20), //  定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
+//             showMarker: true, //  定位成功后在定位到的位置显示点标记,默认:true
+//             showCircle: true, //  定位成功后用圆圈表示定位精度范围,默认:true
+//             panToLocation: true, //  定位成功后将定位到的位置作为地图中心点,默认:true
+//             zoomToAccuracy: true, //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
+//         });
+//         mapObj.addControl(geolocation);
+//         geolocation.getCurrentPosition();
+//     });
+//     return geolocation;
+// },
+// };
+export const location = function (fn) {
+    AMap.plugin('AMap.Geolocation', function () {
+        var geolocation = new AMap.Geolocation({
+            // 是否使用高精度定位,默认:true
+            enableHighAccuracy: true,
+            // 设置定位超时时间,默认:无穷大
+            // timeout: 10000,
+            // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
+            // buttonOffset: new AMap.Pixel(10, 20),
+            //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
+            // zoomToAccuracy: true,
+            //  定位按钮的排放位置,  RB表示右下
+            // buttonPosition: 'RB'
+        })
+
+        geolocation.getCurrentPosition()
+        AMap.event.addListener(geolocation, 'complete', onComplete)
+        AMap.event.addListener(geolocation, 'error', onError)
+        function onComplete(data) {
+            // data是具体的定位信息
+            fn(data);
+        }
+        function onError(data) {
+            // 定位出错
+            fn(data);
+        }
+    })
+};
\ No newline at end of file
diff --git a/src/store/getters.js b/src/store/getters.js
index f9941db..a7e07d6 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -2,6 +2,8 @@
     viewer: state => state.viewer.viewer,
     popupBgUrl: state => state.popupParams.popupBgUrl,
     pupupQRUrl: state => state.popupParams.pupupQRUrl,
-    mviewer: state => state.mobile.mviewer
+    mviewer: state => state.mobile.mviewer,
+    mBigPopup: state => state.mobile.mBigPopup,
+    mBigPopupAfter: state => state.mobile.mBigPopupAfter
 }
 export default getters
diff --git a/src/store/modules/mobile.js b/src/store/modules/mobile.js
index 095fce9..133768c 100644
--- a/src/store/modules/mobile.js
+++ b/src/store/modules/mobile.js
@@ -1,10 +1,19 @@
 const mobile = {
     state: {
-        mviewer: null
+        mviewer: null,
+        mBigPopup: false,
+        mBigPopupAfter: false,
+        ips: ''
     },
     mutations: {
         MSET_VIEWER(state, viewer) {
             state.mviewer = viewer
+        },
+        MSET_BIGPOPUP(state, viewer) {
+            state.mBigPopup = viewer
+        },
+        MSET_BIGPOPUPAFTER(state, viewer) {
+            state.mBigPopupAfter = viewer
         }
     },
     actions: {
diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 2d3705a..7b1ccc1 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -4,10 +4,10 @@
         pupupQRUrl: null
     },
     mutations: {
-        SET_POPUPBGURL (state, popupBgUrl) {
+        SET_POPUPBGURL(state, popupBgUrl) {
             state.popupBgUrl = popupBgUrl
         },
-        SET_POPUPQRURL (state, pupupQRUrl) {
+        SET_POPUPQRURL(state, pupupQRUrl) {
             state.pupupQRUrl = pupupQRUrl
         }
     },
diff --git a/src/styles/mobile/popup.scss b/src/styles/mobile/popup.scss
index 8371b01..5a07d87 100644
--- a/src/styles/mobile/popup.scss
+++ b/src/styles/mobile/popup.scss
@@ -61,25 +61,87 @@
     }
 }
 
-// 比例尺
-#mobile-viewer-container .dc-distance-legend {
-    right: 5px !important;
-    left: auto !important;
-}
-// 缩放控制
-#mobile-viewer-container .dc-zoom-controller {
-    left: 20px !important;
-    top: 20px !important;
-    .zoom-in .refresh .zoom-out {
-        width: 32px !important;
-        height: 32px !important;
-        background-color: #c9302c !important;
+$controllerw: 35px !important;
+#mobile-viewer-container {
+    // 继承类
+    .flexCenter {
         display: flex !important;
         align-items: center !important;
         justify-content: center !important;
-        color: white !important;
-        font-size: 22px !important;
-        margin-bottom: 12px !important;
-        border-radius: 5px !important;
+    }
+    // 比例尺
+    .dc-distance-legend {
+        right: 5px !important;
+        left: auto !important;
+    }
+    // 缩放控制
+    .dc-zoom-controller {
+        width: 32px !important;
+        height: auto !important;
+        left: 20px !important;
+        top: 50px !important;
+        z-index: 200;
+        background-color: transparent !important;
+        border: 1px solid transparent !important;
+
+        div:nth-child(1) {
+            // border-bottom: 1px solid #ebebeb;
+            margin-bottom: 20px !important;
+        }
+        div:nth-child(2) {
+            display: none !important;
+        }
+        div:nth-child(3) {
+            // border-top: 1px solid #ebebeb;
+        }
+        div {
+            width: $controllerw;
+            height: $controllerw;
+            position: relative !important;
+            left: -1px !important;
+            background-color: #c9302c !important;
+            color: white !important;
+            @extend .flexCenter;
+            border-radius: 8px;
+            svg {
+                width: 20px !important;
+                height: 20px !important;
+            }
+        }
+    }
+    //弹窗标签栏的标签
+    .m_p_center {
+        .el-tabs {
+            width: 100% !important;
+            height: 100% !important;
+            box-sizing: border-box;
+            .el-tabs__nav-scroll {
+                width: 100% !important;
+                @extend .flexCenter;
+            }
+            .el-tabs__content {
+                width: 100% !important;
+                height: calc(100% - 55px) !important;
+                box-sizing: border-box;
+                .el-tab-pane {
+                    width: 100% !important;
+                    height: 100% !important;
+                }
+            }
+        }
+    }
+
+    //地图底部按钮下拉菜单
+    .m-left-mobileCortrolButtom {
+        .el-dropdown {
+            width: 100% !important;
+            height: 100% !important;
+            @extend .flexCenter;
+            .el-icon-s-flag.icon {
+                position: relative;
+                top: 10px;
+                left: 10px;
+            }
+        }
     }
 }

--
Gitblit v1.9.3