shuishen
2022-01-26 cfc635a5ca0d9206985869bf62bf72535ee45e14
src/components/mobilePopupOurAfter/index.vue
@@ -3,17 +3,21 @@
    class="mobilePopupOurAfter"
    :class="{ ismBigPopupAfter: mBigPopupAfter }"
  >
    <!-- v-show="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 class="m_p_a_center">
      <div class="m_p_a_center_group">
        <div
          class="m_p_a_center_once"
          :class="[
            'm_p_a_center_once',
            item.name ? '' : 'm_p_a_center_once_notblue',
          ]"
          v-for="(item, index) in choiceDataUp"
          @click="openBigPopup(item)"
          @click="item.name ? openBigPopup(item) : ''"
          :key="index"
        >
          <div class="m_p_a_c_o_up"><i :class="[item.icon]"></i></div>
@@ -22,9 +26,38 @@
      </div>
      <div class="m_p_a_center_group">
        <div
          class="m_p_a_center_once"
          :class="[
            'm_p_a_center_once',
            item.name ? '' : 'm_p_a_center_once_notblue',
          ]"
          v-for="(item, index) in choiceDataDown"
          @click="openBigPopup(item)"
          @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>
@@ -54,6 +87,7 @@
} 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",
  computed: {
@@ -83,11 +117,6 @@
      ],
      choiceDataDown: [
        {
          name: "文化风景",
          opendata: "openData4",
          icon: "el-icon-s-opportunity",
        },
        {
          name: "出入口",
          opendata: "openData5",
          icon: "el-icon-s-promotion",
@@ -97,11 +126,28 @@
          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: 3, method: getList },
        // { name: "教学与科研机构", type: 4, method: getList },
        { name: "其他机构", type: 5, method: getList },
      ],
@@ -131,7 +177,7 @@
      openData3: [
        // { name: "食堂餐厅", type: 1, method: getListLifeOnce },
        // { name: "购物超市", type: 2, method: getListLifeOnce },
        // { name: "社区医疗", type: 3, method: getListLifeOnce },
        { name: "社区医疗", type: 3, method: getListLifeOnce },
        // { name: "邮寄快递", type: 4, method: getListLifeOnce },
        // { name: "社区浴室", type: 5, method: getListLifeOnce },
        // // { name: "圈存机", type: 6, method: getListLifeOnce },
@@ -142,14 +188,81 @@
        { 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 }],
      openData4: [{ name: "文化风景", type: 5, method: getChildNavList }],
      useHD: false,
    };
  },
  mounted() {},
  mounted() {
    this.getActivitys();
    if (this.useHD) {
      this.choiceDataDown[3] = { name: "" };
    }
  },
  methods: {
    //活动点击事件
    openHDPopup(val) {
      console.log(val);
      //开启底部弹窗  关闭本弹窗
      let d = {
        state: true,
        value: val,
      };
      this.$store.commit("set_showActivity", d);
      this.closeBigPopupAfter();
    },
    //获取活动数据
    getActivitys() {
      let that = this;
      getActivity().then((res) => {
        const data = res.data.data.records;
        let datas = [...data];
        let num = datas.length;
        //划分出每组3个的二维数组
        let many = parseInt(num / 3); //整数组
        let over = parseInt(num % 3); //余数组
        //赋值整数组
        let integers = [];
        let i = 0;
        for (let index = 0; index < many; index++) {
          let 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);
        }
        //赋值余数组
        let integersOvers = [];
        for (let overI = 0; overI < over; overI++) {
          integersOvers.push({
            name: datas[i].hdname,
            opendata: datas[i],
            icon: "el-icon-s-opportunity",
          });
          i++;
        }
        let 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]);
        return;
      }
      const d = {
        main: this[val.opendata],
        qurey: val.name,
@@ -176,7 +289,8 @@
  // left: 13.5%;
  left: -1000px;
  width: 75%;
  height: 25%;
  height: auto;
  min-height: 155px;
  background-color: #fff;
  box-shadow: 0px 0px 5px #29baf1;
  transition: all 0.5s;
@@ -204,6 +318,7 @@
    height: 35px;
    box-sizing: border-box;
    padding: 5px 15px;
    color: #fff;
    @extend .flexCenter;
    justify-content: space-between;
    background-color: #29baf1;
@@ -217,18 +332,23 @@
      color: #fff;
    }
  }
  .m_p_a_hdheard {
    margin: 5px 0;
  }
  .m_p_a_center {
    width: 100%;
    height: calc(100% - 35px);
    // height: calc(100% - 35px);
    height: auto;
    @extend .flexCenter;
    flex-direction: column;
    padding: 5px 0;
    .m_p_a_center_group {
      width: 100%;
      height: 40%;
      height: auto;
      @extend .flexCenter;
      .m_p_a_center_once {
        width: 30%;
        height: 100%;
        height: 50px;
        // background-image: linear-gradient(#29baf1, #28bbf06c);
        // background-color: #a40000;
        background-color: #29baf1;
@@ -241,6 +361,9 @@
        // background-image: linear-gradient(#09b7fc, #28bbf0a4);
        // }
      }
      .m_p_a_center_once_notblue {
        background-color: #fff !important;
      }
    }
  }
}