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/mobilePopupOurAfter/index.vue |  540 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 366 insertions(+), 174 deletions(-)

diff --git a/src/components/mobilePopupOurAfter/index.vue b/src/components/mobilePopupOurAfter/index.vue
index d5714e1..94744ff 100644
--- a/src/components/mobilePopupOurAfter/index.vue
+++ b/src/components/mobilePopupOurAfter/index.vue
@@ -1,195 +1,387 @@
 <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>
+    <!-- 信息窗口导航mobilePopupOurAfter -->
+
+    <div class="mobilePopupOurAfter" :class="{ ismBigPopupAfter: mBigPopupAfter }">
+        <!-- v-if="mBigPopupAfter" -->
+        <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>
-      <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 class="m_p_a_center">
+            <div class="m_p_a_center_group">
+                <div
+                    :class="[
+            'm_p_a_center_once',
+            item.name ? '' : 'm_p_a_center_once_notblue',
+          ]"
+                    v-for="(item, index) in choiceDataUp"
+                    @click="item.name ? 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.seeName || item.name }}</div>
+                </div>
+            </div>
+            <div class="m_p_a_center_group">
+                <div
+                    :class="[
+            'm_p_a_center_once',
+            item.name ? '' : 'm_p_a_center_once_notblue',
+          ]"
+                    v-for="(item, index) in choiceDataDown"
+                    @click="item.name ? 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.seeName || item.name }}</div>
+                </div>
+            </div>
+            <div
+                class="m_p_a_heard m_p_a_hdheard"
+                style="justify-content: center"
+                v-show="avtivityData.length > 0 && useHD"
+            >活动列表</div>
+            <div
+                class="m_p_a_center_group"
+                v-for="(act, index) in avtivityData"
+                :key="index"
+                v-show="avtivityData.length > 0 && useHD"
+            >
+                <div
+                    :class="[
+            'm_p_a_center_once',
+            item.name ? '' : 'm_p_a_center_once_notblue',
+          ]"
+                    v-for="(item, index) in act"
+                    @click="item.name ? openHDPopup(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.seeName || item.name }}</div>
+                </div>
+            </div>
         </div>
-      </div>
     </div>
-  </div>
 </template>
 
 <script>
