From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1

---
 src/components/mobilePopupOur/index.vue |  560 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 347 insertions(+), 213 deletions(-)

diff --git a/src/components/mobilePopupOur/index.vue b/src/components/mobilePopupOur/index.vue
index 0c89a11..20480d8 100644
--- a/src/components/mobilePopupOur/index.vue
+++ b/src/components/mobilePopupOur/index.vue
@@ -1,221 +1,355 @@
 <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">
-            查询结果{{ searchLabel ? "--" + searchLabel : "" }}
-          </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"
-                >{{ item.name }}</el-dropdown-item
-              >
-            </el-dropdown-menu>
-          </el-dropdown>
-        </div>
-      </div>
-    </div>
-    <div class="m_p_center">
-      <div
-        class="m_p_c_tableIn"
-        style="padding-top: 10px"
-        v-if="tabTable.length <= 0"
-      >
-        <el-empty
-          v-show="onlyData.length == 0"
-          description="暂无数据"
-        ></el-empty>
-        <mobilePopupOurOnce
-          v-for="(citem, cindex) in onlyData"
-          :key="citem.bgImg + ''"
-          :ends="onlyData.length - 1 == cindex"
-          :onceData="citem"
-        ></mobilePopupOurOnce>
-        <div v-show="onlyData.length != 0">
-          <el-divider content-position="left">
-            <i class="el-icon-s-promotion"></i>&nbsp;&nbsp;&nbsp;暂无更多
-          </el-divider>
-        </div>
-      </div>
-      <el-tabs v-model="activeName" @tab-click="handleClick" v-else>
-        <el-tab-pane
-          v-for="(item, index) in tabTable"
-          :key="index"
-          :label="item.title"
-          :name="item.key"
-        >
-          <div class="m_p_c_tableIn">
-            <el-empty
-              v-show="item.child.length == 0"
-              description="暂无数据"
-            ></el-empty>
-            <mobilePopupOurOnce
-              v-for="(citem, cindex) in item.child"
-              :key="citem.icon + ''"
-              :ends="item.child.length - 1 == cindex"
-              :onceData="citem"
-            ></mobilePopupOurOnce>
-            <div v-show="item.child.length != 0">
-              <el-divider content-position="left">
-                <i class="el-icon-s-promotion"></i>&nbsp;&nbsp;&nbsp;暂无更多
-              </el-divider>
+    <!-- 信息窗口主体mobilePopupOur -->
+    <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>
-        </el-tab-pane>
-      </el-tabs>
+            <div class="m_p_h_center">
+                <div>
+                    <div
+                        v-if="mBigPopup.search"
+                        style="color: #fff"
+                    >查询结果{{ searchLabel ? " -- " + searchLabel : "" }}</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"
+                            >{{ item.name }}</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                </div>
+            </div>
+        </div>
+        <div class="m_p_center">
+            <div class="m_p_c_tableIn" style="padding-top: 10px" v-if="tabTable.length <= 0">
+                <el-empty v-show="onlyData.length == 0" description="暂无数据"></el-empty>
+                <mobilePopupOurOnce
+                    v-for="(citem, cindex) in onlyData"
+                    :key="citem.name + cindex"
+                    :ends="onlyData.length - 1 == cindex"
+                    :onceData="citem"
+                ></mobilePopupOurOnce>
+                <div v-show="onlyData.length != 0">
+                    <el-divider content-position="left">
+                        <i class="el-icon-s-promotion"></i>&nbsp;&nbsp;&nbsp;暂无更多
+                    </el-divider>
+                </div>
+            </div>
+            <el-tabs v-model="activeName" @tab-click="handleClick" v-else>
+                <el-tab-pane
+                    v-for="(item, index) in tabTable"
+                    :key="index"
+                    :label="item.title"
+                    :name="item.key"
+                >
+                    <div class="m_p_c_tableIn">
+                        <el-empty v-show="item.child.length == 0" description="暂无数据"></el-empty>
+                        <mobilePopupOurOnce
+                            v-for="(citem, cindex) in item.child"
+                            :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;暂无更多
+                            </el-divider>
+                        </div>
+                    </div>
+                </el-tab-pane>
+            </el-tabs>
+        </div>
     </div>
-  </div>
 </template>
 
 <script>
