From 81773ab04fd259e893c2d7f08dbdc9be772d01c4 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Tue, 21 Dec 2021 17:18:45 +0800
Subject: [PATCH] +,请求数据,弹框显示,优化代码长度

---
 src/components/mobilePopupOur/index.vue |  290 +++++++++++++++-------------------------------------------
 1 files changed, 75 insertions(+), 215 deletions(-)

diff --git a/src/components/mobilePopupOur/index.vue b/src/components/mobilePopupOur/index.vue
index b848294..0c89a11 100644
--- a/src/components/mobilePopupOur/index.vue
+++ b/src/components/mobilePopupOur/index.vue
@@ -78,12 +78,7 @@
 </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";
 export default {
   computed: {
@@ -95,89 +90,61 @@
       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 = "搜索";
       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.activeName, this.choiceKey);
+        return;
+      }
+      //获取头下部标签页
       getListarc().then((res) => {
         let title = [];
         res.data.data.forEach((item) => {
@@ -189,173 +156,66 @@
           });
         });
         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;
+      this.choiceMethod({ campus: campus, type: type }).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.choiceMain == "校园建筑") {
+          // 校园建筑使用该id获取具体信息
+          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 == "文化风景"
+                  ? ["定位", "实景", "图集"]
+                  : ["定位"],
+            });
           });
-        });
+        } else {
+          //正常获取全部数据
+          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,
+              icon: icon,
+              from: this.choiceMain,
+              QRImg: item.codeurl,
+              websiteUrl: item.websiteurl,
+              telePhone: item.telephone,
+              address: item.address,
+              introduce: item.introduce,
+              buts:
+                that.mBigPopup.name == "校园建筑" ||
+                that.mBigPopup.name == "文化风景"
+                  ? ["定位", "实景", "图集"]
+                  : ["定位"],
+            });
+          });
+        }
         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) => {
-        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,
-            icon: icon,
-            from: this.choiceMain,
-            QRImg: item.codeurl,
-            websiteUrl: item.websiteurl,
-            telePhone: item.telephone,
-            buts:
-              that.mBigPopup.name == "校园建筑" ||
-              that.mBigPopup.name == "文化风景"
-                ? ["定位", "实景", "图集"]
-                : ["定位"],
-          });
-        });
-        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