-import { getList } from "@/api/mobile/orgnav/index"; //机构单位
-import { getChildNavList } from "@/api/mobile/public/arc"; //校园建筑
+import { mapGetters } from 'vuex'
+import { getList } from '@/api/mobile/orgnav/index' // 机构单位
+import { getChildNavList } from '@/api/mobile/public/arc' // 校区建筑
 import {
-  getListlivingFacilitiesr,
-  getListsupermarket,
-  getListmedical,
-  getListmail,
-  getListbathroom,
-  getListduplicate,
-  getListnetwork,
-  getListaed,
-  getListsignal,
-} from "@/api/mobile/livingFacilities/index"; //生活设施
-import { getListparking } from "@/api/mobile/stop/index"; //停车场
+    // getListlivingFacilitiesr,
+    // getListsupermarket,
+    // getListmedical,
+    // getListmail,
+    // getListbathroom,
+    // getListduplicate,
+    // getListnetwork,
+    // getListaed,
+    // getListsignal,
+    // getListtransference,
+    getListLifeOnce // 所有的
+} from '@/api/mobile/livingFacilities/index' // 生活设施
+// import { getListdoor } from "@/api/mobile/outIn/index"; //出入口
+// import { getListparking } from "@/api/mobile/stop/index"; //停车场
+import { getActivity } from '@/api/mobile/hd/hd' // 活动
 export default {
-  name: "mobilePopupOurAfter",
-  data() {
-    return {
-      choiceValue: "",
-      choiceDataUp: [
-        {
-          name: "机构单位",
-          icon: "el-icon-s-cooperation",
-          opendata: "openData1",
-        },
-        {
-          name: "校园建筑",
-          opendata: "openData2",
-          icon: "el-icon-s-management",
-        },
-        {
-          name: "生活设施",
-          opendata: "openData3",
-          icon: "el-icon-s-flag",
-        },
-      ],
-      choiceDataDown: [
-        {
-          name: "文化风景",
-          opendata: "openData4",
-          icon: "el-icon-s-opportunity",
-        },
-        {
-          name: "出入口",
-          opendata: "openData5",
-          icon: "el-icon-s-promotion",
-        },
-        {
-          name: "停车场",
-          opendata: "openData6",
-          icon: "el-icon-s-flag",
-        },
-      ],
-      openData1: [
-        { name: "党群机构", type: 1, method: getList },
-        { name: "职能部处", type: 2, method: getList },
-        { name: "直属及附属单位", type: 3, method: getList },
-        { name: "教学与科研机构", type: 4, method: getList },
-        { name: "其他机构", type: 5, method: getList },
-      ],
-      openData2: [
-        { name: "行政办公", type: 1, method: getChildNavList },
-        { name: "教学科研", type: 2, method: getChildNavList },
-        { name: "校内场馆", type: 3, method: getChildNavList },
-        { name: "宿舍公寓", type: 4, method: getChildNavList },
-        { name: "文化风景", type: 5, method: getChildNavList },
-        { name: "家属住宅", type: 6, method: getChildNavList },
-        { name: "其他楼宇", type: 7, method: getChildNavList },
-      ],
-      openData3: [
-        { name: "食堂餐厅", type: 1, method: getListlivingFacilitiesr },
-        { name: "购物超市", type: 2, method: getListsupermarket },
-        { name: "校内医疗", type: 3, method: getListmedical },
-        { name: "邮寄快递", type: 4, method: getListmail },
-        { name: "学生浴室", type: 5, method: getListbathroom },
-        // { name: "圈存机", type: 6 ,method:getListlivingFacilitiesr},
-        { name: "打字复印", type: 7, method: getListduplicate },
-        { name: "AED", type: 8, method: getListaed },
-        { name: "银行网点", type: 9, method: getListnetwork },
-        { name: "通信营业厅", type: 10, method: getListsignal },
-      ],
-      openData4: [
-        { name: "文化风景", type: 1, method: getListlivingFacilitiesr },
-      ],
-      openData5: [
-        { name: "出入口", type: 1, method: getListlivingFacilitiesr },
-      ],
-      openData6: [{ name: "停车场", type: 1, method: getListparking }],
-    };
-  },
-  mounted() {},
-  methods: {
-    openBigPopup(val) {
-      let d = {
-        main: this[val.opendata],
-        qurey: val.name,
-      };
-      this.$store.commit("MSET_POPUPOUROPENDATA", d);
-      this.$store.commit("MSET_BIGPOPUP", val);
+    name: 'mobilePopupOurAfter',
+    computed: {
+        ...mapGetters(['mBigPopupAfter'])
     },
-    closeBigPopupAfter() {
-      this.$store.commit("MSET_BIGPOPUPAFTER", false);
+    data () {
+        return {
+            choiceValue: '',
+            choiceDataUp: [
+                {
+                    // seeName: "校区内机构导览",
+                    name: '机构单位',
+                    icon: 'el-icon-s-cooperation',
+                    opendata: 'openData1'
+                },
+                {
+                    name: '校区建筑',
+                    opendata: 'openData2',
+                    icon: 'el-icon-s-management'
+                },
+                {
+                    // seeName: "生活服务设施",
+                    name: '生活设施',
+                    opendata: 'openData3',
+                    icon: 'el-icon-s-flag'
+                }
+            ],
+            choiceDataDown: [
+                {
+                    name: '出入口',
+                    opendata: 'openData5',
+                    icon: 'el-icon-s-promotion'
+                },
+                {
+                    name: '停车场',
+                    opendata: 'openData6',
+                    icon: 'el-icon-s-flag'
+                },
+                {
+                    // name: "文化风景",
+                    name: '活动',
+                    opendata: 'openData4',
+                    icon: 'el-icon-s-opportunity'
+                }
+            ],
+            avtivityData: [
+                // [
+                //   {
+                //     name: "活动",
+                //     opendata: "openData4",
+                //     icon: "el-icon-s-opportunity",
+                //   },
+                //   {},
+                //   {},
+                // ],
+            ],
+            // 全部调用数据
+            openData1: [
+                { name: '党政机构', type: 1, method: getList },
+                { name: '职能部处', type: 2, method: getList },
+                { name: '直属及附属单位', type: 3, method: getList },
+                { name: '教学与科研机构', type: 4, method: getList },
+                { name: '其他机构', type: 5, method: getList }
+            ],
+            openData2: [
+                { name: '行政办公', type: 1, method: getChildNavList },
+                { name: '教学科研', type: 2, method: getChildNavList },
+                { name: '校区场馆', type: 3, method: getChildNavList },
+                { name: '宿舍公寓', type: 4, method: getChildNavList },
+                { name: '文化风景', type: 5, method: getChildNavList },
+                { name: '家属住宅', type: 6, method: getChildNavList },
+                { name: '其他楼宇', type: 7, method: getChildNavList }
+            ],
+            // openData3: [
+            //   { name: "食堂餐厅", type: 1, method: getListlivingFacilitiesr },
+            //   { name: "购物超市", type: 2, method: getListsupermarket },
+            //   { name: "校区内医疗", type: 3, method: getListmedical },
+            //   { name: "邮寄快递", type: 4, method: getListmail },
+            //   { name: "校区浴室", type: 5, method: getListbathroom },
+            //   { name: "圈存机", type: 6, method: getListtransference },
+            //   { name: "打字复印", type: 7, method: getListduplicate },
+            //   { name: "AED", type: 8, method: getListaed },
+            //   { name: "银行网点", type: 9, method: getListnetwork },
+            //   { name: "通信营业厅", type: 10, method: getListsignal },
+            // ],
+            // openData6: [{ name: "停车场", type: 1, method: getListparking }],
+            // openData5: [{ name: "出入口", type: 1, method: getListdoor }],
+            openData3: [
+                { name: '食堂餐厅', type: 1, method: getListLifeOnce },
+                { name: '购物超市', type: 2, method: getListLifeOnce },
+                { name: '校区医疗', type: 3, method: getListLifeOnce },
+                { name: '邮寄快递', type: 4, method: getListLifeOnce },
+                { name: '校区浴室', type: 5, method: getListLifeOnce },
+                // { name: "圈存机", type: 6, method: getListLifeOnce },
+                { name: '打字复印', type: 7, method: getListLifeOnce },
+                { name: '银行网点', type: 8, method: getListLifeOnce },
+                { name: 'AED', type: 9, method: getListLifeOnce },
+                { name: '通信营业厅', type: 10, method: getListLifeOnce },
+                { name: '停车场', type: 11, method: getListLifeOnce },
+                { name: '出入口', type: 12, method: getListLifeOnce }
+            ],
+            openData4: [
+                { name: '文化风景', type: 5, method: getChildNavList },
+                { name: '活动', type: 1, method: getActivity }
+            ],
+            openData6: [{ name: '停车场', type: 11, method: getListLifeOnce }],
+            openData5: [{ name: '出入口', type: 12, method: getListLifeOnce }],
+            useHD: true
+        }
     },
-  },
-};
+    mounted () {
+        this.getActivitys()
+        if (this.useHD) {
+            this.choiceDataDown.pop()
+            this.choiceDataDown.push({ name: '' })
+        }
+    },
+    methods: {
+        // 活动点击事件
+        openHDPopup (val) {
+            console.log(val)
+            // 开启底部弹窗  关闭本弹窗
+            const d = {
+                state: true,
+                value: val
+            }
+            this.$store.commit('set_showActivity', d)
+            this.closeBigPopupAfter()
+        },
+        // 获取活动数据
+        getActivitys () {
+            const that = this
+            getActivity().then((res) => {
+                const data = res.data.data.records
+                const datas = [...data]
+                const num = datas.length
+                // 划分出每组3个的二维数组
+                const many = parseInt(num / 3) // 整数组
+                const over = parseInt(num % 3) // 余数组
+                // 赋值整数组
+                const integers = []
+                let i = 0
+                for (let index = 0; index < many; index++) {
+                    const integersins = []
+                    for (let indexs = 0; indexs < 3; indexs++) {
+                        integersins.push({
+                            name: datas[i].hdname,
+                            opendata: datas[i],
+                            icon: 'el-icon-s-opportunity'
+                        })
+                        i++
+                    }
+                    integers.push(integersins)
+                }
+                // 赋值余数组
+                const integersOvers = []
+                for (let overI = 0; overI < over; overI++) {
+                    integersOvers.push({
+                        name: datas[i].hdname,
+                        opendata: datas[i],
+                        icon: 'el-icon-s-opportunity'
+                    })
+                    i++
+                }
+                const lastOver = 3 - over
+                for (let overM = 0; overM < lastOver; overM++) {
+                    integersOvers.push({ data: 'not' })
+                }
+                integers.push(integersOvers)
+                that.avtivityData = integers
+            })
+        },
+        openBigPopup (val) {
+            if (val.name == '活动' && !this.useHD) {
+                this.openHDPopup(this.avtivityData[0][0])
+                // 隐藏右侧栏
+                this.$store.commit('SET_SeeAndNotSee', false)
+                return
+            }
+            const d = {
+                main: this[val.opendata],
+                qurey: val.name
+            }
+            this.$store.commit('MSET_POPUPOUROPENDATA', d)
+            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;
+    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;
+.mobilePopupOurAfter {
+    font-size: 18px;
+    position: fixed;
+    top: 37.5%;
+    // left: 13.5%;
+    left: -1000px;
+    width: 75%;
+    height: auto;
+    min-height: 155px;
+    background-color: #fff;
+    box-shadow: 0px 0px 5px #29baf1;
+    transition: all 0.5s;
+    // background-image: linear-gradient(
+    //     // 135deg,
+    //     #28bbf06c 30px,
+    //     #28bbf06c 30px,
+    //     // #28bbf06c 50%,
+    //     // transparent 50%
+    //     #28bbf06c 100%,
+    //     transparent 100%
+    //   ),
+    //   linear-gradient(
+    //     // -45deg,
+    //     transparent 30px,
+    //     #28bbf06c 30px,
+    //     // #28bbf06c 50.1%,
+    //     // transparent 50%
+    //     #28bbf06c 100%,
+    //     transparent 100%
+    //   );
+    z-index: 300;
+    .m_p_a_heard {
+        width: 100%;
+        height: 35px;
+        box-sizing: border-box;
+        padding: 5px 15px;
         color: #fff;
-        border: 2px solid rgb(255, 255, 255);
+        @extend .flexCenter;
+        justify-content: space-between;
+        background-color: #29baf1;
+        div {
+            width: 35px;
+            height: 35px;
+            @extend .flexCenter;
+        }
+        .icon {
+            font-size: 24px;
+            color: #fff;
+        }
+    }
+    .m_p_a_hdheard {
+        margin: 5px 0;
+    }
+    .m_p_a_center {
+        width: 100%;
+        // height: calc(100% - 35px);
+        height: auto;
         @extend .flexCenter;
         flex-direction: column;
-      }
+        padding: 10px 0;
+        .m_p_a_center_group {
+            width: 100%;
+            height: auto;
+            @extend .flexCenter;
+            .m_p_a_center_once {
+                width: 30%;
+                height: 50px;
+                // background-image: linear-gradient(#29baf1, #28bbf06c);
+                // background-color: #a40000;
+                background-color: #29baf1;
+                color: #fff;
+                // border: 2px solid rgba(105, 215, 255, 0.658);
+                border: 2px solid rgb(255, 255, 255);
+                @extend .flexCenter;
+                flex-direction: column;
+                // &:hover {
+                // background-image: linear-gradient(#09b7fc, #28bbf0a4);
+                // }
+            }
+            .m_p_a_center_once_notblue {
+                background-color: #fff !important;
+            }
+        }
     }
-  }
 }
-</style>
\ No newline at end of file
+.ismBigPopupAfter {
+    left: 13.5%;
+}
+.m_p_a_c_o_down {
+    font-size: 14px;
+}
+</style>

--
Gitblit v1.9.3