From e40ee62d3e9b71ffe3432d32a53a00c4097b5708 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 31 Dec 2021 09:03:28 +0800
Subject: [PATCH] +3d  2.5d

---
 src/components/mobilePopupOur/index.vue |  346 +++++++++++++++++++++++----------------------------------
 1 files changed, 142 insertions(+), 204 deletions(-)

diff --git a/src/components/mobilePopupOur/index.vue b/src/components/mobilePopupOur/index.vue
index b848294..92e36be 100644
--- a/src/components/mobilePopupOur/index.vue
+++ b/src/components/mobilePopupOur/index.vue
@@ -7,7 +7,7 @@
       <div class="m_p_h_center">
         <div>
           <div v-if="mBigPopup.search" style="color: #fff">
-            查询结果{{ searchLabel ? "--" + searchLabel : "" }}
+            查询结果{{ searchLabel ? " -- " + searchLabel : "" }}
           </div>
           <el-dropdown trigger="click" @command="choiceIt" v-else>
             <span class="el-dropdown-link">
@@ -37,7 +37,7 @@
         ></el-empty>
         <mobilePopupOurOnce
           v-for="(citem, cindex) in onlyData"
-          :key="citem.bgImg + ''"
+          :key="citem.icons + ''"
           :ends="onlyData.length - 1 == cindex"
           :onceData="citem"
         ></mobilePopupOurOnce>
@@ -61,10 +61,11 @@
             ></el-empty>
             <mobilePopupOurOnce
               v-for="(citem, cindex) in item.child"
-              :key="citem.icon + ''"
+              :key="citem.icons"
               :ends="item.child.length - 1 == cindex"
               :onceData="citem"
             ></mobilePopupOurOnce>
+            <!-- {{ citem.icon }} -->
             <div v-show="item.child.length != 0">
               <el-divider content-position="left">
                 <i class="el-icon-s-promotion"></i>&nbsp;&nbsp;&nbsp;暂无更多
@@ -78,13 +79,10 @@
 </template>
 
 <script>
-import { getList } from "@/api/mobile/orgnav/index";
-import { getListarc, getChildNavList } from "@/api/mobile/public/arc";
-import {
-  getListlivingFacilitiesr,
-  getListsupermarket,
-} from "@/api/mobile/livingFacilities/index";
+import { getListarc } from "@/api/mobile/public/arc"; //头部下标签页数据
 import { mapGetters } from "vuex";
