| | |
| | | <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> |
| | | .ismBigPopupAfter { |
| | | left: 13.5%; |
| | | } |
| | | .m_p_a_c_o_down { |
| | | font-size: 14px; |
| | | } |
| | | </style> |