shuishen
2022-03-31 7588a701541f1b6cfee3e60412872972e0faf4cc
Merge branch 'master' of http://192.168.0.105:10010/r/school-web
12 files modified
658 ■■■■ changed files
src/components/mobileActivity/index.vue 3 ●●●●● patch | view | raw | blame | history
src/components/mobileActivity旧的没底图/index.vue 3 ●●●●● patch | view | raw | blame | history
src/components/mobileCloseRouter/index.vue 3 ●●●●● patch | view | raw | blame | history
src/components/mobileCortrol/index.vue 3 ●●●●● patch | view | raw | blame | history
src/components/mobileCortrolButtom/index.vue 3 ●●●●● patch | view | raw | blame | history
src/components/mobileCortrolSearch/index.vue 138 ●●●● patch | view | raw | blame | history
src/components/mobileLeftNav/index.vue 3 ●●●●● patch | view | raw | blame | history
src/components/mobilePanorama/index.vue 102 ●●●● patch | view | raw | blame | history
src/components/mobilePopupOur/index.vue 1 ●●●● patch | view | raw | blame | history
src/components/mobilePopupOurAfter/index.vue 2 ●●●●● patch | view | raw | blame | history
src/components/mobilePopupOurOnce/index.vue 396 ●●●● patch | view | raw | blame | history
src/components/mobileWindow/index.vue 1 ●●●● patch | view | raw | blame | history
src/components/mobileActivity/index.vue
@@ -1,4 +1,7 @@
<template>
  <!-- 活动弹窗
mobileActivity
 -->
  <div
    id="mobileActivity"
    :style="{ height: height + 'px' }"
src/components/mobileActivity旧的没底图/index.vue
@@ -1,4 +1,7 @@
<template>
  <!-- 活动弹窗没有底图备份
mobileActivity
 -->
  <div
    id="mobileActivity"
    :style="{ height: height + 'px' }"
src/components/mobileCloseRouter/index.vue
@@ -1,5 +1,8 @@
<template>
  <!-- v-show="isOpenDrawALine" -->
  <!-- 退出导航,右边按钮
mobileCloseRouter
 -->
  <div class="routers">
    <div
      :class="['mobileCloseRouter', isOpenDrawALine ? 'mobileCloseActive' : '']"
src/components/mobileCortrol/index.vue
@@ -1,5 +1,8 @@
<template>
  <div class="m-left-control">
    <!-- 3d切换
mobileCortrol
 -->
    <!-- <div
      class="m-l-inbut zoom-in m-l-inbut-2d"
      :class="{ active: dimension == '3D' }"
src/components/mobileCortrolButtom/index.vue
@@ -1,5 +1,8 @@
<template>
  <div class="m-left-mobileCortrolButtom">
    <!-- 底部按钮
mobileCortrolButtom
 -->
    <!-- <div class="m-l-inbut" @click="mubiao"><i class="el-icon-s-help"></i></div> -->
    <div class="m-l-inbut" v-show="false">
      <!-- <i class="el-icon-s-flag"></i> -->
src/components/mobileCortrolSearch/index.vue
@@ -1,83 +1,85 @@
<template>
    <div class="m-left-mobileCortrolSearch">
        <div class="m-left-SearchMain">
            <el-input
                placeholder="请输入内容"
                v-model="input"
                clearable
                size="small"
                class="m-left-S-input"
            >
                <el-button
                    slot="append"
                    class="iconSearch"
                    icon="el-icon-search icon"
                    @click="search"
                ></el-button>
            </el-input>
        </div>
  <!-- 中间搜索
mobileCortrolSearch
 -->
  <div class="m-left-mobileCortrolSearch">
    <div class="m-left-SearchMain">
      <el-input
        placeholder="请输入内容"
        v-model="input"
        clearable
        size="small"
        class="m-left-S-input"
      >
        <el-button
          slot="append"
          class="iconSearch"
          icon="el-icon-search icon"
          @click="search"
        ></el-button>
      </el-input>
    </div>
  </div>
</template>
<script>
export default {
    name: 'mobileCortrolSearch',
    computed: {},
    data () {
        return {
            viewer: null,
            input: ''
        }
  name: "mobileCortrolSearch",
  computed: {},
  data() {
    return {
      viewer: null,
      input: "",
    };
  },
  created() {},
  mounted() {},
  methods: {
    initialize(viewer) {
      viewer.scene.globe.depthTestAgainstTerrain = false;
      this.viewer = viewer;
    },
    created () {
    search() {
      const that = this;
      this.$store.commit("MSET_BIGPOPUP", { search: true, value: that.input });
      that.input = "";
    },
    mounted () { },
    methods: {
        initialize (viewer) {
            viewer.scene.globe.depthTestAgainstTerrain = false
            this.viewer = viewer
        },
        search () {
            const that = this
            this.$store.commit('MSET_BIGPOPUP', { search: true, value: that.input })
            that.input = ''
        }
    }
}
  },
};
</script>
<style scoped lang="scss">
.m-left-mobileCortrolSearch {
    width: 100%;
    position: fixed;
    top: 0;
    // left: 20px;
    z-index: 200;
    .m-left-SearchMain {
        margin: 0 auto;
        width: 60%;
        position: relative;
        z-index: 1;
        top: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        .m-left-S-input {
            border: none;
            font-size: 16px;
        }
        .iconSearch {
            width: 30px;
            height: 30px;
            padding-top: 0;
            padding-bottom: 0;
            background-color: rgb(33, 150, 243);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            color: #fff;
        }
  width: 100%;
  position: fixed;
  top: 0;
  // left: 20px;
  z-index: 200;
  .m-left-SearchMain {
    margin: 0 auto;
    width: 60%;
    position: relative;
    z-index: 1;
    top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    .m-left-S-input {
      border: none;
      font-size: 16px;
    }
    .iconSearch {
      width: 30px;
      height: 30px;
      padding-top: 0;
      padding-bottom: 0;
      background-color: rgb(33, 150, 243);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
      color: #fff;
    }
  }
}
</style>
src/components/mobileLeftNav/index.vue
@@ -1,4 +1,7 @@
<template>
<!-- 右侧标签管理栏
mobileLeftNav
 -->
  <div :class="['m-left-nav', seeRight ? '' : 'nones']" :style="[navStyle]">
    <!-- :style="[coutrolStyle]" -->
    <div class="m-left-coutrol" @click="changeIconHide">
src/components/mobilePanorama/index.vue
@@ -1,63 +1,67 @@
/*
 * @Author: Morpheus
 * @Date: 2022-03-31 15:26:19
 * @Last Modified by: Morpheus
 * @Last Modified time: 2022-03-31 15:32:22
 * @Name: 该组件得作用是什么等
 */
/* * @Author: Morpheus * @Date: 2022-03-31 15:26:19 * @Last Modified by:
Morpheus * @Last Modified time: 2022-03-31 15:32:22 * @Name:
该组件得作用是什么等 */
<template>
    <div v-if="openmobilePanorama" class="mobilePanorama">
        <div class="mobilePanorama-close" @click="closeMobilePanorama">
            <i class="el-icon-error icon"></i>
        </div>
        <iframe :src="openmobilePanorama" width="100%" height="100%" frameborder="0"></iframe>
  <!-- 实景窗口
mobilePanorama
 -->
  <div v-if="openmobilePanorama" class="mobilePanorama">
    <div class="mobilePanorama-close" @click="closeMobilePanorama">
      <i class="el-icon-error icon"></i>
    </div>
    <iframe
      :src="openmobilePanorama"
      width="100%"
      height="100%"
      frameborder="0"
    ></iframe>
  </div>
</template>
<script>
import { mapGetters } from 'vuex'
import { mapGetters } from "vuex";
export default {
    name: 'mobilePanorama',
    computed: {
        ...mapGetters(['openmobilePanorama'])
  name: "mobilePanorama",
  computed: {
    ...mapGetters(["openmobilePanorama"]),
  },
  // watch: {
  //   openmobilePanorama() {
  //     // console.log(this.openmobilePanorama);
  //     if (this.openmobilePanorama) {
  //       console.log("开启全景");
  //     }
  //   },
  // },
  data() {
    return {};
  },
  methods: {
    closeMobilePanorama() {
      this.$store.commit("MSET_OPENMOBILEPANORAMA", false);
    },
    // watch: {
    //   openmobilePanorama() {
    //     // console.log(this.openmobilePanorama);
    //     if (this.openmobilePanorama) {
    //       console.log("开启全景");
    //     }
    //   },
    // },
    data () {
        return {}
    },
    methods: {
        closeMobilePanorama () {
            this.$store.commit('MSET_OPENMOBILEPANORAMA', false)
        }
    }
}
  },
};
</script>
<style lang="scss" scoped>
.mobilePanorama {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    background-color: #fff;
    .mobilePanorama-close {
        background-color: rgba($color: #fff, $alpha: 0.6);
        border-radius: 1000px;
        position: absolute;
        right: 5px;
        top: 5px;
        .icon {
            font-size: 35px;
        }
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  background-color: #fff;
  .mobilePanorama-close {
    background-color: rgba($color: #fff, $alpha: 0.6);
    border-radius: 1000px;
    position: absolute;
    right: 5px;
    top: 5px;
    .icon {
      font-size: 35px;
    }
  }
}
</style>
src/components/mobilePopupOur/index.vue
@@ -1,4 +1,5 @@
<template>
  <!-- 信息窗口主体mobilePopupOur -->
  <div id="mobilePopupOur" v-loading.fullscreen.lock="fullscreenLoading">
    <div class="m_p_heard">
      <div class="m_p_h_break" @click="closeBigPopup">
src/components/mobilePopupOurAfter/index.vue
@@ -1,4 +1,6 @@
<template>
  <!-- 信息窗口导航mobilePopupOurAfter -->
  <div
    class="mobilePopupOurAfter"
    :class="{ ismBigPopupAfter: mBigPopupAfter }"
src/components/mobilePopupOurOnce/index.vue
@@ -1,32 +1,35 @@
<template>
    <div class="mobilePopupOurOnce">
        <div
            class="mobilePopupOurOnce_center"
            :style="{
  <!-- 信息窗口每条信息dom mobilePopupOurOnce -->
  <div class="mobilePopupOurOnce">
    <div
      class="mobilePopupOurOnce_center"
      :style="{
        borderBottom: !ends ? '#d4d4d4 dashed 1px' : '',
        marginBottom: !ends ? '6px' : '',
      }"
    >
      <div class="mobilePopupOurOnce_left">
        <!-- <img :src="icon" alt="" :key="icon" /> -->
        <el-image
          style="width: 80px; height: 80px"
          :src="icon"
          :id="'mobileBigImgs' + icon + ''"
          :preview-src-list="srcList"
        >
            <div class="mobilePopupOurOnce_left">
                <!-- <img :src="icon" alt="" :key="icon" /> -->
                <el-image
                    style="width: 80px; height: 80px"
                    :src="icon"
                    :id="'mobileBigImgs' + icon + ''"
                    :preview-src-list="srcList"
                >
                    <!-- v-show="false" -->
                </el-image>
            </div>
            <div class="mobilePopupOurOnce_right" @click.self.stop="openOnce('定位')">
                <div
                    class="mobilePopupOurOnce_r_up"
                    @click.self.stop="openOnce('定位')"
                >{{ onceData.name }}</div>
                <div class="mobilePopupOurOnce_r_down">
                    <div v-for="(item, index) in seebut" :key="index">
                        <el-link
                            :icon="
          <!-- v-show="false" -->
        </el-image>
      </div>
      <div class="mobilePopupOurOnce_right" @click.self.stop="openOnce('定位')">
        <div
          class="mobilePopupOurOnce_r_up"
          @click.self.stop="openOnce('定位')"
        >
          {{ onceData.name }}
        </div>
        <div class="mobilePopupOurOnce_r_down">
          <div v-for="(item, index) in seebut" :key="index">
            <el-link
              :icon="
                item.name == '实景'
                  ? 'el-icon-place'
                  : item.name == '图集'
@@ -35,193 +38,194 @@
                  ? 'el-icon-map-location'
                  : ''
              "
                            class="mobilePopupOurOnce_r_d_in"
                            @click="openOnce(item.name)"
                        >{{ item.name }}</el-link>
                        <el-divider
                            direction="vertical"
                            class="mobilePopupOurOnce_r_d_in"
                            v-if="index != seebut.length - 1"
                        ></el-divider>
                    </div>
                </div>
            </div>
              class="mobilePopupOurOnce_r_d_in"
              @click="openOnce(item.name)"
              >{{ item.name }}</el-link
            >
            <el-divider
              direction="vertical"
              class="mobilePopupOurOnce_r_d_in"
              v-if="index != seebut.length - 1"
            ></el-divider>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { mapGetters } from 'vuex'
import { getChildNavDetail } from '@/api/mobile/public/arc'
import { mapGetters } from "vuex";
import { getChildNavDetail } from "@/api/mobile/public/arc";
export default {
    props: ['onceData', 'ends'],
    name: 'mobilePopupOurOnce',
    created () {
        if (this.onceData.icon) {
            this.srcList = this.onceData.icon
            this.icon = this.srcList[0]
        }
        if (this.onceData.from == '校区建筑' || this.onceData.from == '文化风景') {
            this.getOnceCampus(this.onceData.id)
        } else {
            this.ourData = this.onceData
        }
    },
    data () {
        return {
            icon: '',
            srcList: [],
            ourData: {}
        }
    },
    computed: {
        ...mapGetters(['mviewer']),
        seebut () {
            const buts = this.onceData.buts
            let b = []
            for (const k in buts) {
                if (buts[k] == '实景') {
                    continue
                }
                b.push({
                    name: buts[k]
                })
            }
            if (this.ourData.panoramaurl) {
                b.push({
                    name: '实景'
                })
            } else {
                b = b.filter((res) => {
                    return res.name != '实景'
                })
            }
            return b
        }
    },
    methods: {
        openOnce (val) {
            console.log(this.ourData)
            if (!this.ourData.name) {
                console.log('数据传输失败')
                return
            }
            const that = this
            if (val == '定位') {
                // 活动定位
                if (this.ourData.name == '活动') {
                    console.log(this.ourData)
                    return
                }
                // 随地图移动窗口
                this.$store.commit('MSET_BIGPOPUP', false) // 关闭全屏弹窗
                setTimeout(() => {
                    //   // 定制化窗体
                    const d = {
                        position: {},
                        lntLat: that.ourData.lntLat,
                        query: { ...this.ourData, seebut: this.seebut },
                        useJWD: true, // 仅使用经纬度
                        from: 'PopupOurOnce'
                    }
                    that.$store.dispatch('setMobileWindows', d)
                }, 500)
                // 固定窗口
                // that.$store.dispatch("SET_OPENWIDOWFIXED", d);
            } else if (val == '实景') {
                this.$store.commit('MSET_OPENMOBILEPANORAMA', this.ourData.panoramaurl)
                // if(this.ourData.panoramaurl){
                // }
                // console.log(this.ourData.panoramaurl);
            } else if (val == '图集') {
                const imgsDom = document.getElementById(
                    'mobileBigImgs' + this.icon + ''
                )
                imgsDom.click()
            }
        },
        // "校区建筑"↓
        getOnceCampus (id) {
            console.log(id)
            getChildNavDetail({ id: id }).then((res) => {
                console.log(res, 5656)
                var result = res.data.data[0].list
                const d = {
                    name: result.mechanismname,
                    lntLat: [result.jd, result.wd],
                    alt: result.gd,
                    heading: result.heading,
                    pitch: result.pitch,
                    roll: result.roll,
                    bgImg: result.tpurl,
                    QRImg: result.codeurl,
                    websiteUrl: result.websiteurl,
                    telePhone: result.telephone,
                    address: result.address,
                    introduce: result.introduce,
                    video: result.videourl,
                    panoramaurl: result.panoramaurl // 全景
                }
                this.ourData = d
            })
        }
        // "校区建筑"↑
  props: ["onceData", "ends"],
  name: "mobilePopupOurOnce",
  created() {
    if (this.onceData.icon) {
      this.srcList = this.onceData.icon;
      this.icon = this.srcList[0];
    }
}
    if (this.onceData.from == "校区建筑" || this.onceData.from == "文化风景") {
      this.getOnceCampus(this.onceData.id);
    } else {
      this.ourData = this.onceData;
    }
  },
  data() {
    return {
      icon: "",
      srcList: [],
      ourData: {},
    };
  },
  computed: {
    ...mapGetters(["mviewer"]),
    seebut() {
      const buts = this.onceData.buts;
      let b = [];
      for (const k in buts) {
        if (buts[k] == "实景") {
          continue;
        }
        b.push({
          name: buts[k],
        });
      }
      if (this.ourData.panoramaurl) {
        b.push({
          name: "实景",
        });
      } else {
        b = b.filter((res) => {
          return res.name != "实景";
        });
      }
      return b;
    },
  },
  methods: {
    openOnce(val) {
      console.log(this.ourData);
      if (!this.ourData.name) {
        console.log("数据传输失败");
        return;
      }
      const that = this;
      if (val == "定位") {
        // 活动定位
        if (this.ourData.name == "活动") {
          console.log(this.ourData);
          return;
        }
        // 随地图移动窗口
        this.$store.commit("MSET_BIGPOPUP", false); // 关闭全屏弹窗
        setTimeout(() => {
          //   // 定制化窗体
          const d = {
            position: {},
            lntLat: that.ourData.lntLat,
            query: { ...this.ourData, seebut: this.seebut },
            useJWD: true, // 仅使用经纬度
            from: "PopupOurOnce",
          };
          that.$store.dispatch("setMobileWindows", d);
        }, 500);
        // 固定窗口
        // that.$store.dispatch("SET_OPENWIDOWFIXED", d);
      } else if (val == "实景") {
        this.$store.commit("MSET_OPENMOBILEPANORAMA", this.ourData.panoramaurl);
        // if(this.ourData.panoramaurl){
        // }
        // console.log(this.ourData.panoramaurl);
      } else if (val == "图集") {
        const imgsDom = document.getElementById(
          "mobileBigImgs" + this.icon + ""
        );
        imgsDom.click();
      }
    },
    // "校区建筑"↓
    getOnceCampus(id) {
      console.log(id);
      getChildNavDetail({ id: id }).then((res) => {
        console.log(res, 5656);
        var result = res.data.data[0].list;
        const d = {
          name: result.mechanismname,
          lntLat: [result.jd, result.wd],
          alt: result.gd,
          heading: result.heading,
          pitch: result.pitch,
          roll: result.roll,
          bgImg: result.tpurl,
          QRImg: result.codeurl,
          websiteUrl: result.websiteurl,
          telePhone: result.telephone,
          address: result.address,
          introduce: result.introduce,
          video: result.videourl,
          panoramaurl: result.panoramaurl, // 全景
        };
        this.ourData = d;
      });
    },
    // "校区建筑"↑
  },
};
</script>
<style lang="scss" scoped>
// 继承类
.flexCenter {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.mobilePopupOurOnce {
    padding: 8px 0 0 0;
    margin: 0 8px;
    // background-image: linear-gradient(#29baf1, #28bbf0);
    .mobilePopupOurOnce_center {
        // margin-bottom: 8px;
  padding: 8px 0 0 0;
  margin: 0 8px;
  // background-image: linear-gradient(#29baf1, #28bbf0);
  .mobilePopupOurOnce_center {
    // margin-bottom: 8px;
    height: 80px;
    // border-bottom: #d4d4d4 dashed 1px;
    padding-bottom: 8px;
    @extend .flexCenter;
    .mobilePopupOurOnce_left {
      width: 32%;
      height: 100%;
      @extend .flexCenter;
      img {
        width: 80px;
        height: 80px;
        // border-bottom: #d4d4d4 dashed 1px;
        padding-bottom: 8px;
        @extend .flexCenter;
        .mobilePopupOurOnce_left {
            width: 32%;
            height: 100%;
            @extend .flexCenter;
            img {
                width: 80px;
                height: 80px;
            }
        }
        .mobilePopupOurOnce_right {
            width: 68%;
            height: 100%;
            @extend .flexCenter;
            flex-direction: column;
            .mobilePopupOurOnce_r_up {
                height: 50%;
                width: 100%;
                font-size: 16px;
                text-indent: 1em;
                display: flex !important;
                align-items: center !important;
                // color: #fff;
            }
            .mobilePopupOurOnce_r_down {
                height: 50%;
                width: 100%;
                padding-left: 1em;
                display: flex !important;
                align-items: center !important;
                .mobilePopupOurOnce_r_d_in {
                    // color: #fff;
                    font-size: 17px;
                }
            }
        }
      }
    }
    .mobilePopupOurOnce_right {
      width: 68%;
      height: 100%;
      @extend .flexCenter;
      flex-direction: column;
      .mobilePopupOurOnce_r_up {
        height: 50%;
        width: 100%;
        font-size: 16px;
        text-indent: 1em;
        display: flex !important;
        align-items: center !important;
        // color: #fff;
      }
      .mobilePopupOurOnce_r_down {
        height: 50%;
        width: 100%;
        padding-left: 1em;
        display: flex !important;
        align-items: center !important;
        .mobilePopupOurOnce_r_d_in {
          // color: #fff;
          font-size: 17px;
        }
      }
    }
  }
}
</style>
src/components/mobileWindow/index.vue
@@ -1,4 +1,5 @@
<template>
  <!-- 浮动弹窗  mobileWindow-->
  <div
    ref="mobile-mapContentContent"
    v-show="!MobileWindowsHide"