+//搜索
+import { getListSearch } from "@/api/mobile/search/index";
 export default {
   computed: {
     ...mapGetters(["mBigPopup", "popupOurOpenData"]),
@@ -95,89 +93,62 @@
       searchLabel: "",
       choiceValue: "",
       choiceKey: "",
+      choiceMethod: "",
       choiceData: [],
       tabTable: [],
       fullscreenLoading: false,
       activeName: "1",
       choiceMain: "",
       onlyData: [],
-      OURAPI_FORLIFE: {},
     };
   },
   mounted() {
     this.fullscreenLoading = true;
     if (this.mBigPopup.search) {
+      //搜索事件
       this.searchLabel = this.mBigPopup.value;
       // console.log("查询搜索结果", this.mBigPopup.value);
       this.fullscreenLoading = false;
       this.choiceMain = "搜索";
+      this.getListSearchMethod(this.mBigPopup.value);
       return;
     }
-    this.choiceMain = this.popupOurOpenData.qurey;
-    this.choiceData = this.popupOurOpenData.main;
+    this.choiceMain = this.popupOurOpenData.qurey; // 进入的主题:列:机构单位,校园建筑
+    this.choiceData = this.popupOurOpenData.main; //带入数据  包括name、type、method
+
     this.choiceValue = this.popupOurOpenData.main[0].name;
     this.choiceKey = this.popupOurOpenData.main[0].type;
-    this.$store.commit("MSET_BIGPOPUPAFTER", false);
+    this.choiceMethod = this.popupOurOpenData.main[0].method;
+
+    this.$store.commit("MSET_BIGPOPUPAFTER", false); //关闭前一个弹窗
     // console.log("请求对应街道接口", this.popupOurOpenData);
-    if (this.choiceMain == "校园建筑") {
-      //校园建筑:加入街道的选择
-      this.getDataCampus();
-    } else if (this.choiceMain == "机构单位") {
-      this.getInstitutional(this.choiceKey);
-    } else if (this.choiceMain == "生活设施") {
-      // 加入所有请求接口函数
-      this.OURAPI_FORLIFE = {
-        1: getListlivingFacilitiesr,
-        2: getListsupermarket,
-        3: getListlivingFacilitiesr,
-        4: getListlivingFacilitiesr,
-        5: getListlivingFacilitiesr,
-        6: getListlivingFacilitiesr,
-        7: getListlivingFacilitiesr,
-        8: getListlivingFacilitiesr,
-        9: getListlivingFacilitiesr,
-        10: getListlivingFacilitiesr,
-      };
-      this.getDatalivingFacilities();
-    } else if (this.choiceMain == "文化风景") {
-      console.log(this.choiceKey, " : ", this.choiceMain);
-      this.fullscreenLoading = false;
-    } else if (this.choiceMain == "出入口") {
-      console.log(this.choiceKey, " : ", this.choiceMain);
-      this.fullscreenLoading = false;
-    } else if (this.choiceMain == "停车场") {
-      console.log(this.choiceKey, " : ", this.choiceMain);
-      this.fullscreenLoading = false;
-    }
+    this.getDataHeardDown();
   },
   methods: {
     handleClick(tab, event) {
+      //头下部标签
       this.fullscreenLoading = true;
-      if (this.choiceMain == "校园建筑") {
-        this.getListCampus(this.activeName, this.choiceKey);
-      } else if (this.choiceMain == "生活设施") {
-        this.getListlivingFacilities(this.activeName, this.choiceKey); //生活设施 用choiceKey定位请求函数
-      }
+      this.getOutList(this.activeName, this.choiceKey);
     },
     choiceIt(command) {
+      //头部下拉菜单
       this.fullscreenLoading = true;
       this.choiceValue = command.name;
       this.choiceKey = command.type;
-      console.log("请求对应头部下拉菜单接口", command);
-      if (this.choiceMain == "校园建筑") {
-        this.getListCampus(this.activeName, this.choiceKey);
-      } else if (this.choiceMain == "机构单位") {
-        this.getInstitutional(this.choiceKey);
-      } else if (this.choiceMain == "生活设施") {
-        this.getListlivingFacilities(this.activeName, this.choiceKey); //生活设施 用choiceKey定位请求函数
-      }
+      this.choiceMethod = command.method; //更改请求
+      // console.log("请求对应头部下拉菜单接口", command);
+      this.getOutList(this.activeName, this.choiceKey);
     },
     closeBigPopup() {
       this.$store.commit("MSET_BIGPOPUP", false);
     },
-    //"生活设施"↓
-    getDatalivingFacilities(data) {
-      let that = this;
+    getDataHeardDown() {
+      if (this.choiceMain == "机构单位") {
+        //不请求头部标签页数据
+        this.getOutList(this.choiceKey);
+        return;
+      }
+      //获取头下部标签页
       getListarc().then((res) => {
         let title = [];
         res.data.data.forEach((item) => {
@@ -189,173 +160,140 @@
           });
         });
         this.tabTable = title;
-
-        this.getListlivingFacilities(this.activeName, this.choiceKey); //生活设施 用choiceKey定位请求函数
+        this.getOutList(this.activeName, this.choiceKey);
       });
     },