-import { getListarc } from "@/api/mobile/public/arc"; //头部下标签页数据
-import { mapGetters } from "vuex";
+import { getListarc } from '@/api/mobile/public/arc' // 头部下标签页数据
+import { mapGetters } from 'vuex'
+// 搜索
+import { getListSearch } from '@/api/mobile/search/index'
 export default {
-  computed: {
-    ...mapGetters(["mBigPopup", "popupOurOpenData"]),
-  },
-  name: "mobilePopupOur",
-  data() {
-    return {
-      searchLabel: "",
-      choiceValue: "",
-      choiceKey: "",
-      choiceMethod: "",
-      choiceData: [],
-      tabTable: [],
-      fullscreenLoading: false,
-      activeName: "1",
-      choiceMain: "",
-      onlyData: [],
-    };
-  },
-  mounted() {
-    this.fullscreenLoading = true;
-    if (this.mBigPopup.search) {
-      //搜索事件
-      this.searchLabel = this.mBigPopup.value;
-      // console.log("查询搜索结果", this.mBigPopup.value);
-      this.fullscreenLoading = false;
-      this.choiceMain = "搜索";
-      return;
+    computed: {
+        ...mapGetters(['mBigPopup', 'popupOurOpenData'])
+    },
+    name: 'mobilePopupOur',
+    data () {
+        return {
+            searchLabel: '',
+            choiceValue: '',
+            choiceKey: '',
+            choiceMethod: '',
+            choiceData: [],
+            tabTable: [],
+            fullscreenLoading: false,
+            activeName: '1',
+            choiceMain: '',
+            onlyData: []
+        }
+    },
+    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 // 带入数据  包括name、type、method
+
+        this.choiceValue = this.popupOurOpenData.main[0].name
+        this.choiceKey = this.popupOurOpenData.main[0].type
+        this.choiceMethod = this.popupOurOpenData.main[0].method
+
+        this.$store.commit('MSET_BIGPOPUPAFTER', false) // 关闭前一个弹窗
+        // console.log("请求对应街道接口", this.popupOurOpenData);
+        this.getDataHeardDown()
+    },
+    watch: {
+        fullscreenLoading () {
+            if (this.fullscreenLoading) {
+                this.notLine()
+            }
+        }
+    },
+    methods: {
+        handleClick (tab, event) {
+            // 头下部标签
+            this.fullscreenLoading = true
+            this.getOutList(this.activeName, this.choiceKey)
+        },
+        choiceIt (command) {
+            // 头部下拉菜单
+            this.fullscreenLoading = true
+            this.choiceValue = command.name
+            this.choiceKey = command.type
+            this.choiceMethod = command.method // 更改请求
+            // console.log("请求对应头部下拉菜单接口", command);
+            this.getOutList(this.activeName, this.choiceKey)
+        },
+        closeBigPopup () {
+            this.$store.commit('MSET_BIGPOPUP', false)
+        },
+        getDataHeardDown () {
+            if (this.choiceMain == '活动') {
+                // 不请求头部标签页数据
+                this.getOutList(this.choiceKey)
+                return
+            }
+            if (this.choiceMain == '机构单位') {
+                this.getOutList('', this.choiceKey)
+                return
+            }
+            // 获取头下部标签页
+            getListarc().then((res) => {
+                const title = []
+                res.data.data.forEach((item) => {
+                    title.push({
+                        title: item.dictValue,
+                        flag: false,
+                        key: item.dictKey,
+                        child: []
+                    })
+                })
+                this.tabTable = title
+                this.getOutList(this.activeName, this.choiceKey)
+            })
+        },
+        // 请求
+        getOutList (campus, type) {
+            // console.log(this.choiceMain, campus, type, "see");
+            const that = this
+            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) => {
+                console.log(res)
+                const data = res.data.data
+                const outList = []
+                if (
+                    this.mBigPopup.name == '校区建筑' ||
+                    this.mBigPopup.name == '文化风景'
+                ) {
+                    // 校区建筑使用该id获取具体信息
+                    data.forEach((item) => {
+                        const icon = item.tpurl ? item.tpurl.split(',') : item.id
+                        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 if (this.mBigPopup.name == '活动') {
+                    // 校区建筑使用该id获取具体信息
+                    data.records.forEach((item) => {
+                        const icon = item.tpurl.split(',')
+                        const useData = {
+                            name: item.hdname,
+                            // 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.hdname, // 图片响应改变
+                            from: this.choiceMain,
+                            // QRImg: item.codeurl,
+                            websiteUrl: item.websiteurl,
+                            telePhone: item.telephone,
+                            // address: item.address,
+                            introduce: item.context,
+                            video: item.videourl,
+                            buts:
+                                that.mBigPopup.name == '校区建筑' ||
+                                    that.mBigPopup.name == '文化风景'
+                                    ? ['定位', '实景', '图集']
+                                    : ['定位'],
+                            // 活动添加的字段
+                            addressname: item.addressname.split(';'),
+                            address: item.address.split(';'),
+                            lxname: item.lxname.split(';'),
+                            lx: item.lx.split(';'),
+                            lntLat: [
+                                item.address.split(';')[0].split(',')[0],
+                                item.address.split(';')[0].split(',')[1]
+                            ],
+                            panoramaurl: item.panoramaurl, // 全景
+                            x: item.x
+                        }
+                        outList.push(useData)
+                    })
+                } else {
+                    // 正常获取全部数据
+                    data.records.forEach((item) => {
+                        const icon = item.tpurl.split(',')
+                        const 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 == '文化风景'
+                                    ? ['定位', '实景', '图集']
+                                    : ['定位'],
+                            panoramaurl: item.panoramaurl, // 全景
+                            x: item.x
+                        }
+                        outList.push(useData)
+                    })
+                }
+                that.fullscreenLoading = false
+                if (this.choiceMain == '机构单位' || this.choiceMain == '活动') {
+                    that.onlyData = outList
+                    return
+                }
+                that.tabTable[+campus - 1].child = outList
+            })
+        },
+        // 搜索请求
+        getListSearchMethod (name) {
+            const val = {
+                mechanismName: name
+            }
+            const that = this
+            getListSearch(val).then((res) => {
+                if (res.data.code != 200) {
+                    return
+                }
+                const data = res.data.data
+                // 正常获取全部数据
+                const outList = []
+                data.forEach((item) => {
+                    const icon = item.tpurl.split(',')
+                    const 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 == '文化风景'
+                                ? ['定位', '实景', '图集']
+                                : ['定位'],
+                        panoramaurl: item.panoramaurl, // 全景
+                        x: item.x
+                    }
+                    outList.push(useData)
+                })
+                that.fullscreenLoading = false
+                that.onlyData = outList
+            })
+        },
+        notLine () {
+            console.log('等待关闭')
+            setTimeout(() => {
+                this.fullscreenLoading = false
+                console.log('关闭dolog')
+            }, 5000)
+        }
     }
-    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.choiceMethod = this.popupOurOpenData.main[0].method;
-
-    this.$store.commit("MSET_BIGPOPUPAFTER", false); //关闭前一个弹窗
-    // console.log("请求对应街道接口", this.popupOurOpenData);
-    this.getDataHeardDown();
-  },
-  methods: {
-    handleClick(tab, event) {
-      //头下部标签
-      this.fullscreenLoading = true;
-      this.getOutList(this.activeName, this.choiceKey);
-    },
-    choiceIt(command) {
-      //头部下拉菜单
-      this.fullscreenLoading = true;
-      this.choiceValue = command.name;
-      this.choiceKey = command.type;
-      this.choiceMethod = command.method; //更改请求
-      // console.log("请求对应头部下拉菜单接口", command);
-      this.getOutList(this.activeName, this.choiceKey);
-    },
-    closeBigPopup() {
-      this.$store.commit("MSET_BIGPOPUP", false);
-    },
-    getDataHeardDown() {
-      if (this.choiceMain == "机构单位") {
-        //不请求头部标签页数据
-        this.getOutList(this.activeName, this.choiceKey);
-        return;
-      }
-      //获取头下部标签页
-      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.getOutList(this.activeName, this.choiceKey);
-      });
-    },
-    //请求
-    getOutList(campus, type) {
-      let that = this;
-      this.choiceMethod({ campus: campus, type: type }).then((res) => {
-        const data = res.data.data;
-        let outList = [];
-        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;
-      });
-    },
-  },
-};
-</script>
\ No newline at end of file
+}
+</script>

--
Gitblit v1.9.3