-    getListlivingFacilities(campus, type) {
+    //请求
+    getOutList(campus, type) {
       let that = this;
-      this.OURAPI_FORLIFE[type]({ campus: campus }).then((res) => {
-        const data = res.data.data.records;
-        // console.log(data);
-        // return;
+      let d;
+      if (this.choiceMain == "机构单位") {
+        // 不传标签页
+        d = {
+          type: type,
+        };
+      } else if (
+        this.choiceMain == "生活设施" ||
+        this.choiceMain == "出入口" ||
+        this.choiceMain == "停车场"
+      ) {
+        // 改变传入属性
+        d = {
+          campus: campus,
+          lifetype: type,
+        };
+      } else {
+        d = {
+          campus: campus,
+          type: type,
+        };
+      }
+      this.choiceMethod(d).then((res) => {
+        const data = res.data.data;
         let outList = [];
-        data.forEach((item) => {
-          let icon = item.tpurl.split(",");
-          outList.push({
-            name: item.mechanismname,
-            lntLat: [item.jd, item.wd],
-            alt: item.gd,
-            heading: item.heading,
-            pitch: item.pitch,
-            roll: item.roll,
-            bgImg: item.tpurl,
-            icon: icon,
-            from: this.choiceMain,
-            QRImg: item.codeurl,
-            websiteUrl: item.websiteurl,
-            telePhone: item.telephone,
-            buts:
-              that.mBigPopup.name == "校园建筑" ||
-              that.mBigPopup.name == "文化风景"
-                ? ["定位", "实景", "图集"]
-                : ["定位"],
+        if (
+          this.mBigPopup.name == "校园建筑" ||
+          this.mBigPopup.name == "文化风景"
+        ) {
+          // 校园建筑使用该id获取具体信息
+          data.forEach((item) => {
+            let icon = item.tpurl.split(",");
+            outList.push({
+              id: item.id,
+              name: item.mechanismname,
+              icon: icon,
+              icons: icon + item.mechanismname, //图片响应改变
+              from: this.choiceMain,
+              video: item.videourl,
+              buts:
+                this.mBigPopup.name == "校园建筑" ||
+                this.mBigPopup.name == "文化风景"
+                  ? ["定位", "实景", "图集"]
+                  : ["定位"],
+            });
           });
-        });
+        } else {
+          //正常获取全部数据
+          data.records.forEach((item) => {
+            let icon = item.tpurl.split(",");
+            let useData = {
+              name: item.mechanismname,
+              lntLat: [item.jd, item.wd],
+              alt: item.gd,
+              heading: item.heading,
+              pitch: item.pitch,
+              roll: item.roll,
+              bgImg: item.tpurl,
+              icon: icon,
+              icons: icon + item.mechanismname, //图片响应改变
+              from: this.choiceMain,
+              QRImg: item.codeurl,
+              websiteUrl: item.websiteurl,
+              telePhone: item.telephone,
+              address: item.address,
+              introduce: item.introduce,
+              video: item.videourl,
+              buts:
+                that.mBigPopup.name == "校园建筑" ||
+                that.mBigPopup.name == "文化风景"
+                  ? ["定位", "实景", "图集"]
+                  : ["定位"],
+            };
+            outList.push(useData);
+          });
+        }
         that.fullscreenLoading = false;
+        if (this.choiceMain == "机构单位") {
+          that.onlyData = outList;
+          return;
+        }
         that.tabTable[+campus - 1].child = outList;
       });
     },
-    //"生活设施"↑
-
-    //""机构单位""↓
-    getInstitutional(type) {
-      let that = this;
-      // console.log(type);
-      getList({ type: type }).then((res) => {
+    //搜索请求
+    getListSearchMethod(name) {
+      let val = {
+          mechanismName: name,
+        },
+        that = this;
+      getListSearch(val).then((res) => {
+        if (res.data.code != 200) {
+          return;
+        }
         const data = res.data.data;
+        //正常获取全部数据
         let outList = [];
-        data.records.forEach((item) => {
-          let icon = item.tpurl.split(",");
-          outList.push({
-            name: item.mechanismname,
-            lntLat: [item.jd, item.wd],
-            alt: item.gd,
-            heading: item.heading,
-            pitch: item.pitch,
-            roll: item.roll,
-            bgImg: item.tpurl,
+        data.forEach((item) => {
+          let icon = item.list.tpurl.split(",");
+          let useData = {
+            name: item.list.mechanismname,
+            lntLat: [item.list.jd, item.list.wd],
+            alt: item.list.gd,
+            heading: item.list.heading,
+            pitch: item.list.pitch,
+            roll: item.list.roll,
+            bgImg: item.list.tpurl,
             icon: icon,
+            icons: icon + item.list.mechanismname, //图片响应改变
             from: this.choiceMain,
-            QRImg: item.codeurl,
-            websiteUrl: item.websiteurl,
-            telePhone: item.telephone,
+            QRImg: item.list.codeurl,
+            websiteUrl: item.list.websiteurl,
+            telePhone: item.list.telephone,
+            address: item.list.address,
+            introduce: item.list.introduce,
+            video: item.list.videourl,
             buts:
               that.mBigPopup.name == "校园建筑" ||
               that.mBigPopup.name == "文化风景"
                 ? ["定位", "实景", "图集"]
                 : ["定位"],
-          });
+          };
+          outList.push(useData);
         });
         that.fullscreenLoading = false;
         that.onlyData = outList;
       });
     },
-    //""机构单位""↑
-    //"校园建筑"↓
-    getDataCampus() {
-      getListarc().then((res) => {
-        let title = [];
-        res.data.data.forEach((item) => {
-          title.push({
-            title: item.dictValue,
-            flag: false,
-            key: item.dictKey,
-            child: [],
-          });
-        });
-        this.tabTable = title;
-        this.getListCampus(this.activeName, this.choiceKey);
-      });
-    },
-    getListCampus(campus, type) {
-      let that = this;
-      getChildNavList({ campus: campus, type: type }).then((res) => {
-        const data = res.data.data;
-        let outList = [];
-        data.forEach((item) => {
-          let icon = item.tpurl.split(",");
-          outList.push({
-            id: item.id,
-            name: item.mechanismname,
-            icon: icon,
-            from: this.choiceMain,
-            buts:
-              this.mBigPopup.name == "校园建筑" ||
-              this.mBigPopup.name == "文化风景"
-                ? ["定位", "实景", "图集"]
-                : ["定位"],
-          });
-        });
-        that.fullscreenLoading = false;
-        that.tabTable[+campus - 1].child = outList;
-      });
-    },
-    //"校园建筑"↑
   },
 };
-</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
+</script>
\ No newline at end of file

--
Gitblit v1.